Capítulo 1. Conceitos de Utilização

Índice
O Que é Linux?
Como surgiu o Linux?
O que é uma Distribuição Linux?
O Que é o Conectiva Linux?
Conceitos Básicos de Utilização
O que é uma conta?
Permissões de Acesso
As Licenças no Mundo Linux

O Que é Linux?

O Linux é um sistema operacional derivado do Unix[1] feito para rodar em computadores pessoais.

O Linux faz tudo o que você poderia esperar de um Unix moderno e completo. Suporta multitarefa real, memória virtual, bibliotecas dinâmicas, redes TCP/IP, nomes de arquivos com até 255 caracteres e proteção entre processos (crash protection), além de muitas outras funcionalidades que deixariam esta lista extensa demais.

Um grande atrativo que o Linux oferece é o fato de poder trabalhar tanto como servidor de aplicações quanto como estação de trabalho, sem que haja necessidade de grandes modificações no seu sistema.

Como surgiu o Linux?

O Linux foi originalmente desenvolvido como um passatempo de Linus Torvalds. Ele queria um sistema operacional que fosse semelhante a um Unix, com todas as suas funcionalidades e, ainda, que pudesse utilizá-lo num PC.

A partir dessa idéia, Linus começou a trabalhar nesse que seria o futuro kernel do sistema operacional que hoje denominamos Linux. Isso tudo aconteceu em meados de 1991, quando Linus cursava a faculdade de Computação na Finlândia.

Em 5 de outubro de 1991 a seguinte mensagem circulou na usenet[2]:

" ...Como eu mencionei há um mês, estou trabalhando em uma versão free de um sistema semelhante ao Minix para computadores AT-386. Ele já alcançou o estágio de ser usável (embora possa não ser, dependendo do que você quer fazer), e pretendo distribuir o código fonte. É apenas a versão 0.02... mas já consegui rodar nele o bash, gcc, gnu-make, gnu-sed, compress, etc."

Esta mensagem era assinada por Linus Torvalds, e ninguém adivinharia que ela estaria marcando o início de um movimento que, menos de dez anos depois, já tem mais de trinta milhões de seguidores.

Assim surgiu o que seria o primeiro kernel utilizável do Linux. Faz-se necessária aqui uma explicação sobre o que é o kernel do Linux, para evitar concepções errôneas do que é o kernel e o que é o Linux propriamente dito. O kernel é o núcleo do sistema operacional, é a parte que controla diretamente o hardware [3] da máquina. Quando falamos de Linux, estamos nos referindo somente ao kernel do sistema. Tudo que existe ao redor do kernel são aplicativos que compõem uma distribuição do Linux. [4]

O que é uma Distribuição Linux?

Pelo fato de o Linux ser um software de livre distribuição, muitas pessoas e até mesmo empresas se empenham em organizar o kernel e mais uma série de aplicativos e manuais para que o sistema fique cada vez mais amigável.

A esse conjunto de aplicativos mais o kernel dá-se o nome de distribuição Linux. Algumas distribuições Linux são maiores que outras, dependendo da quantidade de aplicativos e a finalidade a que se propõem. Existem desde distribuições que cabem num disquete de 1.44 até distribuições que ocupam vários CDs.

Cada uma delas têm seu público-alvo e finalidades específicas. As minidistribuições[5] têm como objetivo desde a recuperação de um sistema danificado até o monitoramento de uma rede de computadores.

Entre as "grandes"[6] distribuições podemos citar: Conectiva, SuSE, Debian e Red Hat. O que diferencia uma distribuição de outra é a maneira como são organizados e pré-configurados os aplicativos que cada uma contém. Um exemplo: o Conectiva Linux tem a quase totalidade de seus aplicativos traduzidos para as seguintes línguas: português, espanhol e inglês, tendo o português como sua base, facilitando a integração com o usuário brasileiro. O que não quer dizer que esses aplicativos não estejam disponíveis em inglês também.

Algumas distribuições incluem ferramentas de configuração que facilitam a vida do administrador do sistema.

O Que é o Conectiva Linux?

Uma vez conhecido o conceito de distribuição podem ser mencionados os detalhes e o objetivo da distribuição Conectiva Linux, bem como fornecer algumas informações sobre a empresa que a desenvolve e mantém: a Conectiva.

A Conectiva S.A. é uma empresa que foi criada em 28 de agosto de 1995 com o objetivo inicial de distribuir o sistema operacional Linux para o mercado brasileiro. Sua primeira versão, o Conectiva Red Hat Linux Parolin foi distribuída em 1997.

Uma das principais tarefas que a Conectiva vem desenvolvendo é a personalização do sistema operacional Linux, para oferecer um produto que atenda ao mercado brasileiro[7], fornecendo, inclusive, uma maior compatibilidade com o hardware do mercado em questão. Com isso, ela oferece uma linha de produtos que cobrem desde o usuário leigo até grandes corporações.

Além do desenvolvimento contínuo de novas aplicações e de novas funcionalidades que garantam maior segurança e estabilidade ao sistema, a Conectiva procura sempre manter seus produtos atualizados disponíveis para o público[8].

A Conectiva oferece também outros serviços que visam atender ao usuário e facilitar ainda mais o seu trabalho: ferramentas específicas para a implementação de soluções; desenvolvimento de guias e livros sobre os mais variados assuntos e para os mais variados níveis; possibilidade de desenvolvimento de soluções personalizadas, através do suporte corporativo que a empresa oferece, além do suporte telefônico e do suporte por e-mail.

Com esta versão, a Conectiva pretende aumentar a quantidade e a qualidade de sua distribuição para atender a um número maior de usuários.

Conceitos Básicos de Utilização

Uma vez conhecidos os conceitos de Linux e o que é uma distribuição teremos uma parte conceitual que visa iniciar o usuário no mundo Linux.

O que é uma conta?

Uma conta é a maneira com a qual você se identifica no sistema. É como se fosse sua conta bancária, que tem número e senha. Só que no Linux, em vez de utilizar uma conta numerada, como aquela do banco, você possui um nome de entrada no sistema ou login, que pode ser alfanumérico[9]. E no lugar de uma senha exclusivamente numérica, você tem a possibilidade de combinar todas as teclas de seu teclado.[10]

Mas por que preciso de uma conta se somente eu utilizo a minha máquina?

Esse sistema de contas e usuários já vem junto com o Linux desde a sua concepção. Vem do fato dele ser um sistema operacional voltado para ambientes em rede. Além do fator segurança, que garante que cada usuário faça somente aquilo que tem permissão de fazer (e não danifique o sistema), temos o fator de identificação que garante que só você alterará os seus documentos/arquivos.

Então, algum usuário deve controlar o sistema, certo?

Sim, existe tal usuário e ele tem mais poderes que o usuário comum. A este usuário chamamos de superusuário e seu login é root. A senha do superusuário foi definida no processo de instalação. É importante não esquecer esta senha, pois ela é necessária para fazer ajustes na instalação. Uma vez que o instalador ajusta o ambiente inicial, é necessária a intervenção do superusuário na configuração de detalhes que o instalador não prevê ou que necessitam ser modificados no decorrer do tempo.

É de fundamental importância não utilizar esse usuário de maneira indiscriminada no seu dia-a-dia. A maior parte das coisas que você precisa fazer, o usuário comum tem permissão de fazê-lo. O superusuário deve ser utilizado somente para a configuração do sistema e assuntos relativos à administração do sistema. Utilizar um sistema como superusuário diariamente pode ser catastrófico.[11]

Há pouco, mencionamos que seu usuário tem permissão. Vamos falar um pouco mais sobre isto agora.

Permissões de Acesso

No Linux existe o conceito de permissões de acesso. Como ele é voltado para um ambiente multiusuário (rede), foram criadas permissões para que determinados usuários tenham acesso somente àquilo para o qual podem ter acesso. Para explicar melhor, será feita uma breve analogia.

Imagine que você trabalha numa empresa e faz parte do departamento de pessoal dela. Todos os computadores dessa empresa estão interligados na mesma rede. Sendo assim, caso não houvesse permissões de acesso, todos na empresa, desde o funcionário que acabou de entrar até o presidente, poderiam visualizar e até mesmo alterar os dados de qualquer departamento, fosse o departamento de pessoal, jurídico ou qualquer outro.

É fácil perceber que uma empresa dessas logo faliria, pois qualquer funcionário poderia tomar "decisões de presidente", bastando para isso alterar os dados no computador.

Por isso e por outras coisas, existem as permissões de acesso, que nada mais são do que indicativos que dizem quem pode e quem não pode acessar - ler - modificar - executar determinado arquivo.

É claro que existem situações nas quais não somente uma pessoa poderá/deverá acessar determinados arquivos, mas, também, um grupo de pessoas.

Seguindo com o exemplo da empresa, todos os componentes do departamento de pessoal devem poder notificar a contratação/demissão de um funcionário e registrar essa situação nos arquivos de controle de pessoal.

Sendo assim, as permissões do arquivo de registros devem ser diferentes; não somente um elemento terá acesso a esse arquivo e sim um grupo seleto de pessoas.

Esse conceito de grupos existe ativamente no Linux; como exemplos de grupos que já vêm predefinidos temos: adm, disk e wheel[12], entre outros. O detalhe importante é que podemos criar novos grupos e alterar os já existentes, de maneira que atendam à nossa necessidade específica. Quem deve manipular os integrantes dos grupos é o superusuário. Somente ele tem acesso a essa tarefa. É conveniente que o superusuário crie grupos para definir e permitir quais usuários poderão acessar quais tipos de arquivo.

Assim como existem diferentes tipos de permissões para os arquivos, existem diferentes tipos de arquivos existentes no Linux, cada um com sua finalidade específica.

Os formatos mais comuns são: texto, executável[13], arquivos de imagens, diretórios e links simbólicos[14].

Existem ainda arquivos especiais, que são associados a dispositivos. No Linux temos o seguinte conceito: "Tudo pode ser tratado como se fosse um arquivo". Não se assuste, continue lendo e verá que é uma coisa simples de ser entendida.

Assim como os arquivos, a maior parte dos periféricos[15] que você possui no seu microcomputador permite as operações de leitura e/ou escrita. Por exemplo: uma impressora. Exatamente! Quando você manda os dados para a impressora é como se você estivesse escrevendo nela, certo? No Linux funciona de maneira semelhante, apenas existe uma diferença, o conteúdo que você envia "diretamente para a impressora" é escrito num "arquivo especial", que faz a ponte entre o computador e a impressora.

Esse sistema não existe somente para a impressora, mas para todos os dispositivos que o Linux controla, incluindo drive de disquete, CD-ROM e HD[16], entre outros.

Isso quer dizer que vou poder gravar CDs no meu leitor de CD?

Não, absolutamente não. O Linux não modifica o que o hardware do periférico pode fazer! Ele utiliza as funcionalidades do dispositivo, portanto existirão dispositivos que só poderão ser lidos e outros que somente permitirão a escrita, assim como haverá um terceiro grupo que permitirá ambas as operações (como é o caso do seu disco rígido).

Não se preocupe com isso. Essa explicação tem uma finalidade que é esclarecer algumas das dúvidas mais freqüentes com relação aos dispositivos no Linux: O que é montar/desmontar um dispositivo no Linux? Por que meu CD não sai do drive quando eu aperto o botão de Eject? Para que eu preciso montar um dispositivo? Todas essas dúvidas serão sanadas agora.

Montar um dispositivo nada mais é do que torná-lo disponível ao sistema. Agora que você entende o porquê de explicar toda aquela história de "arquivos especiais", pode entender como funciona esse tornar disponível ao sistema.

Quando montamos um dispositivo, seja ele um disquete, CD-ROM ou outro periférico, é estabelecida uma "ligação" do dispositivo com o periférico especificado.

Por exemplo: quando montamos um CD-ROM, o kernel faz a comunicação com o drive de CD e verifica se existe algum CD-ROM no drive e tenta reconhecer o formato do CD que está lá. Caso ele reconheça o formato do CD será feita uma "ligação" do periférico do dispositivo de CD-ROM com o dispositivo cdrom, disponibilizando o conteúdo do CD no diretório especificado pelo comando de montagem[17]. O mesmo acontece tanto para um drive de disquete quanto para um drive de fita.

Agora vamos saber por que o CD não sai do drive quando você aperta o botão de Eject.

O que acontece quando montamos um CD/disquete é que o kernel considera o dispositivo como se estivesse sendo utilizado, até que seja desmontado.

Sendo assim, como o CD-ROM é controlado de maneira lógica[18] você não consegue ejetá-lo sem antes desmontar o dispositivo, pois o Linux avisa que o sistema ainda está usando o drive.

Por que motivo? É simples, basta imaginar a seguinte situação: você trabalha numa empresa e todos compartilham o mesmo dispositivo, como uma fita por exemplo, para armazenar os resultados de operações demoradíssimas. Inadvertidamente, um funcionário novo ejeta a fita ou o CD que estava sendo gravado com os resultados das operações da semana inteira. Todos os dados se perdem e você NÃO tem cópia reserva. Essa é uma situação que pode ocorrer em outros sistemas operacionais que não têm esse tipo de atitude, mas num sistema como o Linux isso não ocorreria.

O drive de disquete, por ter um meio mecânico que ejeta o disquete, não pode ser controlado com tanta segurança, mas é deveras importante que não retiremos o disquete do drive enquanto ele estiver montado, pois dados importantes poderão ser perdidos. Isso porque algumas operações de escrita são deixadas para momentos nos quais o sistema operacional está "desocupado", pois o acesso ao disquete/HD demora muito do ponto de vista do processador.

No capítulo Linux Modo Texto, será visto como montar e desmontar dispositivos manualmente, além de muitas outras informações úteis no seu dia-a-dia com o Linux.

Mas como nem só de modo texto vive o homem, temos também o modo gráfico. É nesse ambiente que iremos trabalhar na maior parte do tempo.

As Licenças no Mundo Linux

Antes de definirmos em quais licenças e condições o Conectiva Linux se encaixa, serão vistas as principais licenças utilizadas atualmente para os softwares em geral.

As licenças no mundo da Informática podem ser divididas, de um modo geral, em licenças de software proprietário e licenças de software livre. As licenças em softwares proprietários são geralmente comerciais e não permitem a cópia, modificação ou distribuição do software em questão.

O software livre é utilizado de um modo completamente diferente. Para que um software seja livre, ele deve possuir os seguintes ítens:

  1. Liberdade para executar o software, seja qual for a sua finalidade.

  2. Liberdade para acessar o código-fonte do programa e modificá-lo conforme sua necessidade.

  3. Liberdade para fazer cópias e distribuí-las para quem desejar.

  4. Liberdade para melhorar o programa e distribuir suas melhorias ao público, de modo que elas fiquem disponíveis para a comunidade.

Com isso, já estamos definindo também qual o principal objetivo da Fundação do Software Livre[19]: promover a disseminação do software livre no mundo da Informática, eliminar restrições de cópias e distribuição de programas, entre outros pontos[20].

As licenças de software livre podem ser divididas, de modo geral, em dois grupos: licenças de documentação e licenças de software. A licença GNU GPL[21] é uma das mais conhecidas, e talvez uma das mais utilizadas como licença de software. A licença GPL foi criada para garantir que cópias de softwares livres possam ser distribuídas, alteradas ou utilizadas (na sua totalidade ou em parte) por novos programas. Um outro exemplo de licença é a GNU FDL [22], que segue a mesma linha da GPL, mas utilizada para a documentação. Existem muitas outras licenças, e o escopo destas pode variar muito.

Este assunto é realmente muito extenso e abrange uma série de outras questões. Se você deseja conhecer mais detalhes sobre as licenças, sobre software livre ou sobre a Fundação do Software Livre, verifique a página do Projeto GNU , que oferece uma descrição mais completa sobre os conceitos desta seção. Nos apêndices, no final deste livro, você também poderá encontrar algumas licenças na íntegra.

Notas

[1]

Um sistema operacional bastante utilizado em grande corporações.

[2]

Sistema de News, mural on-line.

[3]

Parte física do computador.

[4]

Podendo diferir entre si de diversas maneiras, porém normalmente mantendo um padrão básico de aplicativos.

[5]

Distribuições que cabem em poucos disquetes.

[6]

Distribuições vendidas em CDs.

[7]

A maioria dos produtos da Conectiva já está sendo comercializada também em inglês e espanhol.

[8]

As atualizações do Conectiva Linux estão sempre disponíveis no site da Conectiva.

[9]

Ou seja, você pode ter letras e números no login. Um exemplo seria aluno10.

[10]

É extremamente aconselhável que sua senha tenha mais de quatro caracteres e que possua letras e números.

[11]

Você pode destruir seu sistema sem intenção; basta um erro de digitação.

[12]

Normalmente fazem parte desses grupos os administradores do sistema, pois dão permissões especiais aos seus integrantes.

[13]

Também chamado de arquivo binário.

[14]

Veremos melhor este tipo de arquivo assim como os outros no capítulo Linux Modo Texto.

[15]

Chamaremos de periférico quando for dispositivo físico (um hardware).

[16]

Hard Disk ou Winchester.

[17]

Mais detalhes serão vistos no capítulo Linux Modo Texto.

[18]

O drive de CD controla logicamente o ato de ejetar o CD. Não é como o drive de disquete que tem um sistema mecânico para ejetar o disquete.

[19]

FSF ou Free Software Foundation.

[20]

Para mais informações, verifique o site da Free Software Foundation.

[21]

General Public License.

[22]

Free Documentation License.