Академический Документы
Профессиональный Документы
Культура Документы
LINUX
Adiel Lemos
Bruno Michael
Célio de Souza
Eliphas Siqueira
Rubens Levy
Wanessa Laís
Guaratinguetá - SP
2009
2
SUMÁRIO
1 Introdução ................................................................................................................................ 3
1.1 Origens do sistema ........................................................................................................... 3
2 O sistema operacional Linux ................................................................................................... 6
2.1 Características ................................................................................................................... 6
2.2 Estrutura ........................................................................................................................... 6
2.2.1 Kernel ........................................................................................................................ 6
2.2.2 Shell ........................................................................................................................... 7
2.2.3 Biblioteca-Padrão ...................................................................................................... 7
2.2.4 Utilitários ................................................................................................................... 7
2.3 Gerenciamento de Processos ............................................................................................ 7
2.3.1 Processos ................................................................................................................... 8
2.3.2 Atributos de processos ............................................................................................... 9
2.3.3 Atributos de execução.............................................................................................. 10
2.3.4 Classificação dos processos ..................................................................................... 11
2.3.5 Comandos para processos........................................................................................ 13
2.4 Gerenciamento de Arquivos ........................................................................................... 14
2.4.1 Privilégios ................................................................................................................ 14
2.5 Partições e Sistemas de Arquivos ................................................................................... 15
2.5.1 Identificação de discos e partições em sistemas Linux ............................................... 16
2.5.2 Sistema de Arquivos ................................................................................................ 18
2.5.3 Características dos dispositivos montados .............................................................. 20
2.5.4 Comandos específicos ............................................................................................. 21
2.6 Utilização do Sistema Operacional................................................................................. 23
2.6.1 Live CD ................................................................................................................... 23
2.6.2 Distribuições ............................................................................................................ 26
2.6.2 Ambientes Gráficos ................................................................................................. 31
2.6.4 Comandos de Sessão ............................................................................................... 34
2.7 Gerenciamento de Usuários e Grupos ............................................................................ 35
2.7.1 Usuários e Grupos ................................................................................................... 36
2.7.2 Comandos ................................................................................................................ 40
1 Introdução
planejamento estratégico da empresa serão traçados planejamentos a médio prazo para cada
Tudo começou em 1983, pouco depois que a IBM lançou seu primeiro PC e a
Microsoft sua primeira versão do DOS. Richard Stallman criava a Free Software Foundation,
que ao longo da década produziu a licença GNU e toda a base filosófica relacionada a ela e,
queria um sistema operacional que fosse semelhante a um Unix, com todas as suas
A partir dessa idéia, Linus começou a trabalhar nesse que seria o futuro kernel do
sistema operacional que hoje denominamos Linux. Isso tudo aconteceu em meados de 1991,
sistema semelhante ao Minix para computadores AT-386. Ele já alcançou o estágio de ser
usável (embora possa não ser, dependendo do que você quer fazer), e pretendo distribuir o
código fonte. É apenas a versão 0.02..., mas já consegui rodar nele o bash, gcc, gnu-make,
4
Esta mensagem era assinada por Linus Torvalds, e ninguém adivinharia que ela estaria
marcando o início de um movimento que, menos de dez anos depois, já tem mais de trinta
milhões de seguidores.
O fato de o código fonte estar amplamente disponível e poder ser utilizado de forma
muito liberal permitiu que muitos desenvolvedores passassem a trabalhar no sistema ainda em
sua fase embrionária, adicionando novos recursos num ritmo muito rápido. Mas, durante os
primeiros anos, o Linux ficou restrito a este círculo técnico, muito longe de ser usado em
larga escala.
primeiros servidores Web a ser lançado e tornou-se rapidamente o mais usado numa época em
que existiam poucos concorrentes à altura. O Apache rodava em várias plataformas, mas o
Pouco tempo depois veio o servidor Samba, que permitia compartilhar arquivos numa
rede Windows, de forma mais estável e mais barata que usando um servidor Windows.
Depois vieram os bancos de dados e muitas outras aplicações, mas todas tinham algo
Por volta do final de 1994 foi lançada a primeira versão for Linux do Xfree. Ele é um
"servidor gráfico", uma interface gráfica usada em vários sistemas Unix. Basicamente, antes
do Xfree o Linux tinha apenas a velha interface de modo texto, o que explicava o fato dele só
Nesta época começaram a surgir as primeiras distribuições Linux, que eram um jeito
5
mais "fácil" de instalar o sistema. Ao invés de ficar compilando tudo, começando pelo Kernel
e passando por todos os aplicativos da Free Software Foundation e outros que você
pretendesse rodar, você simplesmente passava alguns dias editando arquivos de configuração
fizeram para o software aquilo que os primeiros PCs fizeram para o hardware: A oportunidade
2.1 Características
Escrito em linguagem de alto nível, este sistema operacional possui flexibilidade, com
linguagens.
O Linux possui várias características que o diferem dos outros sistemas operacionais e que
o aproximam do UNIX, sendo um dos motivos da sua escolha em várias aplicações nas quais são
2.2 Estrutura
2.2.1 Kernel
da máquina. Quando falamos de Linux, estamos nos referindo somente ao kernel do sistema. Tudo
que existe ao redor do kernel são aplicativos que compõem uma distribuição do Linux.
O Kernel seria como o cérebro e o coração de um sistema operacional. Ele sozinho não
serve para nada, mas sem ele o resto do corpo também não vai muito longe. Em 1991 a Free
Software Foundation ainda estava dando os primeiros passos no desenvolvimento do Hurd (que
ainda hoje está muito longe se ser concluído) enquanto o Linux de Linus Torvalds era utilizável
2.2.2 Shell
Shell é o nome genérico de uma classe de programas que funcionam como intepretador de
são bash, csh, tcsh, ksh e zsh. O shell é a interface entre o usuário e o kernel. O usuário pode
2.2.3 Biblioteca-Padrão
operacional.
2.2.4 Utilitários
Esta é a camada mais externa do sistema é a interface com o usuário, formada por diversos
programas utilitários.
2.3.1 Processos
Nas execuções originais de Unix, um processo era a todo o programa executar. Para
São informações ligadas diretamente aos processos, que devem ser tratadas no
gerenciamento:
para o exemplo).
Que espaço de memória o programa teve o acesso e como foi colocado para
fora.
Embora a definição de um processo possa parecer óbvia, o conceito das linhas faz tudo
deste mais ou menos bem definido. Uma linha permite que um único programa funcione em
lugares múltiplos ao mesmo tempo. Todas as linhas criadas (ou girou fora) por uma única
parte do programa mais das características que diferenciam processos de se. Para o exemplo,
abertas, em credentials, no diretório atual, e na imagem da memória. Assim que uma das
linhas modificar uma variável global, todas as linhas vêem o valor novo melhor que velho.
processo transformaram-se uma coleção das linhas que compartilharam de recursos. Enquanto
assim muitos recursos foram compartilhados entre linhas, a semente poderia comutar entre
linhas no mesmo processo mais rapidamente do que poderia executar um interruptor cheio do
contexto entre processos. Isto resultou em a maioria de sementes de Unix que têm um modelo
De forma resumida:
visualizados e diferenciados.
das suas filas de execução, quando ceder a CPU a esse processo, que para o
No final da execução, o processo pode ser morto. Processos que terminam sem
Linux.
11
Quanto à execução:
interagem com os usuários e não exibem sua execução na saída padrão. Estes
Lote (batch) - Scripts que executam vários programas que podem ser
agendados e suas saídas podem ser enviadas por email para os usuários.
12
Como quase tudo, quiçá tudo, no Linux, os processos também são controlados
bg [JobID]
fg [JobID]
jobs [opções]
ps [opções]
top [opções]
free [opções]
A lista de sinais pode ser obtida com kill -l, sendo os mais importantes:
processos.
14
2.4.1 Privilégios
GRUPO.
Cada classe é composta de níveis de permissões: Leitura (r), Escrita (w) e Execução
(x).
Para alterar as permissões de acesso de arquivos e pastas via linha de comando você
deve usar o comando chmod. A sintaxe dele parece um pouco complicada à primeira vista,
Temos aqui o comando chmod propriamente dito, o arquivo ou pasta que terá suas
permissões de acesso alteradas e um número de três dígitos que indica as novas permissões
para o arquivo.
15
4 : Leitura;
2 : Gravação;
1 : Execução.
Você simplesmente soma estes números para ter o número referente ao conjunto de
0 : Sem permissão alguma, se for uma pasta o usuário sequer pode ver o
conteúdo;
programa);
4 : Apenas leitura;
ao sistema. Quando montamos um dispositivo (CDROM, Floppy, Zip driver, partições, NFS,
FTP...) este ficará acessível pelo diretório apontado na montagem. Este diretório fica
arquivos ali dispostos obedecem a certa ordem e uma lógica fazendo com que cada diretório
Cada sistema de arquivos tem uma característica em particular, mas seu propósito é o
arquivos/diretórios.
disquetes, tela, portas de impressora, modem) são identificados por um arquivo referente a
/dev/hda1
| | ||
| | |
| |
(primary master)'.
17
(primary slave)'.
Cada disco pode ter de uma até dezesseis partições onde cada partição é representada
por um número inteiro. Por exemplo /dev/hda1 será a primeira partição se houver outra
partição ela será a /dev/hda2 e assim por diante sendo que a mesma regra se pratica nos discos
SCSI.
18
Partições primárias - Cada disco pode conter até quatro partições primárias elas
contêm pelo menos um sistema de arquivos e pelo menos uma deve ser criada.
Uma dessas partições deve ser marcada como ativa para que a carga do sistema
não pode conter nenhum sistema de arquivos e um disco pode ter somente uma
partição estendida.
com a partição estendida, podem-se ter doze partições desse tipo e elas podem ser
partições com sistemas de arquivos em único disco, sendo três primárias e doze
lógicas.
do sistema, ela possibilita que o Linux tenha uma memória virtual em disco. Ela
as informações que estão armazenadas em qualquer mídia: disquetes, discos rígidos, drives
criam-se os meios magnéticos necessários para armazenar os dados. Este processo faz uma
19
preparação do dispositivo de armazenagem para que ele possa receber um sistema de arquivos
manter padrões, para controlar o tamanho das partições, permissões de arquivos, tamanho dos
onde, a cada arquivo ou diretório, são associadas permissões para o dono, o grupo e outros
usuários.
Todo arquivo ou diretório são protegidos pelas suas permissões determinando assim
identificado pelo código 83. Seu tamanho deve ser o suficiente para acomodar todos os
arquivos e programas que deseja instalar (você encontra isto no manual de sua distribuição).
realizadas no sistema de arquivos, caso aconteça uma queda de energia elétrica (ou qualquer
arquivos no ponto em que estava quando houve a interrupção, evitando a demora para checar
todo um sistema de arquivos, que pode levar minutos em sistemas de arquivos muito grandes.
* Swap' - Usado em partições Linux Swap para oferecer memória virtual ao sistema.
Note que é altamente recomendado o uso de uma partição Swap no sistema (principalmente se
você tiver menos que 16MB de memória RAM). Este tipo de partição é identificado pelo
código 82.
20
em dois arquivos.
/etc/fstab
parâmetros sobre as partições que são lidas pelo comando mount. Cada linha deste arquivo
contém a partição que desejamos montar, o ponto de montagem, o sistema de arquivos usado
Dispositvo de Origem
Ponto de montagem
Tipo
Opções
Dump
Ordem
/etc/mtab
suas características.
árvore, a hierarquia de arquivos, iniciada pelo raiz sim bolizada como /. Estes arquivos podem
estar distribuídos por diversos dispositivos. O comando mount destina-se a incluir o sistema
22
umount [diretório]
Este comando só será concluído se o usuário não estiver utilizando recursos deste
diretório montado.
dd if=[origem] of=[destino]
Cria uma imagem de um dispositivo. Uma imagem é uma cópia fiel do dispositivo
contendo informações do conteúdo e informações físicas. Usado para criar disco de boot de
instalação.
23
eject [opções]
Este comando ejeta dispositivos. Sem opções é aplicado para o CDROM. Para obter
t - Fecha o CDROM
r - Ejeta o CDROM
fdformat -n [dispositivo]
existente em "/dev/fdnhXXXX", onde (n) é número do disquete e o (h) será minúsculo para
baixa densidade ou (H) para alta densidade e (XXXX) será o tamanho do disquete em bytes.
2.6.1 Live CD
são disponibilizadas tanto para instalação quanto para rodarem como um Live CD.
Segundo Morimoto (2008a), um Live CD nada mais é que "uma versão pré-instalada
do sistema, que utiliza um conjunto de truques para rodar diretamente a partir do CD-ROM".
Ou seja, o sistema operacional é compilado de forma que sua execução aconteça independente
Antes de explicar como funciona o Live CD, no entanto, deve-se explicar como
Já no caso dos Live CDs, a utilização do sistema operacional acontece de forma muito
arquivos on-the-fly, ou seja, apenas quando vão utilizá-los, ao contrário dos sistemas
utilizados ou não. Dessa forma, o sistema operacional que soma dois gigabytes de dados passa
a caber em um CD de 700MB.
Além disso, afirma Morimoto (2008a), os Live CDs são capazes de "melhorar o
Os motivos da utilização dos Live CDs são muitos, mas o principal é o fato de não
haver a necessidade de instalação em disco, o que atrai os mais conservadores e que não
disco read-only. Essa possibilidade permite que esses usuários conheçam o sistema
dados gravados no disco rígido, permitindo a eles se adaptarem aos poucos ao sistema,
Há também o bom desempenho do sistema, que permite que o sistema operacional que
"A idéia é que um CD-ROM de 52x é capaz de ler a, em média, 5.8 MB/s, pois como o
CD gira sempre na mesma velocidade, as informações gravadas nas trilhas da parte externa do
CD (mais longas) são lidas a mais ou menos o dobro da velocidade das do centro (que são
25
mais curtas). Um CD-ROM de 52x lê a 7.8 MB/s nas trilhas externas mas a apenas 3.9 MB/s
nas internas. Como o CD-ROM é gravado a partir do centro, na maior parte do tempo ele lê os
dados a 5 ou 6 MB/s. No entanto, ao ler 5 MB/s de dados compactados a uma razão de 3x, ele
estará lendo, na prática, a quase 15 MB/s, um valor muito mais próximo do da taxa de
processador passa a ser maior, pois, além de processar os dados referentes aos programas, ele
Sendo assim, antes de partir para a utilização de um Live CD, deve-se levar em
pode comprometer a execução do sistema operacional e passar uma imagem diferente da real
Uma outra aplicação dos Live CDs Linux permite a recuperação de arquivos em um
sistema Windows com inicialização corrompida. Morimoto (2008b) afirma que para recuperar
esses arquivos "basta dar boot usando o live-CD, acessar a partição e copiar os arquivos
para a inicialização do Windows, pois "você pode também substituir arquivos dentro da
partição. Isso permite que você tente recuperar a partição substituindo arquivos de sistema,
2.6.2 Distribuições
diferentes entre si, mas a maioria delas engloba apenas personalizações, tanto em interface
gráfica quanto na lista de softwares inicialmente instalados com a distribuição. Sendo assim,
as distribuições que servem de base para as demais, conhecidas como distribuições principais,
são as únicas que se diferenciam entre si nos quesitos funcionalidade e interface, sendo todas
Partindo desse fato, podemos dividir as distribuições do Linux entre três vertentes: as
derivadas do Red Hat (como o Fedora e o Mandriva). Trataremos no decorrer do capítulo das
três principais distribuições – Slackware, Red Hat e Debian, além do Gentoo Linux.
2.6.2.1 Slackware
Morimoto (2009) afirma que o Slackware Linux é uma distribuição "que te obriga a
estudar e ir mais a fundo na estrutura do sistema para conseguir usar", e por isso muitos a
Sua instalação é feita no modo texto, com a seleção de itens e opções e a digitação de
Lançada no final de 1994, essa distribuição do Linux foi desenvolvida para aumentar a
automatização do sistema e tornar sua utilização mais fácil e agradável para o usuário
(MORIMOTO, 2009).
utilizados, o que facilitava a instalação de programas, pois não havia mais a necessidade de
em um aplicativo.
Mais tarde, por volta de 2003, houve a descontinuação da versão Desktop do Red Hat
(RHD) – sendo a última versão a Red Hat 9, passando a ser desenvolvida apenas a versão
Enterprise, que era uma versão comercializada voltada para empresas. A partir de então
Red Hat Desktop e de voluntários, e o Fedora passou a ser, no lugar do RHD a distribuição
respectivamente.
Ainda baseado no Red Hat Linux, foi lançada em 1998 o Mandrake Linux, que passou
Seu foco estava na facilidade de uso, e ele passou, depois de algum tempo, a ser
algum tempo aqui no Brasil, voltada e utilizada tanto por empresas quanto por usuários
domésticos. Em 2005, entretanto, houve a fusão entre o Conectiva Linux e o Mandrake Linux,
Mandriva.
2.6.2.3 Debian
O Debian, para Morimoto (2009), "é provavelmente a maior distribuição Linux não-
indiretos".
Trazida a público em 2003 e terminada apenas três anos depois, o Debian Linux
sempre é lançado e produzido em três versões diferentes: Stable, a versão estável e com
suporte e atualizações; Testing, utilizada para testes de softwares; e Unstable, uma versão que
A filosofia das distribuições estáveis, que recebem esse nome pois param de ser
desenvolvidas com novas funções, passando a serem apenas atualizadas com correções de
segurança e bugs, é a de que se forem corrigidos os erros sem que nenhuma nova função seja
adicionada, ao fim das correções obter-se-á um sistema livre de falhas (MORIMOTO, 2009).
Além disso, o Debian, como o Slackware, é uma distribuição conservadora, e por isso
2.6.2.4 Gentoo
Morimoto (2009) afirma que "o Gentoo inaugurou uma nova linhagem trazendo uma
instalação do sistema".
instalação pré-compilados, utiliza um gerenciador de pacotes – Portage – que faz uso dos
códigos-fonte dos programas aliados a arquivos com parâmetros de compilação. Com isso,
você pode ganhar até 30% em processamento, mas perde tempo na instalação, que passa a ser
mais demorada.
instalação: a Stage 1, onde tudo é compilado; a Stage 2, e que é instalado um sistema base
Linux utiliza o servidor gráfico do Linux, o Xfree, que facilita o acesso dos programas à placa
de vídeo. Em outras palavras, o Xfree faz uma interface entre o gerenciador de janelas e a
placa de vídeo.
Dessa forma, afirma Morimoto (2009), "o gerenciador de janelas possui total liberdade
para alterar a forma, aparência e decoração das janelas e a forma como você pode organizá-las
como o Window Maker e o BlackBox. Neste trabalho, entretanto, abordaremos apenas o KDE
e o GNOME.
2.6.3.1 KDE
gerenciador de janelas".
uma gama de softwares que o acompanham, desde editores de texto puro (Kedit), passando
transferência funcionar com todos os programas e por estar baseado em uma mesma
biblioteca – Qt, o que garante um visual semelhante a todos os aplicativos, o KDE pode ser
2.6.3.2 GNOME
como o KDE, mais do que um gerenciador de janelas, e por isso é um dos mais utilizados
Morimoto (2009) afirma que “os programas do KDE e do Gnome são perfeitamente
dentro do KDE se quiser, desde que tenha tanto o Gnome quanto o KDE instalados no
sistema”.
Entretanto, o GNOME utiliza uma biblioteca diferente, a GTK+, e por esse motivo a
utilização de softwares KDE em ambiente GNOME (e vice-versa) pode tornar-se lenta, pois
linha de comando, possibilitando adicionar esses atalhos na área de trabalho do usuário para
reinicialização do sistema, possuem uma estrutura muitas vezes composta de apenas uma
palavra.
Login
Logoff
Exit
Clear
Echo
Reboot
o Reinicia o computador.
Halt
o Desliga o computador.
35
Shutdown
conectados em terminais.
e de realizar vários cliques, passando apenas a ter que dar um ou dois cliques para desligar ou
reiniciar o computador.
Entretanto, esses ícones podem causar desligamentos acidentais, pois o usuário pode
errar de ícone em sua área de trabalho e perder dados, exigindo mais atenção do usuário ao
Linux é um sistema multiusuário, cujas raízes remetem aos sistemas Unix. O sistema
pode ser usado por inúmeros usuários simultaneamente, sem que um atrapalhe as atividades
do outro, nem que possa alterar seus arquivos. Dois exemplos extremos seriam um servidor
LTSP, onde dezenas de usuários podem rodar aplicativos simultaneamente, via rede, através
que pode hospedar milhares de sites diferentes, cada um administrado por um usuário
permissões simples, porém eficiente, que consiste num conjunto de três permissões de acesso
(ler, gravar e executar) e três grupos (dono, grupo e outros), que combinadas permitem fazer
muita coisa.
implementar um servidor.
36
número. Uma mesma pessoa pode possuir mais de uma conta, criando nomes de acesso
diferentes.
configurações do sistema.
tenham permissão restrita a arquivos em comum. Isso é útil para garantir privacidade e
Grupo primário
Grupo secundário
2.7.1.1 Criação
Ao criar um usuário, será criado um grupo com nome de usuário onde ele é o único
membro (caso este não seja modificado), isto devido ao Linux usar um padrão UGP (Grupo
Privado de Usuários). Também será criado um diretório home (guarda todas as configurações
e os arquivos do usuário) para este, será copiado o perfil base constante do diretório (/etc/skel)
Quando um usuário é criado, sem qualquer opção, também será criado um grupo com
Para cada usuário novo criado no computador será copiado o conteúdo do diretório
O próprio usuário pode alterar a senha usando o comando passwd, desde que ele saiba
a senha antiga. Se o usuário esqueceu a senha, ele pode definir uma nova executando o
comando root, e o sistema pede a nova senha diretamente, sem solicitar a senha antiga.
Por não possuir restrições de segurança, a conta de root só deve ser usada para
desnecessárias no sistema deve-se usar uma conta normal de usuário em operações comuns.
Se um arquivo for executado pelo usuário root e este contiver comandos ou códigos que
2.7.1.2 Exclusão
<usuario>), mas o comando remove apenas a conta, sem apagar o diretório home ou outras
pastas.
/etc/passwd
usuário:X:UID:GID:Descrição:Home:Shell
"/home/user"
• Shell: shell que será executado após o login do usuário (/bin/sh, /bin/bash,
/bin/false)
39
/etc/group
“secundariamente”.
grupo:X:GID:usuários
vírgula.
/etc/shadow
– Arquivo que contém as informações das senhas dos usuários e suas validades e sua
estrutura é a seguinte.
• <usuários>
• <senha criptografada>
• <campo reservado>
40
/etc/skel/
/etc/login.defs
– Arquivo utilizado, durante a criação de um usuário, para impor limites das senhas,
2.7.2 Comandos
groupdel <grupo>
primários.
adiciona um usuário sem opções extras, será criado um grupo com mesmo
nome do usuário.
41
o Apaga um usuário. <usuário> Deve existir e não estar logado. Pode apagar
diretório home.
su [opções] <usuário>
lastlog [opções]
/var/log/lastlog
w [opções] <usuário>