On Thu, 2003-03-06 at 02:35, Bogdan Marinca wrote: > Salut. > Am fost curios sa vad cum se face procedura de initializare a kernelului > dupa ce e incarcat de loader. (ma rog, pentru i386) > M'am uitat prin /usr/src/linux/arch/i386/boot/setup.S, e chiar haios ce e > pe acolo :) dar la un moment dat mi s'a "rupt filmul" ... Mai precis la > [...] > (si e chiar interesant ca vad ca si Linus face wrap la 75 coloane :) ) > > E clar ca ".byte 0x66, 0xea" e un "jmp far" pe 32 biti si e necesar ca sa > incarce si registrul %cs. Dar de fapt unde sare kernelul aici? Sa inteleg > ca intr'un modul compilat dintr'o sursa de C ? Dar care? > Din /usr/src/linux/init/main.c de ex. ? > > Stie cineva? :)
Sare la arch/386/boot/compressed/head.S:startup_32 care initializeaza stiva si decomprima kernelul. apoi sare la adresa 0x100000 (arch/i386/kernel/head.S:startup_32), mai initializeaza cate ceva si abia pe urma ajunge (in sfarsit) la init/main.c:start_kernel(). Mai departe e usor de urmarit. Pt informatii mai stufoase, vezi "Linux Kernel Internals" - http://www.moses.uklinux.net/patches/lki.html. -- Florin Malita web: http://www.malinux.net public key: http://www.malinux.net/data/fmalita.gpg -- Attached file included as plaintext by Listar -- -- File: signature.asc -- Desc: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA+aEr09npXhj/Ohf8RApyLAJ92Rvwx/ELIorIbnmQXWgQ0/W+fQQCgj0xA mzLQIR16ZZbE8s32f6wvCYk= =ewKx -----END PGP SIGNATURE----- -- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
