MyXomycota — Änderungen 4625 → 4626

Zeile 13: Zeile 13:
 
}}
 
}}
  
−
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.
+
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 [[Shell | Kommandozeile]] verfügt.
  
 
== Entwickler ==
 
== Entwickler ==
Zeile 21: Zeile 21:
 
== Das Mountsystem ==
 
== 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).  
+
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 [[Interrupt | 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 [[Dateisystem | 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.
 
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.
  
Zeile 56: Zeile 56:
 
== Aktuelle Features ==
 
== Aktuelle Features ==
  
−
* Multibootkernel
+
* [[Multiboot | Multibootkernel]]
−
* Präemptives Multitasking
+
* Präemptives [[Multitasking]]
−
* Einfache StdCLib (myxlib) mit etwas POSIX
+
* Einfache StdCLib (myxlib) mit etwas [[POSIX]]
 
* Dateisystem: SMXFFS (Small MyXomycota Floppy FS), experimentell FAT32 (beide read-only); MRFS als VFS
 
* Dateisystem: SMXFFS (Small MyXomycota Floppy FS), experimentell FAT32 (beide read-only); MRFS als VFS
−
* AC'97-Treiber (zumindest ICH)
+
* [[AC97 | AC'97]]-Treiber (zumindest ICH)
 
* Paging (2 GB pro Prozess)
 
* Paging (2 GB pro Prozess)
−
* ELF-Programme
+
* [[ELF]]-Programme
−
* Netzwerkstack: Ethernet, ARP, IP, UDP, TCP
+
* Netzwerkstack: [[Ethernet]], ARP, IP, UDP, TCP
−
* CDI-Interfaces: core, net
+
* [[CDI]]-Interfaces: core, net
  
 
== Wichtigste Programme ==
 
== Wichtigste Programme ==
Zeile 101: Zeile 101:
 
== Syscalls (Auszug) ==
 
== Syscalls (Auszug) ==
  
−
Syscalls geschehen über den Interrupt 0x80. Die Parameter werden in Registern übergeben, eax enthält die Funktionsnummer. An sich sind die Systemfunktionen für eine StdCLib und nicht für POSIX ausgelegt.
+
[[Syscall | Syscalls]] geschehen über den Interrupt 0x80. Die Parameter werden in Registern übergeben, eax enthält die Funktionsnummer. An sich sind die Systemfunktionen für eine StdCLib und nicht für POSIX ausgelegt.
  
 
{| {{Prettytable}}
 
{| {{Prettytable}}