SymbOS - SymbOS

SymbOS
Screenshot des SymbOS-Desktops auf dem Amstrad CPC
Screenshot des SymbOS-Desktops auf dem Amstrad CPC
Entwickler Symbiose
Geschrieben in Assemblersprache ( Zilog Z80 )
Arbeitszustand Strom
Quellmodell Freeware
Erstveröffentlichung 1. Mai 2006 ; vor 15 Jahren ( 2006-05-01 )
Neueste Erscheinung 3.0 / 30.08.2017 ; Vor 3 Jahren ( 2017-08-30 )
Verfügbar in Englisch
Plattformen Amstrad CPC , MSX , Amstrad PCW , Enterprise 64/128
Kernel- Typ Mikrokernel
Standard -
Benutzeroberfläche
Grafische Benutzeroberfläche
Offizielle Website www .symbos .de

SYmbiosis Multitasking Based Operating System ( SymbOS ) ist ein Multitasking- Betriebssystem für Zilog Z80 -basierte 8-Bit-Computersysteme .

Im Gegensatz zu frühen 8-Bit-Betriebssystemen basiert es auf einem Microkernel , der präemptives und prioritätsorientiertes Multitasking bietet und Random Access Memory (RAM) mit einer Größe von bis zu 1024  KB verwaltet . SymbOS enthält eine Microsoft Windows ähnliche grafische Benutzeroberfläche (GUI), unterstützt Festplatten mit einer Kapazität von bis zu 128 GB und kann bereits auf einem nicht erweiterten Amstrad CPC -6128, einem 128K- MSX 2 und einem Amstrad PCW gebootet werden .

Ab dem 30. August 2017 ist es für die Amstrad CPC- Computerserie, alle MSX- Modelle ab dem MSX2- Standard, MSX mit V9990-Grafikchip, alle Amstrad PCW- Modelle, CPC-TREX, C-ONE und die Enterprise 64/128- Computer verfügbar .

Motivation und Begründung

SymbOS wurde ursprünglich als Experiment gestartet, um herauszufinden, inwieweit es möglich ist, ein Multitasking-Betriebssystem mit einer Windows-GUI auf einem 8-Bit-Computer von 1985 zu implementieren. GEOS hat zur Motivation beigetragen, aber die Struktur und die Funktionen von SymbOS sind t ähnlich wie dieses System. Die Veröffentlichung im Jahr 2006 hat bewiesen, dass ein solches "Mini-Windows"-System auf einem damals 20 Jahre alten Heimcomputer nur mit quantitativen Einschränkungen möglich ist. SymbOS ist eines der größten Retro-Computing-Softwareprojekte der letzten Jahre. Eines der Ziele des Projekts ist es, diese alten Maschinen durch Hardware-Erweiterungen wie einen modernen PC zu nutzen.

Obwohl es sich nur um eine 8-Bit-CPU handelt, kann der Z80 ein präemptives Multitasking- Betriebssystem ausführen . Features wie der Speicherschutz , der dem Z80 fehlt, sind bei einem solchen Betriebssystem nicht unbedingt erforderlich . AmigaOS fehlt beispielsweise auch der Speicherschutz. Das MP/M OS bewies, dass Multitasking auf der Z80 CPU möglich ist. Für Heimcomputer war es jedoch im Allgemeinen nicht verfügbar.

Während die MOS Technology 6502 den Stack-Pointer nicht bewegen kann , kann der Z80 ihn frei an jede beliebige Position im Speicher verschieben, was die Implementierung von präemptivem Multitasking erleichtert . Die Existenz eines alternativen Registersatzes beschleunigt den Kontextwechsel zwischen Tasks dramatisch. Die Beschränkung des Z80-Systems auf 64 KB Adressraum kann mit Bank Switching gelöst werden . Auf diese Weise können Computer wie Amstrad CPC und PCW , MSX , Enterprise oder SAM Coupé auf Hunderte oder Tausende von Kilobyte Speicher zugreifen.

Entwurf

SymbOS enthält einen Mikrokernel, der Aufgabenverwaltung, Speicherverwaltung und Kommunikation zwischen Prozessen durchführen kann .

Aufgabenmanagement

Für die Aufgabenverwaltung wurde eine Kombination aus präemptivem und kooperativem Multitasking gewählt, die unterschiedliche Aufgabenprioritäten ermöglicht. Präemptiv bedeutet, dass Tasks nach einer bestimmten Zeit vom Betriebssystem unterbrochen werden, um die CPU-Zeit mit anderen Tasks zu teilen. Kooperativ bedeutet, dass eine Aufgabe nicht mehr selbst CPU-Zeit verbraucht. Das tut es, wenn es mit seinem aktuellen Job fertig ist oder auf ein bestimmtes Ereignis wartet. Durch diese Kombination ist es möglich, Prioritäten zu vergeben. Tasks mit niedriger Priorität bekommen nur dann CPU-Zeit, wenn alle Tasks mit höherer Priorität dann nicht funktionieren.

Speicher- und Bankverwaltung

Die Speicherverwaltung unterteilt den gesamten RAM in kleine 256 Byte große Blöcke, die dynamisch zugewiesen werden können. Anwendungen laufen immer in einer sekundären 64 KB RAM-Bank, in der kein Speicherplatz durch das Betriebssystem oder den Videospeicher belegt wird. Damit ist es möglich, bis zu 63 KB an einem Stück zu reservieren.

Das Banking-Management sorgt dafür, dass das System Speicher mit einer Größe von bis zu einem Megabyte verwalten kann, obwohl die Z80-CPU nur über einen 16-Bit- Adressbus verfügt. Es ermöglicht einen transparenten Zugriff auf Speicher und Funktionen in anderen 64-KB-Bänken.

Interprozesskommunikation

Die Kommunikation zwischen verschiedenen Tasks und dem Betriebssystem erfolgt in der Regel nicht über Aufrufe , sondern über Nachrichten . Dies ist in einer Multitasking-Umgebung notwendig, um Organisationsprobleme mit dem Stack, globalen Variablen und gemeinsam genutzten Systemressourcen zu vermeiden. Der SymbOS-Kernel unterstützt synchrones und asynchrones IPC.

Dateisystemverwaltung

SymbOS unterstützt die Dateisysteme CP/M , AMSDOS und File Allocation Table (FAT) 12-16-32 auf allen Plattformen. Mit letzterem kann SymbOS Massenspeichergeräte mit einer Kapazität von bis zu 128 GB ansprechen. Auch die Möglichkeit, Dateien mit einer Größe von bis zu 2 GB zu verwalten, ist für ein 8-Bit-System ungewöhnlich. Aufgrund der FAT-Unterstützung ist der Datenaustausch mit anderen Computern recht einfach, da die meisten 32- und 64-Bit-Betriebssysteme die drei FAT-Dateisysteme unterstützen.

Schnittstelle

Screenshot der MSX-Version von SymbOS

Die grafische Benutzeroberfläche (GUI) von SymbOS arbeitet vollständig objektorientiert . Das Aussehen und Verhalten ähnelt dem von Microsoft Windows . Es enthält die bekannte Taskleiste mit der Uhr und dem "Start"-Menü und kann bis zu 32 Fenster öffnen, die verschoben, skaliert und gescrollt werden können. Das gesamte System ist in optimierter Assemblersprache geschrieben , was bedeutet, dass die GUI so schnell läuft, wie es der Host-Rechner unterstützt.

Der Inhalt eines Fensters wird mit "Steuerelementen" definiert, bei denen es sich um primitive GUI-Elemente wie Schieberegler, Kontrollkästchen, Textzeilen, Schaltflächen oder Grafiken handelt. Der Hintergrund oder unsichtbare Bereiche eines Fensters müssen nicht in einem separaten Bitmap-Puffer gespeichert werden. Wenn ein Bereich auf dem Display wiederhergestellt werden muss, wird stattdessen sein Inhalt neu gezeichnet. Dies macht die SymbOS-GUI im Vergleich zu den meisten anderen 8-Bit-GUIs viel speicherfreundlicher.

Anwendungen

Für SymbOS stehen mehrere Standardanwendungen zur Verfügung, die ähnlicher Software auf anderen Betriebssystemen ähneln. Beispiele sind Notepad , SymCommander (ähnlich Norton Commander ), SymShell ( cmd.exe ), SymZilla ( Mozilla Firefox ), SymPlay ( QuickTime ), SymAmp ( Winamp ) und Minesweeper .

Befehle

Die folgende Liste von Befehlen wird von SymShell unterstützt.

Entwicklung und Veröffentlichung

SymbOS wurde ursprünglich für den Amstrad CPC entwickelt. Sein modularer Aufbau mit strikter Trennung von allgemeinen und Hardwarekomponenten macht die Portierung auf andere Z80-basierte Systeme vergleichsweise einfach.

Die MSX- Rechner ab dem MSX2-Standard werden seit Sommer 2006 unterstützt. Der Amstrad PCW- Port ist seit August 2007 verfügbar. Versionen für das Enterprise 128 , das SAM Coupé und solche Klone von ZXSpectrum wie ATM-turbo 2+ und ZX-Evolution /BaseConf sind ebenfalls möglich, da sie die Voraussetzungen für SymbOS erfüllen.

Durch die Beibehaltung einer Grundvoraussetzung für ein Betriebssystem, die strikte Trennung von Hardware und Anwendungssoftware durch eine Zwischenschicht laufen SymbOS-Anwendungen plattformunabhängig auf jedem Computer und müssen nicht für verschiedene Systeme angepasst werden, mit Ausnahme von Anwendungen die direkt auf bestimmte Hardware zugreifen.

Siehe auch

Verweise

Externe Links