Como é bom trazer informação aos nossos leitores, em especial quando o assunto é voltado ao código, licenças ou projetos. A gente sabe que a discussão sobre o assunto é bem antiga e longa. Mas, a ideia deste artigo é tão somente mostrar a diferença entre Linux e GNU/Linux.
Se você costuma ler nossos reviews ou lançamentos de distribuições, deve ter observado que sempre usamos o termo GNU/Linux ao invés de somente Linux, mas há um motivo. Hoje vamos tentar esclarecer da melhor maneira, as diferença entre Linux e GNU/Linux.
O que é Linux?
Imagine que o Linux é o coração, mas em miúdos, você pode entender como um sistema operacional que consegue reconhecer dispositivos, é o núcleo do sistema, e como já lemos por aí, é o Kernel, e é por isso que recebe o nome de Linux Kernel o que difere de outros kernels existentes no mercado.
O Linux ou Linux Kernel está em quase tudo, hoje graças a internet das coisas, é possível encontrar o Linux em lâmpadas, geladeiras, smartphones e vai até rifles do exército seguido por um famoso frigorifico que também usa o Linux para comunicar quando alguma coisa esta faltando.
O Linux para alguns é conhecido como coração, para outros pode ser chamado de cérebro. Em minha opinião, as duas alusões estão corretas. Se entendemos que o Linux é o Kernel e que sem ela nada funciona, podemos chamá-lo de coração, e se também compreendermos que a inteligência dele depende das informações que são adicionadas a cada lançamento, podemos também chamá-lo de cérebro, que para nós, os dois são essenciais para nos manter vivos, por isso que tanta gente faz essa comparação, e que de certo modo esta correta.
E o que é o sistema operacional?
Em resumo, o sistema operacional é um software que consegue se comunicar com o hardware, isso vai desde um simples teclado USB até a luz de fundo de uma tela em um notebook. Este software tão especial não só consegue se comunicar com os dispositivos internos, como também os externos os quais podemos citar impressoras, scanners e muitos outros dispositivos que podemos conectar ao nosso computador.
E quando o dispositivo não é reconhecido ? É aí que o pulo do gato, cada hardware tem seu drive, e são estes drivers que vão adicionar informações ao nosso querido Kernel, neste caso o Linux, nestas informações estão contidas como o Linux deve se comunicar com o hardware, são muitas especificações técnicas que ao instalar o driver serão enviadas para o Kernel deixando-o mais inteligente e fazendo com que esse coração aguente o tranco quando algo novo for plugado.
E o que é o GNU/Linux?
Muita gente não vê diferença nenhuma, mas há sim. O termo gera sempre muita briga, mas a verdade é que analisando as documentações do projeto GNU e Linux, tudo faz sentido. Como falei antes, o Linux é o software todo especial que se comunica com o hardware do seu computador e o GNU é o método que todos nós temos para nos comunicar com o Linux, ou seja, com o Linux Kernel.
Eis que somando o Linux que é o Kernel, o software especial que se comunica com o hardware, seguido pelas ferramentas que usamos para nos comunicar com o Linux (Kernel), temos a soma e o resultado é o GNU/Linux. Parece meio complexo mas não é.
E o que é GNU ?
Poderíamos passar o dia falando sobre o projeto GNU ou até criar uma lista imensa sobre todos os softwares ligado à ele. O nosso amigo de todos os dias, o Terminal é um bom exemplo, se você utiliza, deve saber que usamos o Shell para interagir com o Linux e o terminal é uma ferramenta GNU chamada de BASH. Para que possamos ter um BASH em nosso computador, ele precisa ser compilado, e para isso temos que ter um compilador e das ferramentas ligadas a ele, todas elas são ferramentas GNU.
Em resumo, o GNU é responsável por toda uma cadeia de ferramenta que possibilitam o desenvolvimento de programas para o Linux. Um exemplo prático de um grande software GNU é o GNOME quem vem a ser GNU Network Object Model Environment. Temos também o GIMP Programa de Manipulação de Imagem GNU. Todas essas ferramentas que citamos não são desenvolvidas pela Linux Foundation, não há nenhum vínculo com o Linus Torvalds e é justamente isso que aborrece muita gente.
Então, perceba que os softwares são desenvolvidos por ferramentas GNU e o Linux Kernel ou Linux são coisas diferentes, ainda que se juntem e formem o nosso precioso sistema operacional.
Acredito que chamar o GNU/Linux de apenas Linux, é o mesmo que ter um carro, saber quem faz o motor dele, mas não saber quem fez os bancos, as portas, capô e todo o resto. Mesmo assim, ninguém sai por aí somente com o motor do carro, não é mesmo? E seria bem interessante se pudéssemos destacar o trabalho de todos o envolvidos na composição deste carro. É como ter um chefe onde você faz todo o trabalho e ele somente faz pose para fotos e você não aparece.
E como podemos entender toda essa estrutura ?
Imagine que tudo seja dividido em camadas, então veja uma lista do que é mais baixo ao mais alto:
- O componente mais baixo dentro de um computador é o hardware.
- Em cima do hardware, fica o Linux Kernel.
- O Linux Kernel possui vários níveis. Na parte inferior, os drivers de dispositivo e os módulos de segurança costumavam interagir com o hardware.
- No próximo nível você vai encontrar os agendadores de processo e gerenciamento de memória usados para gerenciar os programas que são executados no sistema.
- Finalmente, no topo, há uma série de chamadas de sistema que fornecem métodos para interagir com o Linux Kernel.
- Acima do Linux Kernel há uma série de bibliotecas que os programas podem usar para interagir com as chamadas do sistema Linux.
- Logo abaixo estão os vários componentes de baixo nível, como o sistema de janelas, os sistemas de log e a rede.
- Finalmente você chega ao topo e é aí que o ambiente de trabalho e os aplicativos de desktop se assentam.