Como criar um sistema operacional?
Soluções para a tarefa
Resposta:
Pesquisar a fundo a história dos sistemas seria o primeiro passo para você criar um novo sistema operacional, você pesquisar a história dos sistemas operacionais existentes e a história dos computadores em geral.Recomendo também a história da criação dos sistemas operacionais da Microsoft, tanto o Windows quanto o MS-DOS, existem livros com histórias da criação da Microsoft e biografias do Bill Gates que contam essa história da criação dos sistemas da Microsoft, eu recomendo também o filme piratas do vale do silício que conta a história da Microsoft e da Apple.Então você entender e se situar e esse seria o primeiro passo, depois disso eu recomendo que você estude arquitetura de sistemas operacionais.
Você pode procurar livros de arquitetura de sistemas operacionais. Existem muitos livros ótimos, em qualquer biblioteca de faculdade de análise de sistemas ou de ciência da computação existem vários livros para você conhecer, tem muitas opções mas o que eu recomendo é o livro do Andrew Tanenbaum: sistemas operacionais modernos.
Ele é dividido em duas partes, na parte teórica você vai entender o funcionamento de um sistema operacional, você vai entender como funciona internamente a arquitetura de um sistema.No primeiro passo você vai entender a história dos sistemas operacionais, do mercado de softwares, e de como o mundo da informática chegou até o ponto que nós estamos hoje.
No segundo passo é você estudar arquitetura de sistemas operacionais.
E depois vem o terceiro passo, seria complicado você ir direto para o código-fonte porque você não vai entender nada se você não souber programação a fundo. Ao ler a parte teórica do livro do Tanenbaum ou de outro livro de sistemas operacionais você vai entender a fundo como funciona um sistema operacional internamente
Você pode se basear no código fonte do Minix ou de outro sistema operacional Open Source como o Linux ou algum sistema BSD.
Para poder estudar o código do sistema operacional Minix, você pode ir analisando cada parte do código junto com o livro de sistemas operacionais do Tanenbaum.
Temos aqui um paradoxo, você só vai ser capaz de estudar e entender o código após você aprender a programar em C em nível avançado. Só o conteúdo que é ensinado na maioria dos cursos de programação em C e também nas faculdades não será o suficiente para isso.
Por outro lado, estudar um código-fonte tão avançado e complexo quanto o código fonte de um sistema operacional é um das melhores formas de aumentar o seu nível de conhecimento em programação, mesmo que você não pretenda criar um sistema operacional comercial.
Outra coisa que você pode fazer e que pode ajudar bastante é você pegar algum sistema operacional qualquer, pode ser o Linux, o Windows ou qualquer outro e você começar a entender a estrutura dele, você entra lá na estrutura de diretórios começa a ver como funciona e como tudo se encaixa, você pode entrar em cada pasta e vai vendo quais arquivos estão lá e ver o nome de cada um, qual a função de cada um, o que acontece se você fizer alguma alteração em algum arquivo de configuração.
No Windows Você tem o registro do Windows que você pode entender o funcionamento mas a fundo do sistema. Eu lembro que quando eu comecei a estudar sobre isso, eu usava o Windows 98 antes de ir para o Linux e eu ficava abrindo as pastas Windows, e ficava vendo arquivo por arquivo, eu abria cada um dos arquivos para ver para que serve e de vez em quando eu abria o registro(regedit) e ficava analisando as configurações, como tudo funciona o que acontecia se alterar alguma coisa, e ia entendendo a fundo o funcionamento do Windows mesmo sem ter acesso ao código fonte e depois eu fui fazer a mesma coisa com Linux.
Mais tarde você vai precisar aprender a programar também na linguagem assembly, mas antes disso você pode começar pela maior parte do código que é feito em C e também porque a linguagem C é mais fácil de entender do que Assembly.Então aprender C é o 3º passo, ler e analisar o código do minix é o 4º e a partir daí o 5º passo é aprender assembly e o 6º passo é você começar a executar na prática, você pegar os códigos do Minix, testar, estudar, fazer alterações no código fonte ver o que acontece, fazer testes, compilar o sistema e fazer a instalação no seu computador para analisar o funcionamento.
Então esse é o 6º passo, colocar a mão na massa… e isso é só você que pode fazer.
Para aprender Assembly, você pode procurar algum livro, tutoriais na internet sobre o essa linguagem de programação ou então procurar algum curso.E se você quiser simplificar esse processo, eu recomendo que antes de você criar um novo sistema operacional do zero, você começar tentando criar por exemplo uma nova distribuição Linux
Resposta:
Para criar um novo sistema operacional do zero, é essencial, antes de qualquer coisa, até mesmo antes de estudar como criar um sistema operacional:
Pesquisar sobre outras pessoas e empresas que já criaram sistemas operacionais para ver e entender como essas pessoas fizeram isso.
Depois disso, mãos na massa seguindo os passos abaixo:
1 – Conhecer a História dos Sistemas Operacionais
2 – Estudar Arquitetura de Sistemas Operacionais
3 – Aprender a programar em C
4 – Estudar o código-fonte e a estrutura de algum sistema operacional
5 – Aprender a programar em Assembly
6 – Começar o Desenvolvimento do seu Sistema Operacional
Nota: E se você quiser simplificar esse processo, eu recomendo que antes de você criar um novo sistema operacional do zero, você começar tentando criar por exemplo uma nova distribuição Linux.
Não precisa ser comercial mas para você aprender a estrutura do sistema e para isso você pode tentar remasterizar uma distribuição Linux que já existe ou então você realmente criar uma nova distribuição do zero, eu recomendo que você pesquise sobre o Linux from Scratch, vai te ajudar nesse processo.
Explicação:
Materiais Necessários
Um bom computador
Um processador da arquitetura para a qual você deseja desenvolver
Memória RAM o suficiente para uma máquina virtual
Um sistema operacional "hospedeiro" (utilizado para desenvolver o código fonte Assembler (e outros) bem como compilar e empacotar o mesmo enquanto está em seus estágios iniciais; eventualmente, o seu próprio SO poderá ser seu próprio hospedeiro)
Um editor de códigos com sintaxe colorida (utilize caso não possua uma IDE)
Um compilador
Boa programação. D: