O que é um kernel do SO? Como isso difere de um sistema operacional? [fechadas]


Respostas:


74

A definição técnica de um sistema operacional é "uma plataforma que consiste em um conjunto específico de bibliotecas e infraestrutura para aplicativos a serem construídos e interagir entre si". Um kernel é um sistema operacional nesse sentido.

A definição do usuário final é geralmente algo em torno de "um pacote de software que fornece uma área de trabalho, atalhos para aplicativos, um navegador da web e um media player". Um kernel não corresponde a essa definição.

Portanto, para um usuário final, uma distribuição Linux (por exemplo, Ubuntu) é um sistema operacional, enquanto para um programador o próprio kernel Linux é um sistema operacional perfeitamente válido, dependendo do que você está tentando alcançar. Por exemplo, sistemas embarcados são na sua maioria apenas kernel, com um número muito pequeno de processos especializados sendo executados em cima deles. Nesse caso, o próprio kernel se torna o próprio sistema operacional.

Eu acho que você pode definir o que a maioria dos aplicativos executados em cima desse sistema operacional exige. Se a maioria deles requer apenas o kernel, o kernel é o sistema operacional; se a maioria deles exige a execução do X Window System, o sistema operacional se torna o kernel X +.


6
A definição do usuário final é geralmente algo em torno de "um pacote de software que fornece uma área de trabalho, atalhos para aplicativos, um navegador da web e um media player". Um kernel não corresponde a essa definição. Só porque alguém não tem idéia do que é um sistema operacional não significa que sua definição seja válida.
DIMMSum

1
@ dimmsum não é apenas uma definição coloquial. sistemas operacionais foram vendidos e comercializados para os usuários como tais.
Sedat Kapanoglu

Poderia, por favor, apontar-me para esse tipo de marketing? Pude ver um fornecedor de SO dizendo que eles fornecem uma plataforma na qual todos esses tipos de programas podem ser executados, mas um SO não inclui esses programas. Se você combinar os dois, estará literalmente falando de todo o sistema, para que a definição perca seu significado.
precisa saber

1
@ Dimmsum eu entendo o seu ponto e é por isso que eu forneci duas definições diferentes. talvez eu devesse ter chamado de "entendimento"? Eu acho que os usuários finais, especialmente durante a época em que os sistemas operacionais foram vendidos em caixas, têm um entendimento diferente do que é um sistema operacional e que é diretamente relevante à forma como os sistemas operacionais são comoditizados. o windows xp box prometeu uma transação totalmente diferente da definição técnica, era o que eu queria destacar.
Sedat Kapanoglu 21/01

1
@dimmsum, então existe sistema operacional em ciência da computação e existe outro sistema operacional nas prateleiras de uma loja de tecnologia. ambos são sistemas operacionais de perspectivas diferentes. eu queria enfatizar essa distinção.
Sedat Kapanoglu 21/01

73

Um kernel é a parte do sistema operacional que medeia o acesso aos recursos do sistema. É responsável por permitir que vários aplicativos compartilhem efetivamente o hardware, controlando o acesso à CPU, memória, E / S de disco e rede.

Um sistema operacional é o kernel mais os aplicativos que permitem que os usuários façam algo (por exemplo, compilador, editor de texto, gerenciador de janelas, etc.).


18
Os compiladores e editores de texto realmente fazem parte do sistema operacional? O Word é um editor de texto glorificado - isso faz parte do sistema operacional?
jon-Hanson

6
O que eu não entendo é "Um sistema operacional é o kernel mais aplicativos", mas se eu instalar um aplicativo, diga Word Perfect, isso não deve ser considerado parte do sistema operacional, não é?
Celeritas

7
@Celeritas Um pouco atrasado para a festa, mas nenhum aplicativo instalado será contado como parte do sistema operacional. Os "aplicativos" são, na verdade, os utilitários de sistema que acompanham o sistema operacional. Todos os outros softwares / aplicativos que você instala estão na camada acima disso.
hashcode55

Você estava indo bem até escrever a observação entre parênteses no segundo parágrafo. Um sistema operacional lida com solicitações feitas por esses aplicativos para controlar o hardware. Portanto, o sistema operacional inclui o kernel, drivers de dispositivos e qualquer outro software / firmware que controla especificamente o hardware no nível mais baixo.
Bob

42

Parece que a metáfora original que nos deu a palavra "núcleo" para isso em primeiro lugar foi esquecida. A metáfora é que um sistema operacional é uma semente. 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 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 é 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 o que 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 .

Leitura adicional


Agradável. No entanto, sua resposta é extraída literalmente da "Leitura adicional". Agora eu sei como obter muitos upvotes via copiar e colar. RI MUITO. Ainda útil, no entanto.
lacostenycoder

18

Bem, há uma diferença entre o kernel e o SO. O kernel, conforme descrito acima, é o coração do sistema operacional que gerencia os principais recursos de um sistema operacional. Se alguns aplicativos e utilitários úteis forem adicionados ao kernel, o pacote completo se tornará um sistema operacional. Portanto, pode-se facilmente dizer que um sistema operacional consiste em um espaço do kernel e um espaço do usuário.

Portanto, podemos dizer que o Linux é um kernel, pois não inclui aplicativos como utilitários de sistema de arquivos, sistemas de janelas e desktops gráficos, comandos de administrador de sistema, editores de texto, compiladores etc. Portanto, várias empresas adicionam esse tipo de aplicativo ao kernel do Linux e fornecer seu sistema operacional como ubuntu, suse, centOS, redHat etc.


9

O sistema operacional é um nome genérico dado a todos os elementos (interface do usuário, bibliotecas, recursos) que compõem o sistema como um todo.

O kernel é o "cérebro" do sistema operacional, que controla tudo, desde o acesso ao disco rígido até o gerenciamento de memória. Sempre que você quiser fazer alguma coisa, ela passa pelo kernel.


8

O kernel faz parte do sistema operacional, embora não seja o próprio sistema operacional. Em vez de analisar tudo o que um kernel faz, passarei à página da wikipedia: http://en.wikipedia.org/wiki/Kernel_%28computing%29 . Visão geral excelente e completa.


3
Meh, tente a primeira frase de en.wikipedia.org/wiki/Operating_system . Um sistema operacional é formalmente encarregado de mediar o acesso a recursos limitados (aproximadamente tudo no computador), e os kernels monolíticos fazem exatamente isso (os micro kernels despejam parte desse trabalho nos processos, mas eles ainda são distribuídos com o kernel). De um programador em perspectiva, o kernel é o sistema operacional. Os usuários podem contar com o shell ou outras interfaces, mas são os usuários . Lembre-se de que os SOs funcionam em tudo, desde supercomputadores até qualquer widget incorporado que precise fazer duas coisas.
dmckee --- ex-moderador gatinho

Então, o que você quer dizer é que ALGUNS sistemas operacionais são eles próprios kernels ou que as partes de um sistema operacional com o qual um usuário interage não fazem parte do sistema operacional?
danben

Além disso, "a primeira frase de en.wikipedia.org/wiki/Operating_system" diz "Um sistema operacional (SO) é uma interface entre hardware e usuário ...", então não entendo por que você está fazendo a distinção entre o que um usuário interage com o restante.
danben

7

um kernel faz parte do sistema operacional, é a primeira coisa que o carregador de inicialização carrega na CPU (para a maioria dos sistemas operacionais), é a parte que faz interface com o hardware e também gerencia quais programas podem fazer o que com o hardware, é realmente a parte central do sistema operacional, é composta por drivers, um driver é um programa que faz interface com uma determinada peça de hardware, por exemplo: se eu fizesse uma câmera digital para computadores, precisaria fazer um driver para ele, os drivers são os únicos programas que podem controlar a entrada e a saída do computador


3

Resposta Simples

O Kernel é a parte principal do sistema operacional. Não é necessariamente um sistema operacional por si só.

Tudo o resto é construído em torno dele.

Definição elaborada

Kernel (computação) - Wikipedia


O sistema operacional do kernel não possui drivers?
Xinus

1
Não ... a maioria dos Kernels une as várias partes do sistema operacional (não apenas os drivers).
Justin Niessner

2

Na computação, o 'kernel' é o componente central da maioria dos sistemas operacionais de computadores; é uma ponte entre aplicativos e o processamento de dados real feito no nível do hardware. As responsabilidades do kernel incluem gerenciar os recursos do sistema (a comunicação entre os componentes de hardware e software). Normalmente, como um componente básico de um sistema operacional, um kernel pode fornecer a camada de abstração de nível mais baixo para os recursos (especialmente processadores e dispositivos de E / S) que o software aplicativo deve controlar para desempenhar sua função. Geralmente, esses recursos ficam disponíveis para os processos de aplicativos por meio de mecanismos de comunicação entre processos e chamadas do sistema.


2

O kernel pode ser o sistema operacional ou parte do sistema operacional. No Linux, o kernel é carregado e executado primeiro. Em seguida, inicia outros bits do sistema operacional (como init) para tornar o sistema útil.

Isto é especialmente verdade em um ambiente de micro-kernel. O kernel possui funcionalidade mínima. Todo o resto, como sistemas de arquivos e TCP / IP, é executado como um processo do usuário.


E o Kernel em uma linguagem de script como Ruby? Por exemplo, se você tiver o Ruby instalado, poderá executar isso no terminal * nix ruby -e "puts Kernel.methods"e verá muitos métodos definidos.
lacostenycoder

2

O Kernel reside no sistema operacional. Na verdade, é um espaço de memória fornecido especialmente para o manuseio das funções do sistema operacional.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.