Ich suche eine Open-Source-Software wie Virtual-Box, die ich unter Linux ausführen kann, aber die Möglichkeit bietet, das BIOS zu programmieren (verwenden Sie ein persönliches BIOS-Programm).
Ich möchte (auf praktische Weise) den Prozess des Hochfahrens des Computers verstehen und den x86-Real-Modus genauer manipulieren. Ich möchte auch die verschiedenen Mechanismen für die Kommunikation mit den Peripheriegeräten verstehen, dh die Steuerung von Geräten wie der Tastatur und der Festplatte, sowie die E / A-Modi und Interrupts.
Antworten:
Es gibt mehrere Emulatoren für virtuelle Maschinen, die einen x86-Prozessor und Peripheriegeräte emulieren können. Jedes verfügt über ein BIOS, einige davon über ein Open-Source-BIOS. Sie sollten sich QEMU ansehen , das völlig unabhängig vom Host arbeitet (es kann auf jedem Computer ausgeführt werden, verfügt jedoch über Mechanismen, um schneller ausgeführt zu werden, wenn der emulierte Computer dieselbe Architektur wie der Host aufweist). QEMU wird mit PC-BIOS geliefert .
Wenn Sie im x86-Real-Modus arbeiten möchten, können Sie sich auch Dosbox ansehen .
Coreboot sollte auch für Sie von Interesse sein. Es ist ein Open Source BIOS für x86.
Wenn Sie sich ein BIOS ansehen, erhalten Sie einige Einblicke in das Booten eines x86-Prozessors, einschließlich aller Macken, die aus mehr als 30 Jahren Geschichte stammen und deren Hardwarefunktionen erheblich weiterentwickelt wurden. Es ist nicht das Beste, sich anzusehen, ob Sie verstehen möchten, wie Sie mit Peripheriegeräten kommunizieren. Schauen Sie sich dazu die Gerätetreiber in einem Betriebssystemkern an - entweder Linux oder einfachere wie MINIX 3 .
Ich würde auch empfehlen, einen Blick auf andere CPU-Architekturen wie ARM und MIPS zu werfen, damit Sie eine Vorstellung davon bekommen, was bei Betriebssystem- / Hardware-Interaktionen üblich ist und was für die PC-Architektur spezifisch ist.
quelle