Autor Thema: Vorstellung  (Gelesen 10828 mal)

mh1962

  • Beiträge: 11
    • Profil anzeigen
Gespeichert
« am: 11. March 2019, 15:41 »
Hallo!

Erst mal vielen Dank für die Freischaltung meines Accounts.

Mein Name ist Manfred. Ich beschäftige mich zwar schon lange mit Betriebssystemen und Hypervisoren, wenn auch mehr als Admin (und Benutzer), bin aber seit einiger Zeit dabei, mich fleißig mit den Grundlagen zu beschäftigen.

Zum "Üben" habe ich in den letzten Wochen mal einen einfachen Hypervisor für den x86_64 geschrieben, der zumindest schon mal ein Linux als Client anbooten kann. Veröffentlichungsreif ist der nicht wirklich, aber ich habe eine Menge dabei gelernt, was ich vielleicht mal in anderen Projekten gebrauchen kann.

Da ja hier viele Leute mit ähnlichen Interessen und sicherlich einem größeren Wissen als bei mir versammelt sind, denke ich, dass ich die eine oder andere Frage hier mal los werden kann...

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 13. March 2019, 21:15 »
Hallo Manfred, auch hier nochmal herzlich willkommen im Forum! :)

Ein Hypervisor, der Linux anbooten kann, klingt doch schon gar nicht so schlecht. Wie weit bootet es denn schon? Darf Linux direkt auf die echte Hardware zugreifen oder bringt der Hypervisor eigene Treiber mit?
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

mh1962

  • Beiträge: 11
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 14. March 2019, 14:00 »
Nein, eigene Treiber bringt mein Hypervisor nicht mit, ich erlaube Linux einfach den Zugriff auf die Hardware.

Linux bootet komplett durch, ich kann mich auf der Console einloggen.

Ich habe Intercepts für die Dinge implementiert, die die (in Bochs simulierte) CPU anbietet, also z.B. in- und out-Statements, Interrupts, cpuid, rdmsr, wrmsr. Eine kleine (Compile-Time-)"Plugin"-Schnittstelle habe ich auch schon implementiert, ebenso einen Host-Daemon, der mit dem Hypervisor kommunizieren kann (der kann noch nicht viel, aber die Schnittstellen wären da...).

Was nicht geht ist DMA, leider implementiert Bochs keine virtuelle IOMMU, somit kann man leider dort keinen "generischen" DMA-Support implementieren.

Und auch insgesamt ist der Hypervisor bewusst sehr einfach gehalten, unterstützt nur eine CPU (Host wie VM), nur eine VM und die (derzeit) mit fester Memory-Größe, um einigen Problemen von vornherein aus dem Weg zu gehen...

Die Lerneffekte waren trotzdem sehr interessant...

array

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 26. March 2019, 06:58 »
Willkommen im Forum.

 

Einloggen