28
Introdução ao Software Livre Prof. Antônio F. C. Arapiraca [email protected] [email protected] Monitor Magno Phelippe M. Simões [email protected]

Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 1: Curso de Introdução ao Software Livre - Aula de 29/10/2009

Introdução ao Software Livre

Prof. Antônio F. C. [email protected]

[email protected]

Monitor Magno Phelippe M. Simõ[email protected]

Page 2: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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;

Page 3: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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.

Page 4: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 5: Curso de Introdução ao Software Livre - Aula de 29/10/2009

DistribuiçõesGNU/Linux

Debian http://www.debian.org; http://pt.wikipedia.org/wiki/Debian;

Page 6: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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;

Page 7: Curso de Introdução ao Software Livre - Aula de 29/10/2009

DistribuiçõesGNU/Linux

Slackware http://www.slackware.com/ ; http://en.wikipedia.org/wiki/Slackware;

Page 8: Curso de Introdução ao Software Livre - Aula de 29/10/2009

Distribuições GNU/Linux

Suse/OpenSuse http://www.novell.com/linux/ http://www.novell.com/products/opensuse/;

http://pt.wikipedia.org/wiki/OpenSUSE;

Page 9: Curso de Introdução ao Software Livre - Aula de 29/10/2009

DistribuiçõesGNU/Linux

Ubuntu www.ubuntu.com; pt.wikipedia.org/wiki/Ubuntu;

Page 10: Curso de Introdução ao Software Livre - Aula de 29/10/2009

DistribuiçõesGNU/Linux

http://distrowatch.com

Page 11: Curso de Introdução ao Software Livre - Aula de 29/10/2009

Estruturado

GNU/Linux Como qualquer outro sistema operacional, o Linux realiza a manipulação de

diversos dados;

Page 12: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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/;

Page 13: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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.

Page 14: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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.

Page 15: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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.

Page 16: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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).

Page 17: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 18: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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;

Page 19: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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;

Page 20: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 21: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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 -

Page 22: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 23: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 24: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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:

Page 25: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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

Page 26: Curso de Introdução ao Software Livre - Aula de 29/10/2009

AcessandoDispositivos

• lsmod;

• lspci;

• lsusb;

• ifconfig;

Page 27: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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.

Page 28: Curso de Introdução ao Software Livre - Aula de 29/10/2009

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;