TriOS [aktuelle Arbeitsversion und Log im ersten Beitrag]
Verfasst: So 14. Mär 2010, 21:42
Irgendwann nach dem KC-Treffen möchte ich beginnen das bestehende Betriebssystem neu zu überarbeiten und eine erste Version des TriOS zusammenzustellen. Im folgenden meine groben Vorstellungen. Wie weit ich dabei komme und was letztlich dabei herauskommt muß ich mal schauen. Ich wollte mal die grobe Struktur zur Diskussion stellen, velleicht gibt es ja noch interessante Ideen dazu. Wer Lust hat kann natürlich mitarbeiten, dann geht das Ganze schneller. Und frühzeitige Mitarbeit sichert auch die Möglichkeit der Einflußnahme, denn spätere Programme werden wohl auf dieser Version aufbauen.
Ich hab mal ein Schichtenmodell angehängt, welches die Struktur darstellt. Wichtig erscheint mir dabei ein möglichst einfacher und übersichtlicher Aufbau. Was bedeutet das:
- Möglichst viel kompakter und gut lesbarer SPIN-Code.
- Das IOS bleibt nach wie vor nicht reentrant - das ist mir momentan noch etwas zu hoch und würde das IOS auch mächtig aufblähen scheint mir. Das bedeutet: Zugriffe auf die Systemroutinen (Datei, Bus, eRAM usw.) sollten nur zentral durch einen Prozess erfolgen.
Neben diesen Punkten erscheinen mir die Einbindung von Funktionen um mit Verzeichnissen umzugehen, die Möglichkeit Administra zur Laufzeit mit einem neuen Code zu booten und eine klare Struktur des IOS als einzige zentrale Schnittstelle zur Anwendersoftware am wichtigsten. Mit der Fähigkeit Administra zur Laufzeit anzupassen wird der Hive erst wirklich sein flexibles Potential entwickeln, denn eines ist bisher klar geworden: Alle Möglichkeiten und Potentiale kann man nicht in einem einzigen Administra-Bios unterbringen. So kann man dann zum Beispiel problemlos ein LAN-Bios starten, um mit dem Netzwerk zu experimentieren, oder vielleicht sogar einen kompletten Webservercode in Administra unterbringen - natürlich auf Kosten anderer Funktionen, welche man in dieser Betriebsart nicht benötigt.
Administra:
- Bootmechanismus für Administra
- Einbindung eines RTC-Chips
- Verzeichnisse
- Funktionen um Datei-Zusatzinformationen (Datum, Attribute) zu verwalten
- Funktionen für eine zentral nutzbare serielle Schnittstelle
- I2C-Funktionen für einen externen Bus
- Überarbeitung der Soundroutinen (Wave!)
- LAN-BIOS per Administra-Bootmechanismus
Bellatrix:
- Erweiterter Standardtreiber mit Funktionen für eine einfache Benutzeroberfläche
- Oberfläche vielleicht im LCARS-Design?
Regnatix:
- Loader: Funktionen für die Initialisierung mehrer residenter Prozesse
- Funktionen für eine Speicherverwaltung des eRAM
Regime:
- Extender für ausführbare Dateien (*.adm, *.reg/bin, *.bel)
- History
- Kommando "aload" um das BIOS von Administra zu laden
Zusatzprogramme:
- Einfacher Texteditor
- Einfacher Dateimanager
- SPIN-Compiler (Sphinx)
Sonstiges:
- Dokumentation der IOS-Funktionen
- Überarbeitung des Bootvorgangs vom Gesamtgerät
- Verwaltung der gesamten Quellen per SVN
Link Downloads: http://code.google.com/p/hive-trios/downloads/list
Link Versionsverwaltung: http://code.google.com/p/hive-trios/
Ich hab mal ein Schichtenmodell angehängt, welches die Struktur darstellt. Wichtig erscheint mir dabei ein möglichst einfacher und übersichtlicher Aufbau. Was bedeutet das:
- Möglichst viel kompakter und gut lesbarer SPIN-Code.
- Das IOS bleibt nach wie vor nicht reentrant - das ist mir momentan noch etwas zu hoch und würde das IOS auch mächtig aufblähen scheint mir. Das bedeutet: Zugriffe auf die Systemroutinen (Datei, Bus, eRAM usw.) sollten nur zentral durch einen Prozess erfolgen.
Neben diesen Punkten erscheinen mir die Einbindung von Funktionen um mit Verzeichnissen umzugehen, die Möglichkeit Administra zur Laufzeit mit einem neuen Code zu booten und eine klare Struktur des IOS als einzige zentrale Schnittstelle zur Anwendersoftware am wichtigsten. Mit der Fähigkeit Administra zur Laufzeit anzupassen wird der Hive erst wirklich sein flexibles Potential entwickeln, denn eines ist bisher klar geworden: Alle Möglichkeiten und Potentiale kann man nicht in einem einzigen Administra-Bios unterbringen. So kann man dann zum Beispiel problemlos ein LAN-Bios starten, um mit dem Netzwerk zu experimentieren, oder vielleicht sogar einen kompletten Webservercode in Administra unterbringen - natürlich auf Kosten anderer Funktionen, welche man in dieser Betriebsart nicht benötigt.
Administra:
- Bootmechanismus für Administra
- Einbindung eines RTC-Chips
- Verzeichnisse
- Funktionen um Datei-Zusatzinformationen (Datum, Attribute) zu verwalten
- Funktionen für eine zentral nutzbare serielle Schnittstelle
- I2C-Funktionen für einen externen Bus
- Überarbeitung der Soundroutinen (Wave!)
- LAN-BIOS per Administra-Bootmechanismus
Bellatrix:
- Erweiterter Standardtreiber mit Funktionen für eine einfache Benutzeroberfläche
- Oberfläche vielleicht im LCARS-Design?
Regnatix:
- Loader: Funktionen für die Initialisierung mehrer residenter Prozesse
- Funktionen für eine Speicherverwaltung des eRAM
Regime:
- Extender für ausführbare Dateien (*.adm, *.reg/bin, *.bel)
- History
- Kommando "aload" um das BIOS von Administra zu laden
Zusatzprogramme:
- Einfacher Texteditor
- Einfacher Dateimanager
- SPIN-Compiler (Sphinx)
Sonstiges:
- Dokumentation der IOS-Funktionen
- Überarbeitung des Bootvorgangs vom Gesamtgerät
- Verwaltung der gesamten Quellen per SVN
DOWNLOAD DER AKTUELLEN VERSION: Die aktuelle Version ist als Quelltext und als BIN-Version auf der google-code-Seite zum TriOS als Download verfügbar. Wer mitarbeiten möchte, kann sich dort auch in der Versionsverwaltung registrieren.18-09-2010-dr235
- regime: free zeigt jetzt auch die speicherbelegung des eram an
- speicherverwaltung/ramdisk integriert (beispielcode siehe eram.spin & regime.spin)
- eram.bin kann jetzt auch mit ramdisk umgehen
- regime: neue kommandos für ramdisk
- egalisierung der namen für den ramzugriff (älterer code muß leicht angepasst werden)
- user- und systemmode für ramzugriff eingefügt
- erste version eine make-batch um das gesamte system zu kompilieren (nur grundsystem)
- änderung zur ios: da bst eine pfadliste zu bibliotheksordnern unterstützt, liegt (soweit das möglich ist) die ios nun nur noch unter system\regnatix
WICHTIG: Pfad zur ios.spin im bst einstellen
Infos zur Speicherverwaltung in der Readme im Archiv!
11-07-2010-dr235
- integration sid1/2-funktionen in admsid/ios
- anpassung sid-demo von ahle2 als regnatix-code (verzeichnis demo)
- diverse graphics-spielereien (verzeichnis demo)
- sysconf /af - administra neu booten (admflash.adm wird dadurch überflüssig)
27-06-2010-dr085/235
- admin mountet nun automatisch nach einem boot
26-06-2010-dr235
- div. demos zugefügt
- shooter angepasst und eingefügt
20-06-2010-dr235
- erste lauffähige SID-Player-Version für die Kommandozeile (splay)
14-06-2010-dr085/235
- Semaphoren in FATEngine korrekt eingesetzt
- Abfrage des Volume-Labels korrigiert
10-06-2010-dr235
- Kommando "ramtest" zugefügt
09-06-2010-dr085
- Fehler in Administra-Bootfunktion behoben
Link Downloads: http://code.google.com/p/hive-trios/downloads/list
Link Versionsverwaltung: http://code.google.com/p/hive-trios/