Autor Thema: Bootloader - Nächsten Sektor finden  (Gelesen 9408 mal)

SHyx0rmZ

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« 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.
@X="krJhbuaesrytre c a cnR.ohut";while@X[/(..)(.)/];@X=@X[3..-1]+$1;print$2;end
"Scheiß auf Perl, wir haben Kekse" - Emperor Ruby

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 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 (Kapitel 6) bietet aber Möglichkeiten den Bootkatalog etc. auszulesen, falls dass das ist was du möchtest.
« Letzte Änderung: 06. May 2009, 16:34 von bluecode »
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

SHyx0rmZ

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #2 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?
@X="krJhbuaesrytre c a cnR.ohut";while@X[/(..)(.)/];@X=@X[3..-1]+$1;print$2;end
"Scheiß auf Perl, wir haben Kekse" - Emperor Ruby

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 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...
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

matheguru

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« Antwort #4 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.
Hacker zu sein bedeutet mehr, als sich nur damit auseinander zu setzen, es ist eine Lebenseinstellung

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #5 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
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

matheguru

  • Beiträge: 113
    • Profil anzeigen
Gespeichert
« Antwort #6 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.
Hacker zu sein bedeutet mehr, als sich nur damit auseinander zu setzen, es ist eine Lebenseinstellung

SHyx0rmZ

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #7 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
@X="krJhbuaesrytre c a cnR.ohut";while@X[/(..)(.)/];@X=@X[3..-1]+$1;print$2;end
"Scheiß auf Perl, wir haben Kekse" - Emperor Ruby

ehenkes

  • Gast
Gespeichert
« Antwort #8 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.
« Letzte Änderung: 26. July 2009, 11:51 von ehenkes »

SHyx0rmZ

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 24. July 2009, 13:48 »
Vielen Dank für diese Links, die werde ich bestimmt noch gebrauchen können ;)
@X="krJhbuaesrytre c a cnR.ohut";while@X[/(..)(.)/];@X=@X[3..-1]+$1;print$2;end
"Scheiß auf Perl, wir haben Kekse" - Emperor Ruby

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #10 am: 25. July 2009, 04:20 »
CD-Roms, DVD-Roms, BD-Roms...

Floppy fdS *g*
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

ehenkes

  • Gast
Gespeichert
« Antwort #11 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!
« Letzte Änderung: 26. July 2009, 11:50 von ehenkes »

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 26. July 2009, 12:06 »
Die Seite hat keine Ahnung.

"fdS" = "für den Sieg" (deswegen auch das große S)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #13 am: 26. July 2009, 12:11 »
in Anlehnung an ftw (= for the win)
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #14 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 ;)
« Letzte Änderung: 27. July 2009, 01:18 von Hartmut »
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

ehenkes

  • Gast
Gespeichert
« Antwort #15 am: 27. July 2009, 20:59 »
Sorry für die Falsch-Interpretation. "Dauer-Ignore-State" zurück gezogen.  :-)

 

Einloggen