Benutzer-Werkzeuge

Webseiten-Werkzeuge


freebsd:freebsd_-_virtualisierung_emu_s

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
freebsd:freebsd_-_virtualisierung_emu_s [2018-04-12 18:54:54] – angelegt manfredfreebsd:freebsd_-_virtualisierung_emu_s [2022-05-01 17:31:58] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== FreeBSD - Virtualisierung (Emu's) ======
 +
 +Mit FreeBSD funktioniert aktuell leider nur die //Prozessvirtualisierung// (//[[::freebsd:Jail]]// und //Linux//) zuverlässig und stabil (mit Einschränkungen auch //Wine//). Die beiden schnellsten Emulatoren, die es zur Zeit in den FreeBSD-Ports gibt, sind QEmu und VirtualBox. Früher funktionierte QEmu+Kqemu prima, dann kam KVM und seit dem bin ich mit QEmu unter FreeBSD sehr unzufrieden.
 +
 +32-Bit-Maschinen können mit dem alten QEmu (bis Version 0.11) auch stabil den Kqemu einsetzen und damit auch in den Genuss der //Nativen Virtualisierung// kommen.
 +
 +[[http://retis.sssup.it/~fabio/soc07/|Die Portierung des Linux-KVM nach FreeBSD]] steckt noch in einem frühen Entwicklungsstadium.
 +
 +Wenn es um einen-Windows-Emulator geht, sollte man sich mal [[http://www.win4bsd.com/|emulators/win4bsd]] ansehen.
 +Ohne Lizenz kann man es (nur) **drei Wochen** lang testen.
 +
 +Wie es zur Zeit aussieht, ist //VirtualBox// unter FreeBSD die Virtualisierungslösung, die am weitesten entwickelt ist.
 +Leider funktionieren bei mir aber nur 32-Bit-Systeme in //VirtualBox//, mit 64-Bit-Systemen habe ich große Stabilitätsprobleme gehabt.
 +
 +
 +===== Bhyve =====
 +
 +  * [[::freebsd:FreeBSD - Bhyve]]
 +
 +
 +===== DOS-Emu =====
 +
 +Das Probramm **doscmd** //von BSDI// ist im Basissystem von FreeBSD enthalten und
 +sollte in den meisten Fällen ausreichen. Die DOS-Programme werden im real-mode
 +betrieben. //DOSCMD// kann auch einen PC emulieren und ein richtiges DOS booten um so eine
 +breite Palette an DOS-Programmen betreiben zu können. Im Moment sind die
 +//MS-DOS-Versionen 6.2 und höher// für //DOSCMD// etwas problematisch.
 +
 +//DOSCMD// ließt nach dem Start eine Konfigurationsdatei ein, als erstes wird die
 +".doscmdrc" im aktuellen Verzeichnis gesucht, ist dort keine dann wird im
 +HOME-Verzeichnis gesucht, ist dort auch keine wird die globale Konfigurationsdatei
 +///etc/doscmdrc// gelesen.
 +
 +
 +==== Boot-Mode ====
 +
 +  # doscmd -b
 +
 +mehr Interrupts und X11
 +
 +  # doscmd -bx
 +
 +
 +==== Emulations-Mode ====
 +
 +  # doscmd start.exe
 +
 +Direktzugriff auf die Tastatur und den Bildschirm:
 +
 +VGA-Ausgabe ist so möglich
 +
 +//[CTRL]+[ALT]+[DEL]// erzeugt ein RESET für DOSCMD
 +
 +  # doscmd -r start.exe
 +
 +X11
 +
 +  # doscmd -x start.exe
 +
 +umleiten der Bildschirmausgabe (außer direkte Ausgaben):
 +
 +  # doscmd -c bildschirm.txt start.exe
 +
 +umleiten der Fehlermeldungen:
 +
 +  # doscmd -d fehler.txt start.exe
 +
 +die Fehlermeldungen sollen auf die Standardausgabe umgeleitet werden:
 +
 +  # doscmd -O start.exe
 +
 +
 +==== Die Konfigurationsdatei ganz kurz ====
 +
 +  # vi .doscmdrc
 +  
 +  boot A:
 +  boot C:
 +  assign lpt0: [direct] path 30
 +  assign A: msdos622.img 80 2 2
 +  assign A: /dev/fd0.1440 1440
 +  assign A: /dev/fd0.720 720
 +  assign C: 127MB_HDD.img 32 [fdisk_tab]
 +  assign D: /usr/dos
 +  assign P: -ro /usr/prb
 +  assign com1: path port irq
 +  portmap port [count]
 +  setver command version
 +  COMSPEC=C:\COMMAND.COM
 +  PATH=C:\
 +  PROMPT=DOS>
 +
 +
 +  DISK TYPES
 +     +-----------+-----------------+-------------+---------------+------------+
 +      Type       Cylinders       Heads       Sectors         Size   |
 +     +-----------+-----------------+-------------+---------------+------------+
 +        01             306                      17         10MB   |
 +        13             306                      17         20MB   |
 +        07             462                      17         30MB   |
 +        37             615                      17         40MB   |
 +        12             855                      17         49MB   |
 +        04             940                      17         62MB   |
 +        36            1024                      17         68MB   |
 +        31            1024          11            17         93MB   |
 +        32            1024          15            17        127MB   |
 +        46            1224          15            17        152MB   |
 +     +-----------+-----------------+-------------+---------------+------------+
 +      floppy            80                             1440kB   |
 +     +-----------+-----------------+-------------+---------------+------------+
 +
 +
 +==== INSTALLATION VON DOS AUF EINEM PSEUDOLAUFWERK ====
 +
 +Um DOS auf einem pseudolaufwerk zu installieren, müssen folgende Schritte durchgeführt werden:
 +
 +  1. vi .doscmdrc
 +    assign A: /dev/fd0.1440 1440
 +    assign A: /dev/fd0.720 720
 +    assign hard boot_drive 80 2 2
 +  
 +  2. Legen Sie eine Bootdiskette mit den Kommandos fdisk, format und sys ein.
 +     Kopieren Sie auch die Kommandos copy und redir.com auf die Diskette.
 +     Dazu kann man die mtools (mwrite redir.com a:) verwenden.
 +  
 +  3. Starte doscmd.
 +  
 +  4. Das Kommando "fdisk" am Prompt starten.
 +  
 +  5. Wählen Sie "Create DOS partition" oder "Logical Drive" aus.
 +  
 +  6. Wählen Sie "Create Primary DOS Partition" aus.
 +  
 +  7. Definieren Sie die Wunschgrösse der Partition.
 +  
 +  08. Verlassen Sie FDISK durch mehrfaches drücken von .
 +  
 +  09. doscmd kann sich unter Umständen ein paar mal beenden, dann muss es
 +           neu gestartet werden.
 +  
 +  10. Geben Sie das Kommando "format c:" am Prompt ein.
 +  
 +  11. Geben Sie das Kommando "sys c:" am Prompt ein.
 +  
 +  12. Beende doscmd.
 +  
 +  13. Entnehmen Sie jetzt die Floppy aus dem Laufwerk oder ergänzen Sie in
 +           der Konfigurationsdatei ".doscmdrc" die folgende Zeile:
 +    # boot C:
 +  
 +  14. Sie sollten jetzt ein lauffähiges DOS auf Ihrer Pseudodisk haben.
 +      Jetzt müssen nur noch die beiden Dateien "config.sys" und
 +      "autoexec.bat" erstellt werden. Das geht unter anderem wie folgt:
 +  
 +  > copy con: config.sys
 +    LASTDRIVE=Z
 +    ^Z
 +  > copy con: autoexec.bat
 +    @echo off
 +    redir.com
 +    ^Z
 +  
 +  15. Quit doscmd.
 +  
 +  16. Jetzt haben Sie eine bootfähige Pseudodisk. Um die FreeBSD-Disk mit
 +      dem redir-Programm automatisch zu erstellen, müssen folgende Zeilen
 +      in die Konfigurationsdatei ".doscmdrc" eingefühgt werden:
 +  # vi .doscmdrc
 +    assign D: /usr/dos
 +    assign P: -ro /usr/prb
 +
 +
 +===== QEmu =====
 +
 +Hier ist eine Anleitung zu finden: [[http://wiki.freebsd.org/qemu]].
 +
 +
 +===== VirtualBox =====
 +
 +[[::freebsd:VirtualBox]]
 +
 +
 +===== Unicorn =====
 +
 +[[http://www.unicorn-engine.org/]]
 +
 +Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework.
 +
 +Highlight features:
 +  * Multi-architectures: Arm, Arm64 (Armv8), M68K, Mips, Sparc, & X86 (include X86_64).
 +  * Clean/simple/lightweight/intuitive architecture-neutral API.
 +  * Implemented in pure C language, with bindings for Crystal, Clojure, Visual Basic, Perl, Rust, Haskell, Ruby, Python, Java, Go, .NET, Delphi/Pascal & MSVC available.
 +  * Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed).
 +  * High performance by using Just-In-Time compiler technique.
 +  * Support fine-grained instrumentation at various levels.
 +  * Thread-safe by design.
 +  * Distributed under free software license GPLv2.
 +
 +
 +===== KVM =====
 +
 +[[http://wiki.freebsd.org/FabioChecconi/PortingLinuxKVMToFreeBSD]]
 +
 +
 +===== Linux-Kernel-Emulation =====
 +
 +
 +==== FreeBSD 11.1-RELEASE-p10 ====
 +
 +
 +=== Linux-User-Land installieren - Das Binärpaket ===
 +
 +  # pkg install emulators/linux-c7
 +  ...
 +  ... [76/76] Installing linux-c7-7.4.1708_1...
 +  Message from linux_base-c7-7.4.1708_5:
 +  
 +  Some programs need linprocfs mounted on /compat/linux/proc.  Add the
 +  following line to /etc/fstab:
 +  
 +  linprocfs   /compat/linux/proc  linprocfs       rw      0       0
 +  
 +  Then run "mount /compat/linux/proc".
 +  
 +  Some programs need linsysfs mounted on /compat/linux/sys.  Add the
 +  following line to /etc/fstab:
 +  
 +  linsysfs    /compat/linux/sys   linsysfs        rw      0       0
 +  
 +  Then run "mount /compat/linux/sys".
 +  
 +  Some programs need tmpfs mounted on /compat/linux/dev/shm.  Add the
 +  following line to /etc/fstab:
 +  
 +  tmpfs    /compat/linux/dev/shm  tmpfs   rw,mode=1777    0       0
 +  
 +  Then run "mount /compat/linux/dev/shm".
 +  Message from linux-c7-dri-17.0.1:
 +  
 +  This package needs linsysfs mounted on /compat/linux/sys.  Add the
 +  following line to /etc/fstab:
 +  
 +  linsysfs    /compat/linux/sys   linsysfs        rw      0       0
 +  
 +  Then run "mount /compat/linux/sys".
 +
 +
 +=== Linux-User-Land installieren - aus den Ports ===
 +
 +Es gibt vier Gründe, warum man ein Paket aus den Ports installieren sollte:
 +  - es gibt keines als Binärpaket
 +  - das Binärpaket hat die aktuellen Sicherheits-Patches noch nicht
 +  - das Binärpaket hat nicht die gewünschten Abhängigkeiten (manche besitzen unerwünschte X-Abhängigkeiten, andere lassen Funktionen vermissen)
 +  - in seltenen Fällen treten bei der Installation von Binärpaketen Probleme auf, dann lassen sich meistens aber die Programme aus den Ports sauber installieren
 +
 +Wir freuen uns auch über die Tatsache, dass wir dann aktueller sind als das Binärpaket.
 +
 +Als erstes müssen wir die MAKE-Variablen nach unseren Wünschen ablegen.
 +  # vi /etc/make.conf
 +  ...
 +  WITHOUT_X11=yes
 +  NO_X=yes
 +  OPTIONS_UNSET=X11
 +  CPUTYPE=k8
 +  DOC_LANG=de_DE.UTF-8
 +
 +dann installieren wir den PortMaster:
 +  # pkg install ports-mgmt/portmaster
 +
 +jetzt installieren wir das Linux-User-Land:
 +  # portmaster emulators/linux-c7
 +