146 Unidade IV Unidade IV 7 INTRODUÇÃO AO SISTEMA OPERACIONAL GNU/LINUX Neste tópico, faremos uma breve apresentação do sistema operacional GNU/Linux. Entenderemos um pouco do seu histórico, da motivação para a sua criação e de como funciona o seu processo de desenvolvimento, que não está baseado em uma empresa específica. Falaremos sobre a importância do projeto GNU e das licenças GPL e sobre o que significa um software ser considerado livre. Posteriormente, discorreremos a respeito do que é uma distribuição do GNU/Linux. Abordaremos, também, a questão da documentação do sistema, explorando algumas ferramentas úteis para explicar o funcionamento dos comandos e das suas peculiaridades. Contemplaremos itens relativos ao mecanismo de segurança do GNU/Linux e exporemos o mecanismo de autenticação e o mecanismo de controle de acesso. 7.1 Projeto GNU e Linux O que normalmente chamamos de sistema operacional GNU/Linux (ou simplesmente Linux) é, na realidade, uma coleção de diferentes projetos que são utilizados de forma integrada. Um sistema operacional é um software incrivelmente complexo, formado por diversas partes e diversos programas que se complementam. Por uma questão de praticidade, costumamos chamar de Linux toda essa coleção de ferramentas e projetos, mas, se formos cuidadosos, iremos perceber que estamos falando de várias coisas diferentes. Lembremos da teoria de sistemas operacionais, que o kernel, ou núcleo, representa o “coração” do sistema operacional. Existem vários núcleos disponíveis no mercado, sendo um deles o Linux propriamente dito. Não podemos utilizar um kernel de forma isolada: é necessário que existam outros programas para que um computador possa ser utilizado, como programas fundamentais para a cópia ou a remoção de arquivos, além de editores de texto, interfaces gráficas e navegadores para a internet, por exemplo. O projeto GNU tinha como objetivo original desenvolver um sistema operacional que fosse completamente livre. Por “liberdade”, o projeto GNU tinha em mente as quatro ideias (ou liberdades fundamentais) expostas a seguir (STALLMAN, 2020): 1 Deve haver liberdade de utilização, ou seja, qualquer pessoa deve ser livre para executar um programa da forma que ela quiser. Dessa forma, uma empresa não deve ser capaz de restringir o usuário em relação à maneira como ele queira executar um programa nem de restringir quem executa o programa em si. 147 SEGURANÇA DE SISTEMAS OPERACIONAIS (WINDOWS / LINUX) 2 O código-fonte de um programa deve estar disponível para estudo, a fim de que possamos entender como um programa funciona, fazer modificações ou melhorias ou transportá-lo para outras plataformas, entre outras possibilidades. 3 Devemos ser livres para copiar um programa quantas vezes quisermos e “darmos” esse programa para outras pessoas. 4 Baseados na ideia exposta no item 2, se modificarmos um programa, deveremos ser livres para distribuir o programa modificado livremente. Vale notar que, frequentemente, as liberdades são numeradas a partir do zero, mas, aqui, vamos começar do número 1. Um programa que apresente uma licença de uso que respeite essas quatro liberdades é chamado de software livre pelo projeto GNU. Esse projeto visava produzir um sistema operacional em que todos os programas que fizessem parte da sua estrutura fossem livres e dessem liberdade total aos seus usuários. Devemos ter em mente que essa tarefa é longuíssima. Fabricantes de software investem fortunas para produzir apenas uma fração do que o projeto GNU tinha o objetivo de fazer. Mesmo assim, com a ajuda de colaboradores distribuídos pelo mundo todo, muitos deles sem nenhuma forma de pagamento, o projeto GNU foi produzindo aos poucos as peças desse grande quebra-cabeça, fazendo programas como utilitários para a cópia e a remoção de arquivos e compiladores, entre muitos outros. O desenvolvimento do kernel mostrou-se muito mais complexo do que originalmente se pensava, e esse foi um desafio para o projeto GNU durante um bom tempo. Contudo, alguns anos após a origem do projeto GNU, o programador finlandês Linus Torvalds começou a trabalhar em um kernel que iria ser chamado de Linux. Além disso, Linus resolveu utilizar a licença do projeto GNU, a GPL, para lançar o seu kernel. Assim, a peça que faltava para o projeto GNU, o kernel, foi encontrada. Tornava-se possível haver um sistema operacional completo pelo uso dos diversos programas providos pelo projeto GNU, com o Linux como kernel. Esse sistema operacional é chamado de GNU/Linux, mas, frequentemente, as pessoas usam apenas a terminologia Linux, por simplificação. 148 Unidade IV Saiba mais Para saber mais sobre o projeto GNU, acesse o site: gnu.org O site da Free Software Foundation também é bem interessante: fsf.org Para saber mais sobre software livre, podemos encontrar vários textos na seguinte página: GNU. Filosofia do Projeto GNU. [s.d.]. Disponível em: https://www.gnu. org/philosophy/philosophy.html. Acesso em: 17 set. 2020. 7.1.1 Um breve histórico do Linux Vimos que o sistema operacional GNU/Linux utiliza o Linux como seu kernel. O desenvolvimento do Linux nasceu de uma necessidade: Linus Torvalds, o criador do Linux, queria usar um sistema operacional similar ao Unix no seu computador pessoal. É interessante termos em mente o contexto no qual o Linux foi escrito, especialmente com relação aos sistemas operacionais disponíveis no final da década de 1980 e no início da década de 1990 nos computadores pessoais. O principal sistema operacional de microcomputadores ainda era o MS-DOS. Esse sistema operacional já mostrava limitações para os computadores da época, especialmente por causa das restrições no uso de memória e da ausência do recurso de multitarefas (execução simultânea de processos), ao menos na sua configuração padrão. Por outro lado, os computadores pessoais haviam evoluído muito no que se refere às suas estruturas. Um microprocessador lançado pela Intel em 1985, o 80386, era uma máquina poderosa, de 32 bits e com recursos avançados (para a época) de gerenciamento de memória. Contudo, o sistema operacional não explorava todos os recursos disponíveis. Linus queria utilizar na sua máquina um sistema operacional similar ao sistema Unix, usado, na ocasião, em computadores maiores e mais caros. Na época, existia um sistema operacional chamado de Minix, escrito pelo pesquisador Andrew Tanenbaum, mas esse sistema operacional era limitado e mais voltado para pesquisa. Linus chegou a sugerir mudanças e melhorias no Minix, que foram rejeitadas por Tanenbaum. 149 SEGURANÇA DE SISTEMAS OPERACIONAIS (WINDOWS / LINUX) Os demais Unix da época ou eram muito caros ou estavam em meio a uma disputa legal com relação ao seu uso, devido a problemas de copyrights. Esse contexto estimulou Linus a começar a escrever o Linux. Um aspecto interessante do desenvolvimento do Linux é o de que ele é aberto: Linus optou por compartilhar o código-fonte com quem estivesse interessado, de forma gratuita. Além disso, ele utilizou a licença GPL, o que permitiu que seu uso e sua cópia pudessem ser feitos de maneira livre. Muitas pessoas, do mundo todo, passaram a trabalhar com o kernel do Linux juntamente com Linus, o que gerou uma verdadeira rede internacional de colaboradores. Nesse ponto, temos uma espécie de feliz coincidência: o projeto GNU dispunha de diversas ferramentas básicas para um sistema operacional, mas não tinha um kernel. Ao mesmo tempo, Linus tinha um kernel, mas não tinha as ferramentas. Dado que ambos os projetos eram abertos, a sua junção foi um passo natural e extremamente proveitoso. Contudo, é preciso considerarmos que a simples disponibilização de um kernel e de programas ainda não é suficiente. É necessário integrar todas as aplicações em um conjunto coeso. Bibliotecas utilizadas por várias aplicações devem ser agrupadas e colocadas em locais convenientes e compartilhados. Deve ser criado um modelo de configuração. É necessário implantar