[hydrixOS] : HydrixOS Release 0.0.1 (Kernel 0.2.4) ist erschienen!

  • From: Friedrich Gräter <webmaster@xxxxxxxxxxx>
  • To: undisclosed-recipients:;
  • Date: Tue, 05 Nov 2002 23:16:43 +0100

HydrixOS Newsletter
=======================================================================

Themen
------
1. Die "HydrixOS Webpage Distribution"
2. Neuerung der neuen Release
3. Wie es mit HydrixOS weitergeht


Hallo,
endlich - nach über fünf Monaten - ist es geschafft: Die Version 0.2.4 
des HydrixOS Kernels ist mit der HydrixOS Webpage Distribution 0.0.1 
heute Nachmittag ins Internet hochgeladen worden.

Jeder kann sich die Binaries, Quellcodes und das neue HydrixOS Handbuch 
auf http://www.hydrixos.de/ kostenlos herunterladen.

An dieser Stelle sei nochmal Gerrit Beine und Dimitri Roschkowski für 
die Bereitstellung des FTP-Servers und des HTTP-Speicherorts gedankt, 
welche diese Release zur ersten Release gemacht haben, bei der das 
Hochladen der aktualisierten Webpage und der Zip-Archive zum ersten Mal 
nicht mehr die Sache war, bei der die meisten Probleme der ganzen 
Release auftraten :-).

Leider hatte ich in den letzten fünf Monaten irgendwie nie die 
Gelegenheit einen HydrixOS Newsletter mit wirklich wichtigen 
Informationen zu verfassen, daher heute mal diese "etwas" längere Ausgabe.


1. Die "HydrixOS Webpage Distribution"
--------------------------------------
Mit dieser Release wurde ein neues Element von HydrixOS geschaffen, die 
"HydrixOS Webpage Distribution", kurz HyWD. Die HyWD sagt aus, welche 
Pakete von welcher Version mindestens erforderlich sind, um ein 
HydrixOS-Komplettsystem einer bestimmten Version aufzubauen.

Der Grund für diese Veränderung liegt in der Architektur von HydrixOS: 
Im Gegensatz zu Systemen wie Linux sind im HydrixOS Kernel nur die 
nötigsten Dinge implementiert, da HydrixOS ein Mikrokernelsystem ist. 
Weder Dateisystemschicht, noch (höhere) Gerätetreiber sind im Kernel 
realisiert.

Diese Architektur birgt viele Vorteile: Der Kernel ist zuverlässiger und 
sicherer, da er wenig Komplexität hat. Das System ist insgesamt sauberer 
strukturiert und ist wesentlich modularer. Der Nachteil ist jedoch, dass 
HydrixOS nicht evolutionär wachsen wie Linux - dies ist wiederum nicht 
ganz so einfach mit dem Gedanken von Open Source vereinbar. Damit aber 
ein System läuft, ist es erforderlich, dass manche Teilsystem (Kernel, 
Dienste, Treiber) im System reibungslos miteinander arbeiten - wäre dem 
nicht so, hätte man ein heilloses Chaos von absolut unbrauchbaren 
Programmpaketen.

Daher wurde die HyWD geschaffen. Die HyWD ist eine Empfehlung - wenn man 
dieser Empfehlung folgt, kann man ein HydrixOS System einer bestimmten 
Versionsstufe (in diesem Fall 0.0.1) aufbauen. Die HyWD ist keine 
Distribution im Sinne von SuSE Linux oder Red Hat Linux - sie ist kein 
wirtschaftliches Produkt, sondern eine offen entwickelte und 
zusammengestellte Paketsammlung bzw. eine Empfehlung für bestimmte 
Pakete zum Herunterladen.

Es ist selbstverständlich jedem freigestellt auch andere Pakete zu 
nutzen oder eigene Distributionen aufzubauen, oder gar die HyWD zu 
erweitern oder umzubauen - HydrixOS ist ja freie Software. Die HyWD ist 
nur dazu da, dass man weiß, welche Pakete man benötigt, um Programme 
lauffähig zu halten (und um die erforderlichen Pakete zu erhalten). So 
könnte z.B. bei einem Office-Paket als Systemanforderung HyWD 1.0 stehen 
- jedermann weiß dann, er benötigt die und die Pakete in der und der 
Version um das Office-Paket zum Laufen zu bekommen.

Da normalerweise die HyWD alle wichtigen Pakete umfasst erspart dies 
auch das ewige manuelle und nervige Suchen von Bibliotheken und 
Einzelpaketen, wie man es bei manchen schlechteren oder älteren 
Linux-Distributionen gewohnt ist - da eindeutig klar ist, was benötigt wird.

Derzeit umfasst sie, die HyWD 0.0.1, folgende Pakete:

HydrixOS Kernel (hkrnl) 0.2.4
HydrixOS ApiLibC (hyApiLibC) 0.0.1
HydrixOS Init (hyinit) 0.0.1
HydrixOS Binbind (binbind) 0.1
HydrixOS Make Image (hymkimg) 0.1
HydrixOS Handbuch (hyman) 1.0

Wenn eines Tages z.B. ein Serverdienst für Pageing oder für Dateisystem 
implementiert werden sollte (was so ziemlich das nächste ist, was für 
HydrixOS wichtig ist), so werden diese ebenfalls in die HyWD 
aufgenommen. Die Versionsnummer der HyWD wird immer erhöht, wenn neue 
Pakete hinzukommen oder die Versionsnummer von Einzelpaketen sich 
ändert. Bei kleineren Versionsänderungen oder Patches von einzelnen 
Paketen wird entweder das Patchlevel der HyWD erhöht (was bei zentralen 
Paketen, wie Kernel, Init oder ApiLib empfehlenswert wäre) oder es 
passiert gar nichts (wenn das Paket unwichtiger ist) mit der 
Versionsnummer :-).


2. Neuerung der neuen Release
-----------------------------
Die Release bringt, neben der HyWD, natürlich wesentlich andere 
technische Neuerungen mit sich:

So wurde der Kernel 0.2.4 im wesentlichen komplett neu programmiert und 
nur die Module beibehalten, die im Zuge der Einführung eines 
Pageing-Servers irgendwann sowieso rausfallen dürften. Nicht erneuert 
wurde der Scheduler und die Kernel-interne Speicherverwaltung, was bis 
Version 0.3.0 zu ändern nötig ist...

Einen weiteren Punkt dürfte auch das HydrixOS Handbuch ausmachen. Das 
fast 100 Schreibmaschinenseiten lange Dokument bietet Informationen über 
die Konzepte von HydrixOS, Anleitungen zur Programmierung unter 
HydrixOS, eine komplette Dokumentation aller API- und Kernel-Aufrufe und 
zu guter letzt sogar eine kurze sinnlose FAQ. Im Gegensatz zu den 
bisherigen Spezifikationen ist das Handbuch wirklich als solches 
geschrieben worden - während die Spezifikationen damals mehr oder 
weniger aus meinen internen Notizen zu HydrixOS "rausgewachsen" sind. 
Das Handbuch ist natürlich unter einer offenen Lizenz veröffentlicht...

Den Korrekturlesern Maximilian Marx, Steinmetz und Dimitri Roschkowski 
gilt mein besonderer Dank für das sorgfältige Durchlesen und Auffinden 
von Fehlern.

Als Folge des Handbuches konnte ich während der Korrekturlesezeit 
bereits die Anfänge der HydrixOS-Laufzeitumgebung - also den Paketen, 
die letztlich das System wirklich ausmachen, anfangen. So konnte ich die 
Grundsteine der HydrixOS-API-Bibliothek schreiben und erfolgreich 
kompilieren.

Ebenfalls konnte das "DD-Problem" gelöst werden. Bisher war es nicht 
mögich die kompilierten Binaries von einem UNIX-System auf Diskette zu 
schreiben, da die Binaries für mein DOS-basiertes Installationsprogramm 
anders aufgebaut waren. Jetzt kann jeder UNIX-nutzer die Binaries mit 
"dd if=./disk144.img of=/dev/fd0" kinderleicht installieren. Was leider 
nicht geklappt hat war die erfolgreiche Kompilierung von HydrixOS unter 
UNIX/Linux, woran ich aber derzeit arbeite. Der Grund lag eigentlich nur 
darin, dass ich falsches über die Struktur der Gerätedatei "fd0" unter 
Linux angenommen habe (wer an weiteren Informationen interessiert ist, 
kann mich jederzeit Fragen, es würde nur den Rahmen des Newsletters 
sprengen...).

Das mitgelieferte Demo-Programm scheint zwar nicht sonderlich geistreich 
- da es ein Testprogramm ist, mit dem ich bis zu letzt noch eine 
API-Funktion (mem_realloc) getestet habe. Aber ich konnte bereits ein 
Testprogramm arbeiten lassen, das über extrem komplizierte Mechanismen - 
über Signalmechnamismen usw. - relativ rasch Tastatureingaben 
verarbeiten und auf den Bildschirm ausgeben konnte - was zeigte, das der 
HydrixOS Kernel in diesem Zustand für die Implementierung fundamentaler 
Treiber und Dienste reif seien müsste. Jedem, der es wünscht, kann ich 
dieses Programm mal mailen :-).

Das jetzige Demo zeigt lediglich, dass Eingaben von der Tastatur gelesen 
werden können, der Uhren-IRQ behandelt wird, die Prozesse Scheduled 
werden und ich vor fünf Tagen einen Bug ... äh Tippfehler ... in 
"mem_realloc" eliminiert habe :-).


3. Wie es mit HydrixOS weitergeht
---------------------------------
Dank des Handbuches können jetzt andere Programmieren in HydrixOS 
wirklich einsteigen, da nun ein Überblick über die Schnittstellen 
möglich ist - desweiteren ist der Kernel nun in einem Zustand, dass die 
meiste Arbeit an HydrixOS eher an der Api-Bibliothek, Treibern und an 
der Umgebungssoftware stattfinden kann.

Was ist als nächstes wichtiges zu tun? Nun, wie gesagt, es muss die 
API-Bibliothek vervollständigt werden und alle Dienste, die sie 
verwendet - also der Pageing-Dämon und der Dateisystemserver, sowie der 
Init-Prozess, programmiert werden. Alle drei Programme sind teils sehr 
hardwarenah, teils aber auch sehr "abstrakt" und die Entwicklung dieser 
Dinge dürfte sehr interessant sein, da man hier an den Grundsubsystemen 
von HydrixOS basteln kann.

Auch das HydrixOS Handbuch wird sicher wachsen und sich verändern. Die 
Dokumentationen im Teil C sind größtenteils noch Spezifikationen, da 
vieles noch nicht implementiert ist. Sicher werden dabei einige 
Denkfehler und schlechte Konzepte noch rausfallen und sich ändern...

Bevor dies geschehen kann, muss natürlich HydrixOS noch erfolgreich 
unter Linux kompilierbar sein. Ich hoffe in den nächsten Tagen ein Patch 
bzw. eine Anleitung zur Einrichtung eines Cross-Compilers für HydrixOS 
aufbauen zu können - sollte jemand Ahnung davon haben - ich wäre für 
jede Hilfe dankbar :-).


Bis bald,

Friedrich Gräter


--- Anmerkung -------------------------------------------------------
Dieser Dienst wird Dank der freundlichen Unterstützung von 
www.TheMasterz.de und www.freelists.org ermöglicht. Der Newsletter wird 
automatisch in die Mailingliste gepostet und an Leute gesand, die diesen 
auf der HydrixOS-Homepage bestellt haben. Er kann durch eine Mail an 
"newsletter@xxxxxxxxxxx" abbestellt werden.

-- 
HydrixOS Developers Mailing List

Administration: webmaster@xxxxxxxxxxx 
Archive: //www.freelists.org/archives/hydrixos

Other related posts:

  • » [hydrixOS] : HydrixOS Release 0.0.1 (Kernel 0.2.4) ist erschienen!