Come posso iniziare con la creazione di un sistema Linux da zero?


9

Ho provato a creare un sistema operativo con il mio kernel personalizzato. Non ha funzionato troppo bene. Sto usando Ubuntu e ho scaricato Linux 3.2.7 da kernel.org. Non sto cercando di cambiare il kernel nel mio sistema Ubuntu. Voglio creare il mio sistema operativo con Grub, il kernel Linux e voglio poter avere questo sistema operativo homebrew in un tipo di file (come iso) che posso mettere su un cd e avviare su un altro computer. La mia domanda è: di cosa ho bisogno esattamente per realizzare questo sistema operativo? Qualsiasi commento o tutorial sarebbe utile.


1
È possibile configurare grub per l'avvio di un kernel Linux. Ci sono molti posti dove scoprire come farlo; il più autorevole sarebbe il manuale ufficiale ( gnu.org/software/grub/manual/grub.html ). Una volta avviato il kernel, tenterà di avviare un programma che si trova in /sbin/init(se non diversamente configurato). Questo programma può fare tutto quello che vuoi. Esistono alcune opzioni comuni da utilizzare /sbin/init, come Upstart, sysvinit, systemd o semplicemente bash. Da lì, quel programma è sotto controllo. Se dovesse mai uscire, il kernel andrà in crash, quindi dovrebbe essere in grado di avviare altri programmi.
Shawn J. Goff,

4
Il sito web linuxfromscratch.org ha molte informazioni per costruire la tua distribuzione di Linux.
Daniel Kullmann,

Risposte:


15

Ecco cosa stai cercando: http://www.linuxfromscratch.org/


2
Sono d'accordo che questo è quello che DOVREBBE fare, e gli ho dato il +1. Penso che ciò che vuole davvero siano i dettagli del re-branding di Ubuntu da quando è stato migrato da askubuntu.
RobotHumans,

Anche se stai cercando di fare qualcosa di leggermente diverso, Linux From Scratch è sicuramente il punto di partenza.
Vernon,

Se non altro, LFS è un'ottima esperienza di apprendimento.
tshubitz,

@tshubitz Ho guardato LFS ma non ha senso per me. È un sistema operativo predefinito? è una guida per creare un sistema operativo? Che cos'è?
Coder404,

LFS è una guida per creare un sistema operativo GNU / Linux da zero. Questa pagina dal sito LFS riassume praticamente: linuxfromscratch.org/lfs
tshubitz

4

Un punto di partenza sarebbe Buildroot .

Che cos'è? È un insieme di script / makefile che ti consente di produrre un sistema Linux letteralmente da zero. Elimina tutti i componenti rilevanti, crea il compilatore incrociato sull'host. - praticamente tutto.

Esso è stato progettato principalmente per il lavoro integrato - in quanto tale, contiene uclibc piuttosto che glibc e manca fasi di compilazione per molti componenti, ad esempio Gnome e alcuni ambienti desktop - tuttavia, se stai facendo un live CD è assolutamente brillante. Non limitato ai CD live, ovviamente. Lo dico: viene fornito con Qt incorporato.

L'ultima versione stabile viene fornita con grub 0.97 che potrebbe non soddisfare le tue esigenze.

Lo dico perché Linux From Scratch è eccezionale in quanto ti dice come completare l'intero processo, è lungo, richiede tempo e richiede molta pazienza. Buildroot potrebbe essere adattato per includere tutto ciò di cui hai bisogno; come esperienza di apprendimento, la capacità di utilizzare i menuconfigmenu di stile e ottenere qualcosa che si avvia e funziona è eccezionale. Puoi anche vedere come fa tutto prima di aggiungere funzionalità successive.

In termini di configurazione del kernel, non posso più raccomandare vivamente di prendere la tua configurazione esistente (di solito disponibile in /boot), copiandola nell'albero del kernel e .configquindi eseguendo make oldconfige passando attraverso le nuove opzioni. Le opzioni predefinite sono praticamente garantite per funzionare dalla tua distribuzione; se inizi assolutamente da zero potresti creare qualcosa di inutilizzabile.


3

Il minimo indispensabile è il kernel e alcuni processi che è possibile eseguire come init, insieme a tutti i caricatori e le librerie richiesti per il processo init. Avvii il kernel dicendogli di eseguire il processo di inizializzazione e da dove proviene c'è la tua attività.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.