Costumo ouvir 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 pesquisa sobre o motivo pelo qual é chamado de imagem.
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 fotográfica, por que é referida como imagem?
kernel
linux-kernel
Tony
fonte
fonte
Respostas:
O processo de inicialização do Unix possui apenas recursos limitados de carregamento inteligente de um programa (realocação, carregamento de bibliotecas etc.). Portanto, o programa inicial era uma imagem exata, armazenada em disco, do que precisava ser carregado na memória e "chamado" para fazer o kernel funcionar.
Somente muito mais tarde coisas como (des-) compactação foram adicionadas e, embora agora haja carregadores de inicialização mais poderosos, o nome da imagem ficou bloqueado.
fonte
A palavra imagem também possui uma definição "Um arquivo que contém todas as informações necessárias para produzir uma cópia de trabalho ao vivo".
fonte
Isso não significa que uma "imagem" é apenas uma cópia 1: 1 de um disco. Assim como uma fotografia representa a realidade exatamente como era ao fotografar, uma imagem de um programa executável (ou kernel) representa o programa em um estado, onde ele pode ser carregado (ou descompactado) na memória do sistema exatamente como está e depois dado controle a ele. Esse programa pode então começar a ser executado a partir desse estado de maneira consistente. Portanto, 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 ele.
Atualmente, o carregador de inicialização carrega essa imagem do sistema de arquivos do disco rígido (é necessário driver), substitui-se por ela e, portanto, dá o controle a ela. O processo de inicialização de um computador faz isso várias vezes até o sistema operacional finalmente ser executado. Isso é chamado de carregamento em cadeia . Ou, se um programa menor (cadeia) carrega um programa mais complexo, é chamado de inicialização .
O BIOS carrega o carregador de inicialização que também é uma imagem, por exemplo, chamada
boot.img
no caso degrub
. Issoboot.img
não é um arquivo (se o grub estiver instalado); é o nome da parte que está no MBR (Master Boot Record). Se você despejar isso em um arquivo, seria uma imagem no formato de um arquivo não gravado bruto no disco, mas gravado em um arquivo. Essa também é uma representação (imagem) do estado mais antigo ondegrub
é possível carregar o restante.grub
então, tem seu próprio mecanismo de como carregar-se completamente carregando outras imagens. Isso é representado pelos diferentes estágios dogrub
. Depois disso, o carregador de inicialização carrega a imagem do kernel, substituindo-se pelo conteúdo extraído desse arquivo.fonte
História antiga. o termo imagem vem de um termo antigo da Digital Equipment Corporation para a saída do compilador-> vinculador. o arquivo é uma imagem criada pela interpretação do código e assim por diante através do vinculador para criar uma "Imagem" executável do seu design.
fonte
Em matemática, o kernel é a imagem inversa de um subconjunto da imagem de um 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 da 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, poderá definir o homomorfismo do grupo nesse conjunto ou mapear basicamente para outros conjuntos com tamanhos diferentes do conjunto original, desde que eles "respeitam" a estrutura do conjunto original que o transformou em um grupo. Você pode ver que pode ser a seu favor mapear o conjunto para um conjunto menor ou um subconjunto de algum conjunto em que o subconjunto é menor.
Imagem - A imagem de um homomorfismo de grupo e, em geral, funções e mapas, são apenas um subconjunto de algum conjunto, para quem os elementos realmente são mapeados. A função pode não ser mapeada para todos os elementos e esses elementos não seriam incluídos na imagem.
Kernel - basicamente apenas os elementos do conjunto original que são mapeados para a imagem, mas apenas são mapeados para o elemento de identidade na imagem. Basicamente, os elementos que são mapeados para 0 são semelhantes à imagem.
Se a imagem tiver um tamanho menor, então o conjunto original poderá ver vários itens devem ser mapeados para um único elemento. Assim, por exemplo, pode haver vários elementos do kernel que são mapeados para a imagem e já sabemos que todos eles precisam ser mapeados para 0.
Podemos ver que, se escolhermos o conjunto original como sequências finitas de binários ou 1s e 0s e o codomain (conjunto mapeado para) como também sequências de binários, podemos construir essas coisas se e somente se, uma estrutura de grupo adequada pode ser definido (um pouco mais profundo e não relacionado à pergunta).
Portanto, vemos com total certeza que "kernel" e "imagem" de um sistema operacional são completamente definidos e têm significado matemático. Independente de talvez outros usos dos termos.
fonte