Hallo Leutz, hab nen paar probleme zum Lowlevelbereich, dabei beziehe ich mich auf die Seite von Lowlevel. Erstens wo ist der unterschied zwischen MBR und dem Bootsector? Zweitens warum muss man seine Betribssystembinärdateien als Diskimage auf den Datenträger bringen? Drittens: wozu diehnt eig. ein dateisystem wie FAT und brauch man das um ein datenträger bootbar zu machen? viertens: ich möchte ein Programm in C++ schreiben, welches die bootdateien auf ein usb-stick schreibt, wie finde ich heraus welchen adressraum der datenträger hat 0xfk435 oder so etwas meine ich. Und welche routinen gibt es um die daten in bestimmte sectoren zu schreiben? ich hoffe ihr könnt mir helfen, ich möchte dieses kleine kernel von dieser seite ausprobieren und habe kein diskettenlaufwerk, deswegen möchte ich es vom usb stick booten. grüße von paul
das hilft mir jetzt auch nicht! trotzdem danke. vieleicht könnte mir ja auch jemeand nen kleines beispile geben. grüße paul(matheguru)
MBR: Teil der Partitionstabelle, wird vom Bios geladen und ausgeführt. Bootsektor: Üblicherweise erster Sektor der Partition, wird vom MBR geladen und ausgeführt (ausser der MBR bootet was anderes...) FAT: Brauchst du nur, wenn dein Bootsektor-Code FAT erwartet Zum Schreiben in bestimmte Sektoren bietet sich "dd" an. Alternativ: nimm was fertiges für das ganze Bootsektor-zeuchs. Grub, Lilo o.ä. bietet sich da an.
geh auf die lowlevel-seite dort gibt es 9 ausgaben eines magazines und noch alles mögliche über protectetmode c kernel etc.
Matheguru L. wrote: > Erstens wo ist der unterschied zwischen MBR und > dem Bootsector? MBR ist der Master Boot Record - der enthält entweder den Bootlader für das einzige OS auf der Platte, oder ein Bootmenü, oder einen voreingestellten Bootselektor, der einen von mehreren Bootladern auswählt und startet. Es gibt nur einen MBR auf einer Platte, egal, wieviele Partitionen sie hat. Einen Bootsector gibt es für jede Partition. Er enthält den Code um das auf der Partition installierte Betriebsystem (OS) zu booten. > Zweitens warum muss man seine Betribssystembinärdateien > als Diskimage auf den Datenträger bringen? Muß man das? Man kann das OS auch ganz normal installieren... > Drittens: wozu diehnt eig. > ein dateisystem wie FAT und brauch man das um ein datenträger bootbar zu > machen? Das Dateisystem enthält standardisierte Datenstrukturen, mit deren Hilfe Dateien effizient verwaltet werden können. Es gibt wohl keine Betriebsysteme, die ohne Dateisystem auskommen, wenn Massenspeicher verwaltet werden, es ist aber im Prinzip denkbar, ein OS auch ohne Dateisystem zu booten. > viertens: ich möchte ein Programm in C++ schreiben, welches die > bootdateien auf ein usb-stick schreibt, wie finde ich heraus welchen > adressraum der datenträger hat 0xfk435 oder so etwas meine ich. Am besten, indem due das Betriebsystem fragst - das weiß es nämlich. Daraus folgt aber auch, daß du besser kein Programm schreibst, welches bootdateien auf ein usb-stick schreibt und dich stattdessen auf ein OS verläßt... > Und > welche routinen gibt es um die daten in bestimmte sectoren zu schreiben? Ohne Betriebsystem keine.
Unter "low level" versteht man eher Hardware-nah. Was Du gemeint hast sind "Anfaengerprobleme" ;)
Und völlig überzogen sowieso. Um einen USB Stick bootfähig zu machen, gibts Programme, bei denen man nur auf "Start" oder ähnliches klicken muss. Bei modernen Betriebssystemen sollte und darf man eh nicht einfach so in irgendwelchen Sektoren rumschreiben....
> Und welche routinen gibt es um die daten in bestimmte sectoren zu schreiben?
Das BIOS stellt natuerlich den RW Zugriff auf das Medium sicher. Sonst
ist auch nichts mit booten.
> Zweitens warum muss man seine Betribssystembinärdateien > als Diskimage auf den Datenträger bringen? Das Problem ist ganz einfach, du musst ja irgendwie in den Bootsektor schreiben damit dein OS gebootet wird, das funktioniert aber nicht indem du dein Betriebssystem einfach auf Diskette kopierst, weil bei diesem Vorgang nicht in den Bootsektor geschrieben wird. Deshalb das Image. Rein theoretisch ist es auch möglich nur den Bootloader als Image anzulegen und dann den Kernel ganz normal als Binärdatei zu kopieren, aber dafür brauchst du dann schon ein Dateisystem.
Lowlevel meint hier wohl www.lowlevel.com Woher ich das so aus dem Hut hätte wissen sollen ist mir allerdings noch nicht so recht klar. Die Überschrift klingt als sollte man das kennen.
Sorry das ich den thread noch mal nach oben hole, aber es hat sich was geändert. Mein USB-stick bootet jetzt. Hab aber immer noch ein Problem mit der Bootlaufwerksnummer: der bootloader gibt zwar seine Nachricht Lädt aus, aber mein kernel will nicht Laden, weil ich immer noch nicht weiß welche Laufwerksnummer mein BIOS vergeben hat. Um das verständlich zu machen verweise ich auf www.lowlevel.com unter Tutorials Ausgabe1 des Magazins, dort steht der Bootloader und das Kernel. Hier noch das was mein BIOS während des POSTs ausgibt: USB Device(s): 1Keyboard, 1Mouse, 1 Storage Device Auto-Detecting 3rd Master... IDE Hard Disk Auto-Detecting 4th Master... ATAPI CDROM Auto-detecting USB Mass Storage Devices.. Device #01: Generic- Multi-Card HiSpeed Device #02: Kingston DataTraveler2 HiSpeed 02 USB mass storage devices found and configured Lg Paul
Matheguru L. wrote: > Sorry das ich den thread noch mal nach oben hole, aber es hat sich was > geändert. > Mein USB-stick bootet jetzt. Hab aber immer noch ein Problem mit der > Bootlaufwerksnummer: der bootloader gibt zwar seine Nachricht Lädt aus, > aber mein kernel will nicht Laden, weil ich immer noch nicht weiß welche > Laufwerksnummer mein BIOS vergeben hat. Das BIOS vergibt keine "Laufwerksnummern" (sowas gibt es ueberhaupt nicht). Es sucht nach der eingestellten Boot-Sequenz (Reihenfolge!) alle MBRs ab und beim ersten Treffer wird der enthaltene Code ausgefuehrt. Michael
@Matheguru Nicht alle Bootmedien haben einen MBR. Eine Diskette hat z.b. keinen. Abhängig davon führt das Bios seine (interne) Enumerierung durch und abhängig davon kann es das Laufwerk dann als "a:" oder eben "c:" ansprechen. Normalerweise muss es dies anhand des ersten Sektors erkennen aber nicht alle BIOS-Typen können das. Ich habe z.b. einen USB-Stick der auf einem Comp. als "a:" ansprechbar ist und auf den anderen Comps immer als "c:".
>verweise ich auf www.lowlevel.com unter Tutorials Ausgabe1 des Magazins,
da kommt doch nur Werbung?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.