Bios selber programmieren?

Das Ergebnis basiert auf 11 Abstimmungen

Ja, kann man 64%
Nein, geht nicht 36%

6 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Nein, geht nicht

Das Bios dürfte wohl in reinem Assembler geschrieben sein. Ohne einen kommentierten Quellcode als Vorlage, kann man da noch nicht mal was patchen. Das Bios basteln die klassischen Mainboardhersteller auch nicht selbst!

Für meinen Haswell-Chip gibt es noch nicht mal einen Patch, um dort von einem angestrickten M.2 Laufwerk aus Windows booten zu können. Das Bios erkennt sowas gar nicht erst, Windows10 aber schon!

Kann man ...? - Pauschal Ja.
Die Frage ist nur, wie aufwändig es ist.

Natürlich braucht man das nötige Fachwissen zum Programmieren so einer Software, doch da gibt's bestimmt welche, die das haben und welche, die es teilen.
Und man bräuchte sehr tief gehende Kenntnisse der Hardware, über die die Hersteller sicher nicht freiwillig reden.

Möglich ist es also, nur sehr, sehr unwahrscheinlich, dass irgendwer, der nicht beim Hersteller arbeitet, dieses Ziel erreicht.

Theoretisch geht das schon, praktisch scheitert es vermutlich schon daran, dass du gar nicht weißt, was du programmieren musst... Du bräuchtest schon tiefgreifendere Informationen über Prozessor und Mainboard (Chipsatz...) an die du ohne Geheimhaltungsvereinbarung (und die wird dir vermutlich überhaupt nicht angeboten werden) wohl gar nicht kommen würdest.

Bliebe noch Reverse-Engeneering, aber das wäre wohl sehr, sehr aufwändig.


KingSchorschi 
Beitragsersteller
 22.11.2021, 22:31

Danke (:

0
Ja, kann man

Kann man irgendwie schon. Die Mainboardhersteller müssen dies ja auch irgendwie programmiert haben.

So ganz einfach ist das allerdings nicht. Das ist recht nah an der Hardware dran. Gewöhnliche Programmiersprachen kannst du da also nicht nutzen. Ausserdem musst du da ziemlich vieles Reverse Engineeren bzw. einfach ausprobieren, du weisst ja nicht wirklich, was du genau programmieren musst.

Vielleicht hilft dir auch dieser Post hier weiter, falls du interessiert bist: https://stackoverflow.com/questions/10890048/writing-my-own-bios

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

mchawk777  22.11.2021, 22:28

Wobei man ganz klar sagen muss:
Mit einem BIOS-System wird man kein aktuelles Windows zu laufen bekommen.
Dafür ist diese Technik zu alt.

1
KingSchorschi 
Beitragsersteller
 22.11.2021, 22:27

Ist Assembler schwer zu lernen, weißt du das?

0
Lezurex  22.11.2021, 22:28
@KingSchorschi

Du brauchst tiefgründiges Wissen über die Hardware, das ist eher das schwierige dabei.

0
KingSchorschi 
Beitragsersteller
 22.11.2021, 22:29
@Lezurex

Ok, und gäbe es ein normales Mainboard, wo alles, was man braucht, offengelegt ist?

0
Lezurex  22.11.2021, 22:31
@KingSchorschi

Das weiss ich nicht. Wenn überhaupt, wird es da aber nichts geben, womit du irgendein modernes Betriebssystem zum Laufen bringen wirst.

0
tom1stein  23.11.2021, 11:43
@KingSchorschi

Relativ zu einer Hochsprache wie Java oder Basic? Jain. Es gibt mehr Befehle. Andererseits gibt es weniger Libraries, man macht viel selbst. Es ist etwas abstrakter, weil die Befehle mnemonisch und nicht unbedingt selbsterklärend sind. Aber es gibt auch schwierig zu erlernende Hochsprachen. Schwieriger als Assembler selbst ist die hardwarenahe Programmierung: welche Ports eines Chips müssen in welcher Reihenfolge mit welchen Bits versehen werden, damit das gewünschte Ergebnis ausgegeben wird? Da hat man oft tausende mehr oder weniger ausführlich oder unübersichtlich beschriebene Möglichkeiten, aus denen man sich die passende ggf. durch probieren heraussuchen muss. Offensichtlich gibt es Leute, die das können (sonst gäbe es ja kein BIOS), aber wie man aus den vielen Antworten hier erkennt: Viele haben damit noch keine Erfahrung gemacht. Als ich zu C64-Zeiten Assembler gelernt hatte (ca. 1983), waren die Chips weit weniger komplex als heute. Andererseits gab es oft nur eine einzige Dokumentation und kein Internet mit Suchfunktion, um ähnliche Lösungen von anderen Leuten zu finden.

2
KingSchorschi 
Beitragsersteller
 23.11.2021, 19:10
@tom1stein

Danke, schön jmd. hier zu finden, der sich damit auskennt

0
Ja, kann man

Es braucht allerdings intime Kenntnisse der ISA und der Platform. Letzteres bedeutet, daß man die Dokumentation benötigt und diese gibt es dann teils nur noch mit entsprechender NDA.

Und da fangen die Probleme an, denn mit Max Mustermann wird ein Hersteller eine solche nicht eingehen wollen. D.h. das grundlegende Können alleine reicht nicht aus, um zum Ziel zu kommen.

Daß es aber durchaus möglich ist, zeigt zum Beispiel:

https://de.wikipedia.org/wiki/Coreboot