Ich habe eine Frage, auf die ich wirklich keine eindeutige Antwort finden kann. Lassen Sie mich zunächst sagen, dass ich nicht nach einem schrittweisen Tutorial frage oder gar etwas vorhabe. Ich bin nur Neugierig.
Ich habe den ganzen Tag über die Entwicklung von Betriebssystemen und deren Neugestaltung nachgelesen. Ich habe die Theorie ziemlich fest im Griff. Es gibt jedoch einen Schritt, auf den ich scheinbar keine Antwort finde.
Wie würde man vor der Existenz eines voll funktionsfähigen, mit Werkzeugen gefüllten Betriebssystems überhaupt einen einfachen Bootloader für einen Computer schreiben, der keinen Bootloader oder sonst etwas in seinem Bootsektor hat? Was wäre der allererste Schritt nach dem Erwerb eines Computers mit dem Nötigsten? (Dh Bildschirm, Tastatur, Prozessor, RAM, Festplatte, Diskette)
Antworten:
Historisch gesehen gab es verschiedene Möglichkeiten:
Benutzerdefiniertes Startgerät. Die IBM Mainframes der zweiten Generation verfügten über eine dedizierte 12-Zoll-Diskette zum Laden in ein "Mikrocode" -Betriebssystem. Welches dann irgendwo nach dem echten Betriebssystem auf der Festplatte gesucht hat. Ich habe auch Mikros mit dedizierten Kassettenlaufwerken gesehen, um das Betriebssystem zu laden. Die Bediener mussten das Band zurückspulen oder "umdrehen".
BIOS. Ein minimales Betriebssystem ist im ROM gespeichert und der Prozessor ist fest verdrahtet, um den ROM-Code beim "Einschalten" auszuführen. Das ROM erhält dann von überall das echte Betriebssystem. So funktionieren so ziemlich alle modernen Computer. Was das ROM tatsächlich tut, variiert von Prozessor zu Prozessor. Itel-Boxen verfügen im Allgemeinen über ein sehr ausgeklügeltes BIOS-Programm, das jeder Prozessor- "Generation" gewidmet ist. Unix-Boxen haben im Allgemeinen ein viel einfacheres BIOS. Sun / Oracle-Boxen laden bekanntermaßen einen "FORTH" -Interpreter, der dann ein einfaches Skript zum Laden von Solaris ausführt.
quelle
In den wirklich alten Tagen (wie dem IBM 650 oder PDP1) war es notwendig, Werte über Schalter auf der Vorderseite in den Speicher einzugeben. Beim Betrachten von Bildern sehr früher Computer sahen Sie zwei Lichtreihen - Adresse und Daten. Auf einem 16-Bit-Computer liefen 16 davon über, normalerweise farbcodiert in Gruppen von drei oder vier für Oktal bzw. Hex.
Die Schaltfläche 'Zurücksetzen' würde den 'Adress'-Zähler auf Null setzen. Man könnte dann die Schalter auf dem Datenbus auf den gewünschten Wert einstellen und die Schaltfläche 'Datenschreiben' umschalten. Dies würde die Schaltereinstellungen unter Adresse 0 in den Speicher schreiben. Es gab Kippschalter nach oben und unten, mit denen Sie zur nächsten oder vorherigen Adresse wechseln konnten. Sie können auch die Schalter für die Adresse einstellen und auf "Adressschreiben" klicken. Was auch immer an dieser neuen Adresse war, würde auf den 16 Datenlichtern angezeigt.
Typischerweise würde man mit dieser Technik eine Leseschleife zum Auslesen von Werten aus einem Kartenleser oder Papierband einschalten. Dies würde gerade ausreichen, um einen größeren Codeblock zu laden, um mit dem Laden des Betriebssystems oder der Anwendung fortzufahren. Zu dieser Zeit hatten solche Computer 4K bis 16K Wörter (oder 8K bis 32K Bytes), so dass solche Lader für moderne Standards winzig waren. Eine Leseschleife besteht möglicherweise nur aus drei oder fünf 16-Bit-Wörtern.
Abbildung auf der Vorderseite
quelle
Sie benötigen eine Möglichkeit, einen ROM- oder EEPROM-Chip zu erstellen, der auf dem Motherboard installiert werden kann und den Bootloader enthält. Es gibt wirklich eine Reihe von Startschritten, angefangen bei internen Überprüfungen durch die verschiedenen Chips (CPU, Grafikkarte usw.) bis hin zur Busaktivierung und -erkennung (der PCI-e-Buscontroller lokalisiert alles, was damit verbunden ist, und weist IDs usw. zu). Dann sucht das Motherboard nach einem Boot-ROM und führt diesen Code aus, der wiederum die BIOS-Boot-Reihenfolge findet und diese nach einem passenden Gerät durchsucht und dann den Booter von diesem lädt. Was wiederum ein Betriebssystem lädt.
Die ursprüngliche Boot-Kette bestand aus Schaltern, die das ROM bildeten, und später aus Schaltern zum Programmieren des RAM usw. bis hin zu modernen mehrstufigen Bootloadern.
quelle