• Nenhum resultado encontrado

Introdu¸c˜ao ao GNU/Linux Thiago Teixeira Santos thiago.tsantos@sp.senac.br

N/A
N/A
Protected

Academic year: 2022

Share "Introdu¸c˜ao ao GNU/Linux Thiago Teixeira Santos thiago.tsantos@sp.senac.br"

Copied!
30
0
0

Texto

(1)

Introdu¸c˜ao ao GNU/Linux

Thiago Teixeira Santos

thiago.tsantos@sp.senac.br

Laborat´orio de Imagens Vis˜ao e Estruturas Espaciais Faculdade SENAC de Ciˆencias Exatas e Tecnologia

http://www.ime.usp.br/∼thsant/pool/linux-intro.pdf

(2)

1. HIST ´ ORIA

(3)

Unix

Ritchie, Thompson e Kernighan criam o “Unix” no Bell Labs em 1969. O nome

´e uma brincadeira em cima do Multics, um outro SO da ´epoca.

Can you send me a tape? O sistema, seu c´odigo fonte e seus manuais eram livremente distribu´ıdos entre as universidades e os centros de pesquisa (quem mais usaria computadores na d´ecada de 60?).

O sistema era extendido pelos seus usu´arios. Hackers da Universidade da Calif´ornia em Berkeley lan¸cam uma vers˜ao com suas melhorias: o BSD (Berkeley Systems Distribution). Eles o utilizavam em suas pesquisas, incluindo o desenvolvimento do TCP/IP.

D´ecada de 80 – AT&T transforma o sistema do Bell Labs em um produto comercial: o AT&T UNIX (mai´usculo) e a distribui¸c˜ao das fitas cessa. Venda de c´odigo fechado pelas grandes corpora¸c˜oes torna-se a norma. ;-(

(4)

GNU is not UNIX

If you share with your neighbor, you are a pirate. If you want any changes, beg us to make them.

Richard Stallman, pesquisador do AI-MIT, acostu- mado com intercˆambio livre de software durante anos, inconforma-se com os sistemas propriet´arios. Cria o Pro- jeto GNU e a Free Software Foundation.

Free as in freedom

. Vocˆe tem liberdade de executar o programa, para qualquer finalidade.

. Vocˆe tem liberdade para modificar o programa para atender suas necessidades (c´odigo fonte).

. Vocˆe tem liberdade de redistribuir c´opias, gr´atis ou n˜ao.

. Vocˆe tem liberdade de distribuir vers˜oes modificadas do programa, para a comunidade se beneficiar das melhorias.

(5)

GNU is not UNIX

GNU visa ser um sistema free completo: sistema operacional, ferramentas de programa¸c˜ao, ambiente gr´afico, 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 software livre n˜ao se torne propriet´ario. Um exemplo ´e a GNU General Public License GPL.

Em 1998, alguns hackers (ex.: Eric Raymond) alegaram que o termo Free Software poderia confundir a ind´ustria (free = gr´atis) e cunharam o termo Open Source (free = livre, aberto).

(6)

Linux

Linus Torvalds desenvolve um kernel de sistema ope- racional, batizado de Linux, e o lan¸ca em 1991 sob a GPL.

A populariza¸c˜ao da Internet ajuda na forma¸c˜ao de uma comunidade em torno do kernel. Torvalds consegue, com maestria, organizar o trabalho e as contribui¸c˜oes de um ex´ercito de programadores ao redor do mundo.

O GNU/Linux d´a origem `as distribui¸c˜oes, pacotes organizados de software com sistemas de instala¸c˜ao, gerenciamento e empacotamento pr´oprios:

E muitas outras...

(7)

Filosofia Unix

Se um sistema t˜ao antigo consegue sobreviver de 1969 at´e hoje (e com pleno vigor!) seu sucesso est´a em seu design.

Ferramentas × Aplica¸c˜ao: um ambiente Unix possui pequenas ferramentas que executam muito bem um pequeno trabalho.

Colocadas em pipes, a sa´ıda de uma ferramenta se torna a entrada de outra e o conjunto passa a fazer uma tarefa mais complexa. As diversas ferramentas combinadas de formas diferentes geram um n´umero infinito de op¸c˜oes!

Aplica¸c˜oes s˜ao programas mastodˆonticos (processadores de texto, planilhas, na- vegadores web,...) que cuidam de todo o processo, geralmente abrindo arquivos propriet´arios, realizando uma tarefa complicada e gravando o resultado novamente em arquivos propriet´arios.

A filosofia Unix se baseia na sinergia das pequenas ferramentas.

Linux possui o melhor dos dois mundos: ferramentas Unix de alta sinergia e aplica¸c˜oes para tarefas muito elaboradas e especializadas.

(8)

2. B ´ ASICO

(9)

Knoppix Linux

Usaremos neste workshop o Knoppix Linux. Trata-se de uma distribui¸c˜ao constitu´ıda de um ´unico CD-ROM, “boot´avel”, que monta os discos da m´aquina somente para leitura (inicialmente) e rapidamente detecta todos o hardware do computador e configura o sistema de acordo.

O Knoppix n˜ao ´e persistente. Nada ser´a instalado na m´aquina e, ap´os o desligamento da m´aquina e remo¸c˜ao do CD, ela estar´a exatamente em seu estado anterior.

Ideal para um primeiro contato em Linux e, posteriormente, como um “canivete su´ı¸co” para ter na mala. :-D

Baseado na Debian. Desenvolvido por Klaus Knopper e promovido pelo Linux Tag (maior conferˆencia sobre Linux da Europa).

Ponham-no no drive e reiniciem a m´aquina!

(10)

Ligar e Desligar

Sistemas GNU/Linux, ap´os a inicializa¸c˜ao, solicitam o nome de usu´ario e a senha para autentica¸c˜ao. No Knoppix, por´em, s´o existem 2 usu´arios (knoppix e root). O usu´ario knoppix ´e autenticado como o padr˜ao.

Para desligar o sistema h´a v´arias op¸c˜oes (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 aten¸c˜ao as mensagens da inicializa¸c˜ao!

(11)

Consoles Virtuais

Um console ´e um lugar onde vocˆe poder´a obter I/O com o sistema.

Vocˆe poder´a ter v´arias sess˜oes simultˆaneas atrav´es dos consoles virtuais.

Para sair do ambiente gr´afico. Use Ctrl+Alt+F1.

Alterne entre os terminais com Alt+F2, Alt+F3, Alt+F4,... ou via Alt+← e Alt+→.

Rode um comando, experimente:

$ cat /etc/modules.conf

Muito texto? Vocˆe pode navegar pelo conte´udo exibido na tela com Shift+PgUp e Shift+PgDown.

(12)

Arquivos e Diret´ orios

A raiz de uma ´arvore de diret´orios Unix ´e representada por /. ´E o n´ıvel mais alto da hierarquia.

Sistemas GNU/Linux diferentes costumam ter pequenas diferen¸cas em suas ´arvores de diret´orios, mas possuem, essencialmente:

. /bin Programas “execut´aveis” essenciais (de binaries).

. /dev Um dos pontos fortes do design Unix ´e a representa¸ao de dispositivos (devices) como arquivos. Veremos posteriormente as facilidades desta representa¸ao.

. /etc O diret´orio de etcetera armazena uma miscelˆanea de arquivos de configura¸ao e inicializa¸ao do sistema.

. /home Aqui ficam os diret´orios pessoais dos usu´arios do sistema

? /home/tts Meu diret´orio pessoal.

? /home/mariazinha Diret´orio pessoal da Mariazinha.

? /home/fhc Diret´orio pessoal do usu´ario FHC.

. /lib Bibliotecas essenciais do sistema.

. /proc ao se trata de arquivos reais, mas abstra¸oes de processos do sistema.

(13)

Arquivos e Diret´orios

Continua¸c˜ao...

. /root Diret´orio do superusu´ario.

. /sbin Ferramentas de administra¸ao do sistema.

. /tmp Arquivos tempor´arios.

. /usr Onde residem arquivos relativos `as ferramentas e aplica¸oes utilizadas pelos usu´arios (users).

. /usr/bin Ferramentas e aplica¸oes.

. /usr/doc Documenta¸ao.

. /usr/lib Bibliotecas utilizadas pelos programas em /usr/bin.

. /usr/local Todos os diret´orios vistos anteriormente podem estar localizados remota- mente em um servidor, se necess´ario. Aqui residem os arquivos obrigatoriamente locais, que dizem respeito s´o `a m´aquina em quest˜ao.

. /var Arquivos de tamanho vari´avel: logs de sistema, spool de e-mail e impress˜ao...

Conv´em respeitar esta organiza¸c˜ao, para evitar que o sistema vire uma bagun¸ca incompreens´ıvel!

(14)

Arquivos e Diret´orios

Para listar o conte´udo de um diret´orio:

$ ls

. $ ls -a exibe arquivos e diret´orios ocultos.

. $ ls -l exibe informa¸ao detalhada.

. $ ls /home/tts lista o meu diret´orio pessoal.

Para mudar de diret´orio, use:

$ cd path

. $ cd /

. $ cd /usr/local . $ cd /lib

Diret´orio corrente ´e representado por ./ enquanto o diret´orio pai o ´e por ../

Naveguem um pouco pelo Knoppix. Vasculhem a ´arvore de diret´orios. Usem as op¸c˜oes -a e -l. O que elas significam?

(15)

Arquivos e Diret´orios

Para criar um diret´orio:

$ mkdir path

Para remover um diret´orio:

$ rmdir path ou

$ rm -rf path, caso o diret´orio n˜ao esteja vazio.

Para remover um arquivo:

$ rm path

. $ rm -i solicita confirma¸ao antes da remo¸ao.

. $ rm -v exibe os arquivos sendo removidos (verbose).

. $ rm -f force: use com cautela, remove tudo sem qualquer prompt ou confirma¸c˜ao!

Para copiar arquivos:

$ cp original c´opia

. $ cp -R dir original dir c´opia copia um diret´orio inteiro recursivamente.

(16)

Arquivos e Diret´orios

Para mover arquivos:

$ mv origem destino

Para criar links simb´olicos (“atalhos”):

$ ln -s destino link

Exerc´ıcio:

. Use:

$ touch path

para criar arquivos vazios.

. Crie diret´orios e arquivos. Mova, copie e crie links.

. Use os caracteres coringa da shell: *, ? e .

. Tente remover um arquivo de propriedade do superusu´ario (root). O que acontece?

(17)

Redirecionamentos e Pipes

No Unix a sa´ıda de uma ferramenta torna-se a entrada de outra.

Para exibir o arquivo de configura¸c˜ao do X Windows System na tela, podemos utilizar o comando:

$ cat /etc/X11/XF86Config

Estamos interessados somente em ver as se¸c˜oes existentes. Utilizamos a ferramenta grep para filtrar a sa´ıda de cat:

$ cat /etc/X11/XF86Config | grep ’Section ’

N˜ao estamos interessados nas se¸c˜oes comentadas (iniciadas por #. Utilizamos o grep novamente:

$ cat /etc/X11/XF86Config | grep ’Section ’ | grep -v ’#’

Est´a quase bom ;-). Vamos colocar tudo em ordem alfab´etica e inserir em um arquivo:

$ cat /etc/X11/XF86Config | grep ’Section ’ | grep -v ’#’ | sort > foo

(18)

Dispositivos

Dispositivos (discos, CD-ROMs, mouse, portas paralelas, placas de som,...) s˜ao abstra´ıdas como arquivos no Unix.

As opera¸c˜oes 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 conv´em lembrar:

. /dev/hda ´e o primeiro disco na primeira controladora IDE.

? /dev/hda1 ´e a primeira parti¸ao do 1o disco IDE.

? /dev/hda2 ´e a segunda parti¸ao do 1o disco IDE.

? /dev/hdaN ´e n-´esima parti¸ao 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.

(19)

Dispositivos

Continua¸c˜ao...

. /dev/psaux refere-se ao mouse PS2.

. /dev/ttySN ao as portas seriais (modems, mouses, etc...).

. /dev/lpN ao as portas paralelas.

. /dev/sdN ao dispositivos SCSI.

. /dev/dsp de Digital Signal Processing (placa de som).

(20)

Dispositivos

Ajuda: man, info e apropos

O comando apropos localiza as ferramentas cuja descri¸c˜ao possui um dado texto de interesse. Se estou, por exemplo, procurando localizadores de padr˜oes:

$ apropos pattern

Vocˆe j´a sabe que software utilizar, o grep por exemplo. Para ver seu manual:

$ man grep

Existe ainda um formato para documenta¸c˜ao chamado Info. Muitas vezes, consiste em livro inteiro! Para ver a documenta¸c˜ao em formato Info do grep:

$ info grep

(21)

Dispositivos

Ferramentas MUITO ´ uteis

cat

echo

grep

find

tail

more

less

(22)

3. Cool Stuff

(23)

Cool Stuff

Programa¸c˜ao:

. C/C++, Java, Perl, Python, PHP, Tcl/Tk, Lisp, Prolog, Scheme, Fortran, Pascal, Assemblers,...

. Toolkits gr´aficos: GTK+, Qt . Editores: Emacs, Vi

. IDEs: Netbeans (Java), Anjuta, KDeveloper, GLADE al´em de ferramentas comerciais da Borland (Kylix, ...)

. Bibliotecas para computa¸ao gr´afica (OpenGL), manipula¸ao de v´ıdeo, processamento de imagens, criptografia, controle de robˆos Lego, estruturas de dados, processamento paralelo e distribu´ıdo, grafos,...

Rede

. Browsers, clientes de e-mail, mensagens instantˆaneas 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,...

(24)

Cool Stuff - GIMP

GNU Image Manipulation Program (GIMP) utiliza GTK+.

(25)

Cool Stuff - Gnumeric

Gnumeric (GTK+).

(26)

Cool Stuff - Anjuta

Anjuta IDE (GTK+): projetos em C/C++ com GTK+ e GNOME.

(27)

Cool Stuff - MPlayer

MPlayer: Um dos media players dispon´ıveis para Linux.

(28)

Cool Stuff - XMMS

XMMS: Um dos media players dispon´ıveis para Linux.

(29)

4. REFERˆ ENCIAS

(30)

Free Software Foundation http://www.gnu.org

The Linux Documentation Project – LDP http://www.tldp.org

Projeto de Documenta¸ao do Linux – LDP-BR http://br.tldp.org

The Linux Cookbook: Tips and Techniques for Everyday Use http://www.tldp.org/LDP/linuxcookbook/linuxcookbook-1.2.pdf

Knoppix

http://www.knopper.net/knoppix/index-en.html

Debian

http://www.debian.org

Red Hat

http://www.redhat.com

Linux Mall “Paulistana”

http://http://www.linuxmall.com.br

Referências

Documentos relacionados

Uma colora¸c˜ ao das arestas de um grafo ´e uma atribui¸c˜ ao de cores ` as suas arestas tal que arestas adjacentes recebem cores diferentes... 2 Colora¸c˜ oes m´ınimas e

Uma colora¸c˜ ao das arestas de um grafo ´e uma atribui¸c˜ ao de cores ` as suas arestas tal que arestas adjacentes recebem cores diferentes... 2 Colora¸c˜ oes m´ınimas e

Pacote do R que permite f´ acil integra¸ c˜ ao de c´ odigos escritos em C++.. N˜ ao seria mais f´ acil integrar com C ou

Caso o usu´ ario deseje executar novamente um mesmo comando ´ e necess´ ario apenas cha- mar na shell uma referˆ encia ao comando desejado com o caracter “!”, como mostra o exemplo

As entradas de referˆ encia do arquivo .bib s´ o aparecer˜ ao na p´ agina de referˆ encias se forem citadas no texto. No fim do

I Complexidade temporal: O(|E |log|V |) com uma fila de prioridade Algoritmo de Bellman-Ford - Distˆ ancia de um n´ o para todos os outros (funciona em grafos com pesos negativos).

Este trabalho visa estudar o efeito da aplica¸ c˜ ao de inseticidas e/ou larvicidas durante o ver˜ ao, considerando um modelo de otimiza¸ c˜ ao multiobjetivo que leva em conta a

Verificamos que este modelo encapsula uma riqueza de comportamentos dinˆ amicos complexos que permite estudar v´ arios regimes tais como os ciclos econˆ omicos ou cen´ arios