Sistema operacional Sivelkiriya: Descrição introdutória

Olá, Habr.

Este artigo abre uma série de publicações sobre o sistema operacional Sivelkiriya, que atualmente está em um estágio inicial de design e desenvolvimento. Os artigos da série descreverão em detalhes os problemas do sistema de sistemas operacionais populares e sugerirão maneiras de resolvê-los. O autor não se propõe a convencer ninguém de nada e se concentra apenas na descrição das soluções propostas, a fim de se beneficiar da discussão. A publicação será realizada em partes, uma vez que o volume da descrição completa vai além de quaisquer restrições razoáveis ​​no tamanho do artigo.

Todo mundo que estiver interessado, bem-vindo ao gato.

Atualmente, você não surpreenderá ninguém com declarações sobre o desenvolvimento do próximo sistema operacional, que deve se tornar melhor, mais conveniente e mais atraente do que seus antecessores e concorrentes. Existem pelo menos três grandes players no mercado de SO para computadores pessoais e dois no mercado de SO para dispositivos móveis. Apesar da aparente diversidade, é impossível não notar certa semelhança entre eles: embora as tecnologias e os métodos de apresentação de serviços pelo sistema operacional variem, a maioria dos conceitos e conceitos permanece inalterada durante a transição de um sistema para outro.

Portanto, quase todos os sistemas operacionais populares atualmente oferecem suporte para funcionalidade geral no nível de implementação (janelas, gráficos, arquivos, rede, equipamento), mas não no nível de expressão dos conceitos da área de assunto (mensagens de bate-papo, listas de faixas, contas de serviço). As exceções existentes (lista de contatos, área de transferência, barra de notificação) enfatizam apenas a regra. A implementação técnica (arquivos, processos, threads) também é muito semelhante em muitos aspectos.

A unidade de uso dos recursos do computador em todos os casos é o aplicativo, que decide como direcionar os recursos disponíveis para atingir seus objetivos. Vários aplicativos são interconectados apenas na medida em que seus desenvolvedores cuidaram dessa conexão; Freqüentemente, programas que executam funções próximas não podem trocar dados, ter uma interface diferente, usar terminologia diferente e assim por diante. Esse isolamento de componentes tem raízes puramente técnicas, mas o usuário sofre como resultado. Um computador de uma ferramenta integral se transforma em um monte de soluções heterogêneas e a compatibilidade universal, que merece se tornar o princípio fundamental do design, permanece apenas uma oportunidade opcional.

Atualmente, existem mais e mais soluções que integram vários aplicativos e serviços entre si. Os fabricantes de produtos de software parecem ter percebido que reduzir muitas possibilidades para um sistema conveniente é a única maneira de harmonia e ordem, o que torna a vida do usuário melhor e mais fácil. No entanto, em muitos casos, a luta cega de programas incompatíveis, cada um dos quais tenta abraçar o imenso, é substituída por uma luta ainda mais feroz de integradores, que estão fazendo todo o possível para não deixar o usuário (e desenvolvedor) fora de sua plataforma. Em vez de unir o mundo, os integradores o separam para governar.

Outro aspecto inevitável do mundo dos aplicativos individuais para resolver problemas específicos é que cada um dos aplicativos terá suas próprias vantagens e desvantagens, geralmente irrecuperáveis. A escolha entre usabilidade, funcionalidade rica e suporte para operações específicas é tão inevitável quanto lamentável. Se um usuário precisar de recursos que não são fornecidos na estrutura de um aplicativo para atingir seus objetivos, isso o força a usar mais de uma ferramenta, gastando tempo e esforço alternando e transferindo dados.

O desenvolvimento de software é um processo demorado e, portanto, a quantidade e a qualidade da funcionalidade em qualquer produto serão inevitavelmente limitadas. Ao mesmo tempo, a maior parte das tarefas e problemas resolvidos pelos desenvolvedores já foram resolvidos em outros produtos; reutilizar essas soluções em vez de desenvolvê-las liberaria recursos que podem ser usados ​​para atingir outros objetivos mais necessários para o usuário.

Finalmente, o comportamento do programa geralmente não é ético. Em vez de ajudar o usuário em seu trabalho, os programas o incomodam com comentários e sugestões irritantes. Em vez de desenvolver uma maneira conveniente de fornecer serviços com base no respeito mútuo, eles misturam o conteúdo da publicidade com o destino. O resultado é uma situação em que mesmo o proprietário do dispositivo não controla seu comportamento.

O sistema operacional Sivelkiriya é uma solução para os problemas acima e alguns outros. De acordo com o plano e o design, ele deve centralmente, respeitosamente, em condições mutuamente benéficas, ajudar a alcançar as seguintes categorias de participantes no processo de desenvolvimento e uso de software:

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

A seguir, descreveremos a arquitetura de um sistema operacional e como isso ajuda a corrigir a situação. Outros artigos da série examinarão detalhadamente os problemas que ele resolve, a fim de mostrar que eles exigem uma abordagem sistemática. Finalmente, serão mostradas as vantagens e desvantagens da solução proposta e como ela pode passar de um conceito para um produto acabado.

O conceito de OS Sivelkiriya


O sistema operacional Sivelkiriya começa com uma revisão do básico, na qual parte dos conceitos geralmente aceitos são eliminados ou substituídos. As seguintes entidades, que geralmente formam a base do sistema operacional, não existem no sistema operacional Sivelkiriya:

  1. Inscrição.
  2. Processo.
  3. Arquivo como uma área de dados no disco.
  4. Sistema de arquivos de ponta a ponta, cuja navegação é limitada apenas por direitos de acesso.
  5. Linha de comando como um ambiente para executar aplicativos individuais.
  6. Scripts universais.
  7. Disponibilidade da API do sistema operacional base para qualquer componente.
  8. A capacidade de transferir diretamente bibliotecas padrão das linguagens de programação mais modernas. Como resultado, a capacidade de transferir diretamente o software existente de outros sistemas operacionais, exceto em certos casos.
  9. Suporte para linguagens de programação sem orientação a objetos.

Está lista não está completa. Isso não significa, de forma alguma, limitar os recursos de um programador ou usuário e indica apenas que, na estrutura do sistema operacional Sivelkiriya, os mesmos objetivos são alcançados de maneira diferente da maioria dos sistemas operacionais existentes.

Tendo abandonado essas entidades estabelecidas, pretendemos construir um sistema operacional com base nos seguintes princípios:

  1. «» - , , , . , , , , . . , , .
  2. . , , , , .
  3. , . , ( ). ( ) . , ( ) .
  4. , , , , . , .
  5. Cada módulo está disponível apenas os dados e métodos de interação com o sistema operacional necessários para executar sua função (definida pelo protótipo). Nenhum módulo tem acesso a todas as funções do sistema operacional. A duplicação de funções já atribuídas a um protótipo específico dentro do módulo relacionado a outro protótipo não é permitida.
  6. O desenvolvimento de interfaces de dados e módulos de protótipo é realizado continuamente, por esforços conjuntos de desenvolvedores de programas e desenvolvedores do sistema operacional. Interfaces e protótipos são modificados e suplementados conforme necessário.


Os seguintes artigos da série mostrarão em detalhes como esses e outros princípios serão aplicados na prática.

O segundo artigo do ciclo está disponível aqui . O texto completo está disponível no site do projeto .

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


All Articles