Introducao ao GNU/Linux
Thiago Teixeira [email protected]
Laboratorio de Imagens Visao e Estruturas Espaciais
Faculdade SENAC de Ciencias Exatas e Tecnologia
http://www.ime.usp.br/∼thsant/pool/linux-intro.pdf
1
1. HISTORIA
2
Unix
• Ritchie, Thompson e Kernighan criam o “Unix” no Bell Labs em 1969. O nomee uma brincadeira em cima do Multics, um outro SO da epoca.
• Can you send me a tape? O sistema, seu codigo fonte e seus manuais eramlivremente distribuıdos entre as universidades e os centros de pesquisa (quem maisusaria computadores na decada de 60?).
• O sistema era extendido pelos seus usuarios. Hackers da Universidade da Californiaem Berkeley lancam uma versao com suas melhorias: o BSD (Berkeley SystemsDistribution). Eles o utilizavam em suas pesquisas, incluindo o desenvolvimentodo TCP/IP.
• Decada de 80 – AT&T transforma o sistema do Bell Labs em um produtocomercial: o AT&T UNIX (maiusculo) e a distribuicao das fitas cessa. Venda decodigo fechado pelas grandes corporacoes torna-se a norma. ;-(
Thiago Santos, LIVES-FSCET, 2002 3
GNU is not UNIX
• If you share with your neighbor, you are a pirate. If you want any changes, beg usto make them.
• Richard Stallman, pesquisador do AI-MIT, acostu-mado com intercambio livre de software durante anos,inconforma-se com os sistemas proprietarios. Cria o Pro-jeto GNU e a Free Software Foundation.
• Free as in freedom
. Voce tem liberdade de executar o programa, para qualquer finalidade.
. Voce tem liberdade para modificar o programa para atender suas necessidades (codigo
fonte).
. Voce tem liberdade de redistribuir copias, gratis ou nao.
. Voce tem liberdade de distribuir versoes modificadas do programa, para a comunidade se
beneficiar das melhorias.
Thiago Santos, LIVES-FSCET, 2002 4
GNU is not UNIX
• GNU visa ser um sistema free completo: sistema operacional, ferramentas deprogramacao, ambiente grafico, etc.
. GNU/Linux: kernel (sistema operacional) Linux + ferramentas e bibliotecas criadas pelo
projeto GNU.
. GNU/Hurd: kernel Hurd (GNU kernel) + ferramentas e bibliotecas GNU.
• Copyleft e uma forma legal (um copyright invertido) de garantir que o softwarelivre nao se torne proprietario. Um exemplo e a GNU General Public License GPL.
• Em 1998, alguns hackers (ex.: Eric Raymond) alegaram que o termo Free Softwarepoderia confundir a industria (free = gratis) e cunharam o termo Open Source(free = livre, aberto).
Thiago Santos, LIVES-FSCET, 2002 5
Linux
• Linus Torvalds desenvolve um kernel de sistema ope-racional, batizado de Linux, e o lanca em 1991 sob aGPL.
• A popularizacao da Internet ajuda na formacao de umacomunidade em torno do kernel. Torvalds consegue, commaestria, organizar o trabalho e as contribuicoes de umexercito de programadores ao redor do mundo.
• O GNU/Linux da origem as distribuicoes, pacotes organizados de software comsistemas de instalacao, gerenciamento e empacotamento proprios:
E muitas outras...
Thiago Santos, LIVES-FSCET, 2002 6
Filosofia Unix
• Se um sistema tao antigo consegue sobreviver de 1969 ate hoje (e com plenovigor!) seu sucesso esta em seu design.
• Ferramentas × Aplicacao: um ambiente Unix possui pequenas ferramentas queexecutam muito bem um pequeno trabalho.
• Colocadas em pipes, a saıda de uma ferramenta se torna a entrada de outra eo conjunto passa a fazer uma tarefa mais complexa. As diversas ferramentascombinadas de formas diferentes geram um numero infinito de opcoes!
• Aplicacoes sao programas mastodonticos (processadores de texto, planilhas, na-vegadores web,...) que cuidam de todo o processo, geralmente abrindo arquivosproprietarios, realizando uma tarefa complicada e gravando o resultado novamenteem arquivos proprietarios.
• A filosofia Unix se baseia na sinergia das pequenas ferramentas.
• Linux possui o melhor dos dois mundos: ferramentas Unix de alta sinergia eaplicacoes para tarefas muito elaboradas e especializadas.
Thiago Santos, LIVES-FSCET, 2002 7
2. BASICO
Thiago Santos, LIVES-FSCET, 2002 8
Knoppix Linux
• Usaremos neste workshop o Knoppix Linux. Trata-se de uma distribuicaoconstituıda de um unico CD-ROM, “bootavel”, que monta os discos da maquinasomente para leitura (inicialmente) e rapidamente detecta todos o hardware docomputador e configura o sistema de acordo.
• O Knoppix nao e persistente. Nada sera instalado na maquina e, apos odesligamento da maquina e remocao do CD, ela estara exatamente em seu estadoanterior.
• Ideal para um primeiro contato em Linux e, posteriormente, como um “canivetesuıco” para ter na mala. :-D
• Baseado na Debian. Desenvolvido por Klaus Knopper e promovido pelo LinuxTag (maior conferencia sobre Linux da Europa).
• Ponham-no no drive e reiniciem a maquina!
Thiago Santos, LIVES-FSCET, 2002 9
Ligar e Desligar
• Sistemas GNU/Linux, apos a inicializacao, solicitam o nome de usuario e asenha para autenticacao. No Knoppix, porem, so existem 2 usuarios (knoppix eroot). O usuario knoppix e autenticado como o padrao.
• Para desligar o sistema ha varias opcoes (na shell):
. Reinicializar o sistema (r de reboot):
$ shutdown -r now
. Desligar o sistema (h de halt) :
$ shutdown -h now
. Ou simplesmente:
Ctrl+Alt+Del
• Experimente no Knoppix. Aproveite para reler com atencao as mensagens dainicializacao!
Thiago Santos, LIVES-FSCET, 2002 10
Consoles Virtuais
• Um console e um lugar onde voce podera obter I/O com o sistema.
• Voce podera ter varias sessoes simultaneas atraves dos consoles virtuais.
• Para sair do ambiente grafico. Use Ctrl+Alt+F1.
• Alterne entre os terminais com Alt+F2, Alt+F3, Alt+F4,... ou via Alt+← eAlt+→.
• Rode um comando, experimente:
$ cat /etc/modules.conf
• Muito texto? Voce pode navegar pelo conteudo exibido na tela com Shift+PgUpe Shift+PgDown.
Thiago Santos, LIVES-FSCET, 2002 11
Arquivos e Diretorios
• A raiz de uma arvore de diretorios Unix e representada por /. E o nıvel mais altoda hierarquia.
• Sistemas GNU/Linux diferentes costumam ter pequenas diferencas em suas arvoresde diretorios, mas possuem, essencialmente:
. /bin Programas “executaveis” essenciais (de binaries).
. /dev Um dos pontos fortes do design Unix e a representacao de dispositivos (devices)
como arquivos. Veremos posteriormente as facilidades desta representacao.
. /etc O diretorio de etcetera armazena uma miscelanea de arquivos de configuracao e
inicializacao do sistema.
. /home Aqui ficam os diretorios pessoais dos usuarios do sistema
? /home/tts Meu diretorio pessoal.
? /home/mariazinha Diretorio pessoal da Mariazinha.
? /home/fhc Diretorio pessoal do usuario FHC.
. /lib Bibliotecas essenciais do sistema.
. /proc Nao se trata de arquivos reais, mas abstracoes de processos do sistema.
Thiago Santos, LIVES-FSCET, 2002 12
Arquivos e Diretorios
• Continuacao...
. /root Diretorio do superusuario.
. /sbin Ferramentas de administracao do sistema.
. /tmp Arquivos temporarios.
. /usr Onde residem arquivos relativos as ferramentas e aplicacoes utilizadas pelos usuarios(users).
. /usr/bin Ferramentas e aplicacoes.
. /usr/doc Documentacao.
. /usr/lib Bibliotecas utilizadas pelos programas em /usr/bin.
. /usr/local Todos os diretorios vistos anteriormente podem estar localizados remota-
mente em um servidor, se necessario. Aqui residem os arquivos obrigatoriamente locais,
que dizem respeito so a maquina em questao.
. /var Arquivos de tamanho variavel : logs de sistema, spool de e-mail e impressao...
• Convem respeitar esta organizacao, para evitar que o sistema vire uma baguncaincompreensıvel!
Thiago Santos, LIVES-FSCET, 2002 13
Arquivos e Diretorios
• Para listar o conteudo de um diretorio:$ ls
. $ ls -a exibe arquivos e diretorios ocultos.
. $ ls -l exibe informacao detalhada.
. $ ls /home/tts lista o meu diretorio pessoal.
• Para mudar de diretorio, use:$ cd path
. $ cd /
. $ cd /usr/local
. $ cd /lib
• Diretorio corrente e representado por ./ enquanto o diretorio pai o e por ../
• Naveguem um pouco pelo Knoppix. Vasculhem a arvore de diretorios. Usem asopcoes -a e -l. O que elas significam?
Thiago Santos, LIVES-FSCET, 2002 14
Arquivos e Diretorios
• Para criar um diretorio:$ mkdir path
• Para remover um diretorio:$ rmdir path ou$ rm -rf path , caso o diretorio nao esteja vazio.
• Para remover um arquivo:$ rm path
. $ rm -i solicita confirmacao antes da remocao.
. $ rm -v exibe os arquivos sendo removidos (verbose).
. $ rm -f force: use com cautela, remove tudo sem qualquer prompt ou confirmacao!
• Para copiar arquivos:$ cp original copia
. $ cp -R dir original dir copia copia um diretorio inteiro recursivamente.
Thiago Santos, LIVES-FSCET, 2002 15
Arquivos e Diretorios
• Para mover arquivos:$ mv origem destino
• Para criar links simbolicos (“atalhos”):$ ln -s destino link
• Exercıcio:
. Use:
$ touch path
para criar arquivos vazios.
. Crie diretorios e arquivos. Mova, copie e crie links.
. Use os caracteres coringa da shell : *, ? e .
. Tente remover um arquivo de propriedade do superusuario (root). O que acontece?
Thiago Santos, LIVES-FSCET, 2002 16
Redirecionamentos e Pipes
• No Unix a saıda de uma ferramenta torna-se a entrada de outra.
• Para exibir o arquivo de configuracao do X Windows System na tela, podemosutilizar o comando:$ cat /etc/X11/XF86Config
• Estamos interessados somente em ver as secoes existentes. Utilizamos a ferramentagrep para filtrar a saıda de cat:$ cat /etc/X11/XF86Config | grep ’Section ’
• Nao estamos interessados nas secoes comentadas (iniciadas por #. Utilizamos ogrep novamente:$ cat /etc/X11/XF86Config | grep ’Section ’ | grep -v ’#’
• Esta quase bom ;-). Vamos colocar tudo em ordem alfabetica e inserir em umarquivo:$ cat /etc/X11/XF86Config | grep ’Section ’ | grep -v ’#’ |sort > foo
Thiago Santos, LIVES-FSCET, 2002 17
Dispositivos
• Dispositivos (discos, CD-ROMs, mouse, portas paralelas, placas de som,...) saoabstraıdas como arquivos no Unix.
• As operacoes de redirecionamento valem para dispositivos:
. $ cat barulhinho.wav > /dev/dsp
. $ cat /dev/psaux (mova seu mouse PS2 e veja o que acontece)
• Alguns dispositivos que convem lembrar:
. /dev/hda e o primeiro disco na primeira controladora IDE.
? /dev/hda1 e a primeira particao do 1o disco IDE.
? /dev/hda2 e a segunda particao do 1o disco IDE.
? /dev/hdaN e n-esima particao do 1o disco IDE.
. /dev/hdb e o segundo disco na primeira controladora IDE.
. /dev/hdc e o primeiro disco na segunda controladora IDE.
. /dev/hdd e o segundo disco na segunda controladora IDE.
Thiago Santos, LIVES-FSCET, 2002 18
Dispositivos
• Continuacao...
. /dev/psaux refere-se ao mouse PS2.
. /dev/ttySN sao as portas seriais (modems, mouses, etc...).
. /dev/lpN sao as portas paralelas.
. /dev/sdN sao dispositivos SCSI.
. /dev/dsp de Digital Signal Processing (placa de som).
Thiago Santos, LIVES-FSCET, 2002 19
Dispositivos Ajuda: man, info e apropos
• O comando apropos localiza as ferramentas cuja descricao possui um dado textode interesse. Se estou, por exemplo, procurando localizadores de padroes:$ apropos pattern
• Voce ja sabe que software utilizar, o grep por exemplo. Para ver seu manual:$ man grep
• Existe ainda um formato para documentacao chamado Info. Muitas vezes,consiste em livro inteiro! Para ver a documentacao em formato Info do grep:$ info grep
Thiago Santos, LIVES-FSCET, 2002 20
Dispositivos Ferramentas MUITO uteis
• cat
• echo
• grep
• find
• tail
• more
• less
Thiago Santos, LIVES-FSCET, 2002 21
3. Cool Stuff
Thiago Santos, LIVES-FSCET, 2002 22
Cool Stuff
• Programacao:
. C/C++, Java, Perl, Python, PHP, Tcl/Tk, Lisp, Prolog, Scheme, Fortran, Pascal,
Assemblers,...
. Toolkits graficos: GTK+, Qt
. Editores: Emacs, Vi
. IDEs: Netbeans (Java), Anjuta, KDeveloper, GLADE alem de ferramentas comerciais da
Borland (Kylix, ...)
. Bibliotecas para computacao grafica (OpenGL), manipulacao de vıdeo, processamento de
imagens, criptografia, controle de robos Lego, estruturas de dados, processamento paralelo
e distribuıdo, grafos,...
• Rede
. Browsers, clientes de e-mail, mensagens instantaneas e secure shell.
. Servidores Web, servidores de e-mail, servidores de ftp, ssh, streaming media, DNS.
. NIS, firewalls, roteamento,...
• Jogos, multimıdia, bancos de dados,...
Thiago Santos, LIVES-FSCET, 2002 23
Cool Stuff - GIMP
GNU Image Manipulation Program (GIMP) utiliza GTK+.
Thiago Santos, LIVES-FSCET, 2002 24
Cool Stuff - Gnumeric
Gnumeric (GTK+).
Thiago Santos, LIVES-FSCET, 2002 25
Cool Stuff - Anjuta
Anjuta IDE (GTK+): projetos em C/C++ com GTK+ e GNOME.
Thiago Santos, LIVES-FSCET, 2002 26
Cool Stuff - MPlayer
MPlayer: Um dos media players disponıveis para Linux.
Thiago Santos, LIVES-FSCET, 2002 27
Cool Stuff - XMMS
XMMS: Um dos media players disponıveis para Linux.
Thiago Santos, LIVES-FSCET, 2002 28
4. REFERENCIAS
Thiago Santos, LIVES-FSCET, 2002 29
• Free Software Foundationhttp://www.gnu.org
• The Linux Documentation Project – LDPhttp://www.tldp.org
• Projeto de Documentacao do Linux – LDP-BRhttp://br.tldp.org
• The Linux Cookbook: Tips and Techniques for Everyday Usehttp://www.tldp.org/LDP/linuxcookbook/linuxcookbook-1.2.pdf
• Knoppixhttp://www.knopper.net/knoppix/index-en.html
• Debianhttp://www.debian.org
• Red Hathttp://www.redhat.com
• Linux Mall “Paulistana”http://http://www.linuxmall.com.br
Thiago Santos, LIVES-FSCET, 2002 30