Jak je to se sdilenymi knihovnami?
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Úterý Květen 18 20:47:47 CEST 1999
On Tue, 18 May 1999, Petr Tesarik wrote:
> Tak jsem se tak díval na mapy paměti různých procesů a všimnul jsem
> si, že kód ze sdílených knihoven se mapuje (via mmap()) jako
> MAP_PRIVATE, tj. copy-on-write. Proč vlastně dynamický linker nemapuje
> ty stránky (které se stejně mapují jako PROT_READ | PROT_EXEC,
> tj. zapisovat se do nich nedá) jako MAP_SHARED? A jaký je v tom rozdíl?
Dokud se do nich nezapisuje, tak zadny. Jenze ono se do nich nekdy
zapisovat muze: napriklad se tak cini, kdyz je provadena relokace
dynamickych knihoven (mam dojem, ze ld.so pak udela mprotect()).
> Jestli se nepletu, tak pod Linuxem jsou ve fyzické paměti
> stejně jenom jednou (důsledek copy-on-write). Nebo se mýlím?
Pokud do nich nektery z procesu nezapsal, tak jsou skutecne jen jednou.
> A jak je to třeba ve FreeBSD?
Podle toho, co se pise v /proc/$$/map soudim, ze stejne (same COW).
Na Solarisu je to taky tak.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"NSA GCHQ KGB CIA nuclear conspiration war weapon spy agent... Hi Echelon!"
Další informace o konferenci Linux