Ola…
E sou um estudante de engenharia de software então eu conheço um pouco sobre linguagem de programação e desenvolvimento de aplicativos mas eu nunca entendi muito bem como funciona o desenvolvimento de sistemas operacionais, principalmente tenho curiosidade de saber como funciona o desenvolvimento de sistemas utilizando o kernel Linux e/ou utilizando um outro sistema como base (como o elementary usa a base ubuntu)
Gostaria que, se possível, vocês me indicassem livros ou artigos (ou qualquer outra coisa) onde eu possa aprender como funciona isso
Agradeço desde já.
Olá ![]()
Para iniciar, acho que o conteúdo do GuiaFoca bem tranquilo e didático. Outro lugar para se aprender bastante é na documentação do Arch Linux, a ArchWiki. Se for usuário de longa data do Windows e quiser testar de forma mais suave como funciona Linux, seus comandos básicos, hierarquia de pastas, etc, você pode instalar o Ubuntu pelo WSL2 e ir acostumando-se por lá até se sentir confortável o suficiente para instalar uma distro em dual boot ou uso exclusivo. Como estudante de ciência da computação, não volto a usar Windows para programar em 99% dos casos, Linux é um caminho sem volta.
Desenvolvimento de uma distro Linux…
Ia dizer q o Linux from Scratch te ajudaria, mas talvez seu caso seja mais interessante estudar sobre o kernel e projetos, como Red Hat, Plasma, Gnome, etc…
Se a sua área é estudar código, comesse dando uma olhada em código fonte como o Daigo sugeri-o.
O código fonte do nucléo Linux é esse: https://kernel.org/
Eu imagino que você saiba o que é o kernel Linux, mas para se alguém que vier neste tópico e não saiba ele é o a interface que passa as instruções dos processos para o hardware executar. Ele é o software que lida com o hardware. Linux (núcleo) – Wikipédia, a enciclopédia livre
Agora como montar um GNU/Linux a partir da compilação de software já existente leia o livro Linux From Scratch seguindo esse passo a passo você tera no final um OS Linux funcional: Linux From Scratch – Wikipédia, a enciclopédia livre
Eu não sei muito bem qual vai ser o seu objetivo no estudo, se é aprender como desenvolver um SO programando ou se é entender a estrutura para tal.
Não posso afirmar com certeza, mas quase todas as distros possuem github, você pode começar seus estudos pelo código do sistema.
A maior documentação linux no momento se encontra no ArchWiki da distro Archlinux, não é 100% funcional para todas as distribuições, visto que pode ser implementado de outra forma, porém abrange a grande maioria dos casos.
É ele não foi especifico sobre o que ele quer estudar.
Quando se diz que uma distro utiliza a base de outra distro, nada mais é do que:
- utilizar os pacotes curados por terceiros, pode ser redistribuindo pelo repositório de terceiro, ou criando uma cópia do repositório (espelhando) para seus servidores, acrescentando suas personalizações pessoais.
- Você tem muito menos trabalho, visto que tem que focar apenas nos pacotes que você alterou ou criou, sendo que a distro base que fornece os milhares de pacotes e soluciona os bugs dos mesmo.
Tem projetos que cópia todo o sistema, altera o tema, ícones e papel de parede e lança com outro nome, não acrescentando nada além de uma customização visual
Eu quero saber como desenvolver um SO
Desenvolver ai você vai ter que ler livros de programação e ler código fonte.
Pode começar pelo kernel Linux se quiser aprender a desenvolver driver de hardware.
Obrigado pelas dicas
Você pode pegar a lista dos software para estudar o código fonte mínimo necessário para ter um sistema operacional funcional.
Abrindo o livro vai ter uma lista de código fonte a se compilar. Dai você começa a estudar estes códigos mínimo para montar um OS Linux.
O livro é Linux From Scratch esta o link da wiki ai em cima e na wiki tem o site de onde baixar o livro.
@erickson_daveiga o LFS não aborda como adicionar um ambiente desktop, para isso você tera que seguir o BLFS é um outro livro mas que lida com os software de desktop enviroment.
Já baixei os dois livros pra começar a ler
Muito obrigado pelas dicas (a todos)
Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.