Lowlevel

Lowlevel => OS-Design => Thema gestartet von: SHyx0rmZ am 06. May 2009, 16:02

Titel: Bootloader - Nächsten Sektor finden
Beitrag von: SHyx0rmZ am 06. May 2009, 16:02
Da ich immer noch der Meinung bin, dass sich ein eigener Bootloader für mein OS besser eignet, muss ich euch leider noch mal nerven ^^

Ich habe noch ein Verständnisproblem beim Bootvorgang. Von Floppy booten ist ja kein Problem. Wenn das System von CD bootet, werden ja entweder eine Floppy oder eine Festplatte emuliert. Wie kann man jetzt genau bestimmen, an welcher Stelle auf dem Medium (CD, HDD) der "zweite" Sektor liegt, sprich der Sektor nach dem Bootloader?

Man könnte natürlich bei der HDD versuchen, Infos aus der Partitionstabelle zu bekommen. War es nicht bei der Floppy-Emu der CD nicht so, dass der Bootloader denkt, er wäre im ersten Sektor? Gibt es da irgendwelche Tricks?
Grub scheint ja auch einfach stur den zweiten Sektor zu laden.
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: bluecode am 06. May 2009, 16:31
Wenn das System von CD bootet, werden ja entweder eine Floppy oder eine Festplatte emuliert. Wie kann man jetzt genau bestimmen, an welcher Stelle auf dem Medium (CD, HDD) der "zweite" Sektor liegt, sprich der Sektor nach dem Bootloader?
Die Frage macht m.E. keinen Sinn, da ja eben eine 1,44 (oä.) Floppy emuliert wird (das komplette Floppyimage ist eine normale Datei auf der CD, also ein ISO9660 Dateisystemeintrag) und man eben nur Zugriff auf dieses Image (wobei es eben mit der normalen Sektoradressierung einer Floppy adressiert wird) Zugriff hat und überhaupt nicht auf die CD-ROM selbst.
Das BIOS übernimmt dabei für den Bootloader (durch den Int13) die Umrechnung von der Floppyadressierung in einen Zugriff auf die CD-ROM, aber das läuft komplett unsichtbar für den Bootloader ab.

Zitat
War es nicht bei der Floppy-Emu der CD nicht so, dass der Bootloader denkt, er wäre im ersten Sektor?
Er ist im ersten Sektor, siehe oben.

Die El-Torito Spezifikation (http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf) (Kapitel 6) bietet aber Möglichkeiten den Bootkatalog etc. auszulesen, falls dass das ist was du möchtest.
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: SHyx0rmZ am 06. May 2009, 16:36
Ok, das mit der CD habe ich soweit verstanden. Mein Problem liegt jetzt nur noch bei der HDD.

Geht es da nur mit dem Auslesen der Partitionstabelle, oder wird das Offset ebenso emuliert?
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: bluecode am 06. May 2009, 16:42
Eine HDD wird m.E. genauso emuliert wie eine Floppy. Ob du deine HDD mit einer Partitionstabelle (d.h. im Endeffekt mit einem MBR) ausstattest musst du selbst entscheiden. Falls du das tust, muss dein Master-Boot-Sektor sich eben genauso verhalten wie auf einer Festplatte, aktive Partition bestimmen und da den Bootsektor ausführen. Im anderen Fall eben wie ein normaler Bootsektor auf einer Festplatte...

Aber kA ob ich jetzt deine Frage überhaupt richtig verstanden habe...
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: matheguru am 10. May 2009, 15:59
Ich glaub er meints so! Dein Bootloader muss hallt nur El-Torito FS unterstützen, es gibt ja auch nen eintrag in der Wiki glaube ich! Das ist eine interresante Leetspeak-konstellation in deinem Username SHyx0rmZ.
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: kevin am 10. May 2009, 16:12
Ich glaub er meints so! Dein Bootloader muss hallt nur El-Torito FS unterstützen, es gibt ja auch nen eintrag in der Wiki glaube ich!
El Torito ist kein FS. Was für ein Dateisystem man auf das Floppy- oder Plattenimage draufpackt, bleibt einem selbst überlassen. Solange man nur die BIOS-Funktionen benutzt, sieht das ganze aus wie eine echte Diskette bzw. Festplatte. Der Bootloader braucht insofern nichts CD-ROM-spezifisches zu machen.

Zitat
Das ist eine interresante Leetspeak-konstellation in deinem Username SHyx0rmZ.
Ich habe ja die Vermutung, er hat nur die Felder für Benutzername und Paßwort verwechselt. :-D
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: matheguru am 10. May 2009, 16:23
Ja so scheint mir auch, wobei eine abwandlung von h4x0r enthalten und zwar hyx0r. Ich meine mich aber noch daran zu erinnern, dass y kein Synonym von dem Buchstaben a ist. Na ja was solls :-D! Dachte immer El-Torto ist ein FS für CD-Roms.
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: SHyx0rmZ am 10. May 2009, 22:11
Ok, danke für eure Antworten, die HDD hatte mir ein wenig Sorgen gemacht. Wenn ich aber nur Floppy beachten muss gehts ja einigermaßen, Rest kommt dann ja eh in den Kernel ;)

Und nein, ich habe nicht Passwort und Username verwechselt :D Hat auch keine versteckte Bedeutung, hab nur ein paar meiner Lieblingsbuchstaben aneinander gereiht ;) (Aussprache: Schückssohrms)

Fleißiges OS-Deven euch noch, ich mach dann auch mal bald weiter :P
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: ehenkes am 24. July 2009, 13:23
Zitat
Da ich immer noch der Meinung bin, dass sich ein eigener Bootloader für mein OS besser eignet, muss ich euch leider noch mal nerven ^^
Falls Du das immer noch willst, hier gibt es Ansätze:
http://www.brokenthorn.com/Resources/OSDev6.html
http://www.brokenthorn.com/Resources/OSDev20.html
http://www.henkessoft.de/OS_Dev/OS_Dev3.htm#mozTocId882541
http://www.henkessoft.de/OS_Dev/OS_Dev3.htm#mozTocId584885
Mit GRUB ist das Leben aber eindeutig "leichter", hängt von deinen Zielen ab.
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: SHyx0rmZ am 24. July 2009, 13:48
Vielen Dank für diese Links, die werde ich bestimmt noch gebrauchen können ;)
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: DerHartmut am 25. July 2009, 04:20
CD-Roms, DVD-Roms, BD-Roms...

Floppy fdS *g*
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: ehenkes am 26. July 2009, 11:48
Zitat
CD-Roms, DVD-Roms, BD-Roms...

Floppy fdS *g*
fds == fick dich selber ( http://www.fmenge.homepage.t-online.de/chat.htm )  :x

@Hartmut: Ich werde Dich ab jetzt komplett ignorieren!
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: kevin am 26. July 2009, 12:06
Die Seite hat keine Ahnung.

"fdS" = "für den Sieg" (deswegen auch das große S)
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: bluecode am 26. July 2009, 12:11
in Anlehnung an ftw (= for the win)
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: DerHartmut am 27. July 2009, 01:10
o.O

@ehenkes: Ungeachtet dessen, dass ich dich niemal  beleidigen würde, und fdS (Danke für die Klarstellung an taljeth und bluecode) anstelle von dem mir unbekannten "fd_s_" geschrieben hab...

"Floppy fick dich selber" macht irgendwie keinen Sinn, oder?

Hoffe, der Dauer-Ignore-State ist damit behoben und du verstehst nun, was ich mit "Floppy für den Sieg" meine ;)
Titel: Re: Bootloader - Nächsten Sektor finden
Beitrag von: ehenkes am 27. July 2009, 20:59
Sorry für die Falsch-Interpretation. "Dauer-Ignore-State" zurück gezogen.  :-)