Sivelkiriya-Betriebssystem: Einführende Beschreibung

Hallo Habr.

Dieser Artikel eröffnet eine Reihe von Veröffentlichungen zum Betriebssystem Sivelkiriya, das sich derzeit in einem frühen Stadium des Entwurfs und der Entwicklung befindet. In den Artikeln der Reihe werden die Systemprobleme gängiger Betriebssysteme ausführlich beschrieben und Lösungsvorschläge vorgeschlagen. Der Autor hat sich nicht zum Ziel gesetzt, jemanden von irgendetwas zu überzeugen, sondern konzentriert sich ausschließlich auf die Beschreibung der vorgeschlagenen Lösungen, um von der Diskussion zu profitieren. Die Veröffentlichung erfolgt in Teilen, da der Umfang der vollständigen Beschreibung über alle angemessenen Beschränkungen der Größe des Artikels hinausgeht.

Jeder, der interessiert ist, willkommen bei Katze.

Heutzutage werden Sie niemanden mit Aussagen über die Entwicklung des nächsten Betriebssystems überraschen, das besser, bequemer und attraktiver werden sollte als seine Vorgänger und Konkurrenten. Es gibt mindestens drei Hauptakteure auf dem Betriebssystemmarkt für PCs und zwei auf dem Betriebssystemmarkt für mobile Geräte. Trotz der offensichtlichen Vielfalt ist es unmöglich, eine gewisse Ähnlichkeit zwischen ihnen nicht festzustellen: Obwohl die Technologien und Methoden zur Darstellung von Diensten durch das Betriebssystem unterschiedlich sind, bleiben die meisten Konzepte und Konzepte beim Übergang von einem System zum anderen unverändert.

Daher bieten fast alle derzeit gängigen Betriebssysteme Unterstützung für allgemeine Funktionen auf Implementierungsebene (Fenster, Grafiken, Dateien, Netzwerk, Geräte), jedoch nicht auf Ausdrucksebene der Konzepte des Themenbereichs (Chatnachrichten, Tracklisten, Servicerechnungen). Bestehende Ausnahmen (Kontaktliste, Zwischenablage, Benachrichtigungsleiste) betonen nur die Regel. Die technische Implementierung (Dateien, Prozesse, Threads) ist in vielerlei Hinsicht ebenfalls sehr ähnlich.

Die Nutzungseinheit der Computerfunktionen ist in allen Fällen die Anwendung, die selbst entscheidet, wie die verfügbaren Ressourcen zur Erreichung ihrer Ziele geleitet werden. Verschiedene Anwendungen sind nur insoweit miteinander verbunden, als ihre Entwickler sich um eine solche Verbindung gekümmert haben. Oft können Programme, die Close-Funktionen ausführen, keine Daten austauschen, haben eine andere Schnittstelle, verwenden eine andere Terminologie und so weiter. Diese Isolation von Komponenten hat rein technische Wurzeln, aber der Benutzer leidet darunter. Ein Computer aus einem integralen Werkzeug wird zu einem Haufen heterogener Lösungen, und die universelle Kompatibilität, die es verdient, zum Grundprinzip des Designs zu werden, bleibt nur eine optionale Möglichkeit.

Derzeit gibt es immer mehr Lösungen, die verschiedene Anwendungen und Dienste miteinander integrieren. Hersteller von Softwareprodukten scheinen erkannt zu haben, dass die Reduzierung vieler Möglichkeiten auf ein bequemes System der einzige Weg zu Harmonie und Ordnung ist, was das Leben des Benutzers besser und einfacher macht. In vielen Fällen wird jedoch der blinde Kampf inkompatibler Programme, von denen jedes versucht, das Unermessliche zu erfassen, durch einen noch heftigeren Kampf von Integratoren ersetzt, die alles tun, um den Benutzer (und Entwickler) nicht von ihrer Plattform zu lassen. Anstatt die Welt zu vereinen, trennen Integratoren sie, um zu herrschen.

Ein weiterer unvermeidlicher Aspekt der Welt der einzelnen Anwendungen zur Lösung spezifischer Probleme besteht darin, dass jede der Anwendungen ihre eigenen Vor- und Nachteile hat, die häufig nicht behebbar sind. Die Wahl zwischen Benutzerfreundlichkeit, umfassender Funktionalität und Unterstützung für bestimmte Vorgänge ist ebenso unvermeidlich wie bedauerlich. Wenn ein Benutzer Funktionen benötigt, die nicht im Rahmen einer Anwendung bereitgestellt werden, um seine Ziele zu erreichen, muss er mehr als ein Tool verwenden und Zeit und Mühe aufwenden, um Daten zu wechseln und zu übertragen.

Die Softwareentwicklung ist ein zeitaufwändiger Prozess, und daher werden Quantität und Qualität der Funktionalität in jedem Produkt zwangsläufig begrenzt sein. Gleichzeitig wurde der Löwenanteil der von Entwicklern gelösten Aufgaben und Probleme bereits in anderen Produkten gelöst. Die Wiederverwendung dieser Lösungen anstelle ihrer Neuentwicklung würde Ressourcen freisetzen, mit denen andere Ziele erreicht werden können, die für den Benutzer notwendiger sind.

Schließlich ist das Programmverhalten oft nicht ethisch. Anstatt dem Benutzer bei seiner Arbeit zu helfen, belästigen ihn Programme mit nervigen Kommentaren und Vorschlägen. Anstatt eine bequeme Methode zur Bereitstellung von Diensten zu entwickeln, die auf gegenseitigem Respekt beruhen, mischen sie den Werbeinhalt mit dem Ziel. Das Ergebnis ist eine Situation, in der selbst der Besitzer des Geräts sein Verhalten nicht kontrolliert.

Das Sivelkiriya-Betriebssystem ist als Lösung für die oben genannten und einige andere Probleme gedacht. Gemäß Plan und Design sollte es zentral und respektvoll unter für beide Seiten vorteilhaften Bedingungen dazu beitragen, die folgenden Kategorien von Teilnehmern bei der Entwicklung und Verwendung von Software zu erreichen:

  1. — , , , .
  2. — , , , , — , - .
  3. — , , .
  4. — , , , .
  5. — , , , .

Im Folgenden beschreiben wir die Architektur eines solchen Betriebssystems und wie es hilft, die Situation zu korrigieren. Weitere Artikel in der Reihe werden die Probleme, die sie löst, im Detail untersuchen, um zu zeigen, dass sie einen systematischen Ansatz erfordern. Abschließend werden die Vor- und Nachteile der vorgeschlagenen Lösung und deren Umwandlung von einem Konzept in ein fertiges Produkt aufgezeigt.

Das Konzept von OS Sivelkiriya


Das Betriebssystem Sivelkiriya beginnt mit einer Überarbeitung der Grundlagen, bei der ein Teil der allgemein akzeptierten Konzepte beseitigt oder ersetzt wird. Die folgenden Entitäten, die normalerweise die Grundlage des Betriebssystems bilden, existieren im Betriebssystem Sivelkiriya nicht:

  1. Anwendung.
  2. Prozess.
  3. Datei als Datenbereich auf der Festplatte.
  4. End-to-End-Dateisystem, dessen Navigation nur durch Zugriffsrechte eingeschränkt ist.
  5. Befehlszeile als Umgebung zum Ausführen einzelner Anwendungen.
  6. Universelle Skripte.
  7. Verfügbarkeit der Basisbetriebssystem-API für jede Komponente.
  8. Die Möglichkeit, Standardbibliotheken der meisten modernen Programmiersprachen direkt zu übertragen. Infolgedessen die Möglichkeit, vorhandene Software direkt von anderen Betriebssystemen zu übertragen, außer in bestimmten Fällen.
  9. Unterstützung für Programmiersprachen ohne Objektorientierung.

Diese Liste ist nicht vollständig. Dies bedeutet in keiner Weise eine Einschränkung der Fähigkeiten eines Programmierers oder Benutzers und zeigt lediglich an, dass im Rahmen des Sivelkiriya-Betriebssystems dieselben Ziele anders erreicht werden als in den meisten vorhandenen Betriebssystemen.

Nachdem wir diese etablierten Einheiten aufgegeben haben, beabsichtigen wir, ein Betriebssystem zu erstellen, das auf den folgenden Prinzipien basiert:

  1. «» - , , , . , , , , . . , , .
  2. . , , , , .
  3. , . , ( ). ( ) . , ( ) .
  4. , , , , . , .
  5. Für jedes Modul stehen nur die Daten und Interaktionsmethoden mit dem Betriebssystem zur Verfügung, die zur Ausführung seiner Funktion erforderlich sind (vom Prototyp definiert). Kein Modul hat Zugriff auf alle Funktionen des Betriebssystems. Das Duplizieren von Funktionen, die bereits einem bestimmten Prototyp innerhalb des Moduls zugeordnet sind und sich auf einen anderen Prototyp beziehen, ist nicht zulässig.
  6. Die Entwicklung von Datenschnittstellen und Prototypmodulen erfolgt kontinuierlich durch gemeinsame Anstrengungen von Programmentwicklern und Entwicklern des Betriebssystems. Schnittstellen und Prototypen werden nach Bedarf modifiziert und ergänzt.


Die folgenden Artikel der Reihe zeigen detailliert, wie diese und andere Prinzipien in der Praxis angewendet werden.

Der zweite Artikel des Zyklus ist hier verfügbar . Der vollständige Text ist auf der Projektwebsite verfügbar .

Source: https://habr.com/ru/post/undefined/


All Articles