NM Virtual (Virtuelle x86-Maschine)

Kommentare anzeigen Worklog abonnieren

Worklogs NM Virtual (Virtuelle x86-Maschine)

NM Virtual - Kurz vorgestellt

Dienstag, 22. Dezember 2009 von barratator
Hallo,
bitte nicht zu ernst sein, das hier ist mein erster Worklog-Eintrag überhaupt.
Ich habe zwar schon einige Blitz-Projekte hinter mir, hatte aber noch nie so viel Unterstützung von anderen BBP-Mitgliedern und auch noch nie wirklich lust, so einen Eintrag zu schreiben.

Also, was ist NM Virtual? NM Virtual ist ein (noch sehr kleiner) x86-Emulator. Er ist noch nichteinmal ansatzweise Konkurenz für andere Emulator-Projekte, und wird dies vermutlich auch niemals sein Razz
Bisher kann der Emulator fast nichts emulieren, außer ein kleines 16-Bit-Betriebssystem, das ich in der OS-Dev-Community gefunden habe. Ein "großes" System wie DOS oder sowas ist noch relativ weit entfernt.

Bisher besteht der Emulator aus einer (noch nicht ganz fertigen) CPU (x86, nur Real-Mode), einem kleinem BIOS, einen VGA-Controler, einem Floppy-Controler und einem Keyboard-Controler und noch ein paar kleinen Sachen wir dem RAM und co.

Man muss sagen, dass meine VM kein "echtes" BIOS besitzt, welches es auch selber emulieren könnte, sondern die meisten BIOS-Funktionen in BlitzMax geschrieben sind. Vorteil ist davon, dass die VM dadurch sehr viel schneller wird, jedoch gleichzeitig auch Fehleranfälliger wird.

Wie schnell die Maschine genau ist kann ich nicht sagen, aber bei einer Vorgänger-Version konnte ich ca. 4 Millionen Instruktionen pro Sekunde ausführen (2,2 Ghz) dies entspricht ca. 50-60 Mhz. Um darauf Vista zu emulieren wird es wohl etwas zu langsam sein, DOS kommt aber mit 10 Mhz schon gut recht und Vista oder sonstige größere Systeme sind mir doch noch etwas komplex.

Das oben genannte Mini-System ist übrigens JonOS und steht unter der GNU-GPL. Meine VM kann das System laden (schneller als Virtual PC von Microsoft) und man kann alle Befehle ausführen (außer 2 Ausnahmen, ich arbeite noch dran).

An dieser Stelle möchte ich übrigens allen danken, die mir geholfen haben (ChristianK, LordChaos, Noobody, bruZard, klepto2, ChristianK, Hyde,...).

Kleiner Screenshot:

user posted image

Achja...Wer irgendwie mithelfen möchte, oder ein kleines Betriebssystem mit Sourcecode auf 16-Bit-Basis kennt, kann sich gerne bei mir melden Smile