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