Por que o kernel do Linux é chamado de “imagem”?

60

Frequentemente ouço as pessoas se referirem ao kernel do Linux como a imagem do kernel do Linux e não consigo encontrar respostas em nenhum mecanismo de busca sobre o motivo de sua imagem ser chamada.

Quando penso em uma imagem , só consigo pensar em duas coisas: uma cópia de um disco ou uma foto. Com certeza não é uma imagem de foto então por que é referido como uma imagem?

    
por Tony 09.06.2015 / 09:52

5 respostas

59

O processo de inicialização do Unix tem (tinha) apenas capacidades limitadas de carregar inteligentemente um programa (realocando-o, carregando bibliotecas, etc.). Portanto, o programa inicial era uma imagem exata, armazenada em disco, do que precisava ser carregado na memória e "chamado" para ativar o kernel.

Apenas coisas muito posteriores, como (de-) compressão, foram adicionadas e, embora os gerenciadores de inicialização mais poderosos estejam no lugar, o nome da imagem ficou preso.

    
por 09.06.2015 / 09:58
30

A palavra image também tem uma definição "Um arquivo que contém todas as informações necessárias para produzir uma cópia ativa."

    
por 09.06.2015 / 12:03
20

Isso não significa que uma "imagem" seja apenas uma cópia 1: 1 de um disco. Assim como uma fotografia representa a realidade exatamente como foi ao fotografar, uma imagem de um programa executável (ou kernel) representa o programa em um estado, onde pode ser carregado (ou descompactado) nos sistemas memória exatamente como é e, em seguida, deu o controle a ela. Esse programa pode então começar a correr desse estado de uma maneira consistente. Assim, a imagem do kernel do Linux é uma imagem (uma imagem do estado) do kernel do Linux que é capaz de executar por si só depois de dar o controle a ela.

Hoje em dia, o bootloader carrega essa imagem do sistema de arquivos do disco rígido (o driver é necessário), substitui-se por ela e, assim, dá o controle a ela. O processo de inicialização de um computador faz isso várias vezes até que o sistema operacional seja finalmente executado. Isso é chamado de carregamento da cadeia . Ou se um programa menor (chain-) carregar um mais complexo, ele é chamado de bootstrapping .

O BIOS carrega o gerenciador de inicialização que também é uma imagem, por exemplo, chamado boot.img no caso de grub . Esse boot.img não é um arquivo (se o grub estiver instalado); é o nome da parte que está no registro mestre de inicialização (MBR). Se você despejar isso em um arquivo, seria uma imagem na forma de um arquivo não gravada em disco, mas gravada em um arquivo. Esta é também uma representação (imagem) do estado mais antigo em que grub é capaz de carregar o resto de si mesmo. grub , em seguida, tem seu próprio mecanismo como carregar totalmente a si mesmo, carregando outras imagens. Isso é representado pelos diferentes estágios em grub . Depois disso, o gerenciador de inicialização carrega a imagem do kernel substituindo-se pelo conteúdo extraído desse arquivo.

    
por 09.06.2015 / 13:20
6

História Antiga. o termo imagem vem de um termo antigo da Digital Equipment Corporation para a saída do compilador > linker. o arquivo é uma imagem criada interpretando o código e assim por diante através do vinculador para criar uma "imagem" executável do seu design.

    
por 10.06.2015 / 22:28
4

Em matemática, o kernel é a imagem inversa de um subconjunto da imagem de algum mapa, onde o subconjunto é igual ao elemento de identidade no codomain. Estou certo de que esses nomes derivam de conceitos matemáticos, pois estão relacionados significativamente em vários campos da matemática. Considerando que o Unix foi derivado em um ambiente acadêmico, pode ser possível que o uso do kernel e imagem dessas palavras seja o mesmo.

Se você tiver um conjunto que represente algum nível de informação sobre o sistema operacional "completo", se essa informação também formar um grupo, você poderá definir homomorfismos de grupo naquele conjunto ou basicamente mapear para outros conjuntos com tamanhos diferentes do conjunto original contanto que "respeitem" a estrutura do conjunto original que fez dele um grupo. Você pode ver que pode ser a favor de mapear o conjunto para um conjunto menor ou um subconjunto de algum conjunto onde o subconjunto é menor.

Imagem - A imagem de um homomorfismo de grupo e, em geral, funções e mapas, é apenas um subconjunto de alguns conjuntos, para os quais os elementos são mapeados. A função pode não mapear para todos os elementos e esses elementos não serão incluídos na imagem.

Kernel - Basicamente, apenas os elementos do conjunto original que mapeiam para a imagem, mas apenas mapeiam para o elemento de identidade na imagem. Basicamente os elementos que mapeiam para 0 como coisa na imagem.

Se a imagem for menor em tamanho do que o conjunto original, poderemos ver que vários itens devem ser mapeados para um único elemento. Assim, por exemplo, pode haver vários elementos do kernel que mapeiam para a imagem e já sabemos que todos eles precisam mapear para 0.

Podemos ver que se escolhermos o conjunto original como seqüências finitas de binário ou 1's e 0s e o codomain (conjunto mapeado como) também ser seqüências de binário, então podemos construir tais coisas se e somente se, um estrutura de grupo adequada pode ser definida (este pouco em profundidade e não relacionado à pergunta feita).

Então, vemos com certeza absoluta que "kernel" e "imagem" de um O.S. são completamente definidos e têm significado matemático. Independente de talvez outros usos dos termos.

    
por 09.06.2015 / 23:17