Lemma: BIOS oder System-Firmware

Bearbeiten

Ich bin mir nicht sicher, ob das Lemma "BIOS" wirklich passt. Einerseits wird vieles, das eigentlich gar kein BIOS ist, dennoch als solches bezeichnet: OpenBIOS ist ein Implementierung von Open Firmware (nicht BIOS-kompatibel), und UEFI wird oft als UEFI-BIOS bezeichnet. Und es gibt ja auch noch das AlphaBIOS...

Generell wird im Artikel aber jegliche System-Firmware beschrieben, also neben dem BIOS und UEFI auch OFW, SFI, CFE, Kickstart, XIOS/TOS, System Monitor... Jegliche Art von System-Firmware eben.

In einer der englischen Quelle wird diese Art von Firmware auch als boot firmware bezeichnet. Auch das trifft es, aber ich finde keinen deutschen Begriff dazu, der verbreitet, eindeutig und unstrittig wäre.

Gibt es Meinungen dazu, ob System-Firmware oder Systemfirmware als Lemma besser passen würde?

Andreas 16:22, 25. Nov. 2022 (CET)Beantworten

Nachdem es keine Meinungen gibt, werde ich den Artikel in Systemfirmware umbenennen. Ich möchte auch die Schreibweise vereinheitlichen (überall ohne Durchkopplung als "Systemfirmware", und nur einmal die alternative Schreibweise "System-Firmware" erwähnen). Das Lemma BIOS würde ich gänzlich löschen, da Bios bereits eine WP:BKL I ist. Ich würde jedoch zusätzlich eine BKL I für Basic Input Output System erstellen, die spezifisch nur den Teil aus der BKL Bios enthält, die auch auf den ausgeschriebenen Begriff zutreffen, sowie eine WL darauf für Basic Input/Output System.
Wenn das jemandem nicht passen sollte, wäre jetzt der passende Zeitpunkt für einen Einspruch.
Die Begründung: unter "BIOS" versteht man zwar fast immer noch überall das System-BIOS – auch bei einem UEFI macht man heute noch ein BIOS-Update, obwohl UEFI eine gänzlich andere Firmware als das BIOS ist, das es ersetzt. Da _ein_ BIOS jedoch auch u.a. unter DOS und CP/M zu finden war (ist), und die alternativen Systemfirmwares genau genommen eben kein BIOS sind, wäre die BKL I meiner Ansicht nach der korrekte Weg, die unterschiedlichen Bedeutungen "an den Leser zu bringen"...
Andreas 08:11, 4. Jul. 2024 (CEST)Beantworten
Fürs Protokoll: Spezial:Diff/248202033 (Einspruch). --TenWhile6 18:14, 31. Aug. 2024 (CEST)Beantworten
@Karsten11 zur Info --TenWhile6 18:19, 31. Aug. 2024 (CEST)Beantworten
Danke für den Einspruch!
Ich hätte mir eine Diskussion dazu gewünscht.
Ja, während BIOS heute immer noch verbreitet ist, auch beim "UEFI-BIOS" und beim "BIOS-Update", ist die Systemfirmware heute kein BIOS mehr. Und interessant wird es erst dann, wenn man das DOS-BIOS dazunimmt...
Das Basic Input Output System, oder auch Basic Input/Output System stammt von CP/M, und damit von Gary Kildall, sehr wahrscheinlich gemeinsam mit Glenn Ewing von IMSAI (siehe BIOS (DOS)#CP/M). Ursprünglich in der Schreibung "Basic I/O System", wurde das unter CP/M eben zum "BIOS".
IBM hat die Idee übernommen, das Ganze aber in einer Firmware im ROM untergebracht: das ROM-BIOS.
Wir haben also zwei sehr unterschiedliche "BIOSe", die zwar grundsätzlich ähnliche Ideen umsetzen, aber nichts miteinander zu tun haben und auch ganz anders umgesetzt sind.
Im Artikel wurden immer schon unterschiedliche Firmwares behandelt, von Amiga Kickstart bis Open Firmware. Diese sind weder ein BIOS, noch haben sie diesen Begriff je genutzt.
Literatur zur "Systemfirmware":
Mein Problem mit dem Begriff "BIOS" ist, dass er sich auf PCs und DOS/Windows beschränkt. Wenn man das so belässt: okay. Dann sollte man aber den Artikel ausdünnen, denn das alles ist kein BIOS: der System Monitor vom Apple II, Amiga Kickstart, Open Firmware, UEFI, CFE und SFI. Übrig blieben zwei "Stänge" von einem Basic Input/Output System: 1. das von Gary Kildall, in CP/M (und übernommen in MS-DOS, allerdings keine Code-Verwandtschaft, also nur ähnlich bzw. nachprogrammiert), die sich aber auch beim Atari und TOS findet, und 2. das PC-BIOS. Beides hat seine eigenen Artikel: 1. BIOS (DOS) und 2. BIOS (IBM PC), mit der Ausnahme, dass bei ersterem das BIOS und das XIOS bei Atari und TOS nicht genau beschrieben sind.
Wenn man das nämlich so belässt, ist es eigentlich Themenverfehlung.
Andreas 18:38, 31. Aug. 2024 (CEST)Beantworten
Nachtrag. Das kann man natürlich alles auch anders machen. Im Englischen ist die Systemfirmware oft auch einfach nur "Firmware". Allerdings gibt es hier grobe Unterschiede. Ich zietiere mal aus dem Buch System Firmware – An Essential Guide to Open Source and Embedded Solutions, Seite 42, Abschnitt Introduction to Device Firmware:
Beyond the manufacturer's host firmware (sometimes known as the BIOS) and non-host platforms (EC, BMC, etc.), the PCI card, USB devices, and other components such as a complex programmable logic device (CPLD), field-programmable gate array (FGPA), or digital signal processors (DSP) on the system board may have their own firmware. In fact, a review of a modern client platform noted 16 different firmware elements, and a server example quoted a multiple of that figure.
Insgesamt ist der gesamte Abschnitt The Origin of Firmware ab Seite 10 ff. ein "good read" zu dem Thema, und beginnt mit dem 8080-Prozessor von Intel und CP/M. Zitat: In 8080- and Z80-based computer system with the CP/M operating system, the machine-dependent code (a.k.a. the BIOS) is referred as a simple bootloader that resides in the ROM (read-only memory) and manages to perform the direct communication with the hardware and an additional low-level hardware-specific file (often referred to as the hardware abstraction layer in the modern operating system) part of the operating system that interfaced with the system BIOS represented the philosophy of firmware.
Die Firmware war damals nichts mehr als ein Bootloader (auch: Bootstrap Loader). Das BIOS wurde bereits von der Diskette geladen.
Ich habe Microsoft's neuen Copilot ausprobiert, und nach Firmware, Systemfirmware und Arten von Firmware gefragt, und folgende Antwort bekommen:
  • Low-Level-Firmware
  • High-Level-Firmware
  • Subsystem-Firmware
Das deckt sich mit anderen Suchergebnissen von mir, etwa hier:
Obwohl man den Eindruck bekommt, dass die alle voneinander abschreiben. Es gibt auch in Teilen andere Unterteilungen von Firmware, etwa hier:
Wäre natürlich viel besser, wenn man eine Einteilung von Firmware auch in irgend einem (oder besser: mehreren) Fachbüchern fände...
Insgesamt ist jedoch festzuhalten, dass natürlich die Firmware eines PC oder Server, vielleicht auch mit der Möglichkeit, eine Bootreihenfolge festzulegen oder die primäre Grafikkarte auszuwählen etc. einen anderen Stellenwert hat als die Firmware von einem USB-Stick oder einer SSD. Gerade bei SSDs gibt es auch immer mal Firmware-Updates, wie auch (zumindest früher einmal) bei der Firmware einer Grafikkarte. Die Möglichkeiten, die man hier als Anwender hat, etwas einzustellen, sind bei derlei "Gerätefirmware" ("Device Firmware", wenn man so will) natürlich nicht gegeben, im Gegenteil, diese Firmware interagiert nur mit dem System, also entweder mit der Systemfirmware, oder mit dem Betriebssystem, oder beidem.
Über SSD-Firmware gibt es auch ein gutes Buch, in dem allerdings kein Sterbenswörtchen über die Unterscheidung des Firmware-Begriffs zu finden ist:
  • A Beginner's Guide to SSD Firmware – Designing, Optimizing, and Maintaining SSD Firmware, Gopi Kuppan Thirumalai, Apress 2023, ISBN 978-1-4842-9888-6 (zu finden in der Wikipedia Library, Springer Verlag)
Die allermeisten Bücher im Computer-/IT-Bereich sind natürlich für die >90% der Systeme geschrieben, und das sind derzeit x86-PCs (und daher mit BIOS oder UEFI) und Arm-SoCs, also im Embedded-Bereich (nicht nur Smartphones, auch Minicomputer, Industrie-Computer etc.). Ich konnte jedoch ein Buch über Linux finden, das über den Tellerrand hinaus auch andere Systeme beschrieben hat:
Kapitel 9, Booting and Shutdown, Seite 89 ff., Zitat (Seite 90 oben):
Booting
All contemporary computers use the same general components and the same general sequence of booting an operating system. The CPU initializes itself internally and then begins to fetch instructions, starting at a fixed address of physical memory. Hardware engineers arrange for firmware programmed into an EPROM or flash EPROM to map to these addresses. These instructions typically initialize the hardware, then load the next level of software to be executed (usually from hard disk, but sometimes from a floppy disk, CD-ROM, or the network), and finally pass control to this software. This next level of software is known as a bootstrap loader. If the computer architecture imposes severe-enough limitations on the size of the bootstrap loader, sometimes a secondary bootstrap program is used. The bootstrap program then loads the operating system proper.
The Linux operating system is no exception to this model. Linux differs from most other operating systems in that the initialization process varies based on the hardware architecture used. This permits Linux to coexist with other operating systems. It also permits the same device drivers to be used in the boot loaders as in Linux itself. Users of other PC operating systems will be surprised by the large number of boot configuration options available to the Linux administrator.
On Intel-based PCs running Linux, the software loaded by the firmware is a package called LILO, the LInux LOader. For the Alpha architecture, one of two mechanisms is used—MILO or aboot. For the SPARC architecture, SILO is used. On Macintosh hardware, BootX is used.
In den folgenden Abschnitten werden die Arten, Linux zu starten dann genauer beschrieben. Anmerkung: auf dem PC gab/gibt es natürlich noch weitere Möglichkeiten, Linux zu booten. Darunter eine Bootdiskette, auf die der Linux-Kernel direkt geschrieben wurde, also ohne Dateisystem (wie FAT oder ext2; Zitat:ref Old Linux was booting from floppy disk. The first sector ("boot") loaded the second stage in "raw" mode = without filesystem (The second stage was "setup", in the sectors directly behind "boot"). The second stage did setup the system (video mode, memory map, etc.) and then loaded the real kernel image (packed in tgz/bz).) Moderne Linux-Kernel nutzen meist SYSLINUX als Bootloader, selbst auf einer Diskette.ref Auch kann (konnte) man Linux mit loadlin von DOS aus starten. Und heute würde man eher GRUB (Version 1 ist nun unter "GRUB Legacy" bekannt) oder GRUB2 nutzen. (Letztere ist ein Bootloader, der selbst auf mehreren Plattformen funktioniert, etwa auf PC mit BIOS, PC mit UEFI, aber auch auf Computern mit Open Firmware, darunter Power Macs). Und auf UEFI und Open Firmware lässt sich der Kernel auch direkt aus der Firmware heraus starten, ohne zusätzlichen Bootloader auf dem Bootmedium.
Auch anzumerken ist natürlich, dass der dargestellte Weg nicht immer genau so sein muss. Ein Beispiel ist der Raspberry Pi, hier ein passendes Buch dazu:
Zitat:
The Raspberry Pi is a little different from your laptop, and even different from a lot of traditional embedded computers. The heart of the Raspberry Pi is the Broadcom BCM2835 system-on-chip, which is the CPU, GPU, and memory all combined in a single component. This detail is important, because the Raspberry Pi actually boots from the BCM2835 GPU. When you provide power to the Raspberry Pi, the CPU in the BCM2835 system-on-chip is actually disabled!
The Raspberry Pi boots like this:
1. First-stage bootloader: A bootloader programmed into the BCM2835 system-on-chip hardware mounts the FAT32 boot partition from the Linux distribution on the SD card. Note that the first-stage bootloader is programmed at manufacture time and is not modifiable or replaceable. A small, dedicated RISC core on the Raspberry Pi GPU starts this process.
2. Second-stage bootloader: Read off the boot partition on the SD card, this firmware (bootcode.bin) accesses the additional GPU firmware files, programs those firmware files into the Raspberry Pi GPU, and then starts it.
3. GPU firmware: This firmware (start.elf) allows the GPU to enable the CPU. An additional file, fixup.dat, configures the SDRAM partition between the GPU and the CPU. At this point, the CPU is released, and execution is transferred to it from the GPU.
4. User code: The CPU boots any supported binary, but the Linux kernel is the default. It assumes the filename is kernel.img, but you can override the default in config.txt.
In Versionen vor 2012 gab es auch noch einen Third-Stage-Bootloader (loader.bin), der bei den späteren Modellen nicht mehr notwendig ist.
Siehe dazu auch:
Man sieht hier schön, dass die Grenze zwischen Firmware, "Systemfirmware" aka "BIOS", und dem Bootstrap-Prozess sehr sehr fließend ist. Man kann das auch mit dem Startvorgang beim Amiga vergleichen: der A1000 von 1985 hatte auch nur einen kleinen Bootstrap Loader, Kickstart wurde von der Diskette gestartet. Danach legte man die Diskette mit dem gewünschten Betriebssystem oder Spiel ein, also entweder Workbench für das AmigaOS, oder die erste Diskette eines Amiga-Spiels oder -Programms, das die Workbench (AmigaOS) nicht benötigte, sondern eben nur Kickstart. Wenn nun aber Kickstart die Systemfirmware des Amiga ist, wieso musste man diese "Software" oder "Firmware" dann von Diskette laden? Spätere Modelle, der berühmte A500 und der A2000, hatten Kickstart bereits auf einem ROM-Baustein.
Wie die Firmware eines Computersystems (nennen wir sie doch Systemfirmware, von engl. "System Firmware") ein Betriebssystem startet, ist also sehr unterschiedlich, so unterschiedlich, die die Systemfirmware selbst. Wenn ich selbst WP:TF betriebe, würde ich folgendes dazu sagen:
  • Firmware kann in Typen bzw. Kategorien eingeteilt werden. Eine für ein Computersystem definierende Firmware ist die Systemfirmware (weil: Firmware des jeweiligen (Computer-)Systems.)
  • Systemfirmware ist immer ein Bootstrap Loader.
    • Die gesamte Systemfirmware könnte nur aus einem kleinen Bootstrap Loader bestehen. Beispiele: CP/M-Computer der 1970er, erster Amiga A1000 von 1985, Raspberry Pi
    • Systemfirmware kann auch sehr mächtig sein, und sogar als Mini-Betriebssystem durchgehen, Beispiele: UEFI, Open Firmware
    • Systemfirmware kann selbst das Betriebssystem sein, Beispiel: Router-Firmware, meist Linux- oder BSD-basiert
    • Systemfirmware kann sehr auf ein bestimmtes Betriebssystem abgestimmt sein, Beispiele:
      • Macintosh Toolbox: der Macintosh hatte große Teile des Betriebssystems, des API, sowie den Finder, im ROM
      • BIOS (IBM PC): das Betriebssystem DOS nutzt das ROM-BIOS für zahlreiche systemnahe Funktionen, von der Grafikausgabe bis zum Speicher- und Datenträgerzugriff
      • Amiga Kickstart: wie Macintosh Toolbox
  • Betriebssysteme müssen die Funktionen der Systemfirmware aber keineswegs auch nutzen. Beispiele: BIOS-Funktionen wurden bereits in DOS vielfach umgangen (VCPI, DPMI), und auch von moderneren Betriebssystemen im Protected Mode wie OS/2, Windows, PC-BSD, Linux usw.
  • Und am Beispiel Linux kann man sehen, dass es auch Betriebssystem-seitig sehr unterschiedlich sein kann, selbst auf demselben System.
  • Der Begriff der Firmware ist sehr Schwammig, da Firmware keineswegs fest im Computer vorgehalten werden muss. Vielfach wird sie von einem relativ leicht austauschbaren Datenträger nachgeladen. Beispiele: Die Firmware des Raspberry Pi, aber auch der "Mac OS ROM" (Macintosh Toolbox) auf New-World-Macs (siehe New World ROM).
Was bleibt?
1. Der Artikel Firmware müsste überarbeitet werden.
2. Der Artikel BIOS passt so nicht, wie er jetzt ist, da er einen speziellen Typ von Firmware beschreibt, die man als Systemfirmware (in den Quellen ja belegt engl. "System Firmware") bezeichnen kann.
3. Es gibt Überschneidungen mit Bootstrap-Loader (eine WL auf Bootloader). Auch dieser Artikel ist problematisch, da er derzeit NUR die Bootloader, die NICHT in einer (System)Firmware zu finden sind, beschreibt.
Andreas 02:33, 1. Sep. 2024 (CEST)Beantworten
Und noch ein Nachtrag:
Dass der Begriff "BIOS" auch teils dort zu finden ist, wo er gar nicht hingehört, hat mit der Verbreitung/dem Erfolg des IBM PC (und Kompatiblen) zu tun. Ja "BIOS" ist _die_ Systemfirmware, die jeder kennt. Darum findet sich auch in ganz wenigen Quellen zu Systemen wie dem Macintosh oder dem Amiga auch die Referenz zu einem BIOS. Etwa hier für den Amiga, Zitat: As PCs became more popular, the name "Amiga BIOS" could also be found, although the name "BIOS" was never used by Commodore/Amiga systems. Meist fehlt aber jede Erwähnung eines BIOS beim Amiga, es geht immer nur um Kickstart und einen Bootstrap Loader. Und beim Macintosh geht es immer um den Macintosh ROM, auch Mac ROM oder Mac OS ROM bezeichnet, bzw. um das, was drinnen ist: die Macintosh Toolbox (und der Finder). Erst mit der Open Firmware wird meist geschrieben, dass sie quasi "das BIOS eines Mac" ist. ‣Andreas 02:45, 1. Sep. 2024 (CEST)Beantworten
Und dann gibt es nochwas dazu zu sagen, also der 3. Nachtrag:
Microsoft selbst nützt den Term "BIOS" ja auch nicht mehr: Aktualisieren der Gerätefirmware mit Windows Update, Zitat: In diesem Artikel wird beschrieben, wie Sie die Firmware eines Wechselgeräts mithilfe des Windows Update (WU)-Diensts aktualisieren. Informationen zum Aktualisieren der Systemfirmware finden Sie auf der Windows UEFI-Firmwareupdateplattform.
Das ist ja interessant. Microsoft unterscheidet offenbar zwischen der Gerätefirmware (Device Firmware) und der Systemfirmware. Nagut, schauen wir uns den Verlinkten Artikel mal an: Windows UEFI-Firmwareupdateplattform, Zitat: Windows unterstützt eine Plattform zum Installieren von System- und Gerätefirmwareupdates über Treiberpakete, die mit der UEFI-Funktion UpdateCapsule verarbeitet werden. Diese Plattform bietet eine konsistente, zuverlässige Firmwareupdateerfahrung und verbessert die Auffindbarkeit wichtiger Systemfirmwareupdates für Endbenutzer.
Der Begriff "BIOS" verschwindet also. Hier die Systemanforderungen von Windows 11: So erhalten Sie Windows 11 für Ihren kompatiblen PC -- hinunterscrollen bis "Sind Sie bereit für ein Upgrade auf Windows 11 auf einem PC?", auf Systemanforderungen klicken; alternative diese Seite: Systemanforderungen für Windows 11, aus beiden Quellen, Zitat:
Systemfirmware: UEFI
Was Microsoft mit der UEFI-Firmwareupdateplattform beschreibt, ist vermutlich das UEFI Capsule Update. Siehe dazu auch:
UEFI Capsules sind nicht per-se nur für Firmware-Updates geeigent, es scheint aber eine der Hauptverwendungen dieser Funktion, die es seit UEFI 2.0 gibt, zu sein. (Folie 16, Zitat: Capsules are commonly used for firmware update methods such as ESRT or using FMP for plug-in card firmware updates)
Die Presse schreibt aber weiterhin auch vom "BIOS", damit es auch jeder versteht. Beispiel:
Wir stellen also fest, dass "BIOS" zwar outdated ist, aber noch Verwendung findet.
Andreas 13:48, 1. Sep. 2024 (CEST)Beantworten
Und nochmals, im Alltag immer wieder zu finden:
  • Fehlercodes im Geräte-Manager in Windows, Zitat:
    Die Systemfirmware enthält nicht genügend Informationen, um das Gerät richtig zu konfigurieren und zu verwenden. Fordern Sie beim Computerhersteller ein Firmware- oder BIOS-Update an, wenn Sie das Gerät verwenden möchten. (Code 35)
    Ursache
    In der Multiprozessorsystem (MPS)-Tabelle, in der die Ressourcenzuweisungen des BIOS gespeichert sind, fehlt ein Eintrag zu Ihrem Gerät. Sie muss aktualisiert werden.
    Empfohlene Lösung
    Wenden Sie sich wegen eines BIOS-Updates an den Hersteller Ihres Computers.
  • Lernen Sie UEFI/BIOS kennen
    Was ist die UEFI/BIOS Setup Utility
    UEFI/BIOS ist das erste Programm, das ausgeführt wird, wenn ein Computer gestartet wird. UEFI/BIOS initialisiert die Hardwarekomponenten und lädt das Betriebssystem sowie andere Programme.
    Boot-Geräte auswählen
    Normalerweise startet der Computer mit einem Bootmanager, der vom sekundären Speichergerät des Computers geladen wird. Gelegentlich kann es erforderlich sein, den Computer mit einem Programm oder Bootmanager zu starten, der von einem anderen Gerät oder einem Netzwerk geladen wird. Nachdem die Systemfirmware alle Geräte initialisiert hat, können Sie eine Unterbrechungstaste drücken, um das Boot-Menü anzuzeigen und ein gewünschtes Boot-Gerät auszuwählen.
Ich wiederhole: Nachdem die Systemfirmware alle Geräte initialisiert hat, ... und UEFI/BIOS ist das erste Programm, das ausgeführt wird, wenn ein Computer gestartet wird. UEFI/BIOS initialisiert die Hardwarekomponenten ...
Hier haben wir nun plötzlich ein "System-BIOS", was immer das ist. Nun ja, nachdem es auch ein Video-BIOS gibt, gibt es wohl auch ein System-BIOS. WP:TF: System-BIOS + Video-BIOS + andere Geräte-BIOS-Teile (SCSI-BIOS, Int 13h). Und, ob das nun alles zusammen dann ein BIOS ist oder eine Systemfirmware, ist wohl egal.
Es könnte natürlich auch sein, dass man "Systemfirmware" dann als die Gesamtheit aller (zusammenarbeitender) Firmwares versteht. Beispiel: die EC-Firmware (Embedded Controller) und UEFI sind beide sehr Zentral für den Betrieb eines Laptops. Bei Servern ist die EC-Firmware oft eine BMC-Firmware (Baseboard Management Controller). Gerade die EC/BMC-Firmware läuft ständig, und ist z.B. für die Lüftersteuerung zuständig. Andererseits ist die Firmware einer SSD nicht zwingend für das System nötig, sondern steuert nur das Gerät ansich: die SSD. Genau wie die USB-Firmware auf dem Chip eines USB-Geräts. Das Computersystem selbst funktioniert natürlich auch ohne diese Firmware, aber eben dann das Gerät nicht: will man die SSD oder den USB-Stick verwenden, ist die Firmware auf diesem Gerät nunmal essentiell. Genauso ist die Firmware für z.B. ein Modem nötig, damit man es (vollständig) betreiben kann. Auch da können sich einigen sicher noch an die "WinModems" erinnern, für die man unter Linux die Firmware-Blobs aus den Windows-Treibern extrahieren musste, damit die Modems dann überhaupt unter Linux nutzbar waren: denn wie beim oben beschriebenen Bootvorgang beim Raspberry Pi, wo die Firmware vom GPU aus einer Datei auf der SD-Karte geladen wird, wird beim WinModem die Firmware aus einer (eingebetteten) Datei vom Gerätetreiber in das Modem geladen, damit es funktioniert. Ohne die Firmware ist das Modem nutzlos: wie anfangs unter Linux.
Langer Rede, kurzer Sinn: Der Artikel "BIOS" ist immer noch "falsch". Aber ich lese gerne die Meinungen anderer. Sonst muss ich irgendwann anfangen, alles umzubauen. Teamarbeit wäre mir aber lieber.
Andreas 15:09, 1. Sep. 2024 (CEST)Beantworten