No último artigo explicámos o que é o kernel Linux, agora vamos entrar em detalhes sobre as tarefas funcionais que executa. O kernel monolítico do SO Linux executa o maior número de tarefas. O processamento das chamadas de sistema recebidas tem lugar ao mais alto nível. Estas chamadas são a interface entre o kernel e as aplicações do utilizador. Os sinais de hardware e as interrupções são tratados a um nível inferior.
No entanto, as tarefas do kernel não se limitam a tratar as interrupções. Também inclui programas de controlo de dispositivos. Os drivers são necessários para processar os sinais provenientes dos dispositivos. Uma grande parte do kernel é-lhes atribuída. Alguns deles estão na forma de ficheiros binários. A versão do kernel sem drivers fechados é o Linux-libre, na prática não é tão fácil de usar, porque nem sempre é possível construir um PC baseado em componentes com apenas drivers abertos.
Outras tarefas funcionais do kernel são o trabalho com abstracções. As threads virtuais são geradas por uma thread virtual, um gestor de memória atribui e isola uma parte da RAM especificamente para o processo, um sistema de ficheiros virtual forma um espaço único para armazenar ficheiros, as sockets são criadas por um módulo de rede. É assim que são criadas as condições para garantir um elevado nível de segurança. O sistema de interação entre processos garante a inexistência de conflitos no acesso aos mesmos recursos informáticos e permite a troca de dados entre processos.
Do ponto de vista do software do utilizador, assemelha-se ao hardware físico, com a diferença de que o processador e a RAM não comunicam diretamente, mas sim através de chamadas de sistema. O diretório /dev
contém referências simbólicas e de bloco para os periféricos. Uma caraterística distintiva das referências de bloco é que elas funcionam apenas com blocos de um tamanho definido.
Apesar de o kernel controlar todos os processos, ele não faz nada sozinho, precisa de software de utilizador e dos processos executados por esse software. Entre o software básico estão os utilitários GNU: é difícil imaginar qualquer distribuição Linux sem eles. Um exemplo é a shell Bash
, que permite introduzir comandos na consola.