Système d'exploitation Sivelkiriya: description introductive

Bonjour, Habr.

Cet article ouvre une série de publications sur le système d'exploitation Sivelkiriya, qui est actuellement à un stade précoce de conception et de développement. Les articles de la série décriront en détail les problèmes de système des systèmes d'exploitation populaires et suggéreront des moyens de les résoudre. L'auteur ne se fixe pas pour objectif de convaincre qui que ce soit de quoi que ce soit et se concentre uniquement sur la description des solutions proposées afin de bénéficier de la discussion. La publication sera effectuée en plusieurs parties, car le volume de la description complète va au-delà de toute restriction raisonnable sur la taille de l'article.

Tous ceux qui sont intéressés, bienvenue au chat.

De nos jours, vous ne surprendrez personne avec des déclarations sur le développement du prochain système d'exploitation, qui devrait devenir meilleur, plus pratique et plus attrayant que ses prédécesseurs et concurrents. Il existe au moins trois acteurs majeurs sur le marché des OS pour les ordinateurs personnels et deux sur le marché des OS pour les appareils mobiles. Malgré l'apparente diversité, il est impossible de ne pas noter une certaine similitude entre eux: bien que les technologies et les méthodes de présentation des services par le système d'exploitation varient, la plupart des concepts et des concepts restent inchangés pendant la transition d'un système à l'autre.

Ainsi, presque tous les systèmes d'exploitation actuellement populaires prennent en charge les fonctionnalités générales au niveau de la mise en œuvre (fenêtres, graphiques, fichiers, réseau, équipements), mais pas au niveau de l'expression des concepts du domaine (messages de chat, listes de pistes, factures de service). Les exceptions existantes (liste de contacts, presse-papiers, barre de notification) ne font qu'accentuer la règle. L'implémentation technique (fichiers, processus, threads) est également très similaire à bien des égards.

L'unité d'utilisation des capacités informatiques dans tous les cas est l'application, qui décide elle-même comment diriger les ressources disponibles pour atteindre leurs objectifs. Diverses applications ne sont interconnectées que dans la mesure où leurs développeurs ont pris en charge une telle connexion; Souvent, les programmes qui exécutent des fonctions de fermeture ne peuvent pas échanger de données, avoir une interface différente, utiliser une terminologie différente, etc. Cette isolation des composants a des racines purement techniques, mais l'utilisateur en souffre. Un ordinateur à partir d'un outil intégré se transforme en un tas de solutions hétérogènes, et la compatibilité universelle, méritant de devenir le principe fondamental de la conception, ne reste qu'une opportunité optionnelle.

Actuellement, il existe de plus en plus de solutions intégrant diverses applications et services entre elles. Les fabricants de produits logiciels semblent avoir réalisé que réduire de nombreuses possibilités à un seul système commode est le seul moyen d’harmonie et d’ordre, ce qui rend la vie de l’utilisateur meilleure et plus facile. Cependant, dans de nombreux cas, la lutte aveugle des programmes incompatibles, dont chacun essaie d'embrasser l'immense, est remplacée par une lutte encore plus féroce des intégrateurs, qui font tout leur possible pour ne pas laisser l'utilisateur (et le développeur) hors de leur plate-forme. Au lieu d'unir le monde, les intégrateurs le séparent pour régner.

Un autre aspect inévitable du monde des applications individuelles pour résoudre des problèmes spécifiques est que chacune des applications aura ses propres avantages et inconvénients, souvent irrécupérables. Le choix entre la convivialité, la richesse des fonctionnalités et la prise en charge d'opérations spécifiques est aussi inévitable que regrettable. Si un utilisateur a besoin de capacités qui ne sont pas fournies dans le cadre d'une application pour atteindre ses objectifs, cela l'oblige à utiliser plus d'un outil, en passant du temps et des efforts à changer et à transférer des données.

Le développement de logiciels est un processus qui prend du temps et, par conséquent, la quantité et la qualité des fonctionnalités d'un produit seront inévitablement limitées. Dans le même temps, la part du lion des tâches et des problèmes résolus par les développeurs ont déjà été résolus dans d'autres produits; la réutilisation de ces solutions au lieu de les redévelopper libérerait des ressources pouvant être utilisées pour atteindre d'autres objectifs plus nécessaires pour l'utilisateur.

Enfin, le comportement du programme n'est souvent pas éthique. Au lieu d'aider l'utilisateur dans son travail, les programmes le harcèlent avec des commentaires et suggestions ennuyeux. Au lieu de développer un moyen pratique de fournir des services basés sur le respect mutuel, ils mélangent le contenu publicitaire avec la cible. Le résultat est une situation dans laquelle même le propriétaire de l'appareil ne contrôle pas son comportement.

Le système d'exploitation Sivelkiriya est conçu comme une solution aux problèmes ci-dessus et à d'autres problèmes. Selon le plan et la conception, il devrait, de manière centralisée et respectueuse, dans des conditions mutuellement bénéfiques, aider à atteindre les catégories de participants suivantes dans le processus de développement et d'utilisation du logiciel:

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

Nous décrirons ci-dessous l'architecture d'un tel système d'exploitation et comment il aide à rectifier la situation. D'autres articles de la série examineront en détail les problèmes qu'elle résout afin de montrer qu'ils nécessitent une approche systématique. Enfin, les avantages et les inconvénients de la solution proposée et comment elle peut passer d'un concept à un produit fini seront présentés.

Le concept d'OS Sivelkiriya


Le système d'exploitation Sivelkiriya commence par une révision des bases, dans laquelle une partie des concepts généralement acceptés sont supprimés ou remplacés. Les entités suivantes, qui constituent généralement la base du système d'exploitation, n'existent pas dans le système d'exploitation Sivelkiriya:

  1. Application.
  2. Processus.
  3. Fichier en tant que zone de données sur le disque.
  4. Système de fichiers de bout en bout, dont la navigation n'est limitée que par les droits d'accès.
  5. Ligne de commande comme environnement pour exécuter des applications individuelles.
  6. Scripts universels.
  7. Disponibilité de l'API du système d'exploitation de base pour n'importe quel composant.
  8. La possibilité de transférer directement les bibliothèques standard de la plupart des langages de programmation modernes. En conséquence, la possibilité de transférer directement des logiciels existants à partir d'autres systèmes d'exploitation, sauf dans certains cas.
  9. Prise en charge des langages de programmation sans orientation d'objet.

Cette liste n'est pas complète. Cela ne signifie en aucun cas limiter les capacités d'un programmeur ou d'un utilisateur et indique seulement que dans le cadre du système d'exploitation Sivelkiriya, les mêmes objectifs sont atteints différemment de la plupart des systèmes d'exploitation existants.

Ayant abandonné ces entités établies, nous avons l'intention de construire un système d'exploitation basé sur les principes suivants:

  1. «» - , , , . , , , , . . , , .
  2. . , , , , .
  3. , . , ( ). ( ) . , ( ) .
  4. , , , , . , .
  5. Chaque module est disponible uniquement les données et les méthodes d'interaction avec le système d'exploitation qui sont nécessaires pour remplir sa fonction (définie par le prototype). Aucun module n'a accès à toutes les fonctions du système d'exploitation. La duplication de fonctions déjà attribuées à un prototype particulier dans le module relatif à un autre prototype n'est pas autorisée.
  6. Le développement d'interfaces de données et de modules prototypes est réalisé en continu, grâce aux efforts conjoints des développeurs de programmes et des développeurs du système d'exploitation. Les interfaces et prototypes sont modifiés et complétés au besoin.


Les articles suivants de la série montreront en détail comment ces principes et d'autres seront appliqués dans la pratique.

Le deuxième article du cycle est disponible ici . Le texte intégral est disponible sur le site web du projet .

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


All Articles