Booting kernelu

Pavel Janik ml. Pavel.Janik na inet.cz
Úterý Únor 9 22:31:03 CET 1999


   From: Jindra Fisnar <fisnar na delta.ssakhk.cz>
   Date: Tue, 9 Feb 1999 22:11:05 +0100 (CET)

Přeji příjemný večer,

abych pravdu řekl, tak tohle je dnes snad první dotaz, který čtu a nenalezl
jsem na něj odpověď v archívu... Děkuji Vám za něj.

   >    Nejdrive teda preda BIOS kontrolu Lilu a to pak jadru. Kernel si
   > sinicializuje consoli, otestuje si rychlost procesoru (BogoMIPS Kolikrat
   > za sekundu stihne procesor udelat skutecne nic;), zjisti si pamet a zavede
   > modul site.

Ano, hodně zjednodušeně to takhle je (např. to nemusí být BIOS, LILO nemusí
být v tomto procesu přítomno, kernel může po testování BogoMIPS zhavarovat :-)
apod).

   >    A tady me napadla jedna vec. Bylo by mozny po zavedeni toho modulu
   > zbytek jadra dotahat prave po siti? (az dosem to musi bejt pomerne maly =>

Je otázkou, co je to zbytek jádra (v tomto případě). Pokud jste napsal, že
"zavede modul sítě" (tj. předpokládám síťové karty, protože bez její podpory
by asi bylo těžké cokoli stahovat ze sítě ;-) tak je již kompletní kernel v
paměti a je možné dotahovat pouze moduly. Ale tohle platí pro architekturu
i386 (a možná další).

Když nad tím tak uvažuju, tak mi to stejně připadá přinejměnším podivné, když
už chci něco stahovat ze sítě, musím mít už nataženu podporu pro síťovou
kartu, když ji chci používat, musím mít obsluhu IRQ, když chci obsluhovat IRQ,
tak musím mít v paměti skoro celý zbytek jádra...

Ale např. na počítačích s procesory SPARC to vypadá tak, že HW počítače
obsahuje takové malé obecné jádro, kterému se říka OpenPROM a které např. něco
podobného umí - při bootování napíšete např.

  boot net

a počítač po příslušném dohadování s TFTP serverem nabootuje z image, který je
připraven na tomto serveru (podle HW adresy ethernetové karty na bootovaném
počítači). Čili něco, co se alespoň vzdáleně podobá vaší představě.

Další možností jsou BootROMy pro PC.

   > slo by nabootovat unix treba na comodoru nebo IQ 151 (pripadne nekterych
   > jednocipech) Je fakt, ze by to pripominalo spis terminal, ale spojit timto
   > spusobem nekolik nezavislych malych (levnych) unixu s jednim ridicim by se

Níže předpokládám, že s tím unixem jste to nemyslel reálně. Oba zmiňované
počítače obsahují již nyní vcelku inteligentní jádro (ale abych pravdu řekl,
tak ještě nyní obdivuji vývojáře monitoru počítačů PMD - mám dokonce ještě
někde schovaný komentovaný výpis jejich zdrojáků ;-).

Myslím, že je to alespoň v brzké době nereálné, ale věřím, že to možné
je. Zkusme to promyslet např. pro C=64. Commodore obsahuje normální Centronics
port pro tiskárnu. Fyzické propojení je tudíž proveditelné (dále obsahuje také
game port a ještě tam myslím byl nějaký port pro disketovou mechaniku a
kazeťák). Dokonce jsem již někde viděl i TCP/IP podporu, takže odhlédněme od
problému fyzického propojení. To je již vyřešeno. Máme tedy např. jedno PC
propojené s několika C=64. Každá C=64 si bude počítat nějaký svůj nesmysl a
pošle jej PC, které ho zpracuje a pošle mu další nesmysl. Tedy řešitelné to
je.

Ale teď si zkusme spočítat, jaký má výkon takový cluster složený z n počítačů
C=64. Budeme hodně zanedbávat (ve fyzice se mi vždy líbilo, když jsme např. u
parašutisty zanedbali odpor vzduchu :-):

    n počítačů --> frekvence "vzniklého virtuálního procesoru" je n x 1MHz,
    dostupná paměť je celých n/16 MB.

Tedy např. pro 100 těchto počítačků máme jedno PC s 100MHz procesorem a
ubohými 6 a čtvrt MB paměti... A to hodně zanedbáváme. Takže to asi bude k
ničemu.
--
Pavel Janík ml.
Pavel.Janik na inet.cz


Další informace o konferenci Linux