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.