Außergewöhnliche Ziele für ein OS?
-
Das primäre Ziel von PrettyOS bestand darin, ein OS für Einsteiger zu sein. Hier gehört langfristig ein stufenweiser Ausbau mit leicht verständlichem Code und entsprechender Dokumentation (in deutsch und englisch) dazu. Das lässt sich mit didaktischem Geschick und Fleiß gut erreichen.
Ein weiteres Ziel ist die Einbeziehung von USB-Speichermedien ("USB-Stick") und Netzwerk, um moderner Hardware gerecht zu werden.
Es kommt aber auch die Diskussion auf, welche besonderen - also außergewöhnlichen - Ziele ein Hobby-/Lehr-OS verfolgen könnte und welche davon man bei PrettyOS zu realisieren versuchen sollte.
Dieser Thread soll diesem Thema "Außergewöhnliche Ziele für ein OS" gewidmet sein.
-
Hier ein Ausschnitt des Logs vom channel #lost auf de.euirc.net vom 14.11.2009 bezüglich des obigen Themas:
<@bluecode> Ansätze in Richtung von managed Sprachen und dann wohl auch beweisbar korrekter Software
<@FreakyPenguin> Hm jo ich würde da etwa Ähnliches angeben wie bluecode
<@FreakyPenguin> Wobei für mich eher das beweisbar korrekt im Vordergrund stehen würde, was aber wohl eben auch etwas mit gemanagten Sprachen mit sich bringen würde, da es sonst wohl gänzlich unmöglich ist, da automatisch irgendwas zu verifizieren.
<@bluecode> jop, so habe ich das auch gemeint
<@FreakyPenguin> Wobei ich es sowieso schon enttäuschend fand, wie schnell sich der ressearch prototype fuer die automatische Verifizierung von Eiffel in die Knie treiben liess, ich glaube das war eine Ganzzahldivision oder so, die meinen testcode nicht mehr vollständig verifizierbar machte...
<@bluecode> ansonsten würde mich eine eher service-orientierte Programmierweise interessieren, wobei ein Service ein eigener Prozess ist. Der IRC-Service würde sich zum beispiel mit meinen IRC-Servern/Channels verbinden und nach außen hin eine Schnittstelle (vom Typ her Communication/Chat) haben. Jedes Programm, dass dann irgendwas mit IRC
machen will, nimmt dann den Service in Anspruch. Das geht dann auch gleichzeitig, sodass ich z.B. meiner IDE
<@bluecode> sagen könnte, dass sie mir doch mal kurzzeitig den ges. Chat in einem unterfenster anzeigen soll. Dabei soll die IDE natürlich nur das Communication/Chat interface kennen und ich muss irgendwie auswählen können was aus den ganzen Services des Typs Communication/Chat sie denn anzeigen soll.-------------------------------
<@bluecode> ah, das andere interessante wäre, nicht zwischen entfernten und lokalen services unterscheiden zu müssen
<ehenkes> managed Sprachen <--- meinst Du sowas wie C++ auf .Net ?
<@bluecode> wahrscheinlich
<@bluecode> wobei ich .Net nicht wirklich kenne
<@FreakyPenguin> Hm also C++ zu verifizieren wird wohl hart, könnte ich mir vorstellen.
<@bluecode> hart im Sinn von nicht (praktisch) machbar, jo
<@bluecode> Pointerarithmetik ist halt böse
<@FreakyPenguin> Jo das meine ich *g*
<@bluecode> und über theoretisch machbar mach ich vorsichtshalber mal keine Aussage *g*-------------------------------
<@bluecode> achso, auch interessant finde/fände ich Ansätze, die parallele Programmierung vereinfachen könnten und halt solche Funktionalität ins OS packen
-
Ich denke man könnte auch mal in ein paar Forschungs-OS reinschauen, obwohl ich da leider nur Singularity kenne. Kennt da jemand noch mehr?
-
http://research.microsoft.com/pubs/69431/osr2007_rethinkingsoftwarestack.pdf
Singularity systems incorporate three key architectural features:
- software-isolated processes (sip) for protection of programs and system services,
- contract-based channels for communication,
- manifest-based programs for verification of system properties.Singularity zielt vorrangig auf Sicherheit und Robustheit ab, wenn ich das richtig sehe. Das darauf basierende Midori will zudem noch schlank (für Netbook & Co.) und portabel sein.
Microsofts Windows-Nachfolger heißt Midori: Wesentliche Teile des möglichen neuen Betriebssystems sind in Managed Code implementiert. Nach einem Bericht der Software Development Times arbeitet Microsoft unter dem Codenamen Midori an einem möglichen Nachfolger für seine Windows-Betriebssysteme. Wann das System auf den Markt kommen soll, wurde nicht bekannt. Midori basiert auf dem von Microsoft Research entwickelten Forschungs-OS Singularity, bei dem wesentliche Komponenten in Managed Code implementiert sind. Die Plattform soll zudem der wachsenden Popularität von Distributed Computing Rechnung tragen, bei dem Ressourcen nicht nur lokal, sondern auch über Netzwerke zur Verfügung stehen. Dem Artikel der Software Development Times zufolge werden Technologien wie Virtualisierung Teil des OS. Wie die Computerworld berichtet, hat Microsoft zwar noch nichts über Midori verraten, aber doch dessen Existenz bestätigt. Nach Ansicht von Andrew Brust, Analyst bei Twentysix New York, muss Microsoft mit dem Erbe des über 20 Jahre alten Windows-Betriebssystems brechen.
Nach über 22 Jahren Windows bereitet Microsoft das Ende der Windows-Ära (XP/Vista/7/8) vor. Höchste Zeit: Internet und Browser ersetzen zunehmend die Aufgaben von Betriebssystem und lokalen Anwendungen. Außerdem muss Dampfschiff Windows seine Altlasten über Bord werfen und schlanker und sicherer werden. Für den Trend NetBooks ist das aktuelle Windows Vista beispielsweise zu umfangreich, weshalb Microsoft das Leben seines Windows-Methusalems XP künstlich verlängern muss. Die Lösung des Problems: Midori könnte das Erbe der Windows-Generation antreten. Das komplett neu strukturierte System entspringt dem Forschungs-Projekt Singularity, das Microsoft bereits 2003 ins Leben gerufen hat. Das Ziel: Midori soll schlanker, flinker und sicherer werden. Dabei macht es künftig keinen Unterschied, ob Sie eine Anwendung lokal oder über das Internet ausführen. Zudem sollen System und Anwendungen unabhängiger von der Hardware laufen und sich bequem auf andere Geräte übertragen lassen. ... Midori soll derartige Probleme mit Hilfe der Virtualisierung beseitigen. Ein Teil des Betriebssystems übernimmt dabei die Rolle des Hypervisors. Anwendungen laufen darauf in virtuellen Bausteinen und brauchen sich um die Hardware-Ausstattung nicht zu kümmern.
http://www.chip.de/artikel/Midori-Das-neue-Betriebssystem-von-Microsoft_32380009.html
-
DROPS:
http://www.inf.tu-dresden.de/index.php?node_id=1409&ln=enDie Betriebssystemegruppe fokussiert ihre Forschungsarbeit auf ein Projekt, das Dresdner Realtime OPerating System (DROPS). Dazu haben wir eine Version von Linux auf einen Mikrokern portiert, so daß man neben Linux-Anwendungen auch spezielle Multimedia- und andere Echtzeitprozesse abarbeiten kann. Mit diesem Projekt wollen wir ein funktionierendes und international konkurrenzfähiges System konstruieren, das wir anderen internationalen Forschungsgruppen unter der GNU-Lizenz zur Verfügung stellen. Wir sind auch auf einem guten Weg, dieses Ziel zu erreichen. Wir tragen regelmässig auf internationalen Tagungen vor, häufig als eine von ganz wenigen europäischen Gruppen. Software aus unserer Gruppe wird weltweit genutzt, darunter Ergebnisse von Beleg- und Diplomarbeiten.
siehe auch:
http://os.inf.tu-dresden.de/drops/
http://os.inf.tu-dresden.de/drops/overview.html
http://os.inf.tu-dresden.de/drops/drops.jpg
-
Es geht also alles stark in Richtung Microkernel. Ein Grund mehr PrettyOS zum YottaKernel zu entwickeln.
-
Barrelfish:
We anticipate the main challenges for operating systems will be scalability as the number of cores increases, and in dealing with processor and system heterogeneity. We have proposed a radically different way of structuring an operating system to address these challenges. Barrelfish is an implementation of our proposal, for "proof of concept" ... At present Barrelfish lacks most of the features of an operating system that make it usable by anyone other than systems researchers taking measurements of the system itself.
http://www.barrelfish.org/bffaq.html
The Multikernel: A new OS architecture for scalable multicore systems
http://www.barrelfish.org/barrelfish_sosp09.pdf1. Make all inter-core communication explicit.
2. Make OS structure hardware-neutral.
3. View state as replicated instead of shared.
-
Ich denke, eine wichtige Entwicklungsrichtung könnte PrettyOS als Lehr-OS sein, also mit vielen Optionen der analytischen Darstellung für den "Experimentator", damit er die Resultate seiner Versuche möglichst einfach überprüfen kann.