La conchiglia, ovviamente.
La metafora originale che ci ha procurato la parola "kernel" per questo in primo luogo è troppo spesso dimenticata. La metafora è che un sistema operativo è un seme o una noce. Il "kernel" del seme è il nucleo del sistema operativo, fornendo servizi del sistema operativo ai programmi applicativi, che è circondato dalla "shell" del seme che è ciò che gli utenti vedono dall'esterno.
Alcune persone vogliono legare "kernel" (e, in effetti, "shell") per essere più specifici di così. Ma in verità c'è molta variazione tra i sistemi operativi. Non ultimo queste variazioni è ciò che costituisce una "shell" (che può variare da Solaris sh
attraverso l'interprete di comandi della console di Netware a Workplace Shell di OS / 2 e Explorer di Windows NT), ma c'è anche molta varianza da un sistema operativo all'altro in cos'è e non fa parte di un "kernel" (che può includere o meno l'I / O del disco, ad esempio). È meglio ricordare che questi termini sono metafore .
Esistono altre terminologie. Nella terminologia del mainframe IBM, il "kernel" nella metafora seed / nut è chiamato programma di controllo . Altri nomi includono supervisore , monitor , core e dirigente . Il nucleo è un'altra metafora biologica abbastanza ovvia. È interessante che anche questo sia un altro nome. Harvey M. Deitel, nei suoi sistemi operativi , chiama il programma di controllo il nucleo e dice
Il nucleo normalmente rappresenta una piccola porzione del codice di quello che comunemente si pensa sia l'intero sistema operativo [...]
La parola "nucleo" deriva dal nucleo latino e significa il nocciolo di una noce (cfr. Il latino nux , che significa "noce"). Quindi anche chiamare il programma di controllo "il nucleo" sta di fatto facendo la stessa analogia del sistema operativo come un dado. È un'analogia utilizzata non solo per i sistemi operativi. Se hai familiarità con la chimica, ad esempio, saprai che un nucleo atomico è circondato da elettroni in gusci .
Ciò che la persona pseudonima new123456
scrive di seguito esemplifica gli errori derivanti dalla dimenticanza delle origini di queste metafore nella misura in cui si confonde la parte per il tutto e il kernel per l'intero sistema operativo. Essere un programma "userland" non rende la shell meno esterna al sistema operativo, né lo rende meno ciò che racchiude il kernel. Inoltre, lungi dall'essere un'idea solo per DOS che non si applica a Unix oltre la versione 7, questa idea è sia diffusa che attuale nel mondo Unix.
(È ironico che new123456
lo confonda con un DOSismo. La metafora del kernel / shell era abbastanza estranea al DOS nei suoi primi anni, che favoriva il processore dei comandi e simili, da CP / M. Come CP / M prima di esso, MS-DOS era diviso nel sistema operativo di base del disco (BDOS), nel sistema di input-output di base (BIOS - non il firmware del sistema, nota), il processore dei comandi e le utility di pulizia . Il codice è stato effettivamente suddiviso in file in questo modo. esempio, infatti, del modo in cui la metafora del kernel / shell non copre realmente o non coincide pienamente con le effettive divisioni in molti sistemi operativi.)
new123456
sta dimenticando ciò che Deitel ha scritto sul fatto che il nucleo fa parte del sistema operativo globale. Un sistema operativo è sia kernel che shell. Questa è, dopo tutto, la metafora. Anche Deitel non è solo. Ci sono risme di libri Unix che spiegano la metafora di Unix-as-a-nut, dagli anni '80 in poi. Raccomando Teach Yourself FreeBSD di Urban e Tiemann in 24 Hours (SAMS, ISBN 9780672324246), per la semplice ragione che a pagina 54 ha uno schema che illustra la metafora del sistema operativo come un seme e - sorprendentemente - è uno dei pochi libri per farlo.
Il nome "nucleo" è probabilmente il nome più antico; sicuramente precedente a Unix, che favorisce la terminologia kernel / shell che oggi - probabilmente in minima parte grazie a Unix - è la più diffusa. Ecco cosa c'è nel libro di Alan C. Shaw del 1974. La progettazione logica dei sistemi operativi (Prentice-Hall, ISBN 9780135401125) per esempio:
Quella parte del sistema che risiede permanentemente nella memoria principale è stata storicamente chiamata nucleo . Il nucleo sarà generalmente costituito da un insieme minimo di primitivi e processi per la gestione di processi, risorse e input-output.
Anche Shaw ha un diagramma. ☺