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. ☺
@
lugar ao mencionar meu nome de usuário para que seja publicado na minha fila de respostas.Outras partes do sistema operacional incluem os drivers que interagem com o kernel; existem várias camadas de programas auxiliares que lidam com a interface do usuário, a rede e outras partes principais do sistema operacional que ficam entre o kernel e o aplicativo real.
Para dar um exemplo, mostrei a estrutura do OS X , como você pode ver na parte superior do Kernel (azul claro) existem várias camadas de funcionalidade "principal", ferramentas do sistema, serviços e APIs (Application Programming Interface) antes de você até chegar à GUI com a qual você normalmente trabalha nas próprias aplicações.
A maioria dos sistemas operacionais possui uma estrutura semelhante, mas há amplas possibilidades de diferenças em relação ao quanto de fato faz parte do kernel. Veja o artigo da Wikipedia sobre Microkernels para uma comparação.
EDIT - Para responder seu comentário (meu comentário ficou um pouco longo)
Você poderia inicializar apenas um kernel do Linux, mas não conseguiria realmente obter muito, são todos esses aplicativos auxiliares que fornecem toda a interface que você vê e usa.
Depois que o kernel é inicializado (e inicializado o hardware), ele tenta passar para outras partes do sistema operacional GNU / Linux que fornecem a funcionalidade para iniciar serviços (como o UDEV, que preenche
/dev
interfaces de dispositivos brutos para programas usarem coisas como discos rígidos, portas seriais e assim por diante) e programas para configurar a rede ( dhcpcd ) e APIs como o X.org para aplicativos poderem mostrar janelas e ícones através de um Gerenciador de Janelas como o GNOME ou KDE .Mas sim, você pode simplesmente inicializar o próprio kernel, ele fica lá com um "Eu inicializei, e agora?" pronto.
fonte