O Kernel Linux
O kernel Linux é o núcleo central do sistema operacional Linux, responsável por fazer a intermediação entre o hardware da máquina e os programas que rodam sobre ele. Desenvolvido por Linus Torvalds em 1991 como um projeto pessoal e acadêmico inspirado no Minix, o kernel é escrito predominantemente em linguagem C com trechos em Assembly para as partes mais baixo nível e arquitetura-específicas. Ele é classificado como um kernel monolítico — o que significa que todos os seus subsistemas principais (gerenciamento de memória, escalonamento de processos, sistema de arquivos, pilha de rede, drivers de dispositivos) executam no mesmo espaço de endereçamento privilegiado, o kernel space —, embora suporte módulos carregáveis dinamicamente (loadable kernel modules), o que lhe confere certa flexibilidade modular sem abrir mão do desempenho típico da arquitetura monolítica.
Entre suas responsabilidades fundamentais estão o gerenciamento de processos e threads, por meio de um escalonador sofisticado (atualmente o CFS — Completely Fair Scheduler) que distribui tempo de CPU entre as tarefas de forma justa e eficiente; o gerenciamento de memória virtual, que abstrai a memória física via paginação, permitindo que cada processo enxergue um espaço de endereçamento isolado e protegido; e o sistema de arquivos virtual (VFS — Virtual File System), uma camada de abstração que permite ao kernel suportar dezenas de sistemas de arquivos distintos (ext4, Btrfs, XFS, NTFS, FAT, entre outros) com uma interface uniforme para as aplicações. Além disso, o kernel gerencia a comunicação com todo o hardware do sistema por meio de drivers, que podem ser compilados estaticamente no kernel ou carregados como módulos em tempo de execução.
Por ser distribuído sob a licença GPL v2 (GNU General Public License), o kernel Linux é software livre, o que permitiu sua adoção massiva e diversificada ao longo das décadas. Hoje ele está presente em uma variedade extraordinária de dispositivos: servidores corporativos e de nuvem (onde domina absoluto), supercomputadores (presentes em praticamente 100% do TOP500 mundial), dispositivos Android, roteadores, televisores, automóveis, sistemas embarcados, e até no espaço — em rovers da NASA e na Estação Espacial Internacional. O desenvolvimento do kernel é colaborativo e distribuído, com milhares de contribuidores de todo o mundo e empresas como Red Hat, Google, Intel e Samsung entre os maiores patrocinadores, tornando-o um dos projetos de software de código aberto mais ativos e complexos já criados, com mais de 30 milhões de linhas de código no repositório oficial.
