O que são o kernel, as “ferramentas e utilitários GNU”, o shell e o gerenciador de janelas?

3

Entre os muitos componentes de um sistema Linux, fico confuso sobre o que exatamente é o kernel ou o que é parte do GNU. Eu entendo alguns conceitos básicos disso, mas onde está a linha entre um shell e o gerenciador de janelas?

    
por Rui F Ribeiro 09.03.2011 / 15:36

2 respostas

4

Kernel

O kernel gerencia recursos. Os recursos incluem tempo do processador, memória e periféricos. Ele faz isso comunicando-se diretamente com os recursos e expondo uma interface ao espaço do usuário.

Ferramentas de espaço do usuário (às vezes inclui ferramentas e utilitários GNU)

As Ferramentas do Espaço do Usuário incluem utilitários básicos como ls, cat, dd, ln, mount, etc. Eles permitem que um usuário trabalhe com recursos que o kernel fornece. O Linux (em oposição ao BSD, OSX e outros Unices) é o principal usuário das ferramentas GNU, mas nem todos os sistemas Linux os usam; um conjunto alternativo de ferramentas para o Linux é fornecido pelo Busybox.

Shell

O shell fornece o ambiente que permite ao usuário usar as Ferramentas do Espaço do Usuário. Exemplos de shells incluem bash, ksn, zsh e fish. Eles normalmente fornecem um prompt no qual o usuário pode inserir comandos que iniciam as ferramentas do espaço do usuário.

Gerenciador de Janelas

Esta é uma camada muito mais alta, normalmente existe um servidor de exibição, que é responsável pelo gerenciamento de recursos gráficos, de áudio e de E / S e fornece uma interface para ferramentas de nível superior. Geralmente, um gerenciador de exibição é a camada acima do servidor de exibição e pode fornecer itens como gerenciamento de login de usuário e gerenciamento de sessão. Acima disso, normalmente é um gerenciador de janelas. O gerenciador de janelas fornece regiões nas quais os aplicativos podem renderizar seu conteúdo, além de permitir que o usuário interaja com essas regiões, movendo, redimensionando e reordenando-as.

    
por 09.03.2011 / 16:12
2

Se você estiver usando 'bash' como seu shell, é um utilitário GNU. O pacote 'coreutils' no seu sistema contém software GNU, coisas como mv , ls , rm , etc.

O Kernel não é algo com o qual você interage diretamente, mas através de outro software no seu sistema. Para ser muito genérico em definição, um kernel fornece um meio para o software interagir com o hardware em seu sistema, lendo em suas principais teclas e movimento de mouse, lendo e gravando dados em seus discos, e agendando e executando o cálculo a partir de software em execução no seu computador. Há muitos detalhes que estou ignorando / ignorando, você pode se beneficiar da leitura da página do Kernel da Wikipedia .

Seu gerenciador de janelas provavelmente não é o software GNU, mas de outros projetos de software (Gnome, KDE, XFCE, etc). No entanto, todos eles dependem do software GNU para executar, usando a biblioteca GNU C (glibc) e a coleção GNU Compiler (gcc), por exemplo. Além disso, grande parte do software no seu sistema é licenciado com a Licença Pública Geral GNU, ou a GPL, então você está se beneficiando da licença do GNU.

    
por 09.03.2011 / 16:15