Kde je fyzicky kernel ?

test xmyslik na smrt.cz
Úterý Prosinec 10 02:29:12 CET 1996


In article <199612091124.MAA08027 na k332.feld.cvut.cz>, you wrote:
>Hello, world!
>
>> aby zde take padla nejaka otazka o Linuxu (coz je podle mne to, co mame
>> umisteno v adresari /boot pripadne / pod nazvem /vmlinuz ci podobne), chtel
>> bych se zeptat na nasledujici veci:
>> 
>> 	1. Ze se po nabootovani Linuxu na adrese 0x90000 nachazi bootsektor
>> a na 0x90200 je setup a od 0x10000 do 0x8f000 se nachazi komprimovany kernel
>> jeste chapu, ale je mi zahadou, co se nachazi od 0x8f000 do 0x8ffff a proc
>> zrovna je velikost komprimovaneho kernelu omezena timto (0x7f0 = 508KB) a
>> kam se potom premisti dekomprimovany kernel ? Na 1MB (0x100000) ???
>
>   Tradicni postup bootovani kernelu z diskety u 2.0.X je nasledujici:
>(pouzije-li se LILO, je to obdobne)
>
>	(1) BIOS nahraje boot-sector (boot.S) na 0x7c00 a spusti jej
>	(2) Boot-sektor premisti sam sebe od 0x90000, zasobnik umisti
>	    pod sebe sama.
>	(3) Modul "setup" (setup.S) je nahran od 0x90200
>	(4) Zbytek jadra je nahran od 0x10000 -- maximalni velikost
>	    jadra je tedy 0x80000 minus 4KB na zasobnik.
>	(5) Nasledne se spusti setup, ten vytahne z BIOSu ruzne
>	    parametry typu informace o discich apod., ty ulozi na misto
>	    puvodniho boot-sectoru.
>	(6) Setup prepne CPU do protected-modu a spusti kernel od zacatku,
>	    dostane se do arch/i386/boot/compressed/head.S, zavola se
>	    dekompresni rutina, ktera kernel rozpakuje na 0x100000
>	    a nasledne tam skoci.
>	(7) Tim se dostavame do arch/i386/kernel/head.S, data z 0x90000
>	    se presouvaji do empty_zero_page a programuje se MMU, cimz
>	    se cely adresni prostor kernelu objevuje od 0xc0000000.
>	(8) Poustime init/main.c, funkci start_kernel -- happy end.
>
>   Pokud se bootuje big kernel image (bzimage), je nahran na 0x100000,
>rozpakuje se za spakovanou verzi a nasledne je presunut na 0x100000
>a spusten tamtez, jako by to bzimage nebyl.
>
>> 	2. Pry se vyse uvedena filosofie zmenila v 2.1.x. Co je na tom
>> pravdy? Bohuzel nemam zrovna moc casu nazbyt na studovani 2.1.x \ldots 
>
>   O zmene tohoto ve 2.1.X nic nevim -- pokud je mi znamo, jedine, co se
>zmenilo, bylo rozdeleni adresniho prostoru na uzivatelksou a systemovou
>oblast -- puvodne se pouzivaly dva ruzne segmenty, ve 2.1.X jiz pouze
>jeden (zrychleni...).

Kvuliva velikosti kernelu je snad nova volba make bzimage, ktera ma obejit ten limit.


>
>> 	3. Jake pouzivate disassemblery ? Mate nekdo nejaky lepsi nez ndisasm
>> ?    ... nejak divne mi radkuje editor :-)))
>
>   Ja pouzivam objdump --disassemble.
>
>								Martin


-- 
------------------------------------------------------------------
 Vladimir Myslik  
(if you experience delivery problems replying my mail, try the addresses below)
mailto:xmyslik na cslab.felk.cvut.cz , mailto:xmyslik na cs.felk.cvut.cz
http://cs.felk.cvut.cz/~xmyslik


Další informace o konferenci Linux