Mitarbeiter für Query OS gesucht
-
Hallo Community,
ich möchte hier gerne mein neues Projekt vorstellen an welchem ich seit Ende 2010 arbeite. Es geht dabei in erster Linie darum, andere interessierte Entwickler zu finden um ein Team zu bilden und die Entwicklung zu beschleunigen.
1 Einleitung
2 Technik2.1 Dateisystem & Benutzerverwaltung
2.2 Multitasking
2.3 Shell
2.4 2D/3D Grafik-Schnittstelle
2.5 Grafische Benutzeroberfläche
2.6 QScript
2.7 Anwendungen / Programme3 Anwendungsgebiete für Query OS
4 Projekterfolg?
5 Projektorganisation
6 Stellenangebote
7 Kontaktinformationen1 Einleitung
Bei meinem Projekt handelt es sich um „Query OS“ für „Query Operating System“ kurz QOS. Es soll ein modernes Web-Betriebssystem werden, welches ohne Browser-PlugIns läuft und auch weiterhin laufen soll. Als Beispiel, damit man eine bessere Vorstellung davon bekommt um was es in etwa geht, sei dieser Wikipedia Eintrag: http://de.wikipedia.org/wiki/Online_Operating_System genannt. Es handelt sich dabei also um ein Web basiertes OS, welches es ermöglicht überall und egal auf welchem Gerät immer das gleiche OS, Rechte, Anwendungen, Daten und Oberflächen zu haben.
Ich habe sämtliche Informationen zum Projekt sowie zur geplanten Team-Arbeit und Stellenangebote auf meinem Weblog(Was sich später noch ändern soll), http://www.kasenoru.de im Widget „Query OS“ untergebracht. Dort gibt es genauere Informationen zu den einzelnen Systemen und der Projektorganisation.
Trotz der angegebenen Webseite, möchte ich hier nochmal alle Informationen kurz zusammenfassen.
2 Technik
Query OS verwendet auf der Client-Seite JavaScript bzw. QScript (siehe unten) und PHP 5 auf der Server-Seite. Des Weiteren liste ich hier nochmal alle Grundsysteme von Query OS auf.
2.1 Dateisystem & Benutzerverwaltung
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/FileSystem.png
Query OS arbeitet aktuell mit einem virtuellen Dateisystem und emuliert sämtliche Dateirechte, ACLs, sowie Benutzer und Benutzergruppen. Es werden zwar schon echte Dateien auf dem Server angelegt, aber es werden keine echten Dateirechte gesetzt oder echte Benutzer angelegt. Das Dateisystem ist dabei an UNIX angelehnt.
Der Grund ist, dass Query OS auch auf einfachem Webspace „relativ gut“ laufen soll. Denn dort hat man z.B. keine Rechte, neue Benutzer anzulegen. Geplant ist aber auch ein „realer“ Modus, da nicht jeder Anwender virtuell arbeiten möchte. In diesem „realen“ Modus werden dann wirklich echte Dateirechte gesetzt sowie echte Benutzer auf dem Server angelegt. Das ist auch der Grund, warum das Dateisystem an UNIX angelehnt wurde, denn so gibt es bei einem UNIX/Linux Server keine großen Schwierigkeiten in den „realen“ Modus zu wechseln.
Weitere Informationen zum Dateisystem gibt es hier: http://www.kasenoru.de/?page_id=428
2.2 Multitasking
Query OS arbeitet mit „präemptiven“ Multitasking, alle Prozesse laufen unabhängig voneinander und können das System nicht ohne weiteres gefährden. Auch hat nur der Kernel-Prozess den Zugriff auf den DOM-Tree, Canvas-API, OpenGL, etc.
Dabei macht Query OS gebraucht von der HTML5 Web-Worker Technologie, welche es ermöglicht, auf der Client-Seite mit JavaScript und echtem Multithreading zu arbeiten.
Der hier als „Kernel-Prozess“ bezeichnete Prozess ist dabei der Main-Thread, der alle Rechte hat. Das ist von den Web-Browsern aus Gründen der Sicherheit so festgelegt. Wenn man Query OS bootet, startet der Kernel-Prozess zunächst die Shell, welche ebenfalls ein eigener Prozess ist und den Kernel-Prozess als Eltern-Prozess hat. Startet man anschließend ein Programm auf der Shell, so hat dieser daraus resultierende Prozess den Shell-Prozess als Eltern-Prozess. So ergibt sich, wie bei anderen Systemen auch, eine Hierarchie von laufenden Prozessen.
Dabei kann, wie oben bereits erwähnt, nur der Kernel-Prozess direkt auf bestimmte Browser-Funktionen wie den DOM-Tree, Canvas-API, OpenGL und Multimedia-Fähigkeiten zugreifen. Möchte ein anderer Prozess ebenfalls die oben genannten Funktionen nutzen, so muss dieser eine Nachricht an den Kernel-Prozess senden. Welcher dann ggf. die gewünschte Funktion ausführt, verweigert oder an andere Prozesse delegiert.
Alle Prozesse unter Query OS unterhalten sich über ein absolut asynchrones Nachrichten-System. Dieses asynchrone Nachrichten System hat allerdings auch seine Nachteile.
Beispielweise sind gewohnte, synchrone „ReadLine“ Anweisungen, wie man sie aus der Shell-Programmierung kennt, unter Query OS etwas anders. Dort muss man anschließend auf eine Nachricht warten, bis der Benutzer mit seiner Eingabe fertig ist.
Weitere Informationen zum Multitasking gibt es hier: http://www.kasenoru.de/?page_id=433
2.3 Shell
Unter Query OS gibt es auch eine Shell, welche die unterste Ebenen für die Kommunikation mit dem Anwender darstellt. Die Shell lässt sich ähnlich wie eine UNIX Shell bedienen, hier und da fehlen aber noch ein paar kleine Sachen.
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosShellLogin.png
Es gibt die üblichen Funktionen wie eine Autovervollständigung und eine Historie. Auch die System-Programme sind ähnlich benannt wie bei UNIX oder Linux. Bekannte Befehle wie CD, CP, RM, LS, CHMOD, CHGRP, SETFACL, USERADD, etc. sind auch unter Query OS verfügbar. Natürlich in wesentlich kleinerem Funktionsumfang. Wenn ich mich nicht verzählt habe, gibt es aktuell 26 Shell-Programme für Query OS.
Im Übrigen gibt es auch ein Shell-Skript System, also Unterstützung für Shell-Skripte, welche man für einfache Aufgaben verwenden kann statt immer komplette Programme schreiben zu müssen. Mehr Informationen zur Shell gibt es hier: http://www.kasenoru.de/?page_id=532
2.4 2D/3D Grafik-Schnittstellen
Ich habe für Query OS bisher nur eine API für die Canvas 2D API der Browser bereit gestellt. Eine Schnittstelle zu OpenGL soll ebenfalls folgen. (Es wird in der Tat von Schnittstellen gesprochen, da ein Query OS Prozess keinen direkt Zugriff auf OpenGL oder die Canvas 2D API hat).
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosCanvasRect.png
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosCanvasText.png
Weitere Informationen dazu findet man hier: http://www.kasenoru.de/?page_id=435
2.5 Grafische Benutzeroberfläche
Natürlich gibt es unter Query OS auch eine grafische Benutzeroberfläche, auch wenn diese noch nicht so weit fortgeschritten ist, so gibt es eine recht saubere Basis sowie eine strikte Trennung zwischen UI und Backend-Logik.
Dazu habe ich die so genannte QAML "Query OS Application Markup Language" und QSL "Query OS StyleSheet Language" entwickelt. Diese Technologie ist vergleichbar mit JSP/JSF Tag-Libs bzw. WPF XAML.
Man schreib also keinen direkten HTML Code für die Oberflächen, sondern speziellen XML Code, aus welchem der QRC "Query OS Resource Compiler" anschließend HTML Dateien generiert.
Über die QSL definiert man eigene QAML Komponenten, auch sind alle Standard-Komponenten wie Buttons, Check-Boxes, etc. über QSL definiert. Bei QSL handelt es sich ebenfalls um XML, man legt dort fest, welcher HTML Code erzeugt wird, welche QScript-Klasse(siehe unten) die Backend-Logik übernimmt und viele weitere Sachen. Auch Vererbungen zwischen Komponenten sind möglich.
Das Aussehen des Query OS Desktops ist noch nicht klar definiert, aktuell gibt es nur einen Entwickler-Desktop, welcher dazu dient, grafische Anwendungen testen zu können.
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosDesktop.png
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosDesktopWindows.png
Eine Idee von mir wäre, den Desktop und die ganze UI von Query OS so zu bauen, dass die Desktop-Version und Mobile-Version von Query OS beide gleich sind. Ohne das dabei ein Nachteil für den Desktop-User entsteht. Denn dann würden so gut wie alle Anwendungen auch mobil laufen. Man bräuchte dann nicht 2 Oberflächen für jede Anwendung entwerfen.
2.6 QScript
Bei QScript handelt es sich um eine eigene JavaScript Erweiterung, um mit JavaScript sauberer arbeiten zu können. Über QScript stehen Klassen, Namespaces sowie ein Modulsystem zur Verfügung. Natürlich können QScript Dateien nicht direkt vom Browser ausgeführt werden, dazu muss man diese erst „kompilieren“. Dazu gibt es den so genannten QMC „Query OS Meta Compiler“, welcher aus den QScript Dateien valide JavaScript Dateien erzeugt.
Weitere Informationen zu QScript gibt es hier: http://www.kasenoru.de/?page_id=572
2.7 Anwendungen / Programme
Programme unter Query OS werden in Paketen abgelegt und stellen keine direkte Datei dar. Der Aufbau eines Pakets für ein Shell-Programm sieht so aus.
Bild: http://www.kasenoru.de/wp-content/uploads/2011/06/QosApps.png
Bei „MyApp.qcon“ handelt es sich um das eigentliche Paket mit der Endung „*.qcon“ für „Query OS Console Programm“. Dabei handelt es sich um ein Verzeichnis, welches alle nötigen Daten für das Programm enthält wie Module, Server-Skripte, Ressourcen, etc. Es ist ein wenig an das Paket-System von Mac OS X angelehnt.
Weitere Informationen dazu findet man hier: http://www.kasenoru.de/?page_id=534
3 Anwendungsgebiete für Query OS
Da Query OS 100% Web-basiert läuft und bisher keinerlei PlugIns benötigt, ist der Kernel fast auf allen HTML 5 kompatiblen Web-Browsern, egal ob Handy oder Desktop-PC, grundsätzlich lauffähig.
Einsatzbereiche könnten Schulen(eventuelle Ablösung von ISERV) oder Firmen z.B. im Intranet sein. Auch Privatleute könnten das System recht gut nutzen, sei es über Hosting-Angebote oder Eigeninstallationen. So hätte man immer die gleichen Anwendungen, Spiele, Daten und Oberflächen und das am Desktop sowie mobil. Auch das Betreiben auf einem schnellen USB-Stick mit portablem Web-Server wäre denkbar. Es gibt da noch eine ganze Reihe anderer Möglichkeiten.
Auch muss Query OS nicht zwangsläufig als klassisches Betriebssystem mit grafischer Oberfläche betrieben werden. Aufgrund des recht modularen Aufbaus, z.B. sind Shell und UI-Manager beliebig austauschbar bzw. abnehmbar, lassen sich auch ganz andere Systeme daraus bauen.
4 Projekterfolg?
Ich denke schon das dieses Projekt recht erfolgreich werden kann, es hängt ganz davon ab, was man daraus macht. Sicherlich gibt es einige Konkurrenten, daher habe ich darauf geachten möglichst moderne Technik zu verwenden, um schon mal in diesem Bereich vorne zu liegen. Auch habe ich für Query OS eine recht saubere Basis zum sauberen Entwickeln mit JavaScript geschaffen. Das macht es auch Entwicklern viel einfacher Software zu schreiben. Und je mehr Anwendungen für Query OS entwickelt werden, desto beliebter wird es werden. Daher sollte man diesen Punkt nicht vernachlässigen.
Als Privatmann kann es gut sein, dass man nicht direkt alle Vorteile eines solchen "Online-Betriebssystems" sieht. Da man sowas selber bisher vielleicht nie gebraucht hat. Es gibt aber dennoch eine Menge Leute die ohne solche "Online-Betriebssysteme" gar nicht klar kommen würden. Man stelle sich beispielsweise Anwendungen für die Kundenverwaltung vor -> CRM "Customer Relationship Management" für Query OS. Es gibt viele Firmen die sehr großen Nutzen davon haben.
Auch an Schulen gibt es überall das System "ISERV", welches in meinen Augen und in den Augen der Lehrer sowie Schüler nicht wirklich ausreichend ist. Eine Query OS Installation mit entsprechenden Anwendungen könnte hier Abhilfe schaffen.
Wenn man genauer überlegt, würden sich noch viele weitere Möglichkeiten bieten, da Query OS recht flexibel gebaut ist. Auch die Installation ist dank PHP sehr schnell und einfach und fast auf jedem Webspace möglich. Man braucht nicht direkt einen Root-Server.
Natürlich gibt es, wie oben erwähnt, einige Konkurrenz-Produkte, aber wenn man es richtig macht bin ich davon überzeugt, dass sich das Projekt durchsetzen kann. Es liegt hier auch nicht alleine an mir, sondern viel mehr auch an dem, was das Team leistet.
5 Projektorganisation
Ich bevorzuge immer eine saubere Projektorganisation, da ich aus Erfahrung weiß, dass es ohne nur scheitern kann.
Für die Quelltext-Verwaltung gibt es ein SVN Repository unter http://www.wush.net/svn/queryos auf welches man offenen Lese-Zugriff über anonymous hat. Dieser offene Lese-Zugriff dient aber nur dazu, sich schon vorher einmal das Projekt anschauen zu können.
Für das Projektmanagement habe ich das bekannte System [url='http://trac.edgewall.org/']„Trac“[/url] eingerichtet, es sind auch ein paar PlugIns installiert um z.B. Quelltexte besser darzustellen.
Auch plane ich regelmäßige Konferenzen über z.B. NetViewer, um Konzepte und Ideen gemeinsam im Team besprechen zu können, sowie über den aktuellen Stand des Projektes diskutieren zu können.
Weitere Informationen zur Projektorganisation gibt es unter: http://www.kasenoru.de/?page_id=390
6 Stellenangebote
Es gibt verschiedene Möglichkeiten Query OS zu unterstützen. Sei es als Kernel-Entwickler, UI-Entwickler oder Utility-Entwickler. Auch sind UI-Designer, welche mit QAML, QSL und CSS die Oberflächen von Query OS gestalten, gesucht. Darüber hinaus werden auch Grafik-Designer benötigt, welche z.B. Icons, Hintergründe und sonstige Grafiken erstellen und dabei mit den UI-Designern zusammenarbeiten.
Zuletzt sind noch ein Web-Designer für den Web-Auftritt gesucht sowie für später noch ein Spieleentwickler, welcher ein paar Standard-Spiele für Query OS entwerfen soll.
Weitere Informationen und genauere Beschreibungen zu den Stellenangeboten gibt es unter: http://www.kasenoru.de/?page_id=390#angebote
7 Kontaktinformationen
Wer Interesse am Projekt hat und gerne mitwirken möchte, der schreibt bitte einfach
eine E-Mail an:In der E-Mail sollte man ein paar Informationen(Unter anderem eine Altersangabe) über sich selbst, das eigene Zeitverhältnis, den Grund für die gewünschte Mitarbeit, den gewünschten Tätigkeitsbereich, bisherige Erfahrungen sowie eventuelle Referenzen angeben. Wobei man mir, was die Referenzen betrifft, nichts beweisen muss. Es wird sich schon zeigen ob man für eine Stelle geeignet ist, dennoch empfehle ich jedem schon ein paar Jahre Erfahrung mitzubringen.
Als Entwickler kann und sollte man sich vorher unbedingt schonmal den Quelltext aus dem SVN Repository:
ansehen, um besser abschätzen zu können ob die eigenen Fähigkeiten ausreichend sind. Vielleicht erkennt der ein oder andere auch schon die ersten Schwächen und Lücken im System(Diese gibt es definitiv) und hat Verbesserungsvorschläge parat.
Aber selbst wenn man nicht gleich alles versteht, dass ist normal. Man braucht sehr lange Zeit alles verstehen zu können und ich habe Verständnis dafür. Da aber alles recht organisiert abläuft ist das gar nicht so schlimm. Im Ticket-System gibt es auch paar ganz einfache Tasks, an welche man sich zuerst wagen sollte um sich so Stück für Stück in das Projekt einarbeiten zu können.
Wenn allgemeine Fragen zum Projekt bestehen, kann man diese an:
senden.
Mit freundlichen Grüßen
Kasenoru
-
Alles in allem hoffe ich das die Präsentation nicht zu „kurz“ oder zu „leer“ rüber kam
Die Präsentation ist schon gut. Gemessen am Durchschnitt sogar sehr gut finde ich.
-
Danke, aber ich habe gemerkt, dass da noch ordentlich Verbesserungspotenzial war. Darum habe ich jetzt alles überarbeitet und nun doch mehr Informationen aufgeschrieben. Da das ganze jetzt wesentlich länger ist als vorher, habe ich auch eine Gliederung eingefügt.
Mit freundlichen Grüßen
Kasenoru
-
Ich fand das vorher besser. Jetzt ist es zu lang