[Projektidee] Online OS remastered



  • Hallo liebe Community,

    Auf der Arbeit und gerade steht der Feierabend an aber ihr wollt gerne noch was fertig bekommen, doch der Zug oder Bus kommt schon in wenigen Minuten und ihr habt eine lange fahrt vor euch? Ihr seid unterwegs und habt plötzlich einen genaielen Eifnall dochd er nächste Rechner mit eurer Entwicklungsumgebung ist 40km weit weg? Der Rechner ist in Reparatur oder es ist mal wieder Zeit für einen neuen?

    Das meiste davon ist mir unnd bestimmt auch einigen von euch bereits passiert. Mich nervt das ehrlich gesagt jedes mal, vor allem wenn man gerne gerade Programmieren oder sonst irgendwie arbeiten möchte und z.b. im Zug oder im Bus nach Hause sitzt, den Laptop mal wieder Zuhause gelassen hat weil dieser einiges mehr wiegt als ein Smartphone oder man in Zeiten von Tablet und Co. erst garkeinen besitzt.

    Deswegen habe vor einigen Jahren schonmal ein Konzept erstellt zu einem Online OS, jedoch wie es im Internt wohl mittlerweile üblich ist, haben sich natürlich nur solche Leute dafür interessiert, die das ganze schlecht machen wollten.

    Nun anscheinend ist das Thema aktueller als zuvor und ich möchte gerne solchen Leuten an dieser Stelle mal von vorne hereind en Wind aus den Segeln nehmen!

    Sowas ist nicht umsetzbar, dafür würde sich keiner interessieren ... Sowas kann man nicht machen, das ist technisch nicht möglich

    Und mein persönlicher Favorit

    Das forum ist nur für richtige Entwickler du scheiß noob!!!!

    Danke für diese produktiven geistigen Auswürfe, hier ist mein Gegenargument
    http://www.eyeos.com/

    Nun da es anscheinend machbar ist und man sogar damit geld verdienen kann, möchte ich hier jetzt gerne nochmal meine Projektidee vorstellen:

    Was wäre wenn man ein Betriebssystem immer dabei hätte im Webbrowser, wenn man unterwegs im Browser auf dem Smartphone oder einem Tablet seinen Arbeitsplatz immer dabei hätte, immer die gleiche Arbeitsumgebung, gleiche Einstellungen und alle Programme direkt verfügbar?

    ok geschenkt, kann eye os

    Aber! was wäre denn wenn man auch solche Programme wie Visual Studio, Eclipse und co oder c# Programme darauf laufen lassen könnte mit den bereits installierten Entwicklertools die man benötigt um c++ zu entwickeln?

    Wenn ich einen Fehler gemacht habe und mein OS nicht mehr funktioniert oder ich ein anderes OS mit anderen eigenschaften benötige?

    Spätestens ab diesem Punkt scheitert eye os leider gänzlich oder der administrative Aufwand ist zu groß dafür, weil es nicht darauf ausgelegt ist!

    Daher habe ich mir mal folgende Gedanken dazu gemacht und schon einige Recherchen angestellt

    Browserbasiertes Betriebssystem

    Ein Internet basiertes Betriebssystem müsste zunächst über die gängigen Browser Chrome, Firefox und das Internet in solchem Umfang einsetzbar sein, dass die Arbeit an jedem Standort und auf jedem Gerät immer gleich erledigt werden kann. Hierzu müssen einige Teile des Programms auf einen Server ausgelagert werden, der neben der Verwaltung von Benutzern auch die Ausführung der Programme ermöglicht. Außerdem soll es möglich sein, dass der Service auch auf eigenen Servern installiert und verfügbar gemacht wird.

    Benutzerverwaltung

    Die Benutzerverwaltung unterscheidet sich nicht wesentlich von der eines jeden anderen Webservices. Nach einer Registrierung hat der Anwender die Möglichkeit unter seinem Konto das Betriebssystem zu verwalten. Die Anmeldung auf das Benutzerkonto erfolgt wahlweise über die Registrierung oder im privaten Anwendungsbereich über generelle Zugangsdaten.

    Die Systembenutzer können sich danach separat anmelden, da diese sich auch auf freigegebenen Container anderer Nutzer mit anmelden können.

    Im Anmeldebildschirm des jeweiligen Containers kann nach einem Passwort gefragt werden, dies ist aber nicht zwingend notwendig

    Images

    Der Service ist so aufgebaut, dass jederzeit neue Systemabbilder, sgn. Images hinzugefügt oder entfernt werden können, die eigene individuelle Systeme mit eigenen Eigenschaften und Ressourcen darstellen.

    Images ändern jedoch nichts am grundlegenden Aufbau der einzelnen emulierten Container-Systeme, lediglich an deren Verhalten innerhalb des Emulators.

    OS Container

    Das eigentliche Laufzeitsystem wird in sgn. Containern verwaltet, die für sich jeweils eine eigenständigen Laufzeitumgebung mit einem eigenen separat laufenden Basissystem darstellen. Jeder Container hat eine bestimmte Menge Arbeitsspeicher zur Verfügung und ein eigenes Festplattensystem welches vom OS verwaltet wird.

    Jeder Benutzer kann innerhalb seines Kontos mindestens einen eigenen Container verwalten, der als eigene Computereinheit betrachtet wird und wiederum mehrere Benutzer haben kann.

    Zu Beginn muss der erste Container zunächst angelegt werden. Hierzu klickt der Benutzer auf das “Neu Erstellen” Icon und wählt im danach erscheinenden Dialogfeld ein Betriebssystem-Image aus, welches er installieren möchte. Anschließend startet der Service den Container und führt das Setup durch, welches wenige Minuten in Anspruch nimmt.

    War der Container im Ruhezustand, erscheint vor dem eigentlichen Anmeldebildschirm eine kurze Ladesequenz in der der Service den Container reaktiviert.

    Es erscheint ein Anmeldebildschirm sofern es mehrere Benutzer auf dem System gibt oder der Hauptbenutzer durch ein Passwort gesichert ist, ansonsten wird direkt der Desktop geladen.

    Dieser verhält sich wie bei normal auf einem Gerät installierten Betriebssystemen abhängig vom jeweiligen Gerät (ermittelt über die Bildschirmauflösung) in Tablet/Handy oder PC version.

    In der Container-Übersicht des eigenen Accounts kann der Benutzer außerdem Backups des Containers anfertigen oder Container zurücksetzen/komplett löschen.

    Es ist vorgesehen, dass mehrere Accounts auf den selben Container Zugriff haben können.

    Visualisierung

    Die Darstellung von Elementen erfolgt in Form von html/css und jquery code, der als Rheintext an den jeweiligen Browser des Anwenders zurückübermittelt wird. Hierfür muss vom System aber auch von jeder Anwendung die darauf läuft die eigene grafische API eingebunden werden.

    Diese stellt Klassen für die einzelnen Elemente bereit und erzeugt daraus intern den Quellcode. Es können zudem eigene Steuerelemente erzeugt werden, solange diese eine eigene Erzeugung für den Quellcode besitzen.

    Elementspezifische Eigenschaften auf Anwenderseite (z.b. Info-Popups) müssen über jQuery realisiert werden.

    Apps

    Das System bringt in den meisten Images bereits einige vorinstallierte Apps mit, die der Anwender sofort nutzen kann. Dazu gehören unter anderem die Systemverwaltung von internen Containereinstellungen und der Dateiexplorer.

    Zusätzlich können über den Hoster des Services oder bei privaten Servern über die Bibliothek neue Anwendungen auf das System installiert werden. Diese müssen mit einem Sicherheitsstandard ausgestattet sein, der unter anderem die Funktionsweisen der Anwendung ausweist, welche Daten diese benötigt und in welcher Umgebung sie ausgeführt wird.

    Apps können unter Einbezug der Online OS APIs grundsätzlich von jedem in zunächst c/c++ erstellt und genutzt werden, zusätzlich auch weitere Sprachen wie mindestens C#.

    Apps werden bei Ausführung in eine eigene virtuelle Umgebung, der Service-Runtime geladen und dort ausgeführt. Bei den Standard-Apps in c/c++ handelt es sich dabei um ein eigens virtuell emuliertes minimalestisch gehaltenes Computersystem, bei allen anderen Sprachen basierend auf der jeweiligen Laufzeitumgebung der spezifischen Sprache.
    Für plattformspezifische kompilierte Anwendungen ist eine zusätzliche Virtualisierung auf dem Zielsystem der Anwendung erforderlich (Application-Virtualisation, evtl. + OS Platform)

    Das System hat jederzeit die volle Kontrolle über laufende Apps, deren Speicherverbrauch und Zugriffsrechten auf bestimmte Funktionen wie Netzwerke oder Benutzerdaten.

    Die Bedienung durch den Benutzers erfolgt über den Webbrowser oder den installierbaren Desktop-Client. Hierbei werden alle Befehle und Bewegungen direkt vom Webserver an den aktiven Container weitergeleitet. Dieser kann entsprechend den Message-Pipelines dann darauf reagieren.

    Erweiterungen

    Der Service an sich ist durch Bibliotheken erweiterbar. So ist es z.b. möglich die Standarddateibehandlung von gespeicherten Daten in einen Cloudservice umzuleiten.
    Hierzu stellt das System eine reihe von Schnittstellen bereit die ein Entwickler nutzen kann.

    Weitere Verwendung

    Das Basissystem kann weiterhin für verschiedene Zwecke und Anwendungsgebiete eingesetzt werden, je nach dem welche Images zur Verfügung stehen.

    Es ist denkbar hier weitere virtuelle Umgebungen etwa für ältere Spielesysteme zur Verfügung zu stellen, wobei das OS durch eine Art Lobby und Bibliothek von Spiele-Apps ersetzt wird.

    Zur Erweiterung des Zugriffs wäre eine Desktop-Anwendung mit einem eingebauten Browser-Fenster denkbar, die durch eine Tastenkombination auf das virtuelle System und wider zurück wechselt. (Desktoperweiterung im Sinne von Ubuntu)

    Mit einer installierten Version von BrowserLinux benötigt man keinerlei Festplatten mehr. BrowserLinux kommt mit 76MB und kann so auch auf einem FlashDrive gebootet werden.

    Ich werde mich damit die nächsten tage mal intensiver auseinander setzen und würde mich über Anregung zum Aufbau, zur Umsetzung oder einfach über Mitstreiter freuen, die dasselbe Problem schonmal hatten oder sich einfach aus Interesse anschließen würden.

    Grüße von mir



  • Das ganze ist natürlich theoretisch umsetzbar und technisch machbar und alles.
    Es wird nur trotzdem keinen interessieren, da dir keiner die Applikationen dafür portieren wird.
    Und wen interessiert ein Online OS mit dem er eben gerade die Dinge nicht machen kann die er damit machen können möchte, weil es die Anwendungen dafür nicht gibt.

    Und natürlich: wenn ernsthafte Applikationen auf dem Ding laufen sollen, dann wird der Server ernsthaft Schmalz brauchen. Und dann könnte man gleich ganz normale VMs mit ganz normalen Remote Desktop Protokollen verwenden. Nur halt nem Web-Viewer dazu. Nen VNC Client oder ähnliches per HTML5 umzusetzen sollte ja nicht das grosse Problem sein.

    => Vielleicht solltest du dich also besser umsehen ob du irgendwo günstiges Hosting für entsprechend dicke VM Server auftreiben kannst. Das wäre Step 1. Dann programmierst bzw. customizest du die Management-Software für die VM Server. Und dann bist du fertig, und keiner muss irgendwelche Applikationen portieren.



  • Shaarigan schrieb:

    Und mein persönlicher Favorit

    Das forum ist nur für richtige Entwickler du scheiß noob!!!!

    👍

    Ich hab sowas noch nie gebraucht. Ich mag auch kein Webzeugs.

    Und wenn, würd ichs so machen wie hustbaer. Vielleicht in der Amazon Cloud oder einer ähnlichen Cloud, wo du on demand zahlst, eine VM hosten, wo das drauf läuft, was du brauchst.



  • Ok villeicht mein Fehler aber schaut eich doch bitte erstmal die Seite aus meinem letzten Post an und insbesondere das Video

    http://www.eyeos.com/technology/web-engine

    Dort werden native Windows/Linux Anwendungen (am Beispiel von MS Word 2013) im Online OS gehostet ohne diese portieren zu müssen.

    Vielleicht solltest du dich also besser umsehen ob du irgendwo günstiges Hosting für entsprechend dicke VM Server auftreiben kannst. Das wäre Step 1. Dann programmierst bzw. customizest du die Management-Software für die VM Server.

    Problem an einem Online Hoster oder generell dem Remotezugriff ist leider, dass das RPC Protokoll (zumindest bis WIndows Server 2003/Vista, 2008/7/8/8.1 hab ich nicht getestet) keine native Grafik unterstützt. Heißt im Klartext sowas wie DirectX oder OpenGL ist z.b. nicht möglich über RPC, außerdem verschlingt das RPC Protokoll enorm Performance weswegen das bei geringerer Bandbreite oder einem älteren oder preisgünstigeren Tablet wie dem meinen (ich beziehe mich ja ausdrücklich auf die portable Lösung für Unterwegs) oftmals den Dienst versagt.

    Und dann könnte man gleich ganz normale VMs mit ganz normalen Remote Desktop Protokollen verwenden. Nur halt nem Web-Viewer dazu. Nen VNC Client oder ähnliches per HTML5 umzusetzen sollte ja nicht das grosse Problem sein.

    Dann kann ich auch gleich die restlichen 40 Stunden investieren und das ganze per HTTP synchronisieren und noch son bischen hier und da für das fertige Online OS draufpacken.

    Ist jetzt sicherlich Ansichtssache aber aber ich würde auch solchen Anbietern wie Apple, Amazon, Google und co niemals meine Projektdaten anvertrauen (Google Docs ist da schon hart and er grenze) und leider gibt es bislang nach meiner gestrigen Recherche noch keinen Anbieter der mir das für den Heimserver zur Verfügung stellt.

    (Auch wieder Ansichtssache aber ich investier da lieber 5-6 Stunden in das Setup eines Linux-Servers)



  • Shaarigan schrieb:

    Danke für diese produktiven geistigen Auswürfe, hier ist mein Gegenargument
    http://www.eyeos.com/

    Nicht zu vergessen unios!



  • welchen vorteil gegenueber einer remote verbindung haette das?

    mein raspberry pi 2 ist 24h am tag online, ich kann mich per ssh-client damit verbinden und drauf arbeiten als waere ich zuhause, da mein c++ source auf meinem router als git repository liegt.
    mein handy hat ein HDMI out (slimport cable), somit kann ich an fernsehern oder monitoren arbeiten wenn ich moechte.
    dazu eine blutooth tastatur und es ist tatsaechlich als ob man zuhause coded.
    wenn ich rechenleistung abrufe, dann kostet das mein handy keine batteriezeit

    das tolle ist, wenn die ssh verbindung abbricht und wieder da ist, mach ich einfach an der stelle weiter an der ich war. 👍



  • Shaarigan schrieb:

    Ok villeicht mein Fehler aber schaut eich doch bitte erstmal die Seite aus meinem letzten Post an und insbesondere das Video

    http://www.eyeos.com/technology/web-engine

    Dort werden native Windows/Linux Anwendungen (am Beispiel von MS Word 2013) im Online OS gehostet ohne diese portieren zu müssen.

    EyeOS ist kein "Online OS", es ist einfach eine VM Lösung mit einer auf Low-Bandwidth optimierten Remote-Desktop Protokoll.
    Das OS das läuft ist entweder Windows oder Linux, und die Technik ist die selbe wie sie auch bei z.B. Hyper-V + Remote-Desktop verwendet wird: die VM hat einen speziellen Grafikkartentreiber laufen und das System verwendet die an diesen Grafikkartentreiber gehenden Aufrufe um zu entscheiden wie das Remote Desktop Protokoll die Änderungen im dargestellten Bild mit möglichst wenig Banbreite übertragen kann.

    Clientseitig läuft dann ein auf Javascript + HTML5 aufbauender Webclient.

    Also im Prinzip genau das was ich beschrieben habe.

    Shaarigan schrieb:

    Vielleicht solltest du dich also besser umsehen ob du irgendwo günstiges Hosting für entsprechend dicke VM Server auftreiben kannst. Das wäre Step 1. Dann programmierst bzw. customizest du die Management-Software für die VM Server.

    Problem an einem Online Hoster oder generell dem Remotezugriff ist leider, dass das RPC Protokoll (zumindest bis WIndows Server 2003/Vista, 2008/7/8/8.1 hab ich nicht getestet) keine native Grafik unterstützt. Heißt im Klartext sowas wie DirectX oder OpenGL ist z.b. nicht möglich über RPC, außerdem verschlingt das RPC Protokoll enorm Performance weswegen das bei geringerer Bandbreite oder einem älteren oder preisgünstigeren Tablet wie dem meinen (ich beziehe mich ja ausdrücklich auf die portable Lösung für Unterwegs) oftmals den Dienst versagt.

    Vielleicht solltest du dich nochmal ein wenig umsehen. RDP unterstützt ab Version 8 (=Windows 😎 vGPU.
    Und enorm Performance verschlingt da eigentlich auch nix.

    Shaarigan schrieb:

    Und dann könnte man gleich ganz normale VMs mit ganz normalen Remote Desktop Protokollen verwenden. Nur halt nem Web-Viewer dazu. Nen VNC Client oder ähnliches per HTML5 umzusetzen sollte ja nicht das grosse Problem sein.

    Dann kann ich auch gleich die restlichen 40 Stunden investieren und das ganze per HTTP synchronisieren und noch son bischen hier und da für das fertige Online OS draufpacken.

    Ist jetzt sicherlich Ansichtssache aber aber ich würde auch solchen Anbietern wie Apple, Amazon, Google und co niemals meine Projektdaten anvertrauen (Google Docs ist da schon hart and er grenze) und leider gibt es bislang nach meiner gestrigen Recherche noch keinen Anbieter der mir das für den Heimserver zur Verfügung stellt.

    (Auch wieder Ansichtssache aber ich investier da lieber 5-6 Stunden in das Setup eines Linux-Servers)

    40 Stunden? Trinkst du?
    Ernsthaft, ich will nicht unnötig unfreudnlich sein, aber es macht schon den Eindruck dass du überhaupt keinen Plan von dem hast wovon du sprichst.

    ps: Es gibt RDP Clients für z.B. Android die RemoteFX (-> vGPU Support etc.) unterstützen. Vielleicht solltest du erstmal das ausprobieren bevor du meinst etwas eigenes basteln zu müssen.



  • Nicht zu vergessen unios!

    Naja, hübsch ist es auch wenn es sich dabei nur um einen Fake handelt 😃

    EyeOS ist kein "Online OS", es ist einfach eine VM Lösung mit einer auf Low-Bandwidth optimierten Remote-Desktop Protokoll.
    Das OS das läuft ist entweder Windows oder Linux, und die Technik ist die selbe wie sie auch bei z.B. Hyper-V + Remote-Desktop verwendet wird: die VM hat einen speziellen Grafikkartentreiber laufen und das System verwendet die an diesen Grafikkartentreiber gehenden Aufrufe um zu entscheiden wie das Remote Desktop Protokoll die Änderungen im dargestellten Bild mit möglichst wenig Banbreite übertragen kann.

    Laut der Eye OS Seite ist das zunächst mal ein PHP Interface das mit HipHop kompiliert wurde unter dem dann einerseits eine eigene Betriebsstruktur steht auf der native Apps laufen und andererseits ein VM Cluster der sowohl eine Linux, als auch eine Windows VM hostet und mittels Transferprotokoll und der eigenen Visualisierungslösung in HTML5 Quellcode umsetzt der dann and en Client weitergereicht wird.

    In sofern hast du teilweise Recht allerdings per definition

    Ein Betriebssystem ist eine Zusammenstellung von Computerprogrammen, die die Systemressourcen eines Computers wie Arbeitsspeicher, Festplatten, Ein- und Ausgabegeräte verwaltet und diese Anwendungsprogrammen zur Verfügung stellt. Das Betriebssystem bildet dadurch die Schnittstelle zwischen den Hardware-Komponenten und der Anwendungssoftware des Benutzers.[1] Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start unterschiedliche Aufgaben übernehmen.

    (Quelle Wikipedia)

    stellt diese besondere Konstellation von Eye OS ein Betriebssystem dar, zumindest kann man dies unter gewissen Aspekten so auslegen.

    An der Umsetzung finde ich es allerdings etwas overkill da für jeden Benutzer eine eigene VM zu starten, das ginge sicher mit einer einzigen VM und sowas wie Microsofts App v und co. noch etwas server leichter. Außerdem wie schon in meinem Startpost beschrieben würde ich da z.b. C/C++ oder C# als native Applösungen zumindest soweit der Umfang nicht allzu speziell wird sehen.

    40 Stunden? Trinkst du?
    Ernsthaft, ich will nicht unnötig unfreudnlich sein, aber es macht schon den Eindruck dass du überhaupt keinen Plan von dem hast wovon du sprichst.

    Nein ich trinke nicht und ja ich hab schon eine Idee wie ich das realisieren kann, außerdemw ar die Rede von "Nen VNC Client oder ähnliches per HTML5 umzusetzen sollte ja nicht das grosse Problem sein.", wenn ich soweit wäre, dass ich eine VM hätte mit einem solchen Webviewer, dann könnte ich gleich noch 40 Stunden investieren und das ganze so aufbauen wies da oben beschrieben ist. In sachen Quellcode raushauen bin ich da eigentlich recht fix 😉

    Aber um jetzt mal auf die eigentliche Aussage des Startposts zurück zu kommen (ja es gibt andere Lösungen die im Einzelfall sicherlich besser sind, die einzelnen Aspekte haben wir ja jetzt ausführlich beleuchtet), ich fände das trotz allem mal interessant zu machen und "würde mich über Anregung zum Aufbau, zur Umsetzung oder einfach über Mitstreiter freuen, die dasselbe Problem schonmal hatten oder sich einfach aus Interesse anschließen würden".

    Ich möchte nur mal darauf hinweisen, dass die Forums-Community hier ein "echtes" Betriebssystem entwickelt, da wäre dann auch die Frage " 🙄 "Warum nicht Windows, Linux oder Mac oder ein auf Linux basierendes OS" und das ist genaud as was ich anfangs auch kritisiert habe, warum wird man grundsätzlich immer erstmal in Grund und Boden diskutiert wenn man einfach mal einem spontanen Impuls freien lauf lässt, dafür wurde das Internet ja schließlich ursprünglich konzipiert: Informations- und Wissensaustausch und nicht zum online shoppen oder pornos konsumieren!

    Es wäre schön wenn man sich bevor man seiner gewohnten Überzeugung handelt, kurz und sei es auch nur für eigige wenige Sekudnen vorurteilsfrei das ganze vorstellen würde, ich glaube damit wäre nicht nur auf diese Idee bezogen sodnern auch in etlichen anderen Bereichen des Internet vielen mit geholfen.
    Schade, dass es bis jetzt nicht wirklich viel konstruktives zum Projekt an sich gab!

    P.S.

    bevor du meinst etwas eigenes basteln zu müssen

    Ohne hier irgendeinem jetzt zu nahe zu trteen zu wollen aber was ich mit emiern Freizeit anstelle ist doch wohl meine Sache oder?



  • lol
    Ich klink mich aus, wird mir eindeutig zu drollig hier.


Anmelden zum Antworten