Há alguns anos publiquei o artigo Criando um sistema operacional (quase) do zero, contando os primeiros passos do meniOS. Naquela época, fazer o kernel inicializar, configurar algumas estruturas básicas e colocar alguma coisa na tela já representava uma parte considerável da diversão.
O projeto continuou crescendo e, hoje, o meniOS consegue executar programas em user space, possui um scheduler preemptivo, memória virtual por processo, filesystem, shell, sinais, pipes e outras funcionalidades que fazem com que ele se pareça um pouco mais com aquilo que normalmente chamamos de sistema operacional e um pouco menos com um programa muito complicado que tomou conta do computador.
Dizer que um sistema operacional "executa programas", entretanto, esconde uma quantidade considerável de trabalho. Quando clicamos em um ícone ou digitamos um comando no terminal, estamos acostumados a pensar que simplesmente mandamos o computador executar aquele programa, mas entre o arquivo armazenado no disco e suas instruções sendo executadas pela CPU existe uma abstração fundamental fornecida pelo sistema operacional: o processo.
Este é o primeiro passo de uma pequena descida ao submundo do desenvolvimento de sistemas operacionais. Ainda estamos relativamente perto da superfície.






