Como começo com a construção de um sistema Linux a partir do zero?

9

Tentei criar um sistema operacional com meu kernel personalizado. Não deu muito certo. Estou usando o Ubuntu e baixei o Linux 3.2.7 do kernel.org. Não estou tentando alterar o kernel no meu sistema Ubuntu. Quero criar meu próprio sistema operacional com o Grub, o kernel do Linux, e quero poder ter esse sistema homebrew em um tipo de arquivo (como iso) que eu possa colocar em um CD e inicializar em outro computador. Minha pergunta é: o que exatamente eu preciso para criar este sistema operacional? Quaisquer comentários ou tutoriais seriam úteis.

Coder404
fonte
11
Você pode configurar o grub para inicializar um kernel do Linux. Existem muitos lugares para descobrir como fazer isso; o mais autoritário seria o manual oficial ( gnu.org/software/grub/manual/grub.html ). Depois que o kernel inicializar, ele tentará iniciar um programa localizado em /sbin/init(a menos que configurado de outra forma). Este programa pode fazer o que você quiser. Existem algumas opções comuns a serem usadas /sbin/init, como Upstart, sysvinit, systemd ou apenas bash. A partir daí, esse programa está no controle. Se alguma vez sair, o kernel falhará, portanto deve ser capaz de iniciar outros programas.
Shawn J. Goff
4
O site linuxfromscratch.org tem muitas informações para criar sua própria distribuição linux.
Daniel kullmann 28/02/2012

Respostas:

15

Aqui está o que você está procurando: http://www.linuxfromscratch.org/

tshubitz
fonte
2
Concordo que é isso que ele DEVE estar fazendo, e eu dei +1. Eu acho que o que ele realmente quer são os detalhes da re-branding do Ubuntu desde que foi migrada do askubuntu.
RobotHumans
Mesmo que você esteja tentando fazer algo um pouco diferente, o Linux From Scratch é certamente o ponto de partida.
Vernon
Se nada mais, o LFS é uma excelente experiência de aprendizado.
224126 tshubitz #
@tshubitz Eu olhei para o LFS, mas não faz sentido para mim. É um sistema operacional pré-construído? é um guia para criar um sistema operacional? O que é isso?
Coder404
O LFS é um guia para criar um sistema operacional GNU / Linux a partir do zero. Esta página do site LFS resume bastante: linuxfromscratch.org/lfs
tshubitz
4

Um lugar para começar seria o Buildroot .

O que é isso? É um conjunto de scripts / makefiles que permite produzir um sistema Linux literalmente do zero. Ele puxa para baixo todos os componentes relevantes, constrói o compilador cruzado no host. - praticamente tudo.

Ele foi projetado principalmente para o trabalho incorporado - como tal, contém uclibc em vez de glibc e faltam etapas de compilação para muitos componentes, por exemplo, Gnome e alguns ambientes de desktop - no entanto, se você estiver criando um CD ao vivo, é absolutamente brilhante. Não se limita aos CDs ao vivo, é claro. Eu digo isso - ele vem com Qt incorporado.

A versão estável mais recente vem com o grub 0.97, que pode não atender aos seus requisitos.

Menciono isso porque, embora o Linux From Scratch seja ótimo, ele explica como concluir todo o processo, é demorado, demorado e requer muita paciência. O Buildroot pode ser adaptado para incluir o que você precisa; como uma experiência de aprendizado, a capacidade de usar os menuconfigmenus de estilo e obter algo que inicializa e funciona é excelente. Você também pode ver como ele faz tudo antes de adicionar recursos posteriores.

Em termos de configuração do seu kernel, não posso recomendar mais fortemente que você pegue a sua configuração existente (geralmente disponível em /boot), copie-a para a árvore do kernel .confige execute make oldconfige percorra as novas opções. É garantido que as opções padrão funcionam da sua distribuição; se você começar absolutamente do zero, poderá criar algo inutilizável.


fonte
3

O mínimo necessário é o kernel e algum processo que você pode executar como init, juntamente com quaisquer carregadores e bibliotecas necessários para o processo init. Você inicializa o kernel dizendo a ele para executar o processo init, e para onde ele vai daí é da sua conta.

Ignacio Vazquez-Abrams
fonte