A concha, é claro.
A metáfora original que nos deu a palavra "kernel" para isso em primeiro lugar é muitas vezes esquecida. A metáfora é que um sistema operacional é uma semente ou uma noz. O "kernel" da semente é o núcleo do sistema operacional, fornecendo serviços do sistema operacional aos programas aplicativos, cercados pelo "shell" da semente que é o que os usuários veem do lado de fora.
Algumas pessoas querem amarrar o "kernel" (e, de fato, o "shell") para serem mais específicos do que isso. Mas, na verdade, há muita variação entre os sistemas operacionais. Não menos importante, essas variações são o que constitui um "shell" (que pode variar de Solaris sh
através do Interpreter de Comando do Console da Netware ao Workplace Shell do OS / 2 e Explorer do Windows NT), mas também há muita variação de um sistema operacional para outro no o que é e não é parte de um "kernel" (que pode ou não incluir E / S de disco, por exemplo). É melhor lembrar que esses termos são metáforas .
Existem outras terminologias. Na terminologia de mainframe da IBM, o "kernel" na metáfora de semente / noz é chamado de programa de controle . Outros nomes incluem o supervisor , o monitor , o núcleo e o executivo . O núcleo é outra metáfora biológica bastante óbvia. É interessante que também haja outro nome. Harvey M. Deitel, em seus sistemas operacionais , chama o programa de controle de núcleo e diz
O núcleo normalmente representa uma pequena parte do código do que geralmente se pensa ser o sistema operacional inteiro [...]
A palavra "núcleo" vem do núcleo latino e significa o núcleo de uma noz (cf. o latim nux , que significa "noz"). Assim, mesmo chamar o programa de controle de "núcleo" está de fato fazendo essa mesma analogia do sistema operacional como uma porca. É uma analogia usada para mais do que apenas sistemas operacionais. Se você está familiarizado com a química, por exemplo, saberá que um núcleo atômico é cercado por elétrons nas conchas .
O que a pessoa pseudônima new123456
escreve abaixo exemplifica os erros resultantes do esquecimento das origens dessas metáforas, na medida em que alguém confunde a parte pelo todo e confunde o kernel com todo o sistema operacional. Ser um programa "userland" não torna o shell menos do lado de fora do sistema operacional, nem o que envolve o kernel. Além disso, longe de ser uma idéia apenas para DOS que não se aplica ao Unix além da versão 7, essa idéia é generalizada e atual no mundo Unix.
(É irônico que new123456
confunde com uma DOSism. A metáfora kernel / shell era bastante estranho para DOS em seus primeiros anos, o que favoreceu processador de comando e semelhantes, de CP / M. Como CP / M, antes disso, o MS-DOS foi dividido no sistema operacional de disco básico (BDOS), no sistema básico de entrada e saída (BIOS - não no firmware do sistema, nota), no processador de comandos e nos utilitários de manutenção - o código foi realmente dividido em arquivos dessa maneira. exemplo, de fato, de como a metáfora do kernel / shell realmente não cobre ou combina totalmente com as divisões reais em muitos sistemas operacionais.)
new123456
está esquecendo o que a Deitel escreveu sobre o núcleo fazer parte do sistema operacional geral. Um sistema operacional é o kernel e o shell. Afinal, essa é a metáfora. Deitel também não está sozinho. Existem resmas de livros do Unix que explicam a metáfora do Unix-como-um-noz, a partir da década de 1980. Eu recomendo o Teach Yourself FreeBSD de Urban e Tiemann em 24 horas (SAMS, ISBN 9780672324246), pela simples razão de que na página 54 ele tem um diagrama que ilustra a metáfora do sistema operacional como uma semente e - surpreendentemente - é um dos poucos livros para fazê-lo.
O nome "núcleo" é provavelmente o nome mais antigo; certamente anterior ao Unix, que favorece a terminologia do kernel / shell que hoje - provavelmente em grande parte graças ao Unix - é a mais prevalente. Aqui está o que está no livro de Alan C. Shaw, de 1974, O design lógico dos sistemas operacionais (Prentice-Hall, ISBN 9780135401125), por exemplo:
A parte do sistema que reside permanentemente no armazenamento principal é chamada historicamente de núcleo . O núcleo geralmente consiste em um conjunto mínimo de primitivas e processos para o gerenciamento de processos, recursos e entrada / saída.
Shaw também tem um diagrama. ☺