Executando verificação de segurança...
2

Resumidamente, ter capacidade de achar as informações necessárias.

Sei que parece estranho uma resposta assim, mas é isso, desenvolver um OS é algo extremamente complicado e exige uma quantidade enorme de conhecimento variado que permite atingir o objetivo. Não só isso, precisa ter uma capacidade pessoal de juntar tudo isso, preencher as lacunas, de pesquisar em cima de cada dificuldade. Entende que a pergunta mostra que a pessoa está muito distante de fazer isso. Quem consegue fazer, não pergunta, só acha as informações, é uma questão de atitude.

Claro que a pessoa poderá ir melhorando e em determinado momento estar capacitado fazer algo minimamente viável.

Dá para usar IA para achar as informações necessárias? Claro que dá, mas a IA entregará informações erradas, ou pior, ruins. As ruins são piores porque funciona, mas não está certo. Se você não é capaz de entender oque é útil e o que não é, então tem que ficar longe da IA.

Claro que existem lugares com toda a informação básica que precisa (não as específicas) e pode ajudar muito, mas ainda não é a solução mágica que alguns querem. Pode ser até que a pessoa se vire bem, mas ela tem que ter uma boa noção de como criar softwares, sem depender de receitas de bolo.

De uma certa forma podemos dizer que precisará de muita ajuda. A não ser que queira fazer um OS bem básico, tem uma quantidade absurda de código a criar, o que pode dedicar sua vida toda e não terá um resultado bom.

Querer fazer algo baseado no Linux, no meu entendimento do que está falando, não é bem fazer um OS, é modificar o Linux ou criar uma distribuição, é outra coisa bem diferente.

Só o kernel do Linux está caminhando para ter 50 milhões de linha de código C, um pouco de Assembly para vários processadores e cada vez mais código Rust. São cerca de 200 mil linhas de código novo por mês (fora o que é apagado ou modificado). Você deve levar anos só para ler uma vez todo o código.

Para fazer uma distribuição Linux, pode ser um pouco mais fácil, mas é bem trabalhoso. Claro que não tanto quanto fazer um OS com todas as ferramentas em volta, mas é algo que quase ninguém faz, especialmente sozinho.

Hoje é possível fazer um OS quase com qualquer linguagem de programação, mas em muitos casos terão limitações e ineficiências. Para um resultado melhor, além de pelo menos um mínimo de Assembly, precisa de uma linguagem que foi criada para uso em nível mais baixo, como C, C++, Rust, Zig ou Carbon quando estiver pronta. E não pode usar a biblioteca padrão, a não ser algo feito só para criação do que chamamos de bare metal.

Quase sempre você preferirá rodar seu OS, se ele for nativo, em um emulador (virtual machine). Criar drivers para uma máquina real é bem mais complicado, fora que pode ter que criar uma variedade muito grande. EM alguns casos é quase impossível. O pessoal do Linux, em grande quantidade de pessoas, não conseguiu criar um driver decente para as placas da Nvidia. Hoje a Nvidia tem um driver pra Linux, mas parece que ele não é tão bom quanto para outras plataformas e não é fácil sequer colocar em uma distribuição.

Se o OS tiver multiprocessamento preemptivo a dificuldade aumenta muito. Tentar ter algo próximo das funcionalidades de um OS popular (na verdade bem menos, só o principal) se prepare para um trabalho para a vida toda. Algo que funcione só o básico é mais viável. Se tentar manter compatibilidade com algo existente, como por exemplo aceitar executáveis do Linux no seu OS, é trabalho para muitas pessoas.

Só de buscar por "OSDev" terá várias sugestões de sites interessantes, talvez indicação de livros (ou tem nos sites). Não acho que é o caso de eu ficar listando aqui, tem listas mais bem curadas do que eu faria. Provavelmente não aparecerá este que é relevante: http://www.osdever.net/.

E se não for um gênio precisa ter bem mais que 12 anos :D

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

Carregando publicação patrocinada...
1

Comentário muito lúcido, só algumas correções para não confundir o amigo: perguntar é essencial na cultura OSDev!

Muitos programadores, como o próprio Linus, leu e até pegou trechos de código fonte do MINIX (OS do Tenenbaum). Um ótimo lugar para encontrar respostas (principalmente iniciante) é o subreddit /osdev. Lá, a comunidade é extremamente ativa e sempre disposta a orientar iniciantes.

Também outro ponto interessante: IA ajuda mas até certa parte. Por exemplo, estruturar a GDT e criar um ponteiro em assembly para carregar toda essa estrutura na memória, você terá de ler o manual Intel. São detalhes que somente se encontra lá, pois cada único bit nessa estrutura que você construirá, importa. Se um bit estiver em um lugar errado, o sistema simplesmente crasha ou reinicia sem nenhum feedback (famoso triple fault)...

Dito isso, é isso kkk.

2

Perguntar com foco, não algo tão genérico. Esse é um dos erros que as pessoas cometiam no Stack Overflow e depois reclamavam.

Começar o Linux em 1990 é bem diferente de começar qualquer coisa hoje.

o subreddit /osdev

Que aparece na primeira página quando se procura pelo assunto, conforme eu indiquei.