Lowlevel

Lowlevel => Softwareentwicklung => Thema gestartet von: HustensaftOS am 22. October 2011, 19:19

Titel: GNU Binutils: GAS-Programm in den Bootsektor von Bochs-Floppyimage
Beitrag von: HustensaftOS am 22. October 2011, 19:19
In der 1. Magazinausgabe habe ich gelesen, wie man so mit Bootsektoren umgeht. Als richtiger Gentleman wollte ich das natürlich auch versuchen, allerdings habe ich (bis auf ein 16bit-NASM-Programm für DOS) immer GAS/AT&T gearbeitet. Deshalb wollte ich ein GAS-Programm mit 10h-Aufruf just for fun für den Bootsektor schreiben.
Gudde Sache, blöd nur, dass GAS nicht wie die meisten anderen Assembler ein Image oder etwas anderes brauchbares erzeugen kann, nur so eine Objektdatei, die ich dann mit GLD zu einem Programm linken darf. Bis jetzt hab ich mich mit so etwas langweiligen zufriedengegeben. Aber wo bleibt da der Spaß? Ich möchte mit GLD oder einem anderen Programm aus den Tiefen der Binutils in eine dekorative Image-Datei schreiben, oder besser gesagt: Ich brauche mein 10h-Programm in einer Form, die mein Bochs mag.

lg hustensaftOS.

--
Hier folgt Wuschelkopf:  :mrgreen:
Titel: Re: GNU Binutils: GAS-Programm in den Bootsektor von Bochs-Floppyimage
Beitrag von: chris12 am 22. October 2011, 19:32
das heißt, du brauchst eine 1440000 byte große plain binary datei, oder du sagst bochos explizit, dass es sich um so eine datei handelt, obwohl es das nicht tut

mfg
Titel: Re: GNU Binutils: GAS-Programm in den Bootsektor von Bochs-Floppyimage
Beitrag von: kevin am 23. October 2011, 13:02
Dann musst du ld eben sage, dass du eine schöne flache Binary mit ohne alles haben willst. Dazu musst du dann wohl ein passendes Linkerskript schreiben. Mit ein paar Kernel-Linkerskripts als Vorlage und dem ld-Handbuch müsste das machbar sein.

Andererseits empfehlen wir hier niemandem, mit einem eigenen Bootsektor anzufangen und das neuere Tutorial OS-Dev für Einsteiger (http://www.lowlevel.eu/wiki/OS-Dev_für_Einsteiger) geht auch dementsprechend vor. Ein eigener Bootloader bringt dir nur wenige verwertbare Erkenntnisse, aber dafür in der Regel viel Ärger. Von der Schwierigkeitsstufe her ist er anspruchsvoller als die ersten Schritte eines Protected-Mode-Kernels, der das Multiboot-Protokoll benutzt und bietet meistens deutlich weniger Funktionalität.