Jak funguje demand paged loading spolecne s dynamickym linkovanim ?

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Březen 29 18:24:23 CEST 1999


On Tue, 23 Mar 1999, Frantisek Dufka wrote:

> Mimochodem na mem debianu 2.1 staticky linkovany tichy hello world
> int main(){return 0} ma asi 90KB neni to trosku moc ? (neberte to jako pokus o

Maslo na hlave ma (g)libc a /usr/lib/crt*.o. Nejak jsou ty kusy kodu na
sobe moc zavisle, takze minimum je tech 90 kilo. Nepochybuji, ze to lze
optimalizovat, ale musel by to nekdo udelat :)

> flame war:) Tzn jak psat kratke staticky linkovane programky (treba pro
> jednodisketovou distribuci nebo nejakou hodne malou krabicku s hodne malou
> pameti) ktere pouzivaji jenom volani kernelu? Kde je onen include soubor s

"Jenom volani kernelu" pouziva kazdy proces. :)
IMHO by pro takove prilezitosti byla nejlepsi hodne orezana dynamicka
knihovna.

> definici systemovych volani pro neco jako: 
> #include <tojeon.h>
> void main(){
>   write(1,"Hello world.\n",strlen("Hello world.\n"));
>   _exit(0);
> }
> co by melo po zkompilovani treba 100 bajtu ?

Viz soutez o nejmensi binarku poradana Linuxovymi novinami. :)

> Jo a jeste jedna vec s tim trosku souvisejici, je mozne v linuxu, tak jak je
> napsany aby sel napsat driver pro ramdisk (a treba i filesystem k tomu) tak aby
> spustitelny kod bezel primo z ramdisku? Tzn. netvorila se druha kopie v pameti?
> Nebo to snad tak dokonce funguje se soucasnym ramdiskem, ext2 fs a dynamicky
> linkovanym programem na libc 6 :) ?

Ramdisk je ulozen primo v bufferech. Buffery jsou typicky shromazdovany
po nekolika tak, aby se v pripade potreby daly rovnou mapovat jako stranky
do pametoveho prostoru procesu.

--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