Este documento fornece uma introdução ao Linux, resumindo suas principais características e componentes. Em 3 frases ou menos:
O documento apresenta a história do Linux, desenvolvido inicialmente por Linus Torvalds em 1991, e discute suas principais características como sistema operacional de código aberto. Também resume os principais componentes do Linux, incluindo distribuições, estrutura de diretórios, interfaces gráficas, processos de instalação e sistemas de arquivos.
1. Iniciando com Linux
Diogo Luiz Böhm
diogobohm@unisc.br
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
2. Agenda
- História
- Características do Linux
- Distribuições
- Estrutura do sistema
- “Caras” do Linux
- Instalação
- Sistemas de arquivos
- Permissões
- Se virando no terminal
- Aprendendo mais
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
3. História
O Linux é um sistema operacional criado em 1991 por
Linus Torvalds na universidade de Helsinki na Finlândia.
É um sistema Operacional de código aberto distribuído
gratuitamente pela Internet.
Seu código fonte é liberado como Free Software
(software livre), sob licença GPL, o aviso de copyright do
kernel feito por Linus descreve detalhadamente isto e
mesmo ele não pode fechar o sistema para que seja
usado apenas comercialmente.
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
4. Características do Linux
• É livre e desenvolvido voluntariamente por
contribuidores espalhados ao redor do mundo com o
objetivo a contribuição para a melhoria e crescimento
deste sistema operacional;
• Também recebe apoio de grandes empresas como
IBM, Sun, Oracle, HP, etc. para seu desenvolvimento;
• Convive sem nenhum tipo de conflito com outros
sistemas operacionais (com o DOS, Windows, OS/2) no
mesmo computador;
• Multitarefa real;
•___________________________________________________________________________________________________
Multiusuário;
JAC – UNISC - 10/09/2009
5. Características do Linux
• Suporte a nomes extensos de arquivos e diretórios
(255 caracteres);
• Conectividade com outros tipos de plataformas como
Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM,
Unix, Windows, DOS, etc;
• Utiliza permissões de acesso a arquivos, diretórios e
programas em execução na memória RAM;
• Proteção entre processos executados na memória
RAM;
• Suporte a mais de 63 terminais virtuais (consoles);
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
6. Características do Linux
• Modularização - O Linux somente carrega para a
memória o que é usado durante o processamento,
liberando totalmente a memória assim que o
programa/dispositivo é finalizado;
• Devido a modularização, os drivers dos periféricos e
recursos do sistema podem ser carregados e removidos
completamente da memória RAM a qualquer momento;
• Não há a necessidade de se reiniciar o sistema após a
modificar a configuração de qualquer periférico ou
parâmetros de rede;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
7. Características do Linux
• Não precisa de um processador potente para funcionar.
O sistema roda bem em computadores 386Sx 25 com
4MB de memória RAM (sem rodar o sistema gráfico X,
que érecomendado 32MB de RAM). Já pensou no seu
desempenho em uma arquitetura melhor?
• Suporte nativo a múltiplas CPUs, assim processadores
como Dual Core Athlon Duo, Quad Core tem seu poder
de processamento integralmente aproveitado;
• Suporte nativo a dispositivos SATA, PATA, Fiber
Channel;
• Suporte nativo a virtualização;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
8. Características do Linux
• O crescimento e novas versões do sistema não
provocam lentidão, pelo contrário, a cada nova versão
os desenvolvedores procuram buscar maior
compatibilidade, acrescentar recursos úteis e melhor
desempenho do sistema;
• Não é requerido pagamento de licença para uso;
• Acessa corretamente discos formatados pelo DOS,
Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari,
Mac, etc;
• O LINUX NÃO É VULNERÁVEL A VÍRUS!
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
9. Características do Linux
• Rede TCP/IP mais rápida que no Windows e tem sua
pilha constantemente melhorada;
• Roda aplicações DOS através do DOSEMU, QEMU,
BOCHS;
• Roda aplicações Windows através do WINE;
• Vários tipos de firewalls de alta qualidade e com
grande poder de segurança de graça;
• Roteamento estático e dinâmico de pacotes;
• Ponte entre Redes, proxy arp;
•___________________________________________________________________________________________________
Proxy Tradicional e Transparente;
JAC – UNISC - 10/09/2009
10. Características do Linux
• Possui recursos para atender a mais de um endereço
IP na mesma placa de rede;
• Os sistemas de arquivos usados pelo GNU/Linux (Ext3,
Ext3, reiserfs, xfs, jfs) organiza os arquivos de forma
inteligente evitando a fragmentação e fazendo-o um
poderoso sistema para aplicações multi-usuárias
exigentes e gravações intensivas;
• Permite a montagem de um servidor de publicação
Web, E-mail, News, etc. com um baixo custo e alta
performance;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
11. Distribuições
• http://distrowatch.com;
• Principais:
Ubuntu 9.04
Fedora 11
openSUSE 11.1
Debian 5.0.3
Slackware 13.0
Arch Linux
Damn Small Linux 4.4.10
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
12. Estrutura do Sistema
• Dentro do linux, temos a raiz “/” e a partir dela, os
diretórios são organizados da seguinte forma:
•/
• /bin
• /sbin
• /usr
• /usr/local
• /mnt
• /tmp
• /var
• /home
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
13. Estrutura do Sistema
• Caminhos dentro do sistema:
• Logs do sistema:
/var/log/syslog
• Home do meu usuário:
/home/usuario
• Configuração de rede:
/etc/network/interfaces
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
14. Estrutura do Sistema - Usuários
• root: Usuário administrativo. “O que tudo pode”.
• Normalmente não utiliza ambiente gráfico;
• No terminal, é sinalizado com o caracter “#”
• usuário: Usuários normais, não administradores.
• Dependem de permissões para
leitura/escrita/execução em pastas e arquivos;
• No terminal, são sinalizados com o caracter “$”
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
15. Estrutura do Sistema - Grupos
• Um usuário possui:
• Apenas um grupo primário;
• Nenhum ou mais grupos secundários;
• Estes grupos permitem acessos a diferentes recursos;
• Podemos separar usuários em grupos distintos e
limitar/expandir suas ações no sistema;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
16. “Caras” do Linux
• Linux possui vários gerenciadores de Desktop:
• GNOME
• KDE
• XFCE
• FluxBox
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
17. “Caras” do Linux
• GNOME
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
18. “Caras” do Linux
• KDE
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
19. “Caras” do Linux
• XFCE
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
20. “Caras” do Linux
• FluxBox
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
21. Instalação
• Hoje a maioria das distribuições voltadas para o
usuário final possui recursos de LiveCD, o que permite a
execução do sistema direto do CD;
• A partir daí, o usuário pode usar o sistema livremente e
escolher rodar a instalação ou não;
• A instalação é realizada em torno de 6 passos e
normalmente leva em torno de 30 minutos;
• Algumas distribuições possuem instaladores por
menus de texto também fáceis, porém permitindo uma
maior customização do sistema;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
22. Instalação
• Instalação por LiveCD:
• Instalação por menu de texto:
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
23. Sistemas de Arquivos
• O Linux possui compatibilidade com os mais variados
tipos de sistemas de arquivos, o que permite instalá-lo
utilizando a melhor estrutura de acordo com o seu perfil;
# Extended Filesystem - ext (Linux) # cramfs
# Second Extended Filesystem - ext2 (Linux) # devpts
# Third Extended Filesystem - ext3 (Linux, journalling) # efs
# Reiser Filesystem - reiserfs (Linux, journalling) # hfs
# Amgia Fast Filesystem - affs # jfs (Linux, journalling)
# High Performance Filesystem - hpfs (OS/2) # ntfs
# IS0 9660 Filesystem - iso9660 (CD-ROM) # proc
# Minix Filesystem - Minix (Minix. first filesystem used by Linux) # qnx4
# FAT 16 bit - msdos (DOS, Windows) # romfs
# Virtual Fat Fielsystem - vfat (DOS, Windows) Supports long filenames # smbfs
# Network Filesystem - NFS # tmpfs
# Novell Filesystem - NCPFS (Novell) # udf
# System V Filesystem - sysv (System V Unix variants) # xenix
# Uniform Filesystem - ufs ( BSD, Solarius, NeXTStep) # xfs Silicon Graphics'
# UMSDOS Filesystem - umsdos (Unix filesystem on DOS) (SGI's) IRIX
# adfs
# autofs
# coda
# coherent
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
24. Sistemas de Arquivos
• Sistemas de arquivos normalmente utilizados:
• ext3 (ou o novo ext4): sistema com journaling, boa
performance, padrão do Linux;
• ReiserFS: sistema com journaling, melhor
performance;
• FAT32: sistema sem journaling e de baixa
performance e escalabilidade, porém é compatível com
sistemas Windows;
• NTFS: Sistema de arquivos padrão do Windows,
permite a instalação de Linux dentro do Windows;
• NFS: Sistema de arquivos distribuído via rede.
Permite que muitas máquinas utilizem a mesma unidade
de disco, gravando e lendo arquivos de forma
concorrente.
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
25. Permissões
• A permissão de acesso protege o sistema de arquivos
Linux do acesso indevido de pessoas ou programas não
autorizados;
• A permissão de acesso do GNU/Linux também impede
que um programa mal intencionado, por exemplo,
apague um arquivo que não deve, envie arquivos para
outra pessoa ou forneça acesso da rede para que outros
usuários invadam o sistema;
• O sistema GNU/Linux é muito seguro e como qualquer
outro sistema seguro e confiável impede que usuários
iniciantes (ou mal intencionados) instalem programas
enviados por terceiros sem saber para que eles
realmente servem e causem danos irreversíveis em
seus arquivos, seu micro ou sua empresa;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
26. Permissões
• O princípio da segurança no sistema de arquivos GNU/
Linux é definir o acesso aos arquivos por donos, grupos
e outros usuários:
• dono: É a pessoa que criou o arquivo ou o diretório;
• grupo: Define qual grupo de usuários possui
permissões neste arquivo ou diretório;
• outros: É a categoria de usuários que não são
donos ou não pertencem ao grupo do arquivo;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
27. Permissões - Tipos
• Quanto aos tipos de permissões que se aplicam ao
dono, grupo e outros usuários, temos 3 permissões
básicas:
• r - Permissão de leitura para arquivos. Caso for um
diretório, permite listar seu conteúdo (através do
comando ls, por exemplo);
• w - Permissão de gravação para arquivos. Caso for
um diretório, permite a gravação de arquivos ou outros
diretórios dentro dele. Para que um arquivo/diretório
possa ser apagado, é necessário o acesso de gravação;
• x - Permite executar um arquivo como um programa
ou script. Caso seja um diretório, permite que seja
acessado através de outros comandos, como ls e cd.
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
28. Permissões
• -rwxrwxrwx diogo users teste
• A primeira letra diz qual é o tipo do arquivo. A letra “d”
significa que é um diretório, um “l” um link a um arquivo
no sistema, um “-” significa que é um arquivo comum,
etc.
• Da segunda a quarta letra (rwx) dizem qual é a
permissão de acesso ao dono do arquivo, neste caso,
diogo. Ele tem a permissão de ler (r - read), gravar (w -
write) e executar (x - execute) o arquivo teste;
• Da quinta a sétima letra (rwx) diz qual é a permissão
de acesso ao grupo do arquivo;
• Os três últimos caracteres (rwx) representam as
permissões para outros usuários;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
29. Permissões
• -rwxrw-r-- diogo users teste
• A primeira letra diz qual é o tipo do arquivo. A letra “d”
significa que é um diretório, um “l” um link a um arquivo
no sistema, um “-” significa que é um arquivo comum,
etc.
• Da segunda a quarta letra (rwx) dizem qual é a
permissão de acesso ao dono do arquivo, neste caso,
diogo. Ele tem a permissão de ler (r - read), gravar (w -
write) e executar (x - execute) o arquivo teste;
• Da quinta a sétima letra (rwx) diz qual é a permissão
de acesso ao grupo do arquivo;
• Os três últimos caracteres (rwx) representam as
permissões para outros usuários;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
30. Se virando no terminal
• Sem dúvida a ferramenta mais poderosa de uso do
sistema é o terminal. Nele você pode manipular dados
das mais diversas formas. Seja por comandos ou
scripts, muitas tarefas árduas na interface gráfica são
facilmente resolvidas pelo terminal.
• Para tanto, existem milhares de ferramentas para as
mais variadas finalidades, desde manipulação de
arquivos até conversão de formatos, browsers, acesso
remoto, gerência de rede, loggers, servidores, enfim,
tudo no linux pode ser feito via terminal.
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
31. Se virando no terminal
• Para entender a interface do terminal e suas
permissões, lembre-se dos caracteres de usuário “#” e
“$”;
• Se você não entende como um certo comando
funciona, ou quais são seus parâmetros, vale a pena
consultar o manual e evitar problemas através do
comando “man comando”. Uma tela é aberta com a
explicação detalhada daquele comando;
• Outro comando útil é o “pwd”. Muitas vezes não
sabemos onde estamos navegando. Este comando
retorna o caminho atual da sua localização no sistema;
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
32. Se virando no terminal
• Principais comandos:
• ls: lista arquivos em um diretório. Sem parâmetros,
lista os arquivos do diretório atual. A opção “-l” lista
também as permissões e outras informações. Pode listar
um arquivo/diretório específico.
Exemplo: ls -l /var
• cd: muda o diretório atual. Serve para navegar
dentro do sistema e assim manipular os arquivos sem
precisar passar o caminho completo nos parâmetros;
Exemplo: cd /usr/lib
• mv: move um arquivo/diretório para outro local e/ou
renomeia este arquivo.
Exemplo: mv teste /tmp/teste.txt
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
33. Se virando no terminal
• groups: lista os grupos do usuário atual ou de um
usuário específico.
Exemplo: groups root
• touch: cria um arquivo vazio no sistema.
Exemplo: touch arquivo
• rm: remove um arquivo. A opção -r (recursive)
permite também remover pastas e arquivos dentro dela.
Não pede confirmação por padrão!
Exemplo: rm arquivo
• mkdir: cria um diretório vazio no sistema.
Exemplo: mkdir novo
• rmdir: remove um diretório vazio do sistema.
Exemplo: rmdir pasta – UNISC - 10/09/2009
___________________________________________________________________________________________________
JAC
34. Se virando no terminal
• cat: imprime o conteúdo de um arquivo.
Exemplo: cat log.txt
• tail: imprime as dez últimas linhas de um arquivo.
Bom para arquivos grandes de log, onde apenas as
últimas informações interessam.
Exemplo: tail /var/log/syslog
• pg: separa a impressão de um arquivo em páginas.
Exemplo: pg /var/log/syslog
• cp: copia um arquivo para outro local ou duplica
com outro nome:
Exemplo: cp teste.txt teste-old.txt
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
35. Se virando no terminal
• dmesg: imprime as últimas informações do sistema.
• chmod: muda as permissões de um arquivo ou
diretório. Somente funciona caso o usuário seja dono do
objeto ou seja root.
Exemplo: chmod u=rwx,g=rwx,o=rwx arquivo
• chown: muda o dono/grupo de um arquivo ou
diretório. Novamente, privilégios de dono ou root são
necessários;
Exemplo: chown user:grupo arquivo
• ./: executa um arquivo como se fosse uma
aplicação, caso tenha permissões de execução.
Exemplo: ./programa
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
36. Aprendendo mais - Referências
• Não termina por aí! Existe muito o que aprender e
sempre é bom estudar!
• Guia FOCA Linux - http://focalinux.cipsga.org.br/
• Comunidade Viva o Linux- http://vivaolinux.org.br
• Comunidade BR-Linux - http://br-linux.org
• Comunidade Ubuntu - http://ubuntu.com
• Comunidade Slackware - http://slackware.com
• Comunidade Debian - http://debian.org
• Comunidade Fedora - http://fedora.org.br
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009
37. Obrigado!
Iniciando com Linux
Diogo Luiz Böhm
diogobohm@unisc.br
___________________________________________________________________________________________________
JAC – UNISC - 10/09/2009