Vytvoření BOOTovací
diskety
TUOXu
Autoři: Petr Šmidák, Roman Hrdý, Tomáš Gajec
Předpoklady
Před zavedením systému je třeba disketu naformátovat a vytvořit programem
MKFS File system (disk image).
Stávající kód předpokládá, že jsou na disketě správně vyplněny parametry
disku (resp. diskety). Jedná se o tyto hodnoty v Boot recordu:
-
BytesPerSec - většinou 512B (200h)
-
StartImageSecs - první sektor, kam
budou zapsány images systému.
-
TotalSectors - není potřeba pro Bootstrap,
ale musí být vyplněna pro HDD Task. Navíc je to pouze WORD, takže pro pevné
disky je to takřka nepoužitelné.
-
FormatID - nekontroluje se
-
SectorsPerCyl - počet sektorů na stopu
(válec/cylindr). Pro 1.44MB disketu je to 18.
-
Sides - počet povrchů. Pro disketu je to 2.
-
DriveNo - číslo disku. 0=první disketa,
80h=první disk
-
ostatní položky by měly být (pro jistotu) nulové. Jinak by se mohl zmást
Make_sys.
Všechny tyto parametry by měl vyplňovat MKFS, nebo nějaký formátovač.
V současné době MKFS neumí vytvořit díru pro image. Teda možná umí,
ale:
-
Nezjišťuje fyzické parametry disku a nezapisuje je do Boot recordu. Když
se to vezme kolem a kolem, MKFS by to ani dělat neměl, ale
jsou potřeba! Doposud je nutno používat Diskedit (apod.).
-
Nevyplňuje StartImageSecs. Což by měl.
-
Zatimní pokusy s existujícím MKFS dopadají blbě. Pokud jím vytvořím TUOXovou
(resp. MINIXovou) disketu, Linux ji nepřečte. Takže je tam něco blbě.
Nebo si to představuju moc jednoduše?
Postup
Pokud tedy máte správně vyplněný Boot record:
-
Spustíte Boot.com, který zapíše na disk Boot record TUOXu.
-
Spustíte Make_sys.exe, který na disk zapíše ostatní. Loader + moduly (kernel,
fs, mm, init)
-
Eventuelně lze místo Boot.com spustit Empty.com, který vytváří defaultní
Boot record a nezavádí systém. Pak se vynechá Make_sys.
Program BOOT.COM (zdrojový kód zde)
zavede na disketu BOOT RECORD systému TUOX. Dále je třeba programem MAKE_SYS.EXE
(zdrojový kód zde) nahrát na disketu zavaděč
(Loader - zdrojový kód zde) a jednotlivé moduly
(KRN+MM+FS+INIT). Tyto moduly se musí nacházet v aktuálním adresáři a musí
obsahovat platnou hlavičku viz.Tuox Header. K zápisu a čtení je použita
služba BIOSu 13h čtení/zápis sektoru. Parametry programů viz. jejich kód
a help.
Pro jednotnost uvedeme názvy jednotlivých modulů deklarovaných ZDE
:
LOAD.SYS = Zavaděč
KRN.TUX = Kernel
MM.TUX = Memory Manager
FS.TUX = File System
INIT.TUX = Proces INIT
Upozornění
-
Disk musí být předem naformátován a nesmí obsahovat žádné BAD SECTORy
Stáhnout utility pro vytvoření boot disku můžete zde.
Modul KRN.TUX je pouze testovací a vypisuje obsah zásobníku. Jedná se o
parametry, které se předávají mainu kernelu.