Quando se trata de qualquer sistema operacional Linux, incluindo o Ubuntu, as pessoas tendem a distinguir os termos kernel e sistema operacional . Isso é correto para o Windows e a família OS X, mas por que é tão difundido entre a comunidade Linux? Existe uma maneira de atualizar o kernel do sistema operacional, sem ter o próprio sistema operacional atualizado? Ou vice-versa? Se sim, como isso pode ser útil?
9
Respostas:
Todo o sistema GNU / Linux é construído usando a abordagem modular. Você pode atualizar ( substituir em geral) principalmente um único módulo sem tocar em outros. O módulo em questão pode ser um carregador de inicialização, kernel, shell, comando, ambiente de desktop, aplicativo GUI, qualquer que seja…
Obviamente, isso é verdade desde que você consiga gerenciar as dependências corretamente. No conjunto de distribuições do Ubuntu, o APT é usado para resolver dependências automaticamente.
Você pode instalar outra versão do kernel usando o comando:
Enquanto o APT permitir, você poderá reiniciar e usar a versão selecionada do kernel, seja genérica, de baixa latência, etc. Ou criar você mesmo uma versão do kernel, por exemplo, o Real-Time Linux , e usá-la com o sistema atual. .
fonte
/etc/issue
que é fornecido pelobase-files
pacote. Como já escrevi, não está relacionado à versão do kernel.Como você sabe, o Kernel é uma parte importante do SO, nas distribuições GNU / Linux, você pode atualizar facilmente o kernel sem tocar em outra parte do SO. No entanto, estamos simplesmente atualizando uma parte do nosso sistema operacional.
Um sistema operacional é composto de duas partes, espaço do kernel e espaço do usuário.
Portanto, sim, você pode atualizar o espaço do kernel sem tocar no espaço do usuário se apenas a nova versão for compatível com o espaço do usuário atual.
E sobre a atualização das ferramentas de espaço do usuário, é outro sim.
Quando você executa:
Se houver uma atualização disponível para o kernel, você obterá:
então você está atualizando apenas o espaço do usuário e quando executa algo como
você está atualizando tudo, incluindo o kernel.
Para atualizar apenas seu Kernel para uma versão mais recente, use algo como:
para encontrar uma lista de kernels mais recentes, instale-o como um novo pacote, por exemplo:
fonte
sudo apt upgrade
atualizará o kernel também se novas versões estiverem disponíveis.sudo apt full-upgrade
irá remover as bundas bem, o queasudo apt upgrade
não vai fazer.upgrade
subcomando, ele não instalará nenhum novo pacote e também não remove nenhum pacote, é por isso que usamosdist-upgrade
. pelo menosapt-get
funciona dessa maneira;) então atualizei meus comandos para evitar qualquer confusão.apt
comando, depois de uma breve pesquisa, parece que sua resposta está correta agoraapt
eapt-get
lida com a coisa diferente, consulte hiroom2.com/2016/05/20/ubuntu-16-04-debian-8-apt -command / ... . Então, algum conhecimento para nós dois ...Primeiro, alguns esclarecimentos, porque sinto que você não entende como os sistemas GNU / Linux surgiram. Tenha paciência comigo se isso não for novidade para você:
"Kernel" não é apenas outro programa que é executado, mas é a parte do sistema operacional que fornece as funções básicas: se você deseja iniciar um programa (digamos, digite "ls" na linha de comando), o binário deve ser carregado do disco (que inclui algumas operações do sistema de arquivos para localizá-lo e algum tratamento de arquivo para lê-lo), é criado um "ambiente de processo": a memória é atribuída, um número de processo é emitido etc. etc. Todas as atividades anteriores (FS, leitura de arquivo, ...) são tratados pelas bibliotecas do sistema, mas as últimas são funções do kernel. Em certo sentido, o kernel "é o sistema operacional" e todo o resto é apenas uma decoração em torno dele.
O "Linux" é de fato (apenas!) Um kernel sem outras partes de um sistema operacional. Linus Torvalds começou a escrevê-lo, pegando o kernel do OS SO modelo Andrew Tanenbaums do MINIX e concluindo-o para que ele fosse um kernel completo e funcional. Até hoje, Linus (e muitos outros que contribuem / contribuíram) que desenvolvem esse kernel. Este kernel ainda é muito semelhante ao UNIX, mas NÃO é um kernel UNIX.
O "GNU" começou como uma iniciativa para "melhorar" muitos comandos UNIX comuns. Não vou discutir se eles foram bem-sucedidos ou não, mas eles definitivamente escreveram muitos softwares e, a certa altura, tinham uma coleção de programas utilitários. Eles até começaram a desenvolver seu próprio kernel do sistema operacional (HURD), que se baseava amplamente no UNIX, mas era definitivamente diferente. Mas até hoje o HURD está em seu desenvolvimento inicial e dificilmente é uma solução funcional. "GNU" entre. é a abreviação de "GNU (is) Not UNIX" - eles tentaram superar algumas limitações (percebidas ou reais) do UNIX com a intenção de criar um sucessor para o UNIX (novamente: eu não quero entrar na discussão se tiverem sucesso ou não - eu não me importo se é "melhor" ou "pior", mas é definitivamente diferente!).
Portanto, com um conjunto de ferramentas sem um kernel e um kernel sem um conjunto de ferramentas, foi um desenvolvimento natural juntar essas duas coisas: o GNU / Linux foi criado.
Ainda assim, para ter um sistema operacional (e viável) necessário, você precisa mais do que apenas um kernel e um conjunto de ferramentas: precisa de um sistema de gerenciamento de pacotes, de procedimentos de instalação, de configurações de modelos, de ....
Várias pessoas diferentes (ou grupos de pessoas) chegaram a essa conclusão e usaram a combinação GNU / Linux para criar um sistema GNU / Linux do seu agrado, adicionando exatamente o que eu falei acima: eles criaram um gerenciador de pacotes, um sistema de empacotamento , procedimentos de instalação e o que mais. Esses diferentes grupos (respectivamente os resultados de seus esforços) são quais são as diferentes distribuições. Hoje existem três gerenciadores de pacotes diferentes em funcionamento (apto para Debian e sistemas derivados como * ubuntu, rpm para RedHat e sistemas derivados como Fedora, CentOS e mais, pacman para ArchLinux), mas todos eles gerenciam apenas pacotes de software que são (essencialmente) o mesmo: o que é chamado quando você emite "ls" ou "df" etc.,
Portanto, "em princípio", você pode atualizar o kernel sozinho, como as pessoas que criaram uma distribuição a partir de várias versões de todos os softwares que falei acima.
Mas, e isso é realmente grande, MAS: porque não há apenas o kernel e algum software adicional, mas muitas outras coisas a serem lembradas, como ferramentas de configuração do sistema (systemd, que algumas distribuições usam e outras não), rede ferramentas de gerenciamento como o NetworkManager, que por sua vez depende de algumas versões da biblioteca GNOME, etc., etc. - uma "distribuição" é uma coisa bastante complexa e as chances são de que, se você tentar atualizar o kernel, acaba atualizando muitas outras coisas por causa das muitas interdependências.
Ainda assim, e também "em princípio", como acima: você também pode criar sua própria distribuição baixando todas as fontes, compilando-as, encontrando um conjunto de combinações de versões, instalando algum sistema de empacotamento (ou usando um dos existentes) ) - e assim por diante, até que você tenha um sistema distribuível, instalável e configurável. Isto é o que os criadores de distribuições como o Ubuntu fazem e não é um milagre - apenas um trabalho complexo, portanto, na realidade, a maioria dos usuários evita isso e usa algo que pode estar pronto para usar.
Espero que isso responda à sua pergunta.
fonte
A resposta mais simples não tem nada a ver com o Ubuntu; está relacionado à maneira como o GNU / Linux é construído. Se você tentar vê-lo como desenvolvedor de sistemas, verá dois mundos, cada um separado por uma borda nítida (a ABI).
O mundo do kernel, onde desenvolvedores de baixo nível trabalham, é um sistema por si só. Tem tudo o que você normalmente encontraria em um aplicativo regular. A única diferença é que o usuário não é a pessoa real que está usando a máquina, mas o mundo do espaço do usuário. O "aplicativo" do kernel é o intermediário, o servidor que está usando a máquina - o fantasma no shell.
Agora, o espaço do usuário é o mundo normal em que o usuário e o desenvolvedor todos os dias estão jogando. Possui APIs rígidas, regras, arquivos e, o mais importante, uma imagem abstrata e infantil da máquina em que está sendo executada. Como o usuário está vendo apenas essa parte e isso equivale a 99% do tamanho da distribuição, é fácil dar um nome errado de Sistema operacional. A nomenclatura certa é chamá-la de distribuição de software, criada por alguma entidade (Canonical, Fedora, etc.), usando um kernel (Linux, HURD, BSD, etc.) e criada usando um conjunto de ferramentas (geralmente fornecidas pelo GNU )
Para responder sua pergunta, no GNU / Linux (como no Windows e OSX, confie em mim), você pode alterar o kernel, não apenas a versão, mas toda a arquitetura (Linux Kernel, vs HURD Kernel) e, desde que a ABI não é tocada, nunca faça uma única alteração no mundo do usuário ... Naquele dia, quando o homem real precisava criar o kernel a partir de fontes, você podia passar por várias mudanças como essas, para obter uma webcam USB ruim para funcionar ... Agora, com o kernel modular, você só precisa instalar um módulo e obterá um novo mundo de kernel, com a ABI (às vezes) estendida com novos recursos ...
Novamente, o mesmo para o espaço do usuário. Quando você instala um novo aplicativo, a partir de, digamos, um repositório Ubuntu, 99% das vezes, sua maior preocupação é a compatibilidade dos outros componentes do espaço do usuário, não do kernel real. Há casos em que a versão do kernel determina (por meio da ABI) a variedade de coisas que podem ser instaladas no espaço do usuário, mas o objetivo (pelo menos para os desenvolvedores) é fazer com que isso desapareça ...
Outra coisa a considerar: você pode (e é bem fácil) criar sua própria distribuição especial e exclusiva do GNU / Linux. Obtenha um kernel, alguns scripts simples, vários aplicativos e pronto. É simples assim (dê uma olhada nas distribuições OpenWRT GNU / Linux, para equipamentos de rede, toda a distribuição se encaixa em 16Mb, mais ou menos).
fonte
Eu acho que eles são mantidos separados porque o kernel é uma parte crítica. Um kernel com regressão, ou apenas uma atualização com falha, pode causar muitos danos. Você pode atualizá-lo com menos frequência; ou apenas depois de esperar algum tempo para garantir que ninguém relate bugs preocupantes.
Além disso, alguns usuários avançados ou profissionais recompilam o kernel para modificar seu comportamento para melhor atender às suas necessidades. Nesse caso, você obviamente não gostaria que fosse substituída automaticamente pela versão de fábrica sempre que atualizar.
fonte