O kernel do Linux é como uma ponte que permite a comunicação computacional entre aplicativos e hardware e gerencia os recursos do sistema. Linus Torvalds desenvolveu o kernel Linux com C e Assembly e assim, ele conseguiu criar um núcleo leve e portátil que foi lançado ao público como código aberto.
Você pode ver o kernel do Linux em muitos setores diferentes, como espaço, computadores, relógios inteligentes, telefones celulares, robótica e saúde. Mas você já se perguntou como o kernel Linux funciona sob o capô?
Uso de hardware no Linux
O kernel do Linux, em primeiro lugar, controla qual hardware será executado e de que maneira quando você ligar o computador. Além disso, o controle de software de ponta é possível graças à interface de programação. Para dar um exemplo desses controles, é possível que você veja informações sobre o hardware instalado nos slots da sua placa-mãe e se beneficie dessas informações detalhadas.
Além disso, essa interface de programação fornece uma camada de abstração. Por exemplo, se você quiser conversar por vídeo com seus amigos, precisará de uma webcam. A camada de abstração possibilita que o software que você usa empregue esta webcam independentemente de sua marca e modelo. O software aqui só pode usar a interface que existe para Linux. O kernel do Linux traduz as chamadas de função dessa interface em comandos de hardware reais que a webcam precisa.
Usando o /proc e /sys sistemas de arquivos virtuais, o kernel Linux pode exportar informações detalhadas sobre o hardware ele detecta. Abaixo você pode ver algumas ferramentas usadas para isso e quais dispositivos e cartões eles exportam:
- lspci: Para dispositivos PCI
- lsusb: Para dispositivos USB
- lspcmcia: Para cartões PCMCIA
Como você pode ver, a distribuição Linux na captura de tela acima é executada no VirtualBox. No entanto, você tem a oportunidade de ver muitas informações, como VGA, controlador USB, pontes e controlador SATA.
Você também pode usar o -v parâmetro para obter informações muito mais detalhadas.
No kernel do Linux, os aplicativos geralmente acessam os dispositivos por meio de arquivos especiais que existem no /dev diretório. Esses arquivos especiais representam unidades de disco e outros dispositivos físicos. Arquivos como /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 e dev/snd/* são exemplos desses arquivos especiais.
Gerenciamento do sistema de arquivos Linux
Os sistemas de arquivos são um dos componentes mais notáveis do kernel do Linux. O sistema de arquivos do Linux é um de seus maiores benefícios. Todos os arquivos em um sistema Linux são reunidos em uma única ramificação. Os usuários podem, assim, utilizar essa hierarquia para chegar aos lugares desejados.
O ponto de partida desta hierarquia é o diretório raiz (/). Outros subdiretórios estão sob o diretório raiz. O subdiretório mais usado em / é o /home diretório. Este subdiretório contém outros subdiretórios e cada diretório possui arquivos que armazenam os dados reais.
Por exemplo, você pode pensar em um arquivo de texto em sua área de trabalho. Se você criar um arquivo de texto chamado helloworld.txt em sua área de trabalho, você pode se referir a ele como /home/muo/Desktop/helloworld.txt. O exemplo de /muo aqui irá, é claro, variar. Porque esse nome de subdiretório depende do nome do usuário atual. Com esse sistema de nomenclatura, o kernel do Linux traduz entre o armazenamento real e físico que existe em um disco.
Além disso, o kernel do Linux pode integrar dados de vários discos. É aqui que entra o sistema de montagem. Ele usa um dos discos no sistema raiz e monta os outros em diretórios existentes na hierarquia. Outros discos são então colocados sob pontos de montagem. Isso permite que os usuários armazenem /home diretório em um segundo disco rígido que também contém outros subdiretórios.
Quando você monta um disco no /home diretório, você pode acessar esses diretórios de locais normais. Assim, caminhos como /home/muo/Desktop/helloworld.txt continuar a trabalhar.
Você pode ver os pontos de montagem entre os arquivos em seu sistema com o findmnt -A comando.
Com muitos formatos de sistema de arquivos, você pode armazenar dados fisicamente em discos. Os mais conhecidos no Linux são os ramal2, ramal3, e ramal 4 formatos de sistema de arquivos. No entanto, existem muitos outros formatos de sistema de arquivos. De qualquer forma, você precisa formatar o sistema de arquivos antes de montá-lo. Você pode usar comandos como mkfs.ext3 (mkfs significa make file system e ext3 é o sistema de arquivos) para isso.
Esses comandos aceitam o caminho do arquivo do dispositivo que você deseja formatar como parâmetro. É uma operação destrutiva e você deve usá-la com cuidado se não quiser limpar ou redefinir um sistema de arquivos.
Além destes, existem também sistemas de arquivos de rede, como NFS que o kernel do Linux usa. NFS é um sistema de arquivos de rede onde os dados não são armazenados em um disco local. Com o NFS, os dados passam pela rede para um servidor que armazena os dados. Como os dados estarão em um servidor, os usuários não precisam lidar com eles constantemente. Eles também podem usar o sistema de arquivos hierárquico tradicional do Linux como de costume.
Operações de função compartilhada
Todos os softwares do sistema Linux possuem funções comuns. É por isso que essas funções são centrais no kernel do Linux. Por exemplo, ao abrir um arquivo, você pode abri-lo apenas com o nome do arquivo, sem saber onde o arquivo está fisicamente armazenado e quais funções e operações ele utilizará. Todas essas funções já estão presentes no kernel.
Você pode armazenar seu arquivo no disco rígido, dividi-lo entre vários discos rígidos ou até mesmo mantê-lo em um servidor remoto. As funções de comunicação de arquivos compartilhados são importantes nesses casos. Os aplicativos trocam dados independentemente de como os dados são movidos. As funções de comunicação compartilhada existem para fazer essas trocas de dados. Esse movimento pode ser por redes sem fio ou até mesmo por uma linha telefônica fixa.
Gerenciamento de processos no Linux
Uma instância ativa de um programa operando em dados ou informações na memória é conhecida como processo. A tarefa do kernel do Linux é gerar e acompanhar essas regiões de memória. O kernel aloca memória para um programa em execução e carrega o código executável na memória do sistema de arquivos. Imediatamente depois, o kernel executa o código.
O kernel Linux suporta multitarefa. É capaz de executar vários processos ao mesmo tempo. No entanto, há apenas uma transação em um determinado período de tempo. No entanto, o kernel do Linux divide o tempo em pequenos pedaços e, como resultado, cada procedimento ocorre sequencialmente.
Como esses pequenos segmentos de tempo estão em incrementos de milissegundos, eles ficam ativos apenas em horários específicos e permanecem inativos o resto do tempo. O trabalho do kernel Linux aqui é maximizar o desempenho executando vários processos ao mesmo tempo.
Se os intervalos de tempo forem muito longos, o aplicativo em execução pode não ser tão responsivo quanto você gostaria. Se os prazos forem muito curtos, pode haver problemas com alterações de tarefas. Dependendo da prioridade do processo, o intervalo de tempo necessário aqui variará. Você pode ter ouvido falar de processos de alta prioridade e processos de baixa prioridade antes. Esta é uma das funções que o kernel do Linux controla.
Essa explicação nem sempre é correta. A limitação real é que só pode haver um processo de trabalho por núcleo de processador por vez. Os sistemas multiprocessados permitem que vários processos sejam executados em paralelo. Um sistema básico quase sempre tem dezenas de processos em execução.
Direitos de acesso no Linux
Assim como em outros sistemas operacionais, você pode criar muitos usuários em um sistema Linux. Nesses casos, existe um sistema de gerenciamento de direitos que oferece suporte a usuários e grupos individuais. Este é o lugar onde permissões de arquivo e usuário entre no jogo.
O kernel do Linux gerencia os dados e verifica as permissões necessárias para cada processo. Por exemplo, se você tentar abrir um arquivo, o kernel precisa verificar o ID do processo em relação às permissões de acesso. Se o kernel verificar e ver que você tem permissões, ele abrirá o arquivo.
O Kernel Linux Controla Tudo
Como você pode ver, o kernel do Linux supervisiona tudo, desde a segurança de seus arquivos até a criação de usuários e o download de arquivos da Internet. Tudo está em uma determinada ordem. Todo usuário tem direitos. O kernel do Linux gerencia processos e intervalos de tempo para desempenho máximo.
Além disso, o sistema de arquivos, que é uma das maiores características que distinguem o kernel Linux de outros sistemas operacionais, é muito importante. Linux não é uma caixa escondida. Pelo contrário, todos os arquivos e códigos-fonte são acessíveis. Para entender melhor a natureza prática e poderosa do kernel do Linux, você pode examinar a hierarquia do sistema de diretórios do Linux.