Sistema operativo Sivelkiriya: descripción introductoria

Hola Habr

Este artículo abre una serie de publicaciones sobre el sistema operativo Sivelkiriya, que actualmente se encuentra en una etapa temprana de diseño y desarrollo. Los artículos de la serie describirán en detalle los problemas del sistema de los sistemas operativos populares y sugerirán formas de resolverlos. El autor no se propone el objetivo de convencer a nadie de nada y se centra únicamente en la descripción de las soluciones propuestas para beneficiarse de la discusión. La publicación se llevará a cabo en partes, ya que el volumen de la descripción completa va más allá de cualquier restricción razonable sobre el tamaño del artículo.

Todos los que estén interesados, bienvenidos a cat.

Hoy en día, no sorprenderá a nadie con declaraciones sobre el desarrollo del próximo sistema operativo, que debería ser mejor, más conveniente y más atractivo que sus predecesores y competidores. Hay al menos tres jugadores importantes en el mercado de sistemas operativos para computadoras personales y dos en el mercado de sistemas operativos para dispositivos móviles. A pesar de la aparente diversidad, es imposible no notar una cierta similitud entre ellos: aunque las tecnologías y los métodos para presentar servicios por el sistema operativo varían, la mayoría de los conceptos y conceptos permanecen sin cambios durante la transición de un sistema a otro.

Por lo tanto, casi todos los sistemas operativos actualmente populares brindan soporte para la funcionalidad general en el nivel de implementación (ventanas, gráficos, archivos, red, equipo), pero no en el nivel de expresión de los conceptos del área temática (mensajes de chat, listas de seguimiento, facturas de servicio). Las excepciones existentes (lista de contactos, portapapeles, barra de notificaciones) solo enfatizan la regla. La implementación técnica (archivos, procesos, hilos) también es muy similar en muchos aspectos.

La unidad de uso de las capacidades informáticas en todos los casos es la aplicación, que decide cómo dirigir los recursos disponibles para lograr sus objetivos. Varias aplicaciones están interconectadas solo en la medida en que sus desarrolladores se hayan ocupado de dicha conexión; A menudo, los programas que realizan funciones cercanas no pueden intercambiar datos, tienen una interfaz diferente, usan terminología diferente, etc. Este aislamiento de componentes tiene raíces puramente técnicas, pero el usuario sufre como resultado. Una computadora a partir de una herramienta integral se convierte en un montón de soluciones heterogéneas, y la compatibilidad universal, que merece convertirse en el principio fundamental del diseño, sigue siendo solo una oportunidad opcional.

Actualmente, hay cada vez más soluciones que integran diversas aplicaciones y servicios entre sí. Los fabricantes de productos de software parecen haberse dado cuenta de que reducir muchas posibilidades a un sistema conveniente es la única forma de armonía y orden, lo que hace que la vida del usuario sea mejor y más fácil. Sin embargo, en muchos casos, la lucha ciega de los programas incompatibles, cada uno de los cuales trata de abrazar lo inmenso, es reemplazada por una lucha aún más feroz de integradores, que están haciendo todo lo posible para no dejar que el usuario (y el desarrollador) salgan de su plataforma. En lugar de unir al mundo, los integradores lo separan para gobernar.

Otro aspecto inevitable del mundo de las aplicaciones individuales para resolver problemas específicos es que cada una de las aplicaciones tendrá sus propias ventajas y desventajas, a menudo irrecuperables. La elección entre usabilidad, funcionalidad y soporte para operaciones específicas es tan inevitable como lamentable. Si un usuario necesita capacidades que no se proporcionan en el marco de una aplicación para lograr sus objetivos, esto lo obliga a usar más de una herramienta, gastando tiempo y esfuerzo cambiando y transfiriendo datos.

El desarrollo de software es un proceso lento y, por lo tanto, la cantidad y la calidad de la funcionalidad dentro de cualquier producto inevitablemente serán limitadas. Al mismo tiempo, la mayor parte de las tareas y problemas resueltos por los desarrolladores ya se han resuelto en otros productos; La reutilización de estas soluciones en lugar de volver a desarrollarlas liberaría recursos que se pueden utilizar para lograr otros objetivos que son más necesarios para el usuario.

Finalmente, el comportamiento del programa a menudo no es ético. En lugar de ayudar al usuario en su trabajo, los programas lo molestan con comentarios y sugerencias molestos. En lugar de desarrollar una forma conveniente de proporcionar servicios basados ​​en el respeto mutuo, mezclan el contenido publicitario con el objetivo. El resultado es una situación en la que incluso el propietario del dispositivo no controla su comportamiento.

El sistema operativo Sivelkiriya está destinado a ser una solución a los problemas anteriores y algunos otros. De acuerdo con el plan y el diseño, debe ayudar de manera central, respetuosa y mutuamente beneficiosa a lograr las siguientes categorías de participantes en el proceso de desarrollo y uso de software:

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

A continuación describiremos la arquitectura de dicho sistema operativo y cómo ayuda a rectificar la situación. Otros artículos de la serie examinarán en detalle los problemas que resuelve para mostrar que requieren un enfoque sistemático. Finalmente, se mostrarán las ventajas y desventajas de la solución propuesta y cómo puede pasar de un concepto a un producto terminado.

El concepto de OS Sivelkiriya


El sistema operativo Sivelkiriya comienza con una revisión de los conceptos básicos, en la cual parte de los conceptos generalmente aceptados son eliminados o reemplazados. Las siguientes entidades, que generalmente forman la base del sistema operativo, no existen dentro del sistema operativo Sivelkiriya:

  1. Solicitud.
  2. Proceso.
  3. Archivo como área de datos en el disco.
  4. Sistema de archivos de extremo a extremo, cuya navegación está limitada solo por los derechos de acceso.
  5. Línea de comando como entorno para ejecutar aplicaciones individuales.
  6. Guiones universales.
  7. Disponibilidad de la API del sistema operativo base para cualquier componente.
  8. La capacidad de transferir directamente bibliotecas estándar de los lenguajes de programación más modernos. Como resultado, la capacidad de transferir directamente el software existente desde otros sistemas operativos, excepto en ciertos casos.
  9. Soporte para lenguajes de programación sin orientación a objetos.

Esta lista no esta completa. De ninguna manera significa limitar las capacidades de un programador o usuario, y solo indica que, en el marco del sistema operativo Sivelkiriya, los mismos objetivos se alcanzan de manera diferente que en la mayoría de los sistemas operativos existentes.

Habiendo abandonado estas entidades establecidas, tenemos la intención de construir un sistema operativo basado en los siguientes principios:

  1. «» - , , , . , , , , . . , , .
  2. . , , , , .
  3. , . , ( ). ( ) . , ( ) .
  4. , , , , . , .
  5. Cada módulo está disponible solo con los datos y métodos de interacción con el sistema operativo que son necesarios para realizar su función (definida por el prototipo). Ningún módulo tiene acceso a todas las funciones del sistema operativo. No se permite la duplicación de funciones ya asignadas a un prototipo particular dentro del módulo relacionado con otro prototipo.
  6. El desarrollo de interfaces de datos y prototipos de módulos se lleva a cabo de forma continua, gracias a los esfuerzos conjuntos de los desarrolladores de programas y los desarrolladores del sistema operativo. Las interfaces y los prototipos se modifican y complementan según sea necesario.


Los siguientes artículos de la serie mostrarán en detalle cómo se aplicarán estos y otros principios en la práctica.

El segundo artículo del ciclo está disponible aquí . El texto completo está disponible en el sitio web del proyecto .

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


All Articles