Container & VMs

WSL9x: Linux-Subsystem für Windows 95/98 installieren und nutzen

Einleitung

Während Microsoft mit WSL (Windows Subsystem for Linux) moderne Windows-Versionen um Linux-Funktionalität erweitert hat, geht das experimentelle Projekt WSL9x den umgekehrten Weg: Es bringt ein vollwertiges Linux-Subsystem auf historische Windows 9x-Systeme. Die Entwicklerin Hailey hat damit eine faszinierende Brücke zwischen alter Hardware und modernem Linux geschlagen.

WSL9x ermöglicht es, den Linux-Kernel 6.19 parallel zum Windows 9x-Kernel zu betreiben – und das ohne Hardware-Virtualisierung. Das System funktioniert sogar auf i486-Prozessoren, einer Architektur, die aktuell aus dem Linux-Kernel entfernt wird.

Voraussetzungen

Für die Installation und Nutzung von WSL9x benötigen Sie:

  • Ein funktionsfähiges Windows 9x-System (Windows 95, 98 oder ME)
  • Mindestens einen i486-Prozessor oder neuer
  • Ausreichend Arbeitsspeicher (mindestens 16 MB empfohlen)
  • Entwicklungsumgebung zum Kompilieren des Quellcodes
  • Grundkenntnisse im Umgang mit MS-DOS und Windows 9x
  • Verständnis für Kernel-Kompilierung und Systemarchitektur

Architektur und Funktionsweise verstehen

Technischer Aufbau

WSL9x basiert auf einer cleveren Architektur, die drei Hauptkomponenten kombiniert:

  • Gepatchter Linux-Kernel: Ein modifizierter Kernel aus dem Branch win9x-um-6.19, der mit der User Mode Linux-Architektur kompiliert wurde
  • VxD (Virtual Device Driver): Ein virtueller Gerätetreiber, der die Initialisierung übernimmt und das Event-Loop für Seitenfehler und Systemaufrufe verwaltet
  • DOS-Terminal-Interface: Das Programm wsl.com leitet die Terminal-Ausgabe von Linux zurück zur MS-DOS-Eingabeaufforderung

Speicher-Management

Der Linux-Kernel wird an einer festen Basisadresse von 0xd0000000 geladen. Dies ermöglicht die parallele Ausführung beider Betriebssysteme im Speicher, ohne dass sie sich gegenseitig stören.

WSL9x aus Quellcode kompilieren

Entwicklungsumgebung vorbereiten

Da WSL9x keine vorgefertigten Binärdateien bereitstellt, müssen Sie das System selbst kompilieren. Laden Sie zunächst den Quellcode herunter:

git clone https://codeberg.org/hails/wsl9x.git
cd wsl9x

Kernel kompilieren

Der Kompilierungsprozess erfordert eine spezielle Konfiguration für die User Mode Linux-Architektur:

# Kernel-Konfiguration für Windows 9x anpassen
make ARCH=um defconfig
make ARCH=um menuconfig

Stellen Sie sicher, dass folgende Optionen aktiviert sind:

  • User Mode Linux Support
  • Windows 9x compatibility patches
  • DOS terminal interface support

VxD-Treiber erstellen

Der Virtual Device Driver muss separat kompiliert werden:

# VxD-Treiber kompilieren
cd vxd/
make clean
make

Installation auf Windows 9x-System

Dateien übertragen

Kopieren Sie die kompilierten Komponenten auf Ihr Windows 9x-System:

  • linux.exe – Der kompilierte Linux-Kernel
  • wsl9x.vxd – Der Virtual Device Driver
  • wsl.com – Das DOS-Terminal-Interface

VxD-Treiber registrieren

Bearbeiten Sie die Datei SYSTEM.INI im Windows-Verzeichnis und fügen Sie unter dem Abschnitt [386Enh] hinzu:

[386Enh]
device=C:\WSL9X\wsl9x.vxd

Systemstart konfigurieren

Erstellen Sie ein Startskript für WSL9x:

# wsl9x-start.bat
@echo off
echo Starte WSL9x...
C:\WSL9X\linux.exe
echo WSL9x beendet.

WSL9x verwenden

Linux-Subsystem starten

Öffnen Sie eine MS-DOS-Eingabeaufforderung und navigieren Sie zum WSL9x-Verzeichnis:

cd C:\WSL9X
wsl.com

Nach dem Start sollten Sie eine Linux-Shell-Umgebung sehen, die parallel zu Windows 9x läuft.

Grundlegende Linux-Befehle nutzen

Testen Sie die Funktionalität mit einfachen Befehlen:

# Systeminformationen anzeigen
uname -a

# Dateisystem erkunden
ls -la /

# Prozesse anzeigen
ps aux

Dateiaustausch zwischen Systemen

WSL9x ermöglicht begrenzten Dateiaustausch zwischen Windows 9x und Linux:

# Windows-Laufwerke mounten (falls unterstützt)
mount -t vfat /dev/hda1 /mnt/windows

# Dateien zwischen Systemen kopieren
cp /mnt/windows/datei.txt /home/user/

Überprüfung der Installation

Systemstatus kontrollieren

Überprüfen Sie, ob WSL9x korrekt funktioniert:

# Kernel-Version anzeigen
cat /proc/version

# Speicherverbrauch prüfen
free -m

# Verfügbare Geräte anzeigen
ls /dev/

Performance-Test durchführen

Testen Sie die Leistung des Linux-Subsystems:

# CPU-Informationen
cat /proc/cpuinfo

# Einfacher Benchmark
time dd if=/dev/zero of=/tmp/test bs=1M count=10

Troubleshooting

Häufige Probleme und Lösungen

Problem: WSL9x startet nicht

  • Überprüfen Sie, ob der VxD-Treiber korrekt in SYSTEM.INI eingetragen ist
  • Stellen Sie sicher, dass ausreichend Arbeitsspeicher verfügbar ist
  • Kontrollieren Sie die Dateiberechtigungen der WSL9x-Komponenten

Problem: Kernel-Panic beim Start

# Debug-Informationen aktivieren
linux.exe debug=1 verbose=1

Problem: Terminal-Ausgabe funktioniert nicht

  • Überprüfen Sie, ob wsl.com im korrekten Verzeichnis liegt
  • Testen Sie alternative DOS-Shells
  • Prüfen Sie die Kompatibilität mit Ihrer Windows 9x-Version

Speicher-Probleme beheben

Bei Speichermangel können Sie die Kernel-Parameter anpassen:

# Speicher-Limits reduzieren
linux.exe mem=8M

# Nur essentielle Module laden
linux.exe minimal=1

Erweiterte Konfiguration

Netzwerk-Funktionalität

WSL9x bietet begrenzte Netzwerkunterstützung. Konfigurieren Sie das Netzwerk über:

# Netzwerk-Interface konfigurieren
ifconfig eth0 192.168.1.100 netmask 255.255.255.0

# Default-Gateway setzen
route add default gw 192.168.1.1

Dateisystem-Erweiterungen

Erweitern Sie die verfügbaren Dateisysteme:

# RAM-Disk erstellen
mount -t tmpfs tmpfs /tmp

# Loop-Device für Image-Dateien
mount -o loop disk.img /mnt/loop

Fazit

WSL9x ist ein faszinierendes Experiment, das die Grenzen zwischen alter Hardware und moderner Software-Technologie verschwimmen lässt. Während es primär als Proof-of-Concept und Lernprojekt dient, demonstriert es eindrucksvoll die Flexibilität von Linux-Systemen.

Das Projekt eignet sich hervorragend für Entwickler und System-Administratoren, die:

  • Historische Computersysteme verstehen möchten
  • Kernel-Entwicklung und Low-Level-Programmierung lernen wollen
  • Experimentelle Betriebssystem-Architekturen erforschen
  • Retro-Computing-Projekte realisieren

Beachten Sie jedoch, dass WSL9x ein experimentelles Projekt ist und nicht für produktive Umgebungen geeignet. Es dient als Bildungswerkzeug und Demonstration der technischen Möglichkeiten beim Brückenschlag zwischen verschiedenen Betriebssystem-Generationen.

Quelle: It’s FOSS – Microsoft Has WSL, But This Developer Built One for Windows 95