Mit was oder welcher Programmiersprache wurde BIOS Programmiert?

...komplette Frage anzeigen

2 Antworten

Ein BIOS wird klassischerweise in Assembler programmiert, da es sehr hardwarenah ist (d.h. auf die Eigenheiten der verwendeten Hardware abgestimmt sein muss).

Theoretisch könnte man auch eine andere Sprache verwenden, allerdings ist in höheren Programmiersprachen das direkte Ansteuern der Hardware meist schwieriger als in Assembler. Am ehesten wäre dafür noch die Sprache C geeignet.

Die heutigen BIOSse werden aus fertigen Modulen zusammengesetzt, sodass da meist nicht mehr besonders viel programmiert werden muss.

okay thx für die antwort ,

also soll ich assambler lernen wenn ich mein eigenes OS Programmieren will

"seufz" jetzt hab ich 3 jahre umsonzt c++ gelernt

0
@BIOSdroid

Möchtest du ein BIOS oder ein OS programmieren?

In beiden Fällen wirst du es vermutlich nicht leicht haben. Beim BIOS, weil dir die nötigen Hardware-Informationen des Mainboard-Herstellers fehlen, und beim OS, weil das Ganze (zumindest dann, wenn es für einen PC sein soll) viel zu umfangreich ist, als dass ein einziger Mensch das in vernünftiger Zeit hinbekommen könnte.

0
@ultrarunner

ich will n os programmen

aber ich kann beim boot-vorgang keine biblioteken von c++ öffnen bzw es benuzen

deswegen hab ich gedacht das es sich eher lohnt mit der programmiersprache anzufangen mit der bios programmiert wurde. :D

ich will kein umfangreiches os programmieren nur um zu kapieren wien pc funks

0
@BIOSdroid

Es besteht kein Grund, das OS in derselben Sprache wie das BIOS zu schreiben. Denn die beiden sind ziemlich unabhängig voneinander.

Beim Booten lädt das BIOS den ersten Sektor der Festplatte (512 Byte) ins RAM und führt diesen aus. In diesem Sektor musst du also den Code platzieren, der den Rest deines Systems lädt. In diesem Startcode kannst du wohl tatsächlich keine Libraries verwenden, weil dafür kein Platz ist.

Diese Einschränkung gilt aber nur für den Startcode. Beim Rest des Systems musst du dann nicht mehr so sparsam sein - und kannst auch die Programmiersprache(n) deiner Wahl benutzen.

0
@ultrarunner

asoooo

danke !

assambler ist aber beim boot vorgang dabei oder ?

aber dan hätt ich noch ne frage , muss nicht erst windows gestartet werden um da eine bibliokthek reinzuladen ..?

0
@BIOSdroid

Naja, den Startcode (also dieses maximal 512 Byte lange Programm, das den Rest des Systems nachlädt) wird man sinnvollerweise in Assembler schreiben. Auch wenn ich nicht ausschließen kann, dass man es auch z.B. mit C hinbringen kann (ohne Libraries zu verwenden!).

muss nicht erst windows gestartet werden

Windows? Ich dachte, du willst ein eigenes OS schreiben ;-)

Du kannst benötigte Bibliotheken statisch mit deinem Programm verlinken, dann muss zuvor sicherlich nichts anderes gestartet sein.

0
@ultrarunner

ok

"Windows? Ich dachte, du willst ein eigenes OS schreiben ;-)"

ya die biblioteken sind ya auf windows und ich glaub nicht das das bios oder was danach kommt eine *.h oder eine *.cpp datei öffen kann :D

was passiert eig nachdem bios fertig ist und kein betriebsystem oben ist ?

kommt man dan in eine comanndo zentarle oder startet sich das system neu ?

0
@BIOSdroid

ich glaub nicht das das bios oder was danach kommt eine *.h oder eine *.cpp datei öffen kann

Natürlich nicht, denn das sind ja die Quelltext-Dateien. Die musst du zuerst kompilieren, dann kommt ausführbarer Code heraus.

0
@ultrarunner

und mit welchem assambler soll ich anfangen ?

es gibt ya bestimmte versionen für bestimmte prozessoren :D

0
@BIOSdroid

Vielleicht mit der x86-Familie? Deren Sprache wird von allen PC-Prozessoren verstanden.

0
@BIOSdroid

Du brauchst für ein OS Kernel.Am besten Linux. Darf ich mal fragen wie alt du bist? :)

0

Was möchtest Du wissen?