Novo projeto: Desenvolvimento de um RTOS, o StaRTOS

A correria anda grande e cheia de viagens a trabalho (cheias mesmo), e todas para locais com praticamente zero comunicação com a internet e longe de tudo. Mas ainda existem alguns poucos pontos de inflexão em que tento realizar algumas coisas só minhas. Essa é/será uma delas. Recentemente participei no LHC de uma oficina oferecida pelo Grande mestre Felipe Neves na qual ele explicava sobre o desenvolvimento de um RTOS e seus funcionamentos, usando um que ele próprio está construindo. Como era um assunto que sempre tive interesse, eu logo me inscrevi e comecei a participar. Ai, acendeu um brilho nos olhos =D.

RTOS é a sigla para “Real Time Operational System”, que em português significa “Sistema Operacional de Tempo Real”. Um sistema operacional é responsável por gerenciar os recursos de um sistema com o objetivo de abstrair a implementação de determinadas tarefas para o desenvolvedor. No caso de um Sistema de tempo real, ele possui a mesma responsabilidade, mas com obrigatoriedade de fornecer respostas às chamadas em tempo hábil e curto para que o sistema não fique inválido e sem respostas. Ou seja, um RTOS garante o atendimento de todos os eventos que acontecem por suas aplicações dentro de uma restrição de tempo, e por isso, muitas vezes são desenvolvidos de forma a serem mais eficientes, o que por vezes, acaba os tornando mais simples em relação a um SO, tal como Linux ou Windows.

Para ficar mais claro, quero desenvolver meu próprio RTOS do zero, chamado de StaRTOS, e ainda mais, quero documentar todo o desenvolvimento de forma a criar uma espécie de “livro” com o passo a passo para isso, mostrando conceitos na prática e elucidando as diferenças para algumas implementações. A princípio será gerada uma versão de RTOS mais simples possível para mostrar todos os conceitos, que aos poucos vamos melhorando e avançando tornando ele mais robusto, completo e eficiente.

As minhas esperanças premissas são:

  • Open Source
    • Todos os códigos gerados serão abertos a quem quiser ver.
  • Colaborativo
    • Além de ver o código, as pessoas (vulgo você) poderão me ajudar no desenvolvimento. E não é apenas do código, dos textos e explicações dos conceitos também.
  • Didático
    • Todo o material poderá ser utilizado pelas pessoas para estudar os conceitos e a estrutura de um RTOS.

Este projeto não tem o âmbito tão pretensioso como o Minix do Tannenbaum é para o SO. Mas sim, tem o âmbito de me possibilitar aprender mais sobre RTOS na prática, além de melhorar minhas práticas de programação, lógica e conhecimento sobre arquiteturas de processadores e tals.

O projeto será hospedado no github, e contará com um blog especial só para ele. Vou tentar ser bem organizado em relação a separar os posts.

Mãos á obra.

Comments