O documento apresenta uma introdução ao software livre, discutindo licenças como GPL, LGPL e BSD, além de estrutura de diretórios e comandos básicos do Linux.
Curso de Introdução ao Software Livre - Aula de 29/10/2009
1. Introdução ao Software
Livre
Prof. Antônio F. C. Arapiraca
aarapiraca@iff.edu.br
aarapiraca@linuxmail.org
Monitor Magno Phelippe M. Simões
magnophelippe@gmail.com
2. Licenças de
Software Livre
Para se definir as regras para utilização de um software são utilizadas licenças, por
exemplo, caso se deseje proteger os direitos autorais utiliza-se o copyright, assim
como se podem colocar diversas restrições ao uso de determinado software;
As licenças de software livre visam garantir a possibilidade de alteração e
distribuição do software, definindo as regras de utilização. Ao longo tempo diversas
licenças surgiram, apresentando de forma geral as seguintes características:
Proteger a identidade do autor;
Distribuir os códigos fontes;
Qualquer trabalho que inclua parte do software deve citar o autor;
Instalação do software em um número irrestrito de computadores;
Não restringir a venda do software;
3. Licenças GNU
GNU GPL (General Public Licence – Licença Pública Geral) , que garante acesso ao
código fonte do programa, sendo assim possível personalizá-lo ou modificá-lo;
O software pode ser distribuído com ou sem custo, mas, ao contrário do software
comercial, não existem restrições para sua utilização, podendo o comprador utilizá-lo
em um número indeterminado de máquinas, redistribuí-lo, modificá-lo ou até mesmo
cobrar pela cópia;
Entretanto, caso algum pedaço de um software licenciado pelo GNU seja utilizado,
obrigatoriamente o novo programa deverá ser licenciado conforme a licença GPL;
GNU LGPL (Library General Public License – Licença Pública Geral de Biblioteca).
Através dessa licença, as bibliotecas desenvolvidas pela GNU podem ser livremente
utilizadas em aplicações comerciais, tendo como única restrição que o programa seja
capaz de aceitar atualizações das bibliotecas livres;
GNU FDL (Free Documentation License – Licença para documentação livre), que visa
assegurar que documentos , manuais, livros sejam livres, sendo permitido a alteração,
cópia e redistribuição de forma gratuita ou comercial.
4. Licença BSD
A licença BSD (Berkeley Software Distribution), foi criada pela Universidade
de Berkeley que desenvolveu o seu próprio sistema operacional Unix
quando o mesmo passou a ser comercializado pela AT&T;
Esta licença impõe poucas limitações, tendo como objetivo disponibilizar o
desenvolvimento do software para a sociedade e ao mesmo tempo permitir
que um financiador privado faça uso da pesquisa pra seus fins proprietários;
Qualquer pessoa pode alterar o programa e comercializá-lo como se fosse
de sua autoria;
Esta licença é bastante utilizada pelos desenvolvedores comerciais como
DEC e Sun, no entanto, existem softwares gratuitos que o utilizam esta
licença tais como os sistemas operacionais FreeBSD e OpenBSD e os
programas BIND, o Apache e o Sendmail
12. Estrutura
do
GNU/Linux
Para manipular estes dados, ele possui uma estrutura de arquivos e diretórios
bem definida e padronizada;
Para cada tipo de arquivo e de acordo com suas funcionalidades e importância,
existe um local especifico para seu armazenamento;
FHS – Filesystem Hierarchy Standard – é um conjunto de requerimentos
técnicos que são usados para padronizar e estabelecer normas para estruturar
sistemas Unix-Like (Linux, BSD etc);
É ela quem define quais são os diretórios que deverão existir, a localização dos
arquivos de configuração etc., com o intuito de padronizar o sistema para o
torná-lo mais portável, ou seja, a fim de conseguir compatibilidade entre as
distribuições de Linux;
http://www.pathname.com/fhs/;
13. Estrutura
do
GNU/Linux
O diretório “/” é o diretório raiz,
tudo nasce a partir dele, seria o
“C:” do Windows;
Todos os outros diretórios do
Linux ficam abaixo desse;
Essa comparação é injusta, pois
a estrutura de arquivos do Linux
é bem mais organizada e
definida!!!
Dentro do diretório raíz
encontramos os diretórios e
subdiretórios do nosso linux.
14. Estrutura
do
GNU/Linux
Qual o conteúdo do diretório /bin ?
Contém os executáveis essenciais a todos os usuários do sistema, como os
comandos ls, cd, mkdir, rm, mv etc.
Qual o conteúdo do diretório /media ?
Diretório destinado à montagem de dispositivos removíveis.
Qual o conteúdo do diretório /opt ?
Diretório destinado à instalação de binários pré-compilados e programas
proprietários.
Qual o conteúdo do diretório /srv ?
Diretório destinado à centralização de serviços como em um servidor de
arquivos ou servidor de páginas web por exemplo.
Qual o conteúdo do diretório /home ?
Destina-se a contem os diretórios pessoais dos usuários.
15. Estrutura
do
GNU/Linux
Qual o conteúdo do diretório /proc ?
Na verdade, o seu conteúdo não faz parte dos arquivos de sistema (não ocupa
espaço no HD). Ele é apenas um sistema de arquivo virtual para que os
administradores do sistema tenham acesso as informações do processamento
do kernel em forma de arquivos para consulta;
Nele encontramos arquivos com a configuração atual do sistema;
Exemplo prático. Como eu posso ver informações da minha CPU?
# cat /proc/cpuinfo
Qual o conteúdo do diretório /boot ?
Contém os arquivos necessários para o boot do sistema, como os arquivos do
boot loader e a imagem do kernel;
Qual o conteúdo do diretório /etc?
Contém os arquivos de configuração sistema.
16. Estrutura
do
GNU/Linux
Qual o conteúdo do diretório /usr?
Contém todos os outros programas que não são essenciais ao sistema e
seguem o padrão GNU/Linux (programas não proprietários), exemplos são o
browser firefox, gerenciador de janelas etc;
É tão grande que é considerado uma hierárquia secundária, perdendo apenas
para o diretório raiz (/);
As bibliotecas necessárias para as aplicações hospedadas em /usr não
pertencem a /lib, e sim a /usr/lib;
Qual o conteúdo do diretório /dev ?
Contém os arquivos de dispositivos. O Linux trabalha com dispositivos (falando
em hardware) como arquivos;
Ou seja, para cada dispositivo que eu tenho na máquina, terá um arquivo
dispositivo para ele em /dev;
Por exemplo, todos os arquivos gravados no "arquivo" /dev/dsp serão
reproduzidos pela placa de som, enquanto o "arquivo" /dev/ttyS0 contém os
dados enviados pelo mouse (ou outro dispositivo conectado na porta serial 1).
17. Estrutura
do
GNU/Linux
Qual o conteúdo do diretório /lib?
Contém bibliotecas compartilhadas (essenciais) necessárias para a execução
dos arquivos contidos nos diretórios /bin e /sbin, além de conter os módulos do
kernel;
A função destas bibliotecas lembra um pouco a dos arquivos .dll no Windows!! :P
Qual o conteúdo do diretório /mnt ?
Diretório destinado à montagem de sistema de arquivos remotos;
Qual o conteúdo do diretório /sbin?
Contém os executáveis essenciais à administração do sistema, ou seja,
essenciais apenas ao usuário root. Nesse diretório estão comandos como fdisk,
cfdisk, ifconfig, mkfs, fsck etc;
root=raiz=ADMINISTRADOR DO SISTEMA
EVITE SEMPRE USAR ESSE USUÁRIO DE FORMA DESNECESSÁRIA
18. Estrutura
do
GNU/Linux
Qual o conteúdo do diretório /tmp ?
Diretório de uso comum a todos os usuários e guarda arquivos temporários;
Não deixe arquivos importantes aqui, pois ele é limpo a cada inicialização;
Qual o conteúdo do diretório /root ?
Destina-se a ser o diretório pessoal do superusuário root;
Qual o conteúdo do diretório /var ?
Diretório de conteúdo variável destinado principalmente à tarefas
administrativas, como armazenar os logs do sistema, spool de impressão etc;
19. Interface Texto
SHELL
Terminal ou linha de comando;
É um código que fornece uma interface de comunicação entre o usuário e o
sistema computacional;
Interpretador de comandos;
No Linux utilizamos com mais frequência o shell conhecido como BASH;
Jeito mais simples de uso do sistema!
Antiquado?...SIM, mas muito útil.
AMADO POR LINUXERS, PROGRAMADORES E DESENVOLVEDORES.
ALGO CONTRA?????
Calma!!!
Alguns comandos básicos;
20. Interface Texto
SHELL
Uma coisa importante antes de mexer no Linux é que ele é Case Sensitive. Ou
seja, ele diferencia letras maiúsculas de letras minúsculas.
Então, se eu tenho um arquivo chamado:
teste.txt
Ele é diferente do arquivo que chama:
Teste.txt
Prática:
Crie um diretório chamado "teste" em seu /home. Por exemplo /home/maria
21. Interface Texto
SHELL
Eu também posso criar um diretório se eu estiver em outro diretório, mas eu
precisarei indicar o caminho completo onde ficará esse novo diretório;
Dica:
Você pode usar a tecla TAB do teclado para auto-completar um comando, assim
você não precisa ter que fica digitando ele todo!
Dica:
Se estou no diretório /home/maria e vou para o diretório /tmp com:
$ cd /tmp
Se eu digitar o comando abaixo eu volto para o diretório que eu estava antes:
$ cd -
22. Interface Texto
SHELL
Para ir direto para o home do usuário corrente sem colocar o caminho completo,
faça:
$ cd ~
Crie os arquivos no diretório teste, cada um chamado assim: arq1, arq2, arq3,
sessao1, sessao2 sessao3 sapo satisfacao
23. Interface Texto
SHELL
Para alterarmos a data e hora que esse diretório foi criado, também usamos o
comando touch. Por exemplo:
$ touch aniversario
$ touch -t 200809161940 aniversario
A opção -t é para escolher o tempo que vamos alterar
200809161940 tem o seguinte formato AAAAMMDDHHHH
A - ano, M - mes, D - dia, H - hora
Como eu posso criar um arquivo oculto no linux?
$ touch .arq4
E como poderei visualizá-lo? Será que o comando ls sozinho
consegue listar arquivos ocultos? Ou devo passar algum parâmetro?
$ ls -a
24. Interface Texto
SHELL
Ok, agora mudei de idéia e quero que o arquivo não seja mais oculto. O que
posso fazer para que isso aconteça?
$ mv .arq4 arq4 (basta renomear o arquivo)
Para remover o arquivo:
$ rm arq4
Para copiar um diretório e seu conteúdo precisamos usar o parâmetro R
com comando cp:
25. Interface Texto
SHELL
cd – muda de diretório;
cd - – volta para o último diretório;
cd ~ – volta para o diretório do usuário;
pwd – informa qual o diretório corrente;
touch – cria arquivos e muda datas;
mkdir – cria diretórios;
ls – lista conteúdo de diretório;
ls -a – lista conteúdo mostrando diretórios ocultos;
mv – renomeia arquivos ou move eles de lugar;
cp – copia arquivos entre diretórios
cp -R – copia arquivos e diretórios
27. Interfaces
Gráficas
KDE (www.kde.org/)
Interface baseada em janelas e cliques via dispositivo apontador(mouse);
Software de origem alemã, o KDE (sigla inglesa para K Desktop
Environment) é, simultaneamente, um ambiente gráfico (que inclui um
gerenciador de janelas) e uma plataforma de desenvolvimento livre e de
código aberto, desenvolvido com base na biblioteca Qt;
Voltado inicialmente aos utilizadores de platafomas Unix, funciona também
no Mac OS X utilizando o seu servidor X11 e no Windows. Juntamente com
o GNOME é um dos mais populares ambientes gráficos usados no Linux.
28. Interfaces
Gráficas
Gnome (http://www.gnome.org/)
Mesma definição;
GNOME (acrônimo para GNU Network Object Model Environment) é um
esforço global para a criação de um ambiente de trabalho completo, gratuito
e composto inteiramente por software livre;
GNOME é parte do Projeto GNU e pode ser utilizado por vários sistemas
baseados em Unix, principalmente por sistemas Linux e sistemas BSD;