Upload
antonio-arapiraca
View
1.620
Download
0
Embed Size (px)
DESCRIPTION
Curso de extensão em Introdução ao Software Livre ministrado no segundo semestre de 2009 no Instituto Federal Fluminense em Cabo Frio/RJ.
Citation preview
Introdução ao Software Livre
Prof. Antônio F. C. [email protected]
Monitor Magno Phelippe M. Simõ[email protected]
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;
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.
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
DistribuiçõesGNU/Linux
Debian http://www.debian.org; http://pt.wikipedia.org/wiki/Debian;
DistribuiçõesGNU/Linux
Red Hat/Fedora http://www.br.redhat.com/ http://www.projetofedora.org/;
http://pt.wikipedia.org/wiki/Red_Hat http://pt.wikipedia.org/wiki/Fedora;
DistribuiçõesGNU/Linux
Slackware http://www.slackware.com/ ; http://en.wikipedia.org/wiki/Slackware;
Distribuições GNU/Linux
Suse/OpenSuse http://www.novell.com/linux/ http://www.novell.com/products/opensuse/;
http://pt.wikipedia.org/wiki/OpenSUSE;
DistribuiçõesGNU/Linux
Ubuntu www.ubuntu.com; pt.wikipedia.org/wiki/Ubuntu;
DistribuiçõesGNU/Linux
http://distrowatch.com
Estruturado
GNU/Linux Como qualquer outro sistema operacional, o Linux realiza a manipulação de
diversos dados;
Estruturado
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/;
Estruturado
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.
Estruturado
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.
Estruturado
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.
Estruturado
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).
Estruturado
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
Estruturado
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;
Interface TextoSHELL
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;
Interface TextoSHELL
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
Interface TextoSHELL
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 -
Interface TextoSHELL
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
Interface TextoSHELL
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
Interface TextoSHELL
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:
Interface TextoSHELL
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
AcessandoDispositivos
• lsmod;
• lspci;
• lsusb;
• ifconfig;
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.
InterfacesGrá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;