Die Nerd Enzyklopädie 25 - Bare Metal Programming

Bare Metal Programming

Übersetzt heißt „bare metal programming“ etwa so viel wie „Programmieren am reinen Metall“. Gemeint ist damit, dass man eine Software entwickelt, die direkt mit der Hardware kommuniziert, ohne Umwege über Bibliotheken, Schnittstellen oder ein Betriebssystem.

Ein Entwickler, dessen Name nicht überliefert ist, weshalb das ganze vielleicht eher der Kategorie „sympathische Legende“ zuzuordnen ist, nahm den Begriff des „Bare Metal Programmings“ Ende der der 1980er etwas zu wörtlich. Er arbeitete an einem „discrete component“ Computer, also einem Computer, bei dem die Transistoren sichtbar im Gerät verbaut sind (der erste Supercomputer, der IBM 7030 von 1961, bestand aus 169.100 Transistoren. Damit benötigte alleine die CPU eine Fläche von knapp 83qm [EDTH1].)

Das Programm unseres Entwicklers schien jedenfalls einen Bug zu haben, weshalb er versucht hat das Programm zu stoppen. Was ihm nicht gelang, da das System — bugbedingt — alle Steuersignale ignorierte. Auch der Versuch den Computer selber anzuhalten, war nicht von Erfolg gekrönt. Da er das Gerät — aus Angst vor Datenverlust — nicht einfach ausschalten wollte, rief er einen Techniker dazu.

Bei dieser Art von Computern konnte man recht leicht feststellen, an welcher Stelle ein Programm bzw. eine einzelne Anweisung verarbeitet wurde, da die zuständigen Komponenten ja buchstäblich sicht- und greifbar waren. Man sah sich also zu einer ungewöhnlichen Maßnahme gezwungen, die wohl nicht deutlicher zeigen konnte, wie „Bare Metal Programming“ auch aussehen kann: Der Computer wurde geöffnet, um mit einem Schraubenzieher einen Kurzschluss an der Komponente zu erzeugen, von der man annahm, dass sie für den Bug verantwortlich war [YARC1].