Kernel (Portuguê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.
- 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.
- Longterm — Kernel e módulos Linux de suporte a longo prazo (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).
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
- Mainline — Kernels onde todos os novos recursos são introduzidos, lançados a cada 2-3 meses.
- Next — Kernels mais recentes com recursos pendentes para serem mesclados na próxima versão da linha principal.
- Longterm 4.4 — Kernel e módulos Linux 4.4 de suporte a longo prazo (LTS).
- Longterm 4.9 — Kernel e módulos Linux 4.9 de suporte a longo prazo (LTS).
- Longterm 4.14 — Kernel e módulos Linux 4.14 de suporte a longo prazo (LTS).
- Longterm 4.19 — Kernel e módulos Linux 4.19 de suporte a longo prazo (LTS).
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.
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.
- 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 o agendador de CPU PDS e UKSM.
-
https://gitlab.com/post-factum/pf-kernel/wikis/README || Pacotes:
- Repositório do desenvolvedor do pf-kernel, post-factum
- Repositório, linux-pfAUR, linux-pf-preset-defaultAUR do desenvolvedor do fork do pf-kernel, Thaodan
- linux-pf-gitAUR de yurikoles
- 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.
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.
- Aufs — O kernel e os módulos do linux compatíveis com aufs, úteis ao usar o docker.
- Clear — Patches do projeto Clear Linux da Intel. Fornece otimizações de desempenho e segurança.
- GalliumOS — O kernel e os módulos do Linux com patches do GalliumOS para Chromebooks.
- Libre — Os kernels do Linux sem "blobs binários".
- 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.
- MultiPath TCP — O kernel do Linux e os módulos com suporte a Multipath TCP.
- 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.
- 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.
Veja também
- O'Reilly - Linux Kernel in a Nutshell (free ebook)
- What stable kernel should I use? by Greg Kroah-Hartman
- Documentação do kernel Linux