/proc/<PID>/mmap chapu to dobre?

Vojtech Bubnik xbubnik na cs.felk.cvut.cz
Středa Leden 28 11:32:33 CET 1998


Dobry den, 

asi pred mesicem jsem se dozadoval programu, ktery vypise, ktere
knihovny sdili ktere programy. Bylo mi receno, ze takovy program
neexistuje a ze si muzu cist /proc/<PID>/mmap.
Takze jsem si prohlidnul zdrojaky jadra, kde se generuje tento 
virtualni soubor a zjistil jsem, ze v sloupecku 
rwx[sp] se vyskytuje pouze p jako private, jako by nic nebylo sdilene.
Mam jadro 2.0.30. Je to vlastnost toho jadra? Je to v novych jadrech jinak?

Kdysi jsem cetl nejaky kernel hackers guide a tam byl popsan pridelovac
pameti. Pochopil jsem z toho, ze kdyz budou 2 programy pouzivat tu samou 
sdilenou knihovnu, tak ze i data te knihovny, ktera jsou rw, bude kernel
kopirovat teprve, kdyz se tam ten druhy proces pokusi zapsat. A ze to
kopiruje po 4kb strakach. Takze bych ocekaval, ze v /proc/<PID>/mmap
bude mnoho 4kb stranek. Nebo to chapu blbe?

Dale v mmap souboru muzu precist informace o inode a cislu zarizeni, 
ze ktereho je ten soubor namapovan. Existuje nejaky pokud mozno primocary
zpusob, jak z techto informaci odvodit jmeno souboru? Me napada pouze 
prohlidnout vsechny soubory v /lib, /usr/lib, /usr/X11R6/lib ....
a zkontrolovat inode. Ale to se mi zda dost pomale. 
Ani me nenapada, jak rozumnym zpusobem priradit namountovany svazek 
cislu zarizeni. Opet bych mohl precist /dev a tam najit cislo zarizeni, 
priradit tomu jmeno souboru a ten najit v /proc/mounts. Ale ani tot mi
nepripada prilis elegantni.

hackeri, jak to je?


---
Vojtech Bubnik, student CVUT FEL, Praha
tcpip: xbubnik na cs.felk.cvut.cz
ax25: ok1iak na ok0ppr.#boh.cze.eu


Další informace o konferenci Linux