Programmazione Kernel

Pubblicità

GamerTek

Nuovo Utente
Messaggi
9
Reazioni
1
Punteggio
22
Salve, vorrei sapere cosa dovrei studiare per imparare cos'è e come lavora un Kernel e, se possibile come crearne uno. Sottolineo che *è solo a scopo informativo* e non ho nessuna intenzione di sentirmi dire "lascia stare, ci vogliono conoscenze di alto livello e un buon gruppo di lavoro".

Grazie per l'aiuto!!!
 
Prima di tutto devi decidere quale sistema operativo utilizzare e io ti consiglio di partire con Linux visto che c'è una grande comunità di programmatori, puoi iniziare dal sito ufficiale
https://kernelnewbies.org/
Grazie ma vorrei sapere cosa studiare per capire come funziona e in un futuro prossimo come farlo (possibilmente consigliatemi qualche guida preferibilmente scritta, o al massimo qualche video).

Inviato da PRA-LX1 tramite App ufficiale di Tom\\\'s Hardware Italia Forum
 
E' un argomento molto vasto, personalmente ti direi di seguire il consiglio di Andretti60 e partire da Linux: tanta documentazione e ampia community. Non ho approfondito piu' di tanto, ma il link che ti ha dato mi sembra un buon punto di partenza per capire come funziona e come iniziare a muoversi.
Inutile dire che devi saper programmare decentemente; nel caso di Linux dovresti conoscere molto bene il C (e forse assembly, dipende da dove vuoi mettere le mani). Come sei messo? Che linguaggi conosci?
 
Segui il link riportato sopra, me lo sto leggendo anche io per curiosita' e c'e' diverso materiale interessante. Puoi iniziare creando patch, compilando versioni custom del kernel e via via approfondire sempre di piu'. Partire da zero a scrivere un kernel mi sembra eccessivo, secondo me e' meglio procedere per gradi.
 
... Partire da zero a scrivere un kernel mi sembra eccessivo, secondo me e' meglio procedere per gradi.
Direi che partire da zero non abbia senso, perfino Richard Stallman non riuscì a finire il kernel per il sistema operativo del progetto GNU e alla fine ormai tutti adesso usano Linux e le sue varianti. Un'altra possibilità è Darwin, che è Open Source,usato come kernel nei sistemi operativi Apple, e come Linux è basato su Unix. A differenza di Linux che è monolitico, Darwin è ibrido.
I linguaggi di programmazione usati per scrivere il kernel sono essenzialmente due, si fa quasi tutto in C e C++, solo le parti più vicine all'hardware vengono scritte in assembly perché permettono una più effettiva ottimizzazione. In pratica si scrive tutto in C, quando ci si trova imbottigliati si passa al assembly, ma si cerca sempre di limitare perché a quel punto ci si limita solo a una famiglia di processori.
Ho cercato di essere conciso, ci sarebbe da parlare a fiumi su questo argomento.
 
Pubblicità
Pubblicità
Indietro
Top