Voglio compilare un sistema operativo. Qual è il modo migliore per iniziare?


2

Solo per imparare, voglio ricompilare alcuni sistemi operativi.

  • Non voglio un elenco di passi da fare per farlo perché con ciò non imparerò molto, il che vanificherebbe lo scopo.
  • Inoltre, non voglio rimanere bloccato indefinitamente poiché questo sarebbe il mio primo tentativo del genere.

Penso che qualcuno di voi guru di Linux avrebbe una buona idea di dove dovrei iniziare. Ho alcune esperienze di base su Linux.


5
La tua domanda è troppo vaga. Sotto Gentoo, si potrebbe emerge gentoo-sources, eselect kernele poi cd /usr/src/linux; make menuconfig; make.

D'accordo, questo è troppo vago. In particolare, il termine "OS" è vago: vuoi solo ricompilare un kernel o un intero sistema avviabile? E non imparerai molto semplicemente compilando un sistema operativo (come indicano alcune delle risposte qui, in pratica si riduce a funzionare make) - per imparare davvero che dovrai entrare nel codice sorgente effettivo.
Daniel Pryden,

Risposte:


14

LFS - Linux From Scratch (LFS) è un progetto che fornisce istruzioni dettagliate per la creazione del proprio sistema Linux personalizzato, interamente a partire da codice sorgente.

Inoltre, la maggior parte delle distribuzioni GNU / Linux forniscono strumenti per compilare un kernel a modo loro.

Leggere i moderni sistemi operativi di Tanenbaum non farà male neanche ...


1
+1 per LFS - poiché l'OP menziona la ricompilazione del suo sistema operativo, presumo che cosa significhi costruire la propria distribuzione prodotta in casa e LFS ti mostra come fare cose come costruire un compilatore gcc per il tuo nuovo sistema e quindi aggiungere tutti i bit a esso, incluso ma non limitato al kernel Linux.

+1 Ho imparato molto su Linux facendo questo (di cui in seguito ho dimenticato una buona parte quando sono stato restituito a Windows).
Merlyn Morgan-Graham,

Esiste anche un'installazione di Gentoo stage 1 utilizzata principalmente per lo sviluppo ora.
rebus,

3

Non è molto divertente ricompilare un kernel. Invoca alcuni script, succede la magia, compila i rotoli di output sullo schermo e * ding *, hai un kernel.

Nel caso del kernel Linux in particolare, qualcosa del genere:

make menuconfig # shows a menu where you can configure thousands of kernel options
make # do the compiling

Non è molto interessante, ma questo è il punto di partenza. Giocherellando con le opzioni del kernel e avviando effettivamente il tuo kernel unico e casalingo, ecco dove inizia il vero divertimento.

Se vuoi saperne di più sul processo di compilazione stesso, studia il Makefile fornito. Saranno utili conoscenze approfondite su GNU che rendono la sintassi.

All'altra estremità dello spettro, sta facendo tutto a mano: invocando gcc per ogni file sorgente, passando le giuste opzioni del compilatore. Stai semplicemente replicando i passaggi che il Makefile sta facendo per te. Questo è un incubo, e neanche molto educativo.


+1, molto vero, anche se nella mia esperienza non ho nemmeno avuto un ding tanto quanto le cose hanno smesso di accadere. Più drammatico. Nemmeno il kernel risultante si è avviato ...


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.