MyXomycota

Aus Lowlevel
Wechseln zu:Navigation,
MyXomycota
Entwickler: XanClic
Akt. Version: 0.004 (pre-alpha)
Lizenz: Gnu GPL
OS-Eigenschaften
Plattform: x86
Kernelart: Monolithischer Kernel
Sprache: C
API: Int 0x80
Binärformat: ELF
IPC-Methode: Keine (bis jetzt)
Homepage
Sourceforge


Der Name "MyXomycota" ist vom Namen der Schleimpilze (Myxomyceten) abgeleitet - das scheinen ziemlich kluge Dinger zu sein, auch wenn man es ihnen nicht zutraut. Es handelt sich bei diesem Betriebssystem um ein einfaches Hobbybetriebssystem, das im ProtectedMode läuft und über eine simple Kommandozeile verfügt.

Entwickler

Das Mountsystem

Herz des Systems sind das Mountsystem und das virtuelle Dateisystem. Dieses VFS läuft in einer zehn Megabyte großen RamDisk und sorgt für jegliche Kommunikation mit Geräten oder dem Kernel, wenn sie nicht über int 0x80 ablaufen muss. In ihm können hierzu virtuelle Dateien erstellt werden, die vom Mountsystem registriert werden. Solche Dateien können Geräte ("/dev/console", "/dev/pci/0-0-0", "/dev/audio"), Kommunikationskanäle zum Kernel ("/sys/mount") oder jegliche Art von Dateisystemen ("/proc", "/mnt/fda", "/mnt/addon", "/mnt/auto/hda1") sein. Ein Gerät wird im Kernel durch eine einfache Funktion repräsentiert, die ein paar Parameter bekommt (ID-Nummer, Position innerhalb der "Datei", Zugriffsart, Länge des Zugriffs, ...) und einen Wert zurückgeben kann. Eine Dateisystemfunktion erhält statt einer ID-Nummer das Handle der Datei, auf der sich das Dateisystem befindet. Daher kann man auch normale Dateien und nicht nur Gerätedateien mounten (z. B. "/dev/hda1" -> "/mnt/auto/hda1", "/mnt/auto/hda1/floppy.img" -> "/home", "/home/test.img" -> "/tmp"; also auch über mehrere Dateisysteme hinweg). Wichtig ist, dass ein Dateisystem natürlich nicht wirklich physisch vorhanden sein muss: Von Relevanz ist lediglich, was die Funktion an das Mountsystem zurückgibt. Daher sind auch virtuelle Dateisysteme wie das procfs ("/proc") oder das pipefs ("/sys/pipe", noch in Arbeit) möglich. Das ProcFS beispielsweise zeigt Informationen zu allen Prozessen im System an, wobei pro Prozess eine Datei existiert. Die Informationen können mit dem Programm "top" ausgelesen werden.

Aktuelle Features

  • Multibootkernel
  • Präemptives Multitasking
  • Einfache StdCLib (myxlib) mit etwas POSIX
  • Dateisystem: SMXFFS (Small MyXomycota Floppy FS), experimentell FAT32 (beide read-only); MRFS als VFS
  • AC'97-Treiber (zumindest ICH0)
  • Paging (2 GB pro Prozess)
  • ELF-Programme

Wichtigste Programme

  • µsh: Die Shell
  • FASM 1.67.26: Der Flatassembler
  • Aargh: Interpreter für eine esoterische Programmiersprache
  • Gnu Ed 1.2: Ein "Editor"
  • MyXomycota Ed 0.01: schneller als Gnu Ed, dafür mit weitaus weniger Funktionen
  • Brainfuck 0.1: Compiler
  • Maumau: Mau-Mau spielen, Regeln unter "maumau --help" oder "/mnt/fda/home/Mau-Mau-Regeln.txt"; benutzt die libmaumau-0.3 (#lost am 22. März 2009)

TODO

  • HD-Audio-Treiber
  • Bei "großen" Festplatten funktionierender Festplattentreiber
  • Funktionierender FAT32-Treiber
  • Schreibzugriff auf SMXFFS-Dateisysteme
  • PipeFS fertigstellen
  • Diskettentreiber
  • Treiber im Usermode laden können
  • StdCLib vervollständigen, POSIX-Kompatibilität stark verbessern