Kernel (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Kernel. Data da última tradução: 2020-06-28. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

De acordo com o Wikipédia:

O kernel Linux (ou núcleo Linux) é um kernel para sistemas operacionais tipo UNIX, monolítico e de código aberto.

Arch Linux é baseado no kernel do Linux. Existem vários kernels Linux disponíveis para o Arch Linux, além do kernel estável mais recente. Este artigo lista algumas das opções disponíveis nos repositórios com uma breve descrição de cada uma. Há também uma descrição dos patches que podem ser aplicados ao kernel do sistema. O artigo termina com uma visão geral da compilação personalizada do kernel com links para vários métodos.

Os pacotes de kernel são instalados no sistema de arquivos em /boot/. Para poder inicializar no kernels, o gerenciador de boot deve ser configurado adequadamente.

Kernels com suporte oficial

  • Stable — Kernel e módulos Vanilla Linux, com alguns patches aplicados.
https://www.kernel.org/ || linux
  • Hardened — Um kernel Linux focado na segurança que aplica um conjunto de patches rígidos para mitigar as explorações do kernel e do espaço do usuário. Ele também permite mais recursos de fortalecimento do kernel upstream do que linux.
https://github.com/anthraxx/linux-hardened || linux-hardened
  • Longterm — Kernel e módulos Linux de suporte a longo prazo (LTS).
https://www.kernel.org/ || linux-lts
  • Zen Kernel — Resultado de um esforço colaborativo de hackers do kernel para fornecer o melhor kernel Linux possível para os sistemas do dia a dia. Mais detalhes podem ser encontrados em https://liquorix.net (que fornece binários de kernel baseados no Zen for Debian).
https://github.com/zen-kernel/zen-kernel || linux-zen

Compilação

O Arch Linux fornece dois métodos para compilar seu próprio kernel.

/Arch Build System
Aproveita a alta qualidade do PKGBUILD existente do linux e os benefícios de gerenciamento de pacote.
/Compilação tradicional
Envolve o download manual de um tarball de origem e a compilação no diretório inicial como um usuário normal.

Kernels do kernel.org

  • Git — Kernel e módulos Linux compilados usando fontes do repositório Git de Linus Torvalds
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git || linux-gitAUR
  • Mainline — Kernels onde todos os novos recursos são introduzidos, lançados a cada 2-3 meses.
https://www.kernel.org/ || linux-mainlineAUR
  • Next — Kernels mais recentes com recursos pendentes para serem mesclados na próxima versão da linha principal.
https://www.kernel.org/doc/man-pages/linux-next.html || linux-next-gitAUR
  • Longterm 4.19 — Kernel e módulos Linux 4.19 de suporte a longo prazo (LTS).
https://www.kernel.org/ || linux-lts419AUR
  • Longterm 5.4 — Kernel e módulos Linux 5.4 de suporte a longo prazo (LTS).
https://www.kernel.org/ || linux-lts54AUR
  • Longterm 5.10 — Kernel e módulos Linux 5.10 de suporte a longo prazo (LTS).
https://www.kernel.org/ || linux-lts510AUR
  • Longterm 5.15 — Kernel e módulos Linux 5.15 de suporte a longo prazo (LTS).
https://www.kernel.org/ || linux-lts515AUR

Patches e patchsets

Existem muitas razões para corrigir o seu kernel, as principais são para desempenho ou suporte a recursos que não são da linha principal. Outras razões podem incluir diversão e ver como isso é feito e quais são as melhorias.

No entanto, é importante notar que a melhor maneira de aumentar a velocidade do seu sistema é primeiro adaptar o kernel ao seu sistema, especialmente a arquitetura e o tipo de processador. Por esse motivo, o uso de versões pré-empacotadas de kernels personalizados com configurações genéricas de arquitetura não é recomendado nem realmente vale a pena. Um benefício adicional é que você pode reduzir o tamanho do seu kernel (e, portanto, tempo de compilação), não incluindo suporte para itens que você não possui ou usa. Por exemplo, você pode começar com a configuração do kernel padrão quando uma nova versão do kernel for lançada e remover o suporte a itens como Bluetooth, video4linux, Ethernet de 1000 Mbit etc., funcionalidades que você sabe que não precisará para sua máquina específica. Embora esta página não seja para personalizar a configuração do seu kernel, ela é recomendada como um primeiro passo - antes de passar a usar um conjunto de patches depois de entender os fundamentos envolvidos.

Os arquivos de configuração para os pacotes do kernel do Arch podem ser usados como ponto de partida. Eles estão nos arquivos de origem do pacote Arch, por exemplo [1] vinculados a partir de linux. O arquivo de configuração do seu kernel atualmente em execução também pode estar disponível no seu sistema de arquivos em /proc/config.gz se a opção do kernel CONFIG_IKCONFIG_PROC estiver ativada.

Se você realmente não corrigiu ou personalizou um kernel antes, não é tão difícil e existem muitos PKGBUILDs no fórum para conjuntos de patches individuais. No entanto, é aconselhável começar do zero com um pouco de pesquisa sobre os benefícios de cada conjunto de patches, em vez de escolher apenas um. Dessa forma, você aprenderá muito mais sobre o que está fazendo, em vez de apenas escolher um kernel na inicialização e ficar imaginando o que ele realmente faz.

Atenção: Os patchesets são desenvolvidos por uma variedade de pessoas. Algumas dessas pessoas estão realmente envolvidas na produção do kernel Linux e outras são entusiastas, o que pode refletir seu nível de confiabilidade e estabilidade.

Patchsets principais

  • Linux-ck — Contém os patches da Con Kolivas projetados para melhorar a capacidade de resposta do sistema, com ênfase específica na área de trabalho, mas adequados a qualquer carga de trabalho.
http://ck.kolivas.org/ || linux-ckAUR
  • pf-kernel — Fornece um punhado de recursos impressionantes não mesclados na linha principal. Ele não se baseia no fork ou no patchset do Linux existente, embora alguns ports não oficiais possam ser usadas se os patches necessários não tiverem sido lançados oficialmente. Os patches mais proeminentes do linux-pf são UKSM.
https://pfkernel.natalenko.name || Pacotes:
  • Realtime kernel — Mantido por um pequeno grupo de desenvolvedores principais, liderado por Ingo Molnar. Esse patch permite que quase todo o kernel seja antecipado, com exceção de algumas regiões muito pequenas de código ("regiões críticas de raw_spinlock"). Isso é feito substituindo a maioria dos spinlocks do kernel por mutexes que suportam a herança de prioridade, além de mover todas as interrupções e interrupções do software para os threads do kernel.
https://wiki.linuxfoundation.org/realtime/start || linux-rt, linux-rt-lts

Outros patchsets

Alguns dos pacotes listados também podem estar disponíveis como pacotes binários via Repositórios não oficiais de usuários.

  • Clear — Patches do projeto Clear Linux da Intel. Fornece otimizações de desempenho e segurança.
https://github.com/clearlinux-pkgs/linux || linux-clearAUR
  • GalliumOS — O kernel e os módulos do Linux com patches do GalliumOS para Chromebooks.
https://github.com/GalliumOS/linux || linux-galliumosAUR[link quebrado: package not found]
  • Libre — Os kernels do Linux sem "blobs binários".
https://www.fsfla.org/ikiwiki/selibre/linux-libre/ || linux-libreAUR
  • Liquorix — Substituição do kernel criada usando a configuração direcionada ao Debian e as fontes do kernel Zen. Projetado para cargas de trabalho de desktop, multimídia e jogos, é frequentemente usado como um kernel de substituição de desempenho Debian Linux. Damentz, o mantenedor do patchset Liquorix, também é desenvolvedor do patchset Zen.
https://liquorix.net || linux-lqxAUR
  • VFIO — O kernel do Linux e alguns patches escritos por Alex Williamson (substituição de ACS e i915) para permitir a capacidade de passagem do PCI com o KVM em algumas máquinas.
https://lwn.net/Articles/499240/ || linux-vfioAUR, linux-vfio-ltsAUR
  • XanMod — Com o objetivo de aproveitar ao máximo as estações de trabalho de alto desempenho, os desktops de jogos, os centros de mídia e outros, criados para oferecer uma experiência de desktop mais sólida, responsiva e suave. Este kernel usa o agendador MuQSS, o escalonador de E/S BFQ, a deduplicação de dados da memória em tempo real do UKSM, o controle de congestionamento TCP BRR, o suporte avançado ao conjunto de instruções x86_64 e outras alterações padrão.
https://xanmod.org/ || linux-xanmodAUR

Veja também