Einführung
Im PC Computersystem bildet das sogenannte System-BIOS (oder kurz BIOS) die Zwischenschicht zwischen der Hardware und dem Betriebssystem. Es wird auch als Computer-Firmware bezeichnet. Das BIOS ermittelt beim Systemstart, welche Komponenten im System verbaut sind und sucht das konfigurierte BOOT-Medium. Von dort wird das hinterlegte Startprogramm des Betriebssystems geladen und ausgeführt. Während des Betriebes stellt das BIOS Schnittstellen für den Zugriff auf Systemkomponenten bereit und kümmert sich im Hintergrund um den regulären Betrieb, die Überwachung von Grenzwerten und die Sicherheit. Je nach Hersteller und je nach Systemart (Desktop-PC, Notebook, Industrie-PC, Server) übernimmt das System-BIOS wesentliche Aufgaben für das Betriebssystem.
Genau wie bei jeder anderen Software kann das BIOS in den ersten Versionen Fehler enthalten. Weiter können sich mit der zunehmenden Erfahrung beim täglichen Einsatz des neuen Computers Optimierungsmöglichkeiten (z. B. Energiemanagement) ergeben oder verbaute Komponenten (Festplatten, Prozessoren, BUS-Controller, usw.) benötigen ihrerseits eine Aktualisierung der Firmware. Die Möglichkeit, auch nach Auslieferung des Computersystems BIOS-Aktualisierungen bereitzustellen und einzuspielen (im Fachjargon "Flashen" genannt) ist besonders wichtig.
Übersicht
Aufgabenstellung
Für Windows und Linux wurde über mehrere Jahre ein Tooling erstellt und ausgebaut, welches sich unter Windows alleinstehend als Instant-Paket ausführen lässt. Für beide Plattformen kann das Produkt vorinstalliert im Unternehmensumfeld eingebunden werden. Schließlich kommt das Windows-Tooling unter Windows-PE während der Computerherstellung zum Einsatz, um spezifische Kundenwünsche zu erfüllen. Das sind die Wesentlichen Funktionen des Toolings:
- Aktualisierung des gesamten System-BIOS
- Aktualisierung verschiedener Bereiche: Hauptprogramm, ME-Firmware von Intel, Passwörter, BIOS-Settings
- Archivierung des System-BIOS und der Konfigurationsdaten
- Änderung des BIOS-Logo's
Nachdem sich über die Jahre Anforderungen an das System-BIOS sowie grundlegende Systemänderungen ergeben haben, sollte das Tool weiterhin als Abstraktionsschicht für den Kunden alle Generationen und Plattformen vereinen. Das konnte durch die Bildung von Plattformmodulen und der damit einhergehenden Abstraktion erreicht werden. Nachdem zahlreiche Funktionen identisch sowohl unter Windows als auch unter Linux benötigt werden, sind wesentliche Teile des Programmsystems als "Common Code" implementiert worden. Auch die Generierung erfolgt mittlerweile übergreifend mit cmake.
Verwendete Technologien
- Visual Studio mit C++ und Standard Library
- Visual Studio mit C# mit .NET und WPF
- gcc mit Standard Library
- cmake
- zlib