Lowlevel
Lowlevel => tyndur => Thema gestartet von: n3Ro am 03. September 2006, 20:26
-
Hallo LOST-Team,
ich glaube es sollte mal ab und zu ein Statusbericht abgegen werden, wie weit LOST ist. Also gut wäre immer zu Wissen, was ihr habt, was ihr als nächstes umsetzen wollt,wo es grob in Zukunft hingeht, vielleicht auch wo Schwierigkeiten liegen. Ich würde vorschlagen das so ein Update aller 2-3 Monate kommen sollte, damit alle nicht direkt involvierten Forenmitglieder (auch die nichtpostenden Ghosts) sehen was geleistet wurde. So könntet ihr vielleicht mehr Leute von der aktiven Mitarbeit überzeugen. Was haltet ihr davon und wie steht es momentan?
-
Eigentlich wollte ich mir den Statusbericht noch bis zur ersten brauchbaren Version des Kernels aufheben, aber gut, sei's drum...
Wie ja allgemein bekannt sein dürfte, handelt es sich bei LOST um einen Microkernel. Im Team gibt es einige, die zwar etwas beitragen wollen, sich aber nicht zutrauen, an den grundlegendsten Dingen mitzubasteln - ihre Baustelle sind also eigentlich die Kernelmodule. Solange der Kernel aber nicht mit Modulen umgehen kann, können diejenigen Entwickler nichts beitragen (oder denken das zumindest ;)).
Das Ziel ist es daher zunächst, Module möglichst schnell ans Laufen zu bekommen. Ein paar Grundlagen stehen schon, wir haben sowohl eine physische als auch virtuelle Speicherverwaltung (wobei letztere wohl nochmal stark überarbeitet wird) und wir haben auch schon eine Art Multitasking - zwar im Usermode, allerdings laufen alle Tasks innerhalb des Kerneladreßraums (vielleicht sollte man es eher Threads nennen).
Als nächstes steht somit an: Prozeßverwaltung und Multitasking - und alles, was uns unterwegs noch auffällt, was wir dazu unbedingt brauchen. ;)
Ich erwähne es auch nochmal hier: Floppy-Images mit dem jeweils aktuellsten LOST-Kernel gibt es täglich frisch unter http://lost-os.ath.cx/, wer sich einfach mal den aktuellen Stand anschauen möchte, kann das jederzeit tun.
Falls noch ein paar Zahlen gefällig sind, die vielleicht auch noch ein grobes Bild geben:
Aktuelle SVN-Revision: 154
Anzahl Quellcode-Dateien in kernel/src: 13
Anzahl C-Code-Zeilen in kernel/src: 1471 (davon 362 Kommentarzeilen)
Anzahl Assembler-Zeilen in kernel/src: 245 (davon 42 Kommentarzeilen)
-
Jo
Edit by hannibal:
Bitte Ein-Wort Postings unterlassen in Zukunft. Hat ja keinen Sinn mit "Jo" die Datenbank vollzumuellen.
-
Um auch hier ein Update zu geben: Mittlerweile ist das Multitasking zumindest provisorisch implementiert und scheint für den Moment zu funktionieren. Seit einiger Zeit können auch ELF-Module, die per GRUB geladen wurden, ausgeführt werden, die jedoch bis vor kurzem mangels Implementierung von Syscalls nicht viel sinnvolles anstellen konnten.
Die aktuelle Baustelle ist eben diese Implementierung der Syscalls. Mittlerweile ist auch die Grundlage für IPC vorhanden, auf die allerdings in nächster Zeit noch einiges aufgesetzt werden soll. Weiterhin steht eine Diskussion über das grundlegende Zusammenspiel von Modulen an. Aber auch an den Kernelfunktionen gibt es noch genug zu tun.
Wer Interesse daran hat, an einem oder mehreren dieser Punkte mitzuwirken, ist eingeladen, im IRC (#lost, irc.euirc.net) vorbeizuschauen.
Und zuletzt wieder die aktuellen Statistiken:
Aktuelle SVN-Revision: 191
Anzahl Quellcode-Dateien in kernel/src: 17
Anzahl C-Code-Zeilen in kernel/src: 3261 (davon 1040 Kommentarzeilen)
Anzahl Assembler-Zeilen in kernel/src: 199 (davon 60 Kommentarzeilen)
-
Es sind mal wieder drei Monate vergangen und es somit an der Zeit, mal wieder was zu berichten. Eigentlich finde ich gar keinen richtigen Zeitpunkt, wo das ganze zum Ruhen kommt und ich einen Stand berichten könnte, der nicht heute abend schon wieder anders aussieht. Punkt eins des Statusberichts ist also: Es tut sich mächtig was.
Seit einiger Zeit spielt sich der Großteil der Entwicklung nicht mehr im Kernel, sondern im Userspace ab. Die grundlegenden Syscalls stehen und funktionieren (im wesentlichen: Speicher anfordern, Prozesse starten und beenden und natürlich und vor allem die IPC, die den größten Aufwand gemacht hat).
Aufbauend auf der IPC wird momentan LostIO implementiert, das man als das VFS von LOST bezeichnen könnte, und ein ganz wesentliches Bindeglied zwischen den Prozessen, insbesondere zwischen Treibern und Anwendungen bilden wird. FreakyPenguin leistet auf diesem Gebiet im Moment großartige Arbeit und obwohl noch nicht alles steht, finde ich, es macht richtig Spaß, das Ding zu benutzen.
Der Bericht soll nicht allzu lang werden - es soll ja auch noch Motivation geben, selbst in #lost vorbeizuschauen ;) - aber eine kurze Liste der über LostIO bereits benutzbaren Dienste möche ich noch nennen: Wir hätten da zum einen dma:/, das wiederum von floppy:/ benutzt wird (ja, Lesen von Disketten geht jetzt) und dann pci:/, das momentan nur eine lspci-artige Liste ausgibt - aber immerhin.
Zu guter letzt - was wäre ein LOST-Bericht ohne Zahlen?
Aktuelle SVN-Revision: 256
Anzahl Quellcode-Dateien in kernel/src: 17
Anzahl C-Code-Zeilen in kernel/src: 3785 (davon 1195 Kommentarzeilen)
Anzahl Assembler-Zeilen in kernel/src: 235 (davon 94 Kommentarzeilen)
Anzahl Code-Zeilen in modules: 5957 (davon 1727 Kommentarzeilen)
Anzahl Code-Zeilen gesamt: 11880 (davon 3798 Kommentarzeilen)
-
Der letzte Statusbericht ist ja nun schon eine Weile her. Und einiges hat sich getan. Dazu gehören die Releases von 0.1, 0.1.1 und eine erste Alpha von 0.2.
Ich will hier nicht nochmal alle neuen Features auflisten, sondern nur die meiner Meinung nach wichtigsten. Dazu gehören Treiber für das Diskettenlauferk, ATA-Festplatten, das FAT-Dateiystem und das ext2-Dateisytem. Weiter, ein Bisschen weniger grundlegend, wären da Treiber für rtl8139 Netzwerkkarten und einen für tcp/ip.
Die aktuellen Baustellen sind das Common Driver Interface, kurz CDI, ein xen-Port für kernel2 und die Ports von binutils und gcc.
Mit dem CDI versuchen wir von LOST und ein paar andere Entwicklern mit eigenen Betriebssystemen (vorallem bluecode, janosch und Homix) eine gemeinsame Treiberschnittstelle zu Definieren, damit unsere Treiber auf allen Betriebssystemen die CDI unterstützeb benutzt werden können, und nicht jeder seine eigenen schreiben muss.
kernel2 ist ein Rewrite von kernel, das aber im Moment und auch in der näheren Zukunft noch nicht mit dem Userland zusammen funktioniert. Wir versuchen damit, die grössten Schwachstellen von kernel auszubügeln. kernel2 soll unter anderem auch portabel sein, und mindestens auf i386 und amd64 laufen. Weiter ist auch SMP-Unterstützung eingeplant.
Mit dem xen-Port passt taljeth kernel2 so an, dass er mit xen (einem Virtualisierungssystem) betrieben werden kann.
Die Ports von GNU-binutils (die unter anderem as den GNU Assembler und ld den Linker beinhalten) und dem C-Compiler gcc funktionieren schon grösstenteils. Im Moment ist es damit möglich, ein Hello World zu kompilieren, danach zu linken und selbstverständlich danach auch auszuführen. ;-) Ein paar Macken, die noch behoben werden müssen, hat der gcc-Port aber noch.
Hier wieder die üblichen Metriken (leider diesmal ohne Kommentaranteil):
Aktuelle SVN-Revision: 703
Anzahl Code-Zeilen in kernel/src: 4092
Anzahl Code-Zeilen in modules: 24842
Anzahl Code-Zeilen gesamt: 35253
-
Wie wäre es mal wieder mit einem kurzen Statusbericht, sowohl über den Status von tyndur, als auch über die Ziele für Revision 3.0 (im anderen Thread)?
Mich würde es mal wieder interessieren, wie weit ihr denn jetzt seit.
-
*staubabwisch* *hust*
Für einen großen Statusbericht finde ich sowieso nie die Motivation und außerdem passiert so selten wirklich weltbewegendes. Seit dem letzten Beitrag hier ist natürlich einiges passiert, aber das ist dann schon wieder so viel, dass ich es auch nicht anständig auf die Reihe bekomme, vergessen wir das also. ;)
Wenn wir uns aufs Jahr 2012 beschränken, dann sind die sichtbarsten Änderungen aus den letzten paar Tagen: Zum einen kann setup jetzt Karten für DHCP konfigurieren (und macht das standardmäßig auch). Ob DHCP auch außerhalb von Emulatoren tut, ist soweit ich weiß noch ungetestet, wäre also einen Versuch wert, wenn jemand Lust hat. Außerdem hat oern vterm beigebracht, was Deadkeys sind. Damit kann man jetzt unter týndur auch endlich "týndur" richtig mit Akzent eintippen. Abgesehen davon ein Haufen libc-Fixes und ein Lesepuffer für die stdio.h-Funktionen (ja, der macht tatsächlich einen Unterschied, wer hätte das gedacht).
Und weil wir hier immer Statistiken hatten, heute die Top 15 der "tyndur-Highscoreliste" nach Anzahl Zeilen im Repository pro Autor (ha, Freaky, ich hab dich bald! :-D):
62278 Antoine Kaufmann
61232 Kevin Wolf
8824 Max Reitz
3584 Alexander Siol
2179 Burkhard Weseloh
2113 Mathias Gottschlag
1731 Alexander Hartmut Kluth
1353 (no author)
1303 Andreas Freimuth
1192 Jörg Pfähler
936 Paul Lange
778 Arne Hasselbring
478 Patrick Pokatilo
361 Matthew Iselin
160 Patrick Kaufmann
Zusammengerechnet sind das 149030 Zeilen, wenn es jemanden interessiert.
-
Jay, gibts dazu vielleicht auch ein fertiges build? Ich bin gerade etwas zu faul týndur unter Linux selbst zu bauen, außerdem vermute ich, dass bei mir wieder irgendwas nicht funktionieren wird. Zum einen da ich ein Pechvogel bin und weil die Leute von Canonical wohl in letzter Zeit gerne mal Bugs nach kubuntu bringen. :wink:
-
Da es keine nightly builds mehr gibt nicht, es gibt höchstens einen fertigen Build der Version 0.2.2 - der hinkt aber dem aktuellen Stand um Längen her.
Wieso ist es denn so anstegend, tyndur zu bauen? make eingeben und Enter drücken ist doch nicht viel ;-) Und mittlerweile sollte auch unter den kaputten *buntu-Derivaten tyndur ohne Murren bauen. Und wenn es dann immer noch nicht klappt gibt es hier und im IRC viel Hilfe.
-
Naja, nachdem mir aptitude bei der Installation von wine das halbe System deinstallieren wollte, traue ich der Kiste nicht mehr ;) Aber ich denke ich werds mal probieren...
-
Ich hab mich die letzten Tage mal durch die verbleibenden Compilerfehler für amd64 gewühlt. Waren gar nicht so viele.
Nächste Baustelle sind dann logischerweise die Undefined References, das sieht hauptsächlich nach VMM und querbeet ein paar Kleinigkeiten aus. Falls also irgendjemand Lust hat... Nein, MNemo, dass ich dich anschaue, hat gar nichts zu bedeuten. :-D
-
Ich habe auch noch 10 Patches herum liegen. Aber die kann ich euch so noch nicht antun ^^
Leider habe ich im Moment nicht viel Zeit.
-
Ist das jetzte eine Aufforderung, mal wieder ein funktionierendes Environment einzurichten? Ich schaue mal, ob ich Zeit dazu finde :3 *hoff*
-
Die direkte Aufforderung an dich wäre "ich hab mal die Threading-Patches wieder ausgegraben", aber du darfst natürlich trotzdem. ;)
-
*hust* Das klingt eigentlich auch nach nem Plan...
-
Finde ich auch. ;)
Äh, eigentlich wollte ich nur mal vermelden, dass tyndur jetzt für mich auf qemu 1.3 bootet. Und Obacht: Lynx habe ich auch mal wieder gefixt, damit ihr alle fleißig Kekse zurückweisen könnt. Mal schauen was als nächstes kaputt aussieht, wenn ich mehr Sachen ausprobiere.