Você está na página 1de 123

ndice

1- Introduo.......................................................................................................

2- Histrico do Linux...........................................................................................

3- Gerncia de Processos.....................................................................................

10

3.1- Consideraes Iniciais.............................................................................

10

3.1.1- Inicializao (boot do sistema).................................................

10

3.2- Gerncia do Processo pelo kernel............................................................

12

3.3- Criando e Destruindo um Processo.........................................................

13

3.4- Executando Processos............................................................................

13

4- Gerncia de Memria.......................................................................................

15

4.1- Gerenciamento de Memria do Linux.....................................................

15

4.2- Memria Fsica.......................................................................................

16

4.3- Distribuio da Memria do Processo Usurio........................................

17

4.4- Inicializao da Memria........................................................................

18

4.5- Adquirindo e Liberando Memria...........................................................

19

4.6- Paginao (Paging).................................................................................

22

4.7- Gerenciamento de Memria Cache..........................................................

23

4.7.1- Arquitetura de Memria Cache do Linux (Linux Flush


Architecture) ........................................................................
......

4.7.2- Implementao de Memria Cache..............................................

24

4.7.3- Arquitetura Baseada no SMP.......................................................

4.7.3.1-

Arquitetura Baseada no contexto MMU/CACHE...... 27

4.7.4- Contedo de uma Arquitetura Virtual..........................................

27

ndice
4.7.5- Implicaes Referentes a Arquitetura..........................................

28

4.7.5.1-

Arquitetura baseado no contexto SMP......................

28

4.7.5.2-

Arquitetura baseado no contexto MMU/CACHE....... 29

4.7.6- Como tratar o que a Arquitetura flush no executa com


exemplos...............................................................................
......

4.7.7- Questes Abertas na Arquitetura Cache.......................................

30

5- Sistema de Arquivos do Linux (File System)....................................................

31

5.1- Conceitos Fundamentais.........................................................................

31

5.1.1- Arquivos.....................................................................................

31

5.1.2- Diretrios....................................................................................

31

5.1.3- Conta..........................................................................................

32

5.1.4- Tipo de Arquivos.........................................................................

32

5.1.5- Acesso a Arquivos.......................................................................

33

5.1.6- Atributos dos Arquivos................................................................

33

5.2- Operaes sobre Arquivos......................................................................

34

5.3- Arquivos Compartilhados........................................................................

35

5.4- Estrutura do Sistema de Arquivos Linux Realease 1.2............................. 36


5.4.1- Apresentao...............................................................................

36

5.4.2- Caractersticas Sistema de Arquivos............................................. 36


5.4.3- Composio dos Diretrios..........................................................
5.4.3.1-

Subdiretrio /bin.......................................................
5.4.3.1.1-

Arquivos e/ou Comandos disponveis


em
/bin.............................................

38
39
3

..

ndice
5.4.3.2-

Subdiretrio /boot.....................................................

40

5.4.3.3-

Subdiretrio /dev.......................................................

40

5.4.3.4-

Subdiretrio /etc.......................................................

41

5.4.3.4.1-

Arquivos e/ou Comandos disponveis


em
/etc..............................................
.

5.4.3.5-

Subdiretrio /home....................................................

42

5.4.3.6-

Subdiretrio /lib.......................................................

42

5.4.3.7-

Subdiretrio /mnt......................................................

43

5.4.3.8-

Subdiretrio /proc.....................................................

43

5.4.3.9-

Subdiretrio /root (opcional)....................................

43

5.4.3.10-

Subdiretrio /sbin......................................................

44

5.4.3.10.1-

Arquivos e/ou Comandos disponveis


em
/sbin............................................
..

5.4.3.10.2-

Arquivos e/ou Comandos opcionais


em
/sbin............................................
..

5.4.3.11-

Subdiretrio /tmp......................................................

45

5.4.3.12-

A hierrquia /usr.......................................................

45

5.4.3.12.1-

Subdiretrio /usr (permanente)........... 46

5.4.3.12.2-

Subdiretrio /usr/x386........................ 47

5.4.3.12.3-

Subdiretrio /usr/bin........................... 47

5.4.3.12.4-

Subdiretrio /usr/dict.......................... 47

5.4.3.12.5-

Subdiretrio /usr/etc...........................

47

5.4.3.12.6-

Subdiretrio /usr/include..................... 48

5.4.3.12.7-

Subdiretrio /usr/lib............................ 49

ndice

5.4.3.13-

5.4.3.12.8-

Subdiretrio /usr/local........................ 50

5.4.3.12.9-

Subdiretrio /usr/man......................... 50

5.4.3.12.10-

Subdiretrio /usr/bin........................... 52

5.4.3.12.11-

Subdiretrio /usr/share.......................

53

5.4.3.12.12-

Subdiretrio /usr/src...........................

54

A hierrquia /var.......................................................

54

5.4.3.13.1-

Subdiretrio /var/adm......................... 54

5.4.3.13.2-

Subdiretrio /var/catman..................... 55

5.4.3.13.3-

Subdiretrio /var/lib............................ 56

5.4.3.13.4-

Subdiretrio /var/local........................ 56

5.4.3.13.5-

Subdiretrio /var/ock.........................

5.4.3.13.6-

Subdiretrio /var/og............................ 57

5.4.3.13.7-

Subdiretrio /var/name....................... 58

5.4.3.13.8-

Subdiretrio /var/nis........................... 58

5.4.3.13.9-

Subdiretrio /var/preview................... 58

5.4.3.13.10-

Subdiretrio /var/run..........................

5.4.3.13.11-

Subdiretrio /var/spool....................... 58

5.4.3.13.12-

Subdiretrio /var/tmp.......................... 59

57

58

5.4.4- Alguns Dilemas sobre o Sistema de Arquivos............................... 59


5.4.5- Descrio sucinta do contedo dos manuais................................. 61
6- Pontos Positivos e Negativos...........................................................................

63

7- Concluso........................................................................................................

64

ndice
9- Apndices........................................................................................................

65

A-

Comandos Bsicos do Sistema Unix........................................................ 65

B-

Perguntas mais Frequentes (FAQs) colocadas na Linux-BR..................... 77

C-

Copyrights Linux e Esquema de numerao verso Linux....................... 127

D-

Contrato de Licena................................................................................

128

8- Bibliografia e Referncias.................................................................................

134

1 - Introduo
O Linux um clone UNIX de distribuio livre para PCs baseados em processadores
386/486/Pentium.
O Linux uma implementao independente da especificao POSIX, com a qual todas as
verses do UNIX padro (true UNIX) esto convencionadas.
O Linux foi primeiramente desenvolvido para PCs baseados em 386/486/Pentium, mas
atualmente tambm roda em computadores Alpha da DEC, Sparcs da SUN, mquinas M68000
(semelhantes a Atari e Amiga), MIPS e PowerPCs.
O Linux foi escrito inteiramente do nada, no h cdigo proprietrio em seu interior.
O Linux est disponvel na forma de cdigo objeto, bem como em cdigo fonte.
O Linux pode ser livremente distribudo nos termos da GNU General Public License (veja
apndice).
O Linux possui todos as caractersticas que voc pode esperar de um UNIX moderno,
incluindo:

Multitarefa real
Memria virtual
Biblioteca compartilhada
"Demand loading"
Gerenciamento de memria prprio
Executveis "copy-on-write" compartilhados
Rede TCP/IP (incluindo SLIP/PPP/ISDN)
X Windows

A maioria dos programas rodando em Linux so freeware genricos para UNIX, muitos
provenientes do projeto GNU.
Muitas pessoas tem executado benchmarks em sistemas Linux rodando em 80486, e tem
achado o Linux comparvel com workstations mdias da Sun e da Digital.
O Linux est disponvel atravs da Internet por meio de centenas de sites FTP.
O Linux est sendo usado hoje em dia por centenas e centenas de pessoas pelo mundo. Est
sendo usado para desenvolvimento de softwares, networking (intra-office e Internet), e como
plataforma de usurio final. O Linux tem se tornado uma alternativa efetiva de custo em relao aos
caros sistemas UNIX existentes.
Um exemplo de pacote de distrribuio do Linux mais populares distribuido pela
InfoMagic (http://www.infomagic.com, e-mail info@infomagic.com), a verso LINUX Developers
Resource CD-ROM, de dezembro de 1996, contm 6 CD-ROMs, seu contedo sucinto :

Verso Red Hat 4.0 (instalando kernel 2.0.18)


Verso Slackware 3.1 (Slackware 96 - instalando kernel 2.0)
Verso Debian GNU/Linux 1.2
X-Windows - Xfree86 version 3.2
Arquivos Linux de tsx-11.mit.edu e sunsite.unc.edu
Arquivos GNU de prep.ai.mit.edu
Documnetao completa on-line & HOWTOs (Guia de Instalao e Guia do Administrador da
Rede, em ingls)
Softwares demostrao comerciais como : BRU, dbMan, StarOffice, Cockpit, Flagship,
Smartware, GP Modula-2, Pathfinder, Scriptum, etc.

2. Historia do Linux
O Kernel do Linux foi, originalmente, escrito por Linus Torvalds do Departamento de
Cincia da Computao da Universidades de Helsinki, Finlndia, com a ajuda de vrios
programadores voluntrios atravs da Internet.
Linus Torvalds iniciou cortando (hacking) o kernel como um projeto particular, inspirado em
seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andy Tannenbaum. Ele se
limitou a criar, em suas prprias palavras, "um Minix melhor que o Minix" ("a better Minix than
Minix"). E depois de algum tempo de trabalho em seu projeto, sozinho, ele enviou a seguinte
mensagem para comp.os.minix:
Voc suspira por melhores dias do Minix-1.1, quando homens sero homens
e escrevero seus prprios "device drivers" ? Voc est sem um bom projeto
e esta morrendo por colocar as mos em um S.O. no qual voc possa
modificar de acordo com suas necessidades ? Voc est achando frustrante
quando tudo trabalha em Minix ? Chega de atravessar noites para obter
programas que trabalhem correto ? Ento esta mensagem pode ser
exatamente para voc.
Como eu mencionei a um ms atrs, estou trabalhando em uma verso
independente de um S.O. similar ao Minix para computadores AT-386. Ele
est, finalmente, prximo do estgio em que poder ser utilizado (embora
possa no ser o que voc esteja esperando), e eu estou disposto a colocar
os fontes para ampla distribuio. Ele est na verso 0.02... contudo eu tive
sucesso rodando bash, gcc, gnu-make, gnu-sed, compresso, etc. nele.
No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira verso "oficial" do Linux,
verso 0.02. Desde ento muitos programadores tm respondido ao seu chamado, e tm ajudado a
fazer do Linux o Sistema Operacional que hoje.
Ultimas verses do kernel do Linux
Release v1.0
1.0.9
Data: Sat Apr 16 21:18:02 UTC 1994
Release v1.1
1.1.95
Data: Thu Mar 2 07:47:10 UTC 1995
Release v1.2
1.2.13
Data: Wed Aug 2 12:54:12 UTC 1995
Release v1.3
pre2.0.14
Data: Thu Jun 6 19:30:56 UTC 1996
Release v2.0
2.0.28
Data: Tue Jan 14 12:33:26 UTC 1997

ftp://ftp.cs.Helsinki.FI/pub/Software/Linux/Kernel/v2.0/linux-2.0.28.tar.gz
Release v2.1
2.1.23
Data: Sun Jan 26 14:12:18 UTC 1997
ftp://ftp.cs.Helsinki.FI/pub/Software/Linux/Kernel/v2.1/linux-2.1.23.tar.gz

3 - Gerncia de Processos
3.1 - Consideraes Iniciais

Para explicarmos como o Linux gerncia processos, faremos consideraes iniciais sobre o
cdigo fonte do kernel do Linux (onde encontramos a implementao da Gerncia de Processos) e a
inicializao boot do sistema.
Neste tpico tentaremos explicar, de uma maneira ordenada o cdigo fonte do Linux,
tentando conseguir um bom entendimento sobre como o cdigo fonte est situado e como as
caractersticas mais relevantes do UNIX foram implementadas. O objetivo ajuda-lo a se
familiarizar com o projeto geral do Linux. Ento, vamos comear por onde o Linux comea: seu
sistema de boot.
Um bom entendimento da linguagem C necessrio para entender este material, assim como
familiaridade com conceitos de UNIX e arquitetura dos PCs. Porm, nenhum cdigo C aparecer
neste material, mas referencias de onde podem ser encontrados.
Qualquer referencia "pathname" arquivos tem como ponto de partida a arvore principal de
fontes, usualmente /usr/src/linux.
A maioria das informaes reportadas aqui tem como referencia o cdigo fonte do Linux
verso 1.0. Referencias a verses posteriores contero o smbolo novo.
Caso o smbolo no estiver presente, significa que no houveram modificaes aps as
verses 1.0.9-1.1.76.
mais Ocasionalmente um pargrafo como este ocorrer no texto. Indicando onde poderam ser obtidas
mais informaes sobre o assunto corrente (geralmente o cdigo fonte).
3.1.1 - Inicializao ("boot" do sistema)
Quando o PC ligado, o processador 80x86 encontra-se em modo real e executa o cdigo
contido no endereo 0xFFFF0, que corresponde a um endereo ROM-BIOS. O BIOS do PC realiza
alguns testes no sistema e inicializa o vetor de interrupes no endereo fsico 0. Depois disto ele
carrega o primeiro setor do device bootavel em 0x7C00, e passa a execuo para este endereo. O
device , usualmente, o disquete ou o disco rgido. A descrio anterior um tanto simplificada,
mas tudo que se necessita para entender o trabalho inicial do kernel.
A primeirssima parte do kernel Linux est escrito em linguagem assembly 8086
(boot/bootsect.S). Quando executado, ele se move para o endereo absoluto 0x90000, carrega os
prximos 2 kBytes de cdigo do device de boot at o endereo 0x90200, e o resto do kernel para o
endereo 0x10000. A mensagem "Loading..." apresentada durante o carregamento do sistema. O
controle , ento passado para o cdigo contido em boot/Setup.S, outro cdigo assembly de modo
real.
A parte de "setup" identifica algumas caractersticas do sistema (hardware) e o tipo da placa
VGA. Se requerido, pede ao usurio para escolher o modo do vdeo da console. E, ento, move todo
o sistema do endereo 0x10000 para o endereo 0x1000, passa para o modo protegido e passa o
controle para o resto do sistema (endereo 0x1000).
O prximo passo a descompresso do kernel. O cdigo em 0x1000 vem de zBoot/head.S
que inicializa os registradores e invoca decompress_kernel(), o qual composto por zBoot/inflate.c,
zBoot/unzip.c e zBoot/misc.c. O dado "descompresso" vai para o endereo 0x100000 (1 Mega), e
esta a principal razo do por que o Linux no pode rodar com menos de 2 Megas de RAM.
mais

O encapsulamento do kernel em um arquivo gzip realizado por Makefile e utilitrios no

diretrio zBoot. So arquivos interessantes para se dar uma olhada.


A verso 1.1.75 moveu os diretrios boot e zBoot para arch/i386/boot. Esta modificao
pretendeu possibilitar a construo de "kernel verdadeiro" para diferentes arquiteturas.
novo

O cdigo "descompresso" executado a partir do endereo 0x1010000 , onde todo o setup


32-bit esta lotado: IDT, GDT e LDT so carregados, o processador e o co-processador so
identificados, a rotina start_kernel invocada. Os arquivos fonte das operaes acima esto em
boot/head.S. Este, talvez, seja o cdigo mais difcil em todo o kernel do Linux.
Note que se algum erro ocorrer durante alguns dos passos precedentes, o computador ir
travar. O sistema operacional no pode manipular erros enquanto no estiver totalmente operante.
start_kernel() reside em init/main.c. Tode de agora em diante esta codificado em linguagem
C, exceto gerncia de interrupes e chamadas de sistemas (Bem, a maior parte das macros
possuem cdigos assembly embutidos, tambm).
Depois dos procedimentos com todas as questes iniciais, start_kernel() inicializa todas as
partes do kernel, especificamente:

Inicializa a memria e chama paging_init().


Inicializa os traps, canais IRQ e scheduling.
Se requerido, aloja um profiling buffer.
Inicializa todos device drives e buffers de discos, bem como outras partes menores.
Regula o delay loop (calcula o numero "BogoMips").
Checa se a interrupo 16 est trabalhando com o co-processador.

Finalmente, o kernel est pronto para move_to_user_mode(), em seguida fork (bifurca) o


processo de inicializao, cujos cdigos esto no mesmo arquivo fonte. E o processo nmero 0,
tambm chamado idle task (tarefa preguiosa), se mantm rodando em um loop infinito.
O processo de inicializao tenta executar /etc/init, ou /bin/init, ou /sbin/init.
Se nenhum deles tem sucesso, o cdigo se desvia para "/bin/sh /etc/rc" e cria um root shell
no primeiro terminal (console). Este cdigo remanescente do Linux 0.01, quando o S.O. era feito
para um kernel stand-alone, e no havia processo de login.
Depois de exec() o programa de inicializao de um dos lugares padro (deve haver um
deles), o kernel no tem controle direto sobre o fluxo do programa. Sua funo, de agora em diante,
prover processos atravs de chamadas ao sistema (system calls), assim como prover eventos para
servios assncronos (como uma interrupo do hardware). A multitarefa est inicializada, e
inicializar o gerenciamento de acesso a multiusurios, atravs do fork() e processos de login.
Estando o kernel carregado e provendo servio, vamos prosseguir dando uma olhada nesses
servios ("system calls").
3.2 - Gerncia de processo pelo kernel
Do ponto de vista do kernel, um processo uma entrada na tabela de processos. Nada mais.
A tabela de processos, ento, uma das mais importantes estruturas de dados no sistema,
conjuntamente com a tabela de gerenciamento de memria e o buffer cache. O item individual na
tabela de processos a estrutura task_struct, definida em include/linux/sched.h. Com a task_struct,
tanto informaes de baixo quanto de alto nvel, so mantidas variando da cpia de alguns
registradores de hardware at o inode do diretrio de trabalho para o processo.
A tabela de processos tanto um array quanto uma lista duplamente ligada, como uma
rvore. A implementao fsica um array esttico de ponteiros, cujo tamanho NR_TASKS, uma
constante definida em include/linux/tasks.h, e cada estrutura reside em uma pagina de memria
reservada. A estrutura da lista est entre os ponteiros next_task e prev_task, a estrutura em arvore

um tanto complexa, e no ser descrita aqui. Voce pode desejar mudar NR_TASKS do seu valor
default (que 128), mas esteja certo de que h dependncias, e ser necessrio recompilar todos os
arquivos fonte envolvidos.
Depois do boot, o kernel est sempre trabalhando em um dos processos, e a varivel global
"current", um ponteiro para um item da task_struct, usado para guardar o processo que est
rodando. A varivel "current" s mudada pelo scheduler, em kernel/sched.c. Quando, porm, todos
os processos necessitarem estar looked, a macro for_each_task usada. Isto consideravelmente
mais rpido que uma procura seqencial no array.
Um processo est sempre rodando em ou em "modo usurio" ou em "modo kernel". O corpo
principal de um programa de usurio executado em modo usurio e chamadas a sistema so
executados em modo kernel. A pilha usada pelos processos netes dois modos de execuo so
diferentes um seguimento de pilha convencional usado para o modo usurio, enquanto uma
pilha de tamanho fixo (uma pgina, cujo processo dono) usada no modo kernel. A pgina de
pilha para o modo kernel nunca swapped out, porque ela pode estar disponvel sempre que um
system call introduzido.
Chamadas a sistema (System calls), no kernel do Linux, so como funes da linguagem C,
seu nome "oficial" esta prefixado por "sys_". Uma chamada a sistema de nome, por exemplo,
burnout invoca a funo de kernel sys_burnout().
mais O

mecanismo de chamadas a sistema (System calls) est descrito no captulo 3 do Linux Kernel
Hackers' Guide (http://www.redhat.com:8080/HyperNews/get/khg.html). Uma olhada em
for_each_task e SET_LINKS, em include/linux/sched.h pode ajudar a entender a lista e a estrutura
de rvore da tabela de processos.

3.3 - Criando e destruindo processos

Um sistema UNIX cria um processo atravs da chamada a sistema fork(), e o seu trmino
executado por exit(). A implementao do Linux para eles reside em kernel/fork.c e kernel/exit.c.
Executar o "Forking" fcil, fork.c curto e de fcil leitura. Sua principal tarefa suprir a
estrutura de dados para o novo processo. Passos relevantes nesse processo so:

Criar uma pgina livre para dar suporte task_struct


Encontrar um process slot livre (find_empty_process())
Criar uma outra pgina livre para o kernel_stack_page
Copiar a LTD do processo pai para o processo filho
Duplicar o mmap (Memory map - memoria virtual) do processo pai

sys_fork() tambm gerencia descritores de arquivos e inodes.


A verso 1.0 do kernel possui algum vestgio de suporte ao "threading" (trabalho ou processo
em paralelo), e a chamada a sistema fork() apresenta algumas aluses ele.
novo

A morte de um processo difcil, porque o processo pai necessita ser notificado sobre
qualquer filhos que existam (ou deixem de existir). Alm disso, um processo pode ser morto (kill())
por outro processo (isto um aspecto do UNIX). O arquivo exit.c , portanto, a casa do sys_kill() e
de variados aspectos de sys_wait(), em acrscimo sys_exit().
O cdigo pertencente exit.c no descrito aqui - ele no to interessante. Ele trabalha
com uma quantidade de detalhes para manter o sistema em um estado consistente. O POSIX
"standard", por conseguinte, dependente de sinais (flags), e tinha que trabalhar com eles.

3.4 - Executando Processos

Depois de executar o fork(), duas copias do mesmo programa esto rodando. Uma delas
usualmente executa - exec() - outro programa. A chamada a sistema exec() deve localizar a imagem
binria do arquivo executvel, carrega-lo e executa-lo. "Carrega-lo" no significa, necessriamente,
copiar na memria a imagem binria do arquivo, para que, assim, o Linux possa atender a demanda
de programas a serem executados.
A implementao Linux do exec() suporta formatos binrios diferentes. Isto dotado atravs
da estrutura linux_binfmt, a qual embute dois ponteiros para funes - um para carregar o
executvel e o outro para carregar a "library" associada, cada formato binrio deve conter, portanto,
o executvel e sua "library".
O sistema UNIX prove, ao programador, seis formas para a funo exec(). Quase todos
podem ser implementados como uma "library" de funes, e o kernel do Linux implementa
sys_execve() independentemente das providas pelo UNIX. Ele executa uma nica tarefa: carregar o
cabealho do executvel, e tenta executa-lo. Se os dois primeiros bytes so "#!", ento a primeira
linha ignorada e um interpretador invocado, caso contrrio o formato binrio, registrado,
executado seqencialmente.
O formato nativo do Linux suportado diretamente por fs/exec.c, e as funes relevantes
so load_aout_binary e load_aout_library. Assim como para os binrios a funo de carregamento
"a.out" invocada, e a funo mmap() (memory map - memria virtual ) aloca espao em disco (no
caso da memria real estar cheia) para o processo, ou invoca read_exec(), caso haja espao em

memria. "The former way uses the Linux demand loading mechanism to fault-in program pages
when they're accessed, while the latter way is used when memory mapping is not supported by the
host filesystem (for example the "msdos" filesystem)".
A partir da verso 1.1 do kernel, o Linux embutiu um sistema de arquivos (filesystem) revisado
do msdos, que suporta mmap() (memory map - memria virtual). Alm disso a estrutura
linux_binfmt uma "lista ligada" e no um array, para permitir carregar um novo formato binrio
como um mdulo do kernel. Finalmente a estrutura, por si mesma, foi estendida para acessar rotinas
com o formato relativo core-dump.
novo

4 - Gerncia de Memria
4.1 - Gerenciamento de Memria do Linux (LMM)

A execuo do LMM (Linux Memory Manager) exige uma estratgia de paginao com
uma copy-on-write confiando nas 386 pginas auxiliares. Um processo alcana suas tabelas de
pginas de seu parent (durante um fork ) com as entradas marcadas como read-only ou trocado.
Ento, se o processo tenta escrever para este espao de memria e a pgina uma copy on write
page, isto copiado e a pgina marcada read-write. Um exec ( ) resulta na leitura de uma pgina ou
mais do executvel. O processo ento erra em qualquer outra pgina que precisar.
Cada processo tem uma tabela de pgina que significa que pode acessar 1 Kb de tabela de
pgina indicando para 1 Kb de 4 Kb, pginas que 4 Gb de mmoria. Um diretrio de pgina do
processo iniciado durante um Fork por copy-page-tables. O processo inativo tem seu diretrio de
pgina inicializado durante a sequncia de inicializao.
Cada processo usurio tem uma tabela descritria local que contm um cdigo de segmento
e um segmento de dados. Estes segmentos usurios extendem de 0 para 3 Gb (0 X c 0000000). Nos
espaos usurios, endereos lineares e endereos lgicos so idnticos.
No 80386, endereos lineares vo de 0 Gb para 4 Gb. Um endereo linear indica uma posio
particular de memria dentro deste espao. Um endereo linear no um endereo fsico --- isto
um endereo virtual. Um endereo lgico consiste de um seletor e um offset. O seletor indica para
um segmento e o offset diz que distncia na seo o endereo localizado.
O cdigo Kernel e o segmento de dados so sees privilegiados definidos na tabela
descritora global e extende de 3Gb para 4Gb. O Swapper - page - dir organizado para que estes
endereos lgicos e fsicos sejam idnticos no espao Kernel.
O espao 3Gb acima aparece no process page directory como indicadores para tabelas de pginas
Kernel. Este espao invisvel para o processo no user mode, mas o modo privilegiado acionado,
por exemplo, para sustentar um sistema de ligao. O modo surpevisor inserido dentro do
contexto do processo atual ento a traduo do endereo ocorre com respeito ao diretrio de pgina
do processo, mas usando segmentos Kernel. Isto idntico no mapeamento produzido com o uso de
swapper - pg - dir e segmentos Kernel como ambos diretrios de pginas usa a mesma tabela de
pgina neste espao. Apenas task [0] (A tarefa inativa, s vezes chamada de "tarefa trocadora" por
razes histricas, mesmo assim isto no tem relao com trocas nos implementos Linux) usa o
swapper - pg - dir diretamente.
O segmento base do processo usurio = o X 00, page - dir particular, para o processo.
O processo usurio faz um sistema de ligao : segment base = 0 X c 0000000 page - dir =
mesmo usurio page dir.
swapper - pg - dir contm um mapeamento para todas as pginas fsicas de 0 X 0000000 para 0
X c 0000000 + and_mem, ento as primeiras 768 entradas em swapper - pg - dir so 0's, e ento
h 4 ou mais que indicam na tabela de pginas Kernel.
O user page directories tm as mesmas entradas como swapper - pg - dir dos 768 acima. As
primeiras 768 entradas mapeam o espao usurio.
A vantagem que sempre que o endereo linear acima de 0 X c 0000000 tudo usa a
mesma tabela de pginas Kernel (Kernel page Tables).
O monte usurio permanece no topo do segmento de dados do usurio e desce. O Kernel
Stack no uma bonita estrutura ou segmento de dados que eu possa apontar com um "aqui um
Kernel Stack". Um Kernel Stack_frame (uma pgina) associada com cada novo processo criado e
usado sempre que o Kernel opera dentro do contexto deste processo. Coisas ruins aconteceriam se
Kernel Stack descesse abaixo de seu corrente stack frame. [ Onde o Kernel Stack guardado? Eu
sei que h um para cada processo, mas onde isto armazenado quando isto no est sendo usado? ]

Pginas usurios podem ser roubados ou trocados - Um user page um que mapeado
abaixo de 3 Gb em uma tabela de pginas usurios. Esta regio no contm page directories ou page
tables. Apenas pginas sujas so trocadas.
Menores alteraes so necessrias em alguns lugares ( testes para limites de memria vem para a
mente) para prover suporte para definidos segmentos programados. [ H agora uma modificao - |
c| + O sistema de ligao usado por dosane, Wine, Twin, and Wabi para criar segmentos
arbitrrios. ]
4.2 - Memria Fsica
Aqui est um mapa de memria fsica antes que qualquer processo de usurio for executado.
A coluna da esquerda mostra o endereo de partida do item e os nmeros em negrito so
aproximados.
A coluna do meio mostra os nomes dos itens. A grande coluna da direita mostra a rotina
relevante ou o nome varivel ou explicaes para ingresso.
* Projeto - Inits que adquirem memria so (principais.c) profil - buffer, com, init, psaux, init, rd, ,
init, scsi.dev - init.
Note que toda memria no marcada como livre reservada (mem-init). Pginas reservadas
pertencem ao Kernel e nunca esto livres ou trocadas.
Uma viso de memria do user process.
O cdigo de segmento e dados do segmento extendem todo o caminho de 0 X 00 para 3 Gb.
Correntemente o page fault handler do wp_page confere para assegurar que um processo no
escreve para seu cdigo de espao.
De qualquer modo, pegando o sinal segu, possvel escrever para o code space, causando
ocorrncia de um copy - on - write. O Handler do_no_page assegura que qualquer pgina nova que
o processo adquira pertena ao executvel, uma biblioteca dividida, ao stack, ou dentro do valor do
brK.
Um usurio de processo pode reordenar seu valor brK chamando sbrK ( ). Isto o que
malloc ( ) faz quando precisa. O texto e a poro de dados so distribudos em pginas separadas ao
menos que algum escolha o N opo composta. A biblioteca dividida carrega endereos so
correntemente tornadas da imagem dividida por ele mesmo.
O endereo entre 1.5 Gb e 3 Gb, exceto em casos especiais.
4.3 - Distribuio da memria do processo usurio

O Stack, shlibs e os dados so muito afastados um do outro para serem spanned por uma
tabela de pgina. Todas KPT so divididas por todos processo e deste modo eles no esto na lista.
Apenas pginas sujas so trocadas. Pginas limpas so roubadas e deste modo o processo pode tlos de volta para o executvel se for desejado. A maioria das vezes apenas as pginas limpas so
divididas. Uma pgina suja termina dividida sobre um fork at que parent ou child escolham para
escrever isto de novo.
Administrao dos dados da memria na tabela do processo.
Aqui est um sumrio de algum dos dados mantidos na tabela do processo que usado para
administrao da memria.
Limites do processo da memria.
Ulong - start_code - and_code - and_data - brk, atart - stock
Erro de contagem de pgina.

Tabela do descritor local.


Sturct desc - sturct ldt {32} a mesa descritora local para tarefa.
Nmeros de pginas residentes.
Swappable - trocveis
Se ento as pginas do processo no sero trocados.
Kernel Stack page
Indicador para a pgina distribuda no fork.
Saved - Kernel - Stack
V86 modo material (stuff)
stract tss
pilha de segmentos (stack segments)
indicador da pilha Kernel
Kernel stack pointer
segmento da pilha Kernel
Kernel stack segment (0X10)
ssi = esp 2 = ss2 = 0
Nveis de previlgio no usados.
Segmentos seletores. Ds=es=fs=gs=ss=ok17,cs
Todos indicam para segmentos no corrente 1 dt [ ]
c r 3 : indicam para o page directory para este processo
1 dt - LDT (n) seletores para tarefas correntes do LDT

4.4 - Inicializao da memria


No Start Kernel (main.c) h 3 variveis relatadas para inicializao da memria:
memory_start
memory_end
Low memory_start

comea a 1 Mb atualizado pelo projeto de inicializao.


trmino da memria fsica: 8 Mb, 16 Mb, ou qualquer outro.
trmino do cdigo Kernel e dados que carregado inicialmente

Cada projeto init tipicamente torna memory_start e retorna um valor atualizado, se distribui
espaos no memory_start (simplesmente pegando-a). Paging init ( ) inicializa a page-tables no { \ tt
swapper - pg - dir} ( comeando a 0 X 0000000) para cobrir toda a memria fsica do
memory_start para memory_end. Na verdade o primeiro 4 Mb feito no startup_32
(heads).memory_start incrementado se quaisquer nova page-tables so adicionados.
A primeira pgina zerada para bloquear os indicadores das referncias do alapo nulo no
Kernel.
No sched_init ( ) o 1 dt e tss descritores para tarefa [0] so postos no GDT, e carregado para
dentro do TR e LDTR (a nica vez que isto feito explicitamente). Um trap gate (0X80) ordenado
para system-call.( ).
A bandeira tarefa aninhada desligada na preparao para entrada do modo usurio: O
cronmetro ligado. O task-struct para task [0] aparece por inteiro em < linux / sched.h >
mem_map ento construdo por mem_init ( ) para refletir o corrente uso das pginas fsicas. Este
o estado refletido no mapa da memria fsica da seo anterior. Ento Dinux move para dentro do
modo usurio com um iret aps empurrar o corrente ss, esp, etc.
Claro que o segmento usurio para task [0] so mapeados bem sobre os segmentos Kernel e deste
modo a execuo continua exatamente onde isto termina.
Task [0]:
pg_dir = swapper - pg - dir que sigmifica apenas endereos mapeados esto no alcance 3 Gb para 3
Gb + High memory.
LTD [1] = cdigo usurio, base = 0 x 0000000, tamanho = 640 K
LDT [2] = dados usurios, base = 0 x 0000000, tamanho = 640 k
O primeiro exec ( ) pe a LTD entrada para task [1] para os valores usurios da base = 0x0,
limite = task_size = 0 x c 0000000. Depois disso, nenhum processo v os segmentos Kernel
enquanto no modo usurio.
Processos e a Administrao da Memria.
Memria relacionada trabalho feito por fork ( ):
distribuio de memria
1 pgina para o Task-struct
1 pgina para o Kernel Stack
1 para o pg_dir e algumas para pg_tables (cpias - pginas - tabelas)
Outras mudanas
sso pe para o segmento Kernel stack (0x10) para ter certeza?
espo pe para o topo da nova distribuio Kernel - stack - page.
c r 3 pe por copy - page - tables ( ) para indicar para nova pgina de diretrio distribuda
1 dt = LDT (task_nr) cria novo 1 dt descritor
descritores pe no gdt para novo tss e 1 dt [ ]
Os registros restantes so herdados do parent.
Os processos resultam dividindo seus cdigos e segmentos de dados (embora eles tenham

tabelas descritoras locais separados, as entradas indicam para os mesmos segmentos). O stack e
pginas de dados sero copiados quando o parent ou child escreve para eles ( copy-on-write).
Memria relacionada trabalho feito por exec ( ):
distribuio de memria
1 pgina para exec header para omagic
1 pgina ou mais para stack (max_arg_pages)
clear-pgina-tables ( ) usado para remover pginas velhas.
change 1 dt ( ) pe os descritores no novo 1 dt [ ]
1 dt [1] = cdigo base = 0 x 00, limite = task - size
1 dt [2] = data base = 0 x 00, limite = task - size
Estes segmentos so dpl = 3, p=1, s=1, g=1. Tipo = a (cdigo or 2 dados)
Eleva para MAX_ARG_PAGES pginas sujas de arqu e enup so distribudos e guardado ao
topo do segmento de dados para o novo usurio pilha criado.
Ponha os indicadores de instruo do caller cip = ex.a_cutry
Ponha o stack indicador do caller para o stack criado (esp=stack indicador). Este sero
eliminados do Stack quando o caller resume.
Limites de Memria Atualizados
cud_code = ex.a_text
cud_data = cud_code + &x.d_data
brK = end_data + ex._bss
Interrupes e traps so sustentadas dentro do contexto da corrente tarefa. Em particular, o
diretrio de pginas do corrente processo usado na traduo de endereos. Os segmentos, de
qualquer modo, so segmentos Kernel para que todos os endereos lineares apontem para dentro da
memria Kernel quer acessar uma varivel no endereo 0 x 01. O endereo linear 0 x 00000001
(usando segmentos Kernel) e o endereo fsico 0 x 01. O ltimo porque a pgina do processo
diretrio mapea esta extenso exatamente como page_pg_dir.
O espao Kernel (0 x c 0000000 + high - memory) e mapeado pela tabela de pginas Kernel
que so eles mesmos parte da memria reservada. Eles so consequentemente divididas por todos
processos. Durante um fork copy-page-tables ( ) trata tabela de pginas reservadas diferentemente.
Isto pe indicadores no diretrio de pginas de processo para indicar para tabelas de pgina Kernel
e na verdade no distribui novas tabelas de pginas como isto faz normalmente. Como um exemplo
o Kernel - Stack - page ( que ocupa algum lugar no espao Kernel ) no precisa de um associado
page - table distribudos no pg-dir do processo para mape-lo.
O interruptor de instrues pe o indicador stack e o segmento stack do privilgio valor
salvo no Tss do corrente task. Note que o Kernel stack um objeto realmente fragmentado - Isto
no um objeto nico, mas sim um grupo de stack frames. Cada um distribudo quando um
processo criado e deixado quando ele sai. O Kernel stack no deveria crescer to rapidamente
dentro de um contexto de um processo que extende abaixo da corrente frame.
4.5 - Adquirindo e liberando memrias
Quando qualquer rotina Kernel precisa de memria isto acaba chamando get-free-page ( ).
Este est num nvel mais baixo do que Kmallor ( ) (de fato Kmalloc ( ) get-free-page ( ) quando isto
precisa mais memria).
Get-free-page ( ) toma um parmetro, a prioridade.
Possveis valores so gfp_buffer_gfp, Kernel, gfp,nfs e gfp atomic. Isto tira uma pgina do
the free-page-list, atualizados mem_map, zeram a pgina e retorna o endereo fsico da pgina (note
que Kmalloc) retorna um endereo fsico. A lgica do mm depende do mapa da identidade entre o

endereo lgico e fsico.


Isto por ele mesmo bastante simples. O problema claro, que o free-page-list pode estar
vazio. Se voc no requisitar uma operao atmica, nesta etapa, voc entra dentro do domnio de
uma page stealing e que ns discutiremos em um momento. Como um ltimo recurso ( e para
requisitos atmicos) uma pgina separada do secundary-page-list (como voc pode ter achado,
quando pginas so libertadas, o secundary-page-list enche primeiro a manipulao atual da pagelist e mem-map ocorre neste misterioso macro chamado remove-from-mem-queve ( ) que voc
provavelmente nunca quer investigar. O suficiente para dizer que interrupes so incapacitados.
[Eu penso que isto deveria ser explicado aqui. Isto no to difcil...]
Agora de volta ao "Roubando pginas" get-free-page ( ) chame try-to-fre-page ( ) que chame
repetidamente shrink_buffers ( ) e swap-out ( ) nesta ordem at conseguir liberar uma pgina. A
prioridade aumentada em cada iteration sucessiva para que estas duas rotinas processem suas
page-sterling-loops mais frequentemente. Aqui est um exemplo do processo swap-out:
Faa a tabela do processo e adquira uma swappable task, por exemplo, Q.
Ache um user page-table (no reservado) no espao de Q.
Para cada pgina na tabela try-to-swap-out (page)
Termina quando a pgina liberada.
Note que swap-out ( ) (chamada try-to-free-page ( )) mantm variveis estatsticas e deste
modo isto pode resumir a procura onde terminar a chamada anterior try-to-swap-out ( ) examine os
page-tables de todos usar process e obrigue o sterling policy:
1)
2)
3)
4)
5)
6)
7)

No brincar com as pginas (reserved) reservadas


Envelhear a pgina se ela marcada acessada (1 bit)
No mexa com pgina adquirida recentemente (last-free-pages ( ))
Deixe pginas sujas com map-counts > 1 intocadas
Diminua o map-count das pginas limpas
Librere pginas limpas se elas no so mapeadas
Troque pginas sujas com um map-count de 1

De todas essas aes, 6 e 7 vo parar o processo poruqe eles resultam na liberao atual de
uma pgina fsica.
A quinta ao resulta uma dos processos perdendo uma pgina limpa no dividida que no
foi acessada recentemente (diminuindo Q rss) que no to ruim, mas os efeitos cumulativos de
algumas iterations pode atrasar o processo muito. No presente, h 6 iterations, deste modo uma
pgina dividida por 6 processos pode ser roubada se est limpa. Page table ento so atualizados e o
TLB invalidado. O trabalho atual de liberar uma pgina feito por free-page ( ), a complementao
de get-free-page ( ). Isto ignora pginas reservadas, atualiza mem-map, e libera a pgina e atualiza o
page-list (s) se no mapeada. Para troca (em 6 em cima), write-swap-page ( ) chamada e no faz
nada notvel da perspectiva da administrao da memria. Os detalhes de shink-buffers ( ) nos
levaria muito longe. Essencialmente isto procura free "buffers" (buffers so uma parte da memria
que segura informao temporariamente quando dados transferem de um lugar para outro) em
seguida escreve buffers sujos, e depois comea com buffers ocupados e chama free-page ( ) quando
pode liberar todos os buffers numa pgina.
Note que page directories, page-table, e reserved pages no so trocadas, roubadas ou
envelhecidas. Eles so mapeadas no process page directories com reserved page tables. Eles so
liberados somente na sada do processo.
The page Fault Handles
Quando um processo criado por fork, ele comea com um page directoru e uma pgina ou
mais do executvel. Deste modo the page fault handles a forte da maioria da memria do
processo. The page fault handles do page-fault ( ) recupera o endereo faltando no registro c r 2. O

cdigo do erro ( recobrado no sys-call.s) diferencia o acesso do user / supervisior e a regio para o
fault-write proteo de uma pgina faltando. O anterior sustentado pelo do-wp-page ( ) e o
posterior pelo do-no-page ( ). Se o endereo falatando maior do que Task-Size, o processo recebe
um SIGKILL [ Por que este controle? Isto pode acontecer somente em Kernel mode por causa da
proteo do nvel do segmento. Estas rotinas tem algumas sutilezas como elas podem ser chamadas
num interrompimento. Voc no ode supor que a tarefa corrente que est executando de-no-page
( ) sustenta trs situaes possveis:
1) A pgina trocada
2) A pgina pertence a biblioteca executvel ou dividida.
3) A pgina est faltando uma pgina de dados no foi distribuda
Em todas as causas get-empty-pgtable ( ) chamada primeiro para assegurar a existncia de uma
page table que cobre o endereo falatando. No terceiro para providenciar uma pgina no endereo
requerido e no caso de uma pgina trocada, swap-in ( ) chamado. No segundo caso, o handles
calls share-page ( ) para ver se a pgina pode ser dividida com algum outro processo. Se isto falhar
leia a pgina do executvel ou biblioteca (Isto repete a chamada para Share-page ( ) se um outro
processo fez o mesmo enquanto isso). Qualquer poro da pgina fora do valor brK zerada.
A pgina lida do disco contada como um erro maior. Isto acontece com um swap-in ( ) ou quando
lida da executvel ou uma biblioteca. Outras casos so consideradas erros menores (mim-flt).
Quando uma pgina divisvel achada ela corite-protected. Um processo que escreve para uma
pgina dividida vai precisar passar por um do-wp-page ( ) que faz o copy-on-write.
Do-wp-page ( ) faa o seguinte:
Mande SIGSEGV se qualquer usar process o est escrevendo para o corrente code-space.
Se a pgina velha no dividida, ento simplesmente no proteja-o.
Seno get-free-page ( ) and copy-page ( ). A pgina adquirire a bandeira suja da pgina velha.
Diminua a conta do mapa da pgina velha.

4.6 - Paginando (Paging)


Paginando a troca numa base da pgina melhor do que os processos inteiros. Ns vamos
usar trocando aqui para referir "paginando" , uma vez que apenas Linux pgina, e no trocar, e
pessoas so mais acostumadas palavra "Swap" / "trocar" do que "page" / "paginar". Kernel pages
nunca so trocadas pginas limpas tambm no so escritas para trocar. Elas so liberadas e
recarregadas quando requerida. O trocador mantm um nico bit de informao de
envelhecimento nas Pginas acessadas bit da page table cutries - [ O que so os detalhes de
manuteno? Como isto usado?]
Linux suporta mltiplos swap files ou projetos que podem ser ligados ou desligados pelas
ligaes de swapoff system. Cada swap file ou projeto descrito por uma strut-swap-info.
O campo das bandeiras (SWP-USED ou SWP-WRITE ok) usado para controlar acesso
para o swap files. Quando SWP- WRITE ok desligado, o espao no vai ser distribudo neste
arquivo. Isto usado por Swapoff quando isto tenta de no usar um arquivo. Quando swapoff
adiciona um arquivo de troca nova isto aplica SWP-USED. Um varivel imvel no Swap files
armazena o nmero dos arquivos ativos correntemente ativos.
Os campos lowest - bit e hihgest
- bit limitam a regio livre na pasta de troca e so usadas para adiantar a procura por espao de troca
livre.
O programa do usurio m | < swap inicializa um swap device ou file. A primeira pgina
contm uma assinatura (swap-space) nos ltimos 10 bytes, e contm um mapa de bit. Inicialmente
1's no bitmap significam pginas ruins A'1' no bitmap significa que a pgina correspondente livre.
Esta pgina nunca distribuda deste modo a inicializao precisa ser feita somente uma vez.
The Syscall Swapor ( ) chamado pelo user program swapon tipicamente de / etc / rc.

Algumas pginas da memria so distribudas por swap-map e swap-lockmap, swap-map contm


um byte para cada pgina no swapfile. Isto inicializado do bitmap para conter 0 para pginas
disponveis e 128 para pginas que no pode ser usadas. Isto para manter uma conta das peties
da troca em cada pgina no swap file. Swap-lockmap contm um bit para cada pgina que usada
para assegurar excluso mtua quando lendo ou escrevendo swap-files.
Quando uma pgina da memria est para ser trocada, um ndice para posio da troca
obtido com uma chamada para get-swap-page ( ). Este ndice deste modo guardado em bits 1-31
da page table entry para que a pgina trocada possa ser localizada pela page fault handles, do-nopage ( ) quando necessrio.
Os 7 bits mais altos do ndice do o swap file ( ou projeto) e os 24 bits mais baixos do o
nmero da pgina neste projeto. Isto faz at 128 swap files, cada um com espao para mais ou
menos 64 Gb, mas o espao em cima devido o swap map seria grande. Ao invs o tamanho do swap
file limitado para 16 Mb, porque o swap map ento toma 1 pgina.
A funo swap-duplicate ( ) usado por copy-page-tables ( ) para deixar o processo da child herdar
pginas trocadas durante um fork. Isto somente incrementa a conta mantendo no Swap-map para
aquela pgina. Cada processo vai trocar numa cpia da pgina separa quando acess-la. Swap-free
diminui a conta mantendo no swap-map. Quando a conta abaixa para 0 a pgina pode ser
redistribuda por get-swap-page ( ). Isto chamado cada vez que uma pgina trocada lida na
memria ( swap-inc ) ou quando uma pgina est para ser descartada ( free-one-table ( ), etc ).

4.7 - Gerenciamento de Memria Cache


4.7.1 - Arquitetura de Memria Cache do Linux (Linux Flush Architecture)

O TBL mais uma entidade virtual do que um modelo estrito quanto a Linux flush
architecture e concernida. As caracterstica nica so isto mantem em ordem o mapeamento do
processo kernel de algum modo, queira softivare ou hardware.
Cdigo especfico de arquitetura pode precisar ser modificado quando o kernel tiver mudado
um processo/mapeamento kernel.
O shell (um lugar seguro p/ guardar dinheiro ou coisas) esta entidade essencialmente
memory state/estado da memoria como o flush architecture o v. Em geral isto tem as
propiedades seguintes:
Isto sempre vai segurar cpias de dados que podem ser visto como atualizado pelo processo
local.
O funcionamento prprio pode ser relacionado ao TLB e o mapeamento do processo/Kernel page
de algum jeito, isto para dizer que eles podem depender um do outro.
Isto pode, numa configurao cached virtual, causar problemas aliasing se uma pgina fisica
mapeada no mesmo tempo da que duas pginas virtuais e por causa dos bits de um endereo
usado para catalogar a linha cache, a mesma poro do dedo pode acabar residindo no cache
duas vezes, deixando resultados incompativis.
Projetos e DMA podem ou no ter capacidade para ver a cpia de um dedo mais atualizado que
resida no cache do processo local.
Corretamente, suposto que a coerncia num ambiente multiprocessador mantida pelo

subsistema cache/memria. Isto que dizer que, quando um processador requerer um dado no
memory bus de maneira e um outro processador tem uma cpia mais atualizada, de qualquer
jeito o requesitor vai obter uma cpia atualizada que pertena um outro processador.
(NOTA: SMP arquiteturas sem hardware cache conferece mechansms so realmente possveis, o
arquitetura current flush no sustenta isto corretamente, se em algum ponto o Zinux apontar em
algum sistema onda isto uma questo debatida, eu vou adicionar os ganchos necessrios mas no
vai ser bonito)
Sobre o que o Fluch Architecture se importa: sempre, a viso da administrao de memria
hardware de um conjunto de mapeamento do processo Kernel sero consistentes com aqueles do
Kernel page tables.
Se o memory managemat kernel code faz uma modificao para a user process page
modificando o dado via kernel space alias da pgina fsica subjacente, o fio controle de usurio vai
ser o dado correto antes que permitido continuar a execuo, indiferente da cache architecture
e/ou a semntica.
Em geral, quando o estado do espao de endereo mudado somente (em cdigo genrico
da administrao da memria kernelnome de generic kernel management cade) o fluch architecture
hook apropriado vai ser chamado descrevendo que o estado muda totalmente.
Sobre o que o flush architecture no importa: que o mapeamento do DMA DMA/driver
coerncia. Isto inclui DMA mappings (no sentido do MMU mappings) e o cache/DMA dado
consistncia. Estes tipos des assuntos no devem esta no flush architecture, veja embaixo como eles
devem ser manuseados.
Split Instrution/data cache consistncia com respeitro as modificaes feito para processo de
instruo de espao realizado pelo cdigo de sinal de despacho signal dispatch cade. De novo, veja
embaixo como isto devem ser manuseado de um outro jeito.
As interfaces para a flushachitesture e como execut-los em geral todas as rotinas descritos
embaixo vo ser chamados na sequncia seguinte: Fluch-cache-foo(...);
modify-address-space ();
clush - tlb-foo (...)
a lgica aqui : Isto pode ser ilegal num arquitetura dada por um pedao de dado cache para ensitir
quando o mapeamento por aquele dado no existe, portanto o flush deve ocorrer antes que a
mudana feita.
possivl para uma arquitertura de MMU/TLB dada realizar um andamento da tabela
hardware hardware table wolk dos kernel page tables, portanto o TLV flush feito depois que os
page tables terem sido mudados para que depois o hardware s pode carregar a cpia nova da
informao de page table para o TLB
void flush - cache - all (void);
void flush - tlb - all (void);
Essas rotinas so para notificar o architecture specific cade que mapeamento do espao do
endereo kernel uma mudana foi feita ao kernel address space mappings, que significa que os
mapeamentos de todos processos foram efetivamente mudados.
4.7.2 - Implementao da Memria Cache

Uma implementao deve:


Eliminar todos os entradas do cache que so vlidas neste momento quando flush-cache-all
invocado isto refere-se ao virtual cache architecture, se a cache is write-back, essa rotina vai

submeter o dado da cache para memoria antes do que invalidar cada ingresso. Para caches
fsicos, no necessrio realizar uma ao j que mapeamento fsico no tem ponto de apoio no
address space translations.
Para flush-tlb-all todos TLB mappings para o kernel address space devem ser feito consitente
com os OS page tables de qualquer maneira. Norte que com um arquitetura que possua a nao
Para flush-tlb-mm, o tlb/mmu hardware para estar localizado num estado onde isto vai ver
(agora corrente) kernal page table entradas para o espao de endereo pelo mm-strust.
flush_cache_range(struct mm_struct *mm, unsigned long start,
unsigned long end);
flush_tlb_range(struct mm_struct *mm, unsigned long start,
unsigned long end);
uma chance para uma particular range do user address no adelrass space descrito pelo mm-struct
passada esta ocorrendo. As duas notas acima para FLUSH - mm( ) relecianando a mm-struct
passada aplicam-se aqui tambm.
Para Flush-cache-range num virtualmente cached system, todas entradess cache que so nolidas
pena a range partem para o fim no address space descrito pelo mm-struect so para ser
invalidadas.
Para Flush-tlb-range, qualquer ao necessria para causar o MMUITLB hardware no conter
tradues estragados so para ser realizados. Isso significa que quaiquer tradues esto no
Kernel page tables no range start para acabar no address space descrito pelo mm-struet so para
que a administrao da memoria hardware sera deste ponto avanado, por qualquer significado.
void flush_cache_page(struct vm_area_struct *vma, unsigned long address);
void flush_tlb_page(struct vm_area_struct *vma, unsigned long address);
Uma chance para uma nica pgina no address dentro do usar space para o address space
descrito pelo um area-struet passado esta ocorrendo. Uma efetivao, se necessria, pode obter na
mm-struet associado para este address space via uma um - Flags. Este caminho em uma efetivao
onde a instruo e dara space no so unificados, alguem pode conferir para ver se um-exee esta
posto no uma-sum-flags para possivelmente avistar flushing o instruction space, por exemplos:
As duas notas acima para flush-*-mm( ) concermindo o mm-struct (passado indiretamente via uma
-um-mm) aplica aqui tambm.
A implemetao deve tambm :
Para flush-cache-range, num virtualmente cache systam, todas entradas cacha que so validas
para a pgina no addrees no address space descrito pelo uma so para ser invalidados.
Para flush-tlb-range, qualquer ao necessria para causar o MMU/TLB hardware para no
conter tradues estragadas so para ser efetuadas. Isto significa que quaisquer tradues
esto nos kernel page tables para a pgina no address space descrito pelo uma passado so
para que a administrao de memria hardware, sero vistas deste ponto avanado de
qualquer maneira.
4.7.3 - Carregando o Flush-PAGE para a RAM (Unsigned Long Page);

Este o patinho feio. Mas sera semntica necessrio em muitas arquiteturas que precisei
para adicionar isto apra a arquitetura flush para linux. Brevemente, quando (como um exemplo)
serve um kernel um enode cow, isto usa o suposto mapeamento de todas memorias fisicas no
espao kernal para efetuar a cpia da pgina em questo para uma nova pgina. Este apresenta um
problema para caches virtualmente catalogados que so write-back escritos de volta na natureza.
Neste caso, o Kernel toca duas pginas fisicas no espao Kernel. A sequencia do cdigo sendo
descrito aqui essencialmente
parece como:
do_wp_page()
{
[ ... ]
copy_cow_page(old_page,new_page);
flush_page_to_ram(old_page);
flush_page_to_ram(new_page);
flush_cache_page(vma, address);
modify_address_space();
free_page(old_page);
flush_tlb_page(vma, address);
[ ... ]
}
Alguns dos cdigos atuais tem sido simplificados para propositos espesificos.
Considere um cache virtualmente catalogados que escrito de volta write-back. Neste
momento que a cpia da pgina acontece para o supisto espao kernel, possivel para usar space a
viso da pgina original para estar no caches (no endereo do usurio, por exemplo, onde o erro esta
ocorrendo). A cpia da pgina pode trazer este dado (para a pgina velha) dentro do caches. Ser
tambm colocado o dado (no novo suporte kernel mapeado da pgina) sendo copiado para dentro da
cache, e para write-back escrever de volta chachas este dado vai ser sujo ou modificado no cache.
Em tal caso a memoria principal no ser a cpia mais recente do dado. Os caches so
estpidos, ento para a nova pgina que estamos dando ao usurio, sem forar o dado cached no
suposto kernel para a memria principal o processo ser o contedo velho da pgina. (Por exemplo
qualquer lixo que estarem l antes da cpia ter sido feita pelo processamento COW acima).
4.7.3.1 - Exemplo concreto de flush-page

Considere um processo que divide uma pgina, l somente READ-ONLY com maior uma
tarefa (ou varias) no endereo virtual Ox2000, no usar space. E para propsito espesficos deixe nos
dizer que este endereo virtual mapeia para a pgina fsica 0x14000.
Se a tarefa 2 tenha escrever para a pgina l apenas no endereo 0x2000 ns alteremos um
esso e (eventual fragmento do cdigo)
mente resultado no code fragment mostrando acima no do-WP-PAGE ( ).
O Kernel vai obter uma nova pgina para tarefa 2, deixe-nos dizer que esta e uma pgina
fsica 0x2600, e deixe-nos tambem dizer que os mapeamentos do suposto Kernel para pginas
fsicas 0x14000 e 0x26000 podem residir em dias nicos linhas cache ao mesmo tempo buscando
no esquema da linha catalogada deste cache.
O contedo da pgina e copiado do mapeamento Kernel para pgina fsica 0x14000 para uns
para pgina fsica 0x26000.

Neste momento, numa arquitetura cache virtualmente catalogada write - back nos temos
uma inconsistncia potencial. O novo dado copiado dentro da pgina fsica 0x26000 no e
necessrio na memria principal neste momento, de fato isto poder estar toda no cache apenas no
suposto kernel do endereo fsico.
Tambm, o (no modificando, por exemplo, limpo) dado para a (velha) pgina original esta
no cache do suposto kernel para pgina fsica 0x14000, isto pode produzir uma inconsistncia mais
tarde, ento para proteger isto e melhor eliminar as cpias cached deste dado tambm.
Deixe-nos dizer no escrevemos os dados de volta para a pgina no 0x256000 e nos apenas
deixamos isto l. Nos retornariamos para a tarefa 2 (Quem teve esta nova pgina agora mapeada no
endereo virtual 0x2000) ele completaria sua escrita, ento ele leria algumas outras pores de
dados nesta nova pgina (por exemplo, esperando o contedo que existe l antes). Neste momento
seo dado e deixado no cache no suposto kernel para nova pgina fsica, o usurio obter o que que
estava na memria principal antes da cpia para sua leitura. Isto pode levar a resultados dasastrosos.
4.7.4 - Contedo de uma arquitetura virtual
Numa arquitetura cache virtualmente catalogada, fica o que foi necessrio para fazer a
memria principal consistente com a cpia cached da pgina passada do espao kernel.
Nota: Isto na verdade necessrio para esta rotina invalidar linhos em um cache virtual que no
escrito de volta write - back na natureza. Para ver porque isto e realmente necessrio, refaa o
exemplo acima com a tarefa 1 e 2, mas agora fork ( ) ainda outra tarefa 3 antes dos erros do cow
ocorreram, considere o contedo do caches no kernel e user space se a sequencia seguinte ocorre na
exata sucesso:
1.
2.
3.
4.

Tarefa 1 l uma parte da pgina no 0x2000


Tarefa 2 COW erra a pgina no 0x2000
Tarefa 2 efetiva suas escritas para a nova pgina no 0x2000
Tarefa 3 COW erra a pgina 0x2000

Mesmo em um cache no escrito devolta virtualmente catalogado, a tarefa 3 pode ver o dado
incossistente depois do erro COW se FLUSH-PAGE-TO-RAM no invalida a pgina fsica do
suposto kernel do cache.
VOID-UP-DATE
Embora no estritamente parte da arquitetura flush, em certas arquiteturas algumas
operaes e controles precisam ser eferuados aqui parea as coisas darem certo proporcionalmente e
para o sistema manter-se consistente.
Em particular, para caches virtualmente catalogados esta rotina deve conferir para ver que o
novo mapeamento que vem sendo adicionado pelo conente erro de pgina no adiciona um bad
alias para o user space.
Um Bad Alias e definido como dois ou mais mapeamentos (pelo menos um dos quais e
escrevivel) para duas ou mais o pginas que traduzem para a exata pgina fsica, e devido ao
algarismo catalogado do cache pode tambm residir na nica e mutualmente exclusiva linhas cache.
Se um BAD ALIAS detectado, uma implementao precisa resolver esta inconsistncia de
alguma maneira, uma soluo e andar atravs de todo os mapeamentos e mudar as page-tables para
fazer estas pginas como no concreveis se o hardaware permite tal coisa.
As conferncias para isto so muito simples, tudo que uma implementao precisa fazer :
Se ((uma -Um - Flags 6 (Um - Write/Um - Shared)) confere sua potncia mau supostas,
ento para o caso comum (mapeamento escrevveis devidos so extremamente raros) apenas uma

comparao necessitada para sistemas COW CAHCES virtualmente catalogados.


4.7.5 - Implicaes Referentes a Arquitetura
4.7.5.1 - Arquitetura baseada no Modelo SMP
Dependendo da arquitetura certos consertos podem ser necessrios para permitir a
arquitetura FLUSH para trabalhar num sistema SMP.
O principal assunto e se uma das operaes FLUSH acima fazem que o sistema inteiro veja
o FLUSH globalmente, ou o FLUSH e apenas garantido para ser visto pelo processador local.
Em um ltimo caso um CROSS CALLING MECHANISM necessrio. Os dois correntes
sistemas SMP suportados no LiNUX (intel e space) usam inter-processor interrupts para
transmitir a operao FLUSH e faz isto correr localmente em todo processador se necessrio
como um exemplo, no sistema SUNHM Space todos precessadores no sistema precisam executar o
pedido FLUSH para garantir a consistncia atravs do sistema inteiro.
De qualquer modo, nas
mquinas SUNHD Space, TLB FLUSHES efetivamente no processador local so transmitidos
sobre o BUS-SYSTEM pelo hardware e desta forma uma ligao cruzada no e necessria
4.7.5.2 - Implicaes para arquitetura baseados no contexto MMU/CACHE.
A idia inteira por trs do conceito de MMU e facilidades do contexto cache para permitir
muitos ADDRESS SPACES para dividir os recursos CACHE/MMU no CPU.
Para levar total vantagem de tal facilidade, e ainda manter a coerncia descrita acima,
requer-se algumas consideraes extras do implementador.
As questes envolvidas variam muito de uma implementao para outro, pelo menos esta
tem sido a experincia do autor. Mas em particular algumas destas questes so provavelmente para
ser:
A relao do mapeamento do espao Kernel para os USER-SPACE, num contexto so
convertidas, alguns mapeamentos do sistema kernel tem um atributo global, naquele o hardware
no concerde ele mesmo com o contexto da informao quando uma traduo feita, que tem
seu atributo. Desta forma um FLUSH (em qualquer contexto) de um mapeamento de um Kernel
CACHE/MMU poderia ser suficiente.
De qualquer maneira e possvel um outros implementaes para o Kernel para dividir o
contexto chave associado com um ADDRESS SPACE particular. Pode ser necessrio em tal caso
andar por todos contextos que so contentemente vlidos e efetuam o Flush completo em cada um
para um Kernall Address Space Flush.
O custo por contexto Flush podem tornar uma questo chave, especialmente com respeito ao
TLB. Por exemplo, se um Tlb Flush e necessrio, em um grande Range de endereos (ou um inteiro
Address Space) pode ser mais prudente distribuir e assumir um nova contexto MMU/para este
processo por causa da eficincia
4.7.6 - Como tratar o que a arquitetura flush no executa com exemplos
A arquitetura Flush descrita no faz emendas para coerncia de projetos DMA com dados
Cached. Isto tambm no tem provises para nenhuma estratgia de mapeamento necessrios pelo
DMA e projetos se forem necessrios em um certa mquina Linux Portad To.
Nenhuma destas questes so para a arquitetura Flush.

Tais questes so negociadas mais claramente no nvel do Driver do projeto. O autor est
mais convencido disto depois de sua experincia com um conjunto comum de sparc device drivers
que precisaram de toda funo corretamente em mais do que uma hand full de cache/mmu e bus
architetures no mesmo kernel. De fato esta implementao mais eficiente porque o motorista sabe
exatamente quando o DMA precisa ver o dado consistente ou quando o DMA est indo criar uma
inconsistncia que deve ser resolvida. Nenhuma tentativa para atingir este nivel de eficiencia via
cochetes soma ao codigo de administracao generica da memoria kernel seria complexo e muito
obscura como um exemplo, considere no sparc como os DMA buffers so manuscrito. Quando um
device driver deve efetuar o DMA para/de um nico buffer, ou uma dispersa lista de muitos buffers,
ele usa um conjunto de rotinas abstratas.
Char * (*mmu_get_scsi_one)(char de char *, unsigned linux_sbus longo de struct *sbus);
sem (*mmu_sglist (*mmu_get_scsi_sgl)(struct de efeito *, int, linux_sbus de struct *sbus);
sem (*mmu_release_scsi_one)(char de efeito *, unsigned linux_sbus longo de struct *sbus);
sem (*mmu_sglist (*mmu_release_scsi_sgl)(struct de efeito *, int, linux_sbus de struct *sbus);
sem (*mmu_map_dma_area)(unsigned de efeito addr longo, len de int);
Essencialmente o mmu_get_* rotinas so passadas por um indicador ou um conjunto de
indicadores e especificaes de tamanho para res no espao kernel para que o DMA ocorra, eles
retornam para o endereo capaz do DMA (por exemplo um que pode ser carregado do controlador
do DMA para o transferidor). Quando o driver feiro como DMA e o transferidor tiver completado
com o(s) endereo(s) DMA para que recursos possam ser liberados (se necessario) e cache flushes
possam ser efetivados (se necessario). A rotina ter um bloqueio de memoria de DMA por um longo
periodo de tempo, por exemplo, um motorista de networking usaria isto para uma transmissao de
pesquisa ou receber buffers. O argumento final uma entidade especifica Sparc que permite o
codigo do nivel da maquina efetuar o mapeamento se o mapeamento do DMA so ordenados em
uma base por-bus.
4.7.7 - Questes abertas na Arquitetura Cache
H pareceres para muita estupidas arquiteturas cache l fora que queira causar problemas
quando um alias est situado dentro do cache (mesmo um protegido onde nenhuma das entradas do
cache suposto so escreviveis!). Da nota est o mipsr4000 que dar uma exceo quando tal
situao ocorre, elas podem ocorrer quando o processamento cow est acontecendo na corrente
implementao. No mais chips que fazem algo estupido como isto, um exception handler pode flush
as entradas no cache que est sendo reclamado e tudo est em ordem. O autor esta mais concernido
sobre o custo dessas excees durante o processamento cow e seus efeitos que ocorrero na
performance cow, que essencialmente est para flush um user space page e se no o fazendo ento
causaria os problemas acima descritos.
Tem sido tardiamente aquecida a conversa sobre muito inteligentes networking hardware.
Pode ser necessario estender a arquitetura flush para prover as interfaces e facilidades necessarias
para estas mudanas para o codigo networking. claro que, a arquitetura flush sempre sujeita a
aperfeioamentos e mudanas para buscar novas questes ou novos hardwares que apresentam um
problema que estava at este ponto desconhecido

5. Sistema de Arquivo no Linux (File System)


5.1. - Conceitos Fundamentais

5.1.1 - Arquivos
Conceitualmente, arquivos so mecanismos de abstrao que fornece uma forma de
armazenar e recuperar informaes em disco. A caractersticas mais importante de qualquer
mecanismo abstrao a forma de identificar os objetos como os quais o mecanismo trata.
Quando um processo cria um arquivo, preciso que tal arquivo receba um nome,
normalmente dado pelo processo. Quando tal processo termina sua execuo, o arquivo continua a
existir, podendo ser acessado por outros processos, usando para tanto o nome atribuido ao
arquivo.
O Linux faz distino entre nome maisculos e minsculos. Normalmente um nome de
arquivo composto de nome e uma extenso, separada por ponto no Linux, o tamanho da extenso,
se houver, fica a critrio do usurio, e uma arquivo pode at ter duas ou mais extenes, exemplo :
prog.c.Z.
No h limite de nmeros de caracteres utilizados para dar nome a arquivos.
O Sistema Operacional Linux, olha o arquivo como uma sequncia de byte, sem nenhuma
estrutura, isto d uma flexibilidade espantosa ao sistema de arquivo. Os programas de
usurios, podem colocar o que desejarem nos arquivos e identific-los da forma que lhe for
mais conveniente, o Unix no influncia em NADA nesta processo de identificao.
5.1.2 - Diretrios
Para tratar dos arquivos, o sistema operacional normalmente lana mo do diretrios, no
caso do Linux diretrios hierrquico,vide figura 01. Os diretrios so um tipo de arquivo.

Sist em a de Dir etr ios Hier rquicos


F ig . 0 1
/

bin

...

- Raiz

usr - Subdiretrios

dev

... - Subdiretrios

Dirson

Raulison

Weslei

No Linux todos os arquivos fazem parte de um diretrio, assim eles so mantidos e


organizados, os diretrios so meios de oferecer endereos dos arquivos, de maneira que o
SO possa acess-los rapidamente e facilmente, ao entra pela primeira vez em sua conta, o
usurio j esta em um subdiretrio denominado subdiretrio de entrada.

5.1.3 - Conta
uma senha que aberta pelo administrador do sistema (denominado de root) onde o
usurio indentifica-se para o computador, que ento d acesso ao seu diretrio de entrada, onde
voc pode executar os comandos permitidos a sua senha. Nos SO padro Unix, a conta obrigatria
para todos, a figura 02 mostra um exemplo de abertura de conta no Linux.
Figura 02
Linux 2.0.0 (carvalho.cpd.ufg.br) (tte p0)
carvalho login: root
Password:
Ast login: Wed Jan 29 12:16:37 from
jacaranda.cpd.uf
Linux 2.0.0.
carvalho:~$

5.1.4 - Tipos de arquivos


O Linux suporta arquivos regulares, arquivos de diretrio, arquivos especiais de caracteres e
arquivos especiais blocados.
Os arquivos regulares so aqueles que contm informaes de usurios, por exemplos, tipo
ASCII. Arquivos diretrios so arquivos usado na manuteno do sistema de arquivo. Arquivos
especiais de caracteres esto diretamente ligado entrada/sada e so usados para dispositivos
seriais de entrada/sada, tais como terminais, impressoras e rede. Os arquivos especiais blocados so
usado modelar dispositivos. Um exemplo de tipos de arquivos utilizados no Linux pode ser visto na
figura 03.

Figura 03
carvalho:/usr$ ls
X11@
X11R6/
X386@
adm@
bin/
dict/
doc/
ftpusers
carvalho:/usr$

etc/
games/
i486-linux/
i486-linuxaout/
i486-sesv4/
include/
info/
mtools.conf

lib/
local/
man/
opemwin/
prerve@
sbin/
share/
sesog.conf

spool@
src/
tclX/
tkX/
tmp@

5.1.5 - Acesso a arquivos


O Sistema Operacional Linux, bem como os demais SO, trata o acesso a arquivos de forma
radmica, ou seja, seus byte ou registros podem ser lidos em qualquer ordem.

5.1.6 - Atributos dos arquivos


Cada arquivo tem necessariamente um nome e um conjunto dados. Alm disso, o Sistema
Operacional associa a cada arquivo algumas outras informaes que chamaremos de atributos de
arquivos. A figura 04, nos mostra alguns dos atributos dos arquivos.
Figura 04
carvalho:/etc$ ls -l
total 11
lrwxrwxrwx 1 root
-rw-r--r-1 root
-rw-r--r-1 root
-rw-r--r-1 root
-rw-r--r-1 root
drwxr-xr-x
2 root
-rw-r--r-1 root
-rw-r--r-1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
-rw-r--r-1 root

root
root
root
root
root
root
root
root
root
root
root

9
743
86
21394
23580
1024
314
342
13
13
76

Dec 9 14:01 rmt -> /sbin/rmt*


Jul 31 1994 rpc
Jan 28 1994 securette
Dec 9 14:22 sendmail.000
Jan
6 12:28 sendmail.cf
Dec 9 13:59 skel/
Jan
9 1995 slip.hosts
Jan
9 1995 slip.login
Dec 9 13:59 utmp -> /var/og/utmp
Dec 9 13:59 wtmp -> /var/og/wtmp
Mae 8 1995 e p.conf.example

Como vimos neste exemplo, o Sistema de Arquivo do Linux permite restringir o acesso aos
arquivos e diretrios permitindo que somente determinados usurios possam acess-los. A cada
arquivo e diretrio associado um conjunto de permisses. Essas permisses determinam quais
usurios podem ler, escrever, ou alterar um arquivo, e no caso de arquivos executveis como
programas, quais usurios podem execut-lo. Se um usurio tem permisso de execuo de um
diretrio, significa que ele pode realizar buscas dentro daquele diretrio, e no execut-lo como se
fosse programa. Passaremos a explicar a codificao, escolhemos aleatoriamente o stimo arquivo
skel/ da figura 04 :

d
r
w
x
r
x
r
x
nome do arquivo
1
2
3
4
5
6
7
8
9
10
skel/
obs : o que est em negrito,caixa maior, corresponde a posio do arquivo skel/

1 - informa o tipo de arquivo


2 - Permisses do Proprietrio
3 - Permisses do Proprietrio
4 - Permisses do Proprietrio
5 - Permisses do Grupo
6 - Permisses do Grupo
7 - Permisses do Grupo
8 - Permisses do Sistema
9 - Permisses do Sistema
10 -Permisses do sistema

(ddiretrio,l link, - demais arquivo)


(r leitura, , - no permitida leitura )
(w escrita, - no permitida escrita)
(x execuo, - no permitida execuo)
(r leitura, , - no permitida leitura )
(w escrita, - no permitida escrita)
(x execuo, - no permitida execuo)
(r leitura, , - no permitida leitura )
(w escrita, - no permitida escrita)
(x execuo, - no permitida execuo)

5.2 - Operaes sobre arquivos


Os arquivos existem para armazenar informaes e permitir a sua recuperao. As
Chamadas de Sistemas mais comum relacionadas ao Sistema de Arquivo Linux so chamadas que
operam sobre arquivos individuais ou envolvendo diretrios e sistema de arquivos como um todo .
A chamada CREAT no s cria um arquivo, mas tambm abre esta arquivo para escrita,
indepedente do modo de proteo especificado para ele. O descritor de arquivo que a chama
retorna, fd, pode ser usado para escrever no arquivo. Se a chamada CREAT for executada sobre um
arquivo existente, esta arquivo ser truncado para o comprimento 0, desde que os direitos do
arquivos assim o permitam.
Para que um arquivo existente possa ser lido ou escrito, necessrio que ele seja
primeiramente aberto e se ele esta aberto para leitura, escrita ou para ambas as operaes. Vrias
opes podem ser especificadas. O descritor de arquivo que a chamada retorna pode ento ser usado
para leitura ou escrita. Posteriormente, o arquivo deve ser fechado atravs da chamada CLOSE,
cuja execuo torna o descritor de arquivo disponvel para ser novamente utilizado numa chamada
CREAT ou OPEN subseqente.
A chamada READ utilizada para ler o arquivo, os bytes lidos vm em posio corrente de
leitura. O processo que faz a chamada deve indicar a quantidade de informao a ser lida e
providenciar um buffer para possibilitar a leitura.
A chamada WRITE, os dados so escritos no arquivo, geralmente a partir da posio
corrente. Se tal posio for a de final de arquivo, o tamanho do mesmo cresce. Se a posio
corrente no momento da escrita estiver no meio do arquivo, os dados existente nesta posio
estaram perdidos para sempre, pois a operao de write escreve os novos dados em cima dos
antigos.
Apesar da maioria dos programas ler e escrever arquivos sequncialmente, em algumas
aplicaes os programas devem ser capaz de acessar randomicamente qualquer parte do arquivo.
Associado a cada arquivo, existe um ponteiro que indica a posio corrente do arquivo. Quando a
leitura ou escrita for seqncial, em geral, ele aponta para o prximo byte a ser lido ou a ser escrito.
A chamada LSEEK tm trs parmetros: o primeiro do descritor de rea para o arquivo, o segundo
a posio do arquivo, o terceiro informa se a posio relativa ao inicio do arquivo, posio
corrente ou final do arquivo. O valor que o LSEEK retorna a posio absoluta no arquivo aps a
mudana no ponteiro.

Para cada arquivo o Linux mantem o modo do arquivo (regular, diretrio ou arquivo
especial), seu tamanho, o instante da ltima modificao, e outra informaes pertinentes. Os
programas podem verificar estas informaes, usando a chamada STAT. Seu primeiro parmetro o
nome do arquivo. O segundo um ponteiro para a estrutura onde a informao solicitada deve ser
colocada.
As chamadas do sistema relacionadas com os diretrios ou com o sistema de arquivo como
um todo , em vez de um arquivo especficos. Os diretrios so criados utilizando as chamadas
MKDIR e RMDIR, respectivamente. um diretrios o pode ser removido se estiver vazio.
A ligao de um arquivo cria uma nova entrada no diretrio que aponta para um arquivo
existente. A chamada LINK cria esta ligao. Os seus parmetros especificam os nome originais e
novo, respectivamente. As entrada do diretrios so removidas via UNLINK. Quando a ltima
ligao para um arquivo removida, automaticamente apagada . Para um arquivo que nunca foi
ligado, o primeiro UNLINK faz com que ele desaparea.
Os diretrios de trabalho especificado pela chamada CHDIR. Sua execuo faz com que
haja mudana na interpretao dos nome dos caminhos realtivos.
A chamada CHMODE torne possvel a mudana do modo um arquivo, ou seja, de seus
bits de proteo.

5.3 - Arquivos Compartilhados


Quando vrios usurios esto trabalhando juntos em um projeto, ele comumente precisam
compartilhar arquivos. Em decorrncia disto, muitas vezes conveniente que um arquivo
compartilhado aparea simultneamente em diretrios diferentes que pertenam a diferentes
usurios. A coneco entre um diretrio e um arquivo compartilhado chamada de ligao (link).
O prprio sistema de arquivo um grfico acclico dirigido , ou DAG, em vez de rvore. No Linux
os blocos do disco no so listados no diretrio, mas numa estrutura de dados associada ao prprio
arquivo. Esta estrutura chamada n-i, a forma como o Linux implementa compartilhamentdo
arquivo.

5.4 - Estrutura do Sistema de arquivos do LINUX Release 1.2

5.4.1 - Apresentao
Este trabalho baseado na verso 1.2 da Estrutura do Sistema de arquivos do LINUX
(LINUX File System Structure) FSSTND, que por sua vez baseado em um documento de
consenso da comunidade Linux (que poder ser encontrado na internet -www.linux .org) o layout
do sistema de arquivos foi inicialmente desenvolvido dentro da lista de e-mail FSSTND do
LINUX-ACTIVISTS.
O coordenador do FSSTND Daniel Quinlan <Daniel.Quinlan@linux.org>. Uma parte
considervel deste trabalho foi tirado da FAQ (Lista de perguntas mais frequentes) mantida por Ian
McCoghrie (FSSTND-FAQ). Este documento est disponvel via ftp anonymous em tsx-11.mit.edu
no diretrio /pub/linux/docs/linux-standards/fsstnd/ FSSTND-FAQ
Nosso trabalho enfocar a estrutura do sistema de arquivos para LINUX tpico, incluindo a
localizao de arquivos e diretrios, e o contedo de alguns arquivos de sistema.

5.4.2 - Caractersticas Sistema de Arquivos


O sistema de arquivos Linux esta caracterizado por:

Uma estrutura hierrquica.


Um tratamento consistente da informao dos arquivos.
Proteo dos arquivos.

O sistema de arquivos Linux segue o mesmo princpio bsico que a maioria dos sistemas de
arquivos UNIX seguem. Apesar que o sistema de arquivo no concordar em 100% com cada
aspecto possvel de alguma implementao particular do sistema UNIX. De qualquer forma, muitos
dos aspectos da implementao do sistema de arquivos esto baseados em idias encontradas em
sistemas similar ao UNIX system V, outros fatores tambm foram levado em conta tais como :
Prticas comuns na comunidade LINUX.
A implementao de outras estruturas de sistemas de arquivos.
Definio das categorizao ortogonal de arquivos: Compatvel vs. no comptivel. e varivel
vs. estticos.
A informao compatvel aquela que pode ser compartida entre vrias mquinas diferentes.
A no compatvel aquela que deve ser localizada em uma mquina particular. Por exemplo, os
diretrios local dos usurios so compatvel, porm os arquivos de bloqueio do dispositivo (lock
file) no so compatveis.
A informao esttica inclui arquivos, biblilotecas, documentao e tudo aquilo que no
precisa da interveno do administrador do sistema. A informao varivel tudo aquilo que se
troca com a interveno do administrador.
O entendimento destes princpios bsicos ajudar a guiar a estrutura de qualquer sistema de
arquivos bem planejado.
A distino entre informao compatvel e no compatvel necessria por vrias razes:
Em um ambiente de rede, existe uma boa quantidade de informao que se pode compartilhar
entre diferentes mquinas para o aproveitamento de espao e facilitar a tarefa da administrao.
Em um ambiente de rede, certos arquivos contm informao especifica de uma s mquina,
portanto, estes sistemas de arquivos no podem ser compartilhados (antes de tomar medidas
especiais).
As implementaes de fato do sistema de arquivos no nos permitem que a hierrquia /usr
fosse montada somente para leitura, porque possua arquivos e diretrios que necessitavam ser
escritos muito freqentemente. Este um fator que deve ser atacado quando algumas parte de /usr
so compartilhadas na rede.
A distino "compatvel" pode ser usada para suportar, por exemplo:
uma partio /usr (o componente de /usr) montada (somente para leitura) atravs da rede
(usando NFS).
uma partio /usr (o componente de /usr) montada somente para leitura de um cd-rom, pode
ser considerado como um sistema de arquivos somente para leitura, compartilhado com outros
sistemas LINUX utilizando o sistema de e-mail como uma rede.
A distino "esttica" contra "varivel" afeta o sistema de arquivos de duas maneiras
principais:
Arquivo da /(raiz) contm ambos tipos de informao, varivel e esttica necessita permitir
leitura e escrita.
Arquivo do /usr tradicional contm ambos tipos de informao varivel e esttica e os
arquivos poderamos desejar montar-los somente para leitura, necessrio proporcionar um

mtodo para fazer que /usr funcione somente para leitura. Isto se faz com a criao de uma
hierrquia /var que funciona leitura e escrita (ou parte de uma partio leitura-escrita tal como /),
que diminui muito a funcionalidade tradicional da partio /usr.
O diretrio raiz / . Esta sesso descreve a estrutura do diretrio raiz. O contedo do sistema
de arquivos raiz ser adequado para carregar, dar boot, restaurar, recuperar o sistema:
Para carregar o sistema, deve estar presente o suficiente como para montar /usr e outras
parte no essenciais do sistema de arquivos.
Esta inclui ferrramentas, informao do configurao e do boot de inicializao (boot
loader) e algum outra informao essenciais ao inicilizar.
Para habilitar a recuperao e /ou a reparao do sistema, estar presente no sistema de
arquivos raiz aquelas ferrramentas que o administrador experimentado necessitaria para
diagnosticar e reconstruir um sistema danificado .
Para restaurar um sistema, estaram presente no sistema de arquivos raiz aquelas ferrramentas
necessrias para restaurar o sistema em floppy , fitas, etc.
A principal preocupao e que procuraremos colocar muito pouca coisas do sistema de
arquivos raiz, a meta de manter / to pequeno quanto possvel. Por vrias razes desejvel
mante-lo pequeno.
freqentemente montado em mdia muitas pequenas. Por exemplo muitos usurios de
LINUX instalam e recuperam sistemas montando como o disco copiado de disquete 1.44Mb.
O sistema de arquivos / tem muitos arquivos de configurao especificos de um sistema.
Possveis exemplos so de um kern, que especficos do sistema, um hostname diferente, etc. Isto
significa que o sistema de arquivos / no sempre compatvel entre sistemas em rede. Mantendo-o
pequeno no sistemas de rede, se minimiza o espao perdido no servidor utilizados pelos arquivos
no compatvel. Tambm permite estaes de trabalho com winchesters locais menores.
Os erros do disco, que corrompe as informao no sistema de arquivos / so um problema
maior que os erros em qualquer outra partio. Um sistema de arquivos / pequeno menos
propenso a perder arquivos como resultado de uma falha do sistema.
recomendvel colocar principalmente os arquivos em /etc/mtab. De qualquer forma, no
se necessita que o sistema de arquivos / esta totalmente armazenado localmente. A partio / no
tem porque estar armazenada localmente pode ser especificada pelo sistema por exemplo, poderiam
estar montada de um servidor NFS.
O software no dever criar ou pedir arquivos de subdiretrios especiais. A estrutura do
sistema de arquivos LINUX proporciona suficiente flexibilidade para qualquer pacote.

5.4.3 - Composio dos Diretrios

/ --- O Diretrio Raiz


A composio do diretorio raiz de um sistema Linux tpico pode ser representado pela
Tabela 01.

Tabela 01
bin
boot
dev
etc

arquivos executveis(binrios) de comandos essenciais pertencentes ao sistema


e que so usados com freqencia.
arquivos estticos de boot de inicializao(boot-loader)
arquivos de dispositivos de entrada/sada
Configurao do sistema da mquina local com arquivos diversos para a

administrao de sistema.
home diretrios local(home) dos usurios.
lib
arquivos da biblilotecas compartilhadas usados com freqencia
mnt Ponto de montagem de partio temporrios
root Diretrio local do superusurio (root)
sbin Arquvios de sistema essenciais
tmp arquivos temporrios gerados por alguns utilitrios
usr
todos os arquivos de usurios devem estar aqui (segunda maior hierrquia)
var
Informao varivel
Cada diretrio listado ser discutido em detalhe em uma subsesso separada mas
adiante. /usr e /var, cada un tem seu prpria sesso de documentos.
O kern do LINUX estaria localizado na raiz / ou no /boot. Se estiver localizado em /
recomendado usar O nome VMLINUX o VMLINUZ, nome que dever ser usados em programas
fonte do kern do LINUX recentemente. Mais informao da localizao do kern pode-se encontar
na sesso sobre a raiz / neste trabalho.
5.4.3.1 - Subdiretrio /bin
Composio : Arquivos Binrios de comandos essenciais de usurios (disponveis para todos os
usurios).
Contm os comandos que podem ser utilizados pelos usurios e pelo administrador do
sistema, porm que so requeridos no modo mono-usurio (single-user mode) pode tambm conter
comandos que so utilizados indiretamente por alguns scripts.
Todos os arquivos utilizados somente pelo root, tal como daemons, init, gette, update, etc.
Estariam localizados em /sbin ou /usr/sbin dependendo se so ou no essenciais. No abra
subdiretrios dentro /bin.
Os arquivos dos comandos que no so suficientemente essenciais para estar em /bin
estaram localizados em /usr/bin, os elementos que so utilizados pelos usurios isoladamente
(porm no pelo root) (mail, chsh, etc.) no so suficientemente essenciais para estar dentro da
partio /.
5.4.3.1.1 - Arquivos e/ou comandos disponveis em bin
Os arquivos que devem estar em /bin so : comandos gerais e comandos de rede.
Comandos gerais:
Os seguintes comandos devero sido includos porque so essenciais.
Alguns estaram presente e tradicionalmente devero estado em /bin.
{arch, cat, chgrp, chmod, chown, cp, date, dd, df, dmeg, echo, ed, false, kill, in, login,
mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, setserial, sh, sfte , seu, sinc, true,
umount, uname}.
Se /bin/sh bash, ento /bin/sh seria em links simblico a /bin/bash dado que bash se
comporta diferente quando carregado como sh ou bash. A pdksh que pode ser a /bin/sh nos
discos de instalao e seria igualmente carregada a que /bin/sh faz um links simblico a /bin/ksh.
Outros links simblicos de sistemas utilizando outros programas, ento a partio / conter os
componente mnimos necessrios.
Por exemplos, muitos sistemas incluiria cpio como de segunda utilidade mais usado para
reparos depois do tar. Porm jamais se espera restaurar o sistema da partio /, ento estes arquivos

podem ser omitidos (montar / em chip ROM, montar /usr no NFS). Se a restaurao do sistema se
planeja atravs da rede, Ento FTP o TFTP (junto com todo o necessrio para obter uma conexo
FTP) estariam disponveis na partio /.
Os comandos de restaurao podem aparecer em /bin ou /usr/bin em sistemas LINUX
diferentes.
Comandos de redes.
Estes so unicamente os arquivos de rede que os usurios e o root queiram ou necessitem
executar que no estejam no /usr/bin ou /usr/local/bin {domain name, hostname, netstat, ping}.
5.4.3.2 - Subdiretrio /boot:

Composio : arquivos estticos do boot de inicializao (boot loader).

Este diretrio contm tudo que necessrio para carregar o sistema, exceto os arquivos de
configurao e o gerenciador de boot. O /boot utilizado para qualquer coisa que se utiliza antes
do kernel execute /sbin/init. Este inclui setores master de inicializao (master boot sectors)
guardados, arquivos de mapa de setor e qualquer outra coisa que no editada manualmente. Os
programas necessrios para consertar o boot de inicializao e capaz de carregar um arquivo (tal
como o gerenciador de boot [lilo]) estaram localizados em /sbin. Os arquivos de configurao para
carregar de inicializao poderiam estar localizados em /etc.
Como o exposto acima, o kern do LINUX pode estar localizado em / ou /boot, se estiver
em /boot, recomendado usar um nome mais descritivo.
5.4.3.3 - Subdiretrio /dev

Composio : arquivos de dispositivos de entrada/sada.

Este diretrio dos dispositivos. Contm um arquivo para cada dispositivo que o kern do
LINUX pode suportar.
/dev tambm contm. um script carregado MAKEDEV o qual pode criar dispositivos
quando necessitar. Pode conter um MAKEDEV local para dispositivos locais.
MAKEDEV deve fazer previso para criar qualquer arquivo de dispositivo especial listado
na lista de dispositivos suportados pelo Linux.
Os links simblicos no devem ser distribuidos no sistemas LINUX, somente como preve
na lista de dispositivos de LINUX. Isto porque as instalaes locais seguro diferem daquelas da
mquina do administrador. Alm disso, um script de instalao configura links simblicos na
instalao, estes ligao seguramente no se atualizaram se houverem trocas locais no hardware.
Quando utilizados responsavelmente so de bom uso.
A lista de dispositivos compatvel com o LINUX, mantida por Peter Anvin
(peter.anvin@linux.org). Estes arquivos especial de dispositivo esto disponvel no endereo
eletrnico da internet ftp.eggdrassiml.com, no diretrio /pub/device-list.

5.4.3.4 - Subdiretrio /etc

Composio : Configurao do sistema da mquina local com arquivos diversos para a


administrao de sistema.
Contm arquivos e diretrios que so locais ao sistema atual.
Nenhum arquivo deve ir diretamente dentro /etc. Os arquivos que nas primeiras verses
encontravam-se em /etc, ir em /sbin ou /usr/sbin. Isto inclui arquivos tal como init, gette e update,
arquivos como hostname que so utilizados por usurios comuns e pelo root no iriam em /sbin
seriam em /bin.
Subdiretrios de /etc
Tipicamente /etc possui dois sudiretrios :

X11 arquivos de configurao para Ox11


sk
Esqueletos da configurao usurios

O /etc/sk a localidade para os chamados arquivos esqueletos de usurios, que so os dados


por default quando um novo usurio recebe uma conta, esta diretrio pode conter subdiretrios para
diferente grupos de usurios (/etc/skell/apoio, /etc/skell/usurios).
O /etc/X11 o lugar recomendado para todos os arquivos de configurao X11
locais da mquina. Este diretrios necessrio para permitir o controle local se /usr for
colocado somente para leitura. Os arquivos que devem ir neste diretrio incluem Xconfig
(e /o XF86Config) e Xmodmap. O /etc/X11/xdm contm os arquivos de configurao xdm.
Estes so a maioria dos arquivos normalmente gravados em /usr/lib/X11/xdm; veja
/var/lib/xdm, para maior informao.
5.4.3.4.1 - Arquivos e/ou comandos disponveis em /etc
Este descrio do contedo generica, portanto no est totalmente completa, pode haver
algumas variaes dependendo do distribuidor do Linux ou do administrador de sistema. Os
arquivos /etc so composto de :
Arquivos gerais;
Arquivos de rede.
Os arquivos gerais so necessrios na maioria dos sistemas LINUX, tais como :
{adjtime, csh.login, disktab, fdprm, fstab, gettedefs, group, inittab, issue, ld.so.conf,
lilo.conf, magic, motd, mtab, mtools, passwd, profile, psdaTabelase, securette , shells, se
sog.conf, tercamp, tte te pe}
Os arquivos de Rede mais utilizados na maioria dos sistemas LINUX so :
{exports, ftpusers, gateway, hosts, host.conf, host.equiv, host.lpd, inetd.conf, networks,
printcap, protocols, reolv.conf.rpc, service}

Existe dois modo para a instalao dos scripts de comandos "rc" os quais so chamados por
init no momento de carregar, ou o modo /etc/rc.d/* etc do System V. Qualquer que seja o
escolhido pode ser utilizado uma mescla dos dois.
Os sistemas com a senha de passwords sombreadas (shadow password) tero arquivos de
configurao adicionais, em /etc (/etc/shadow e outros) e /usr/bin (useradd, usermod, e outros).
5.4.3.5 - Subdiretrio /home:
Composio : diretrios locais dos usurios (opcional)
O sudiretrio /home claramente um sistema de arquivos especfico do diretrio local. A
regra de cri-lo difere de mquina para mquina. Descreve uma localizao sugerida para os
diretrios local dos usurios, assim, recomendamos que todas as distribuies LINUX usem esta
lugar como localizao default dos diretrios locais.
Em sistemas pequenos, cada diretrio de usurio um dos subdiretrios debaixo /home,
/home/dirson, /home/raulison, /home/weslei, etc.
Em sistemas grande (especialmente quando os diretrios /home so compartilhados entre
vrias mquinas usando NFS) til subdividir os diretrios local . A subdiviso pode ser
implementada utilizando subdiretrios tal como /home/apoio, /home/docs, /home/cartas, etc.
Muitas pessoas preferem colocar as contas dos usurios numa variedade de lugares, portanto,
ningum dever confiar nesta localizao. Se voc deseja encontar o diretrio local de qualquer
usurio, deveria usar a funo de bibliloteca getpwent em vez de contar com /etc/passwd, porque
a informao pode estar armazenada remotamente usando sistemas como NIS.
5.4.3.6 - Sudiretrio /lib:

Composio : Biblilotecas compartilhadas e mdulos do kern essenciais.

O diretrio /lib contm aquelas biblilotecas compartilhadas que so necessria para carregar
o sistema e executar os comandos do sistema de arquivos raiz.
Mdulos -> Mdulos de kern carregavis.
Estes incluem em /lib/libc.so.*, /lib/libm.so.*, O linkador dinmico compartilhado
/lib/ld.so.*, e outras biblilotecas compartilhadas requeridas por arquivos em /bin e /sbin.
As biblilotecas que so necessrias somente pelos arquivos /usr (como qualquer arquivo X
Windows) no pertencem a /lib. S as biblilotecas compartilhadas requeridas para executar os
arquivos dentro de /bin e /sbin devem estar ali. A bibliloteca libm.so.* poderia estar localizada
em /usr/lib se no utilizada de nenhuma forma em /bin ou /sbin.
Por razo de compatibilidade, /lib/cpp necessita existir como uma referncia ao preprocessador C instalado no sistema. A localizao usual do arquivo /usr/lib/gcc-lib/
<target>/<verso>/cpp. Pode existir links /lib/cpp apontando para estes arquivo ou a qualquer outra
referncia a ele que exista no sistema de arquivos. (Por exemplo, /usr/bin/cpp utilizado
frequentemente). A especificao para /lib/module ainda no foi definida, pois ainda no h um
concenso na comunidade Linux.
5.4.3.7 - Subdiretrio /mnt

Composio : Utilizados para armazenamento de arquivos montados temporariamente.

Este diretrios foi previsto para o administador poder montar temporariamente sistemas de
arquivos quando necessitar. O contedo deste diretrio um assunto local e no deve afetar a
maneira que executamos nenhum programa. recomendamos a no utilizao deste diretrio para
programas de instalao, e sugerimos utilizar um diretrio temporrio adequado que no esta em
uso pelo sistema.
5.4.3.8 - Subdiretrio /proc

Composio : Sistema de arquivos virtual de informao de processos do kernel.

O sistema de arquivos proc utilizado para manipular informao de processos e de sistema


em vez de /dev/kmem e outros mtodos similares. recomendado a utilizao deste para o
armazenamento e obteno de informao de processos, assim como outras informao do kern ou
da memria.
5.4.3.9 - Subdiretrio /root (opcional)
Composio : Diretrio local do superusurio (root)
O diretrio / tradicionalmente o diretrio local do usurio root nos sistemas UNIX. /root
utiliza-se em muitos sistemas LINUX e em alguns sistemas UNIX. O diretrio local da conta do
usurio root pode ser determinada por preferncias locais. As possibilidades bvias inclue em /,
/root, e /home/root. Se o diretrio local do root no esta armazenado na partio raiz, ser
necessrio assegurar-se que tome / por default caso no seja localizado.
No recomendado o uso da conta root para coisas corriqueiras tal como ler o e-mail e ver
as notcias (mail & news), recomend-se que seja usada somente para a administrao do sistema.
Por esta razo recomendamos que no apaream subdiretrios como Mail e News no diretrio local
da conta do usurio root. recomendado que o mail para root seja redirecionados a um usurio
mais adequado.
5.4.3.10 - Subdiretrio /sbin:

Composio : arquivos de Sistema (algumas vezes mantidos em /etc)

Os utilitrios usados pela administrao do sistema (e outros comandos que somente o root
utiliza) esto armazenados em /sbin, /usr/sbin, e /usr/local/sbin. /sbin, tipicamente contm arquivos
essenciais para dar boot ao sistema, alm dos arquivos em /bin. Qualquer coisa que se executar
depois sabendo que /usr foi montado (quando no h problemas) deveria estar em /usr/sbin. Os
arquivos da administrao do sistema root local devem estar em /usr/local/sbin.
Decidir que arquivos vo no diretrio de /sbin difcil. Se o usurio necessitar execut-lo,
deve de ir para outro diretrio. Se somente o administrador do sistema ou o root necessitem
executar, tais como scripts da administrao, ento deve ir em /sbin (no /usr/sbin ou
/usr/local/sbin, se o arquivo no vital para a operao do sistema).
Arquivos como chfn que os usurios usam ocasionalmente devem estar em /usr/bin. ping
que absolutamente necessrio para o root tambm frequentemente usado pelos usurios,
devero estar em /bin. Os usurios comuns no tero que por os diretrios sbin em seu caminho
(path).
recomendado que os usurios tenham permisso de leitura e execuo em tudo que se

encontra em /sbin exceto talvez certos programas; setuid e setgid. A diviso entre /sbin e /bin no
foi criada por motivos de segurana para evitar que os usurios violem o sistema operacional, foi
cirada para promover uma boa partio entre arquivos que todos usam e os que so utilizados
principalmente para as tarefas administrativas. No h utilidade inerente na segurana em fazer
que /sbin esteja fora do alcance dos usurios.
5.4.3.10.1 - Arquivos e/ou comandos armazenados em /sbin
Arquivos armazenados so dos seguintes tipos :

comandos gerais;
comandos de sada;
comandos de manipular sistema de arquivos;
gerenciador de boot de inicializao e
comandos de rede.

Os comandos gerais so clock, gette, init, update, mkswap, swapon, swapoff, telinit.
Os comandos de sada so fastboot, fasthalt, halt, reboot, shutdown.
Os comandos de manipular sistemas de arquivos so fdisk, fsck, fsck.*, mkfs, mkfs.*, onde
* = um dos seguinte. ext, ext2 minix, msdos, xia, e talvez outros.
Os comandos do sistema de arquivos ext2 (opcional) so badbocks, dumpe2fs, e2fsck,
mke2fs, mkost+found, tune2fs. O Gerenciador do boot de inicializao (lilo) e os
comandos de Rede : arp, ifconfig, route.

5.4.3.10.2 - Arquivos opcionais em /sbin:


Os arquivos estticos (compilados estaticamente) esto o sln e nc esttico, nc so utilitrios
quando ocorrem erros. O principal uso do sln (reparar links simblicos incorretos em /lib depois de
uma atualizao mal sucedidas) no a preocupao maior, j que existe o programa ldconfig
(usualmente localizado em /usr/sbin) e pode atuar como um assistente guiando para atualizar as
biblilotecas dinmicas. O nc esttico til em algumas ocasies de emergncia. Note que estes no
necessitam ser obricatoriamente verses compiladas estaticamente dos ln e nc, porm podem ser
compilados estticamente.
O arquivo ldconfig opcional em /sbin, dado que um usurio pode escolher executar
ldconfig ao dar boot, em vez de s quando atualizam as biblilotecas compartilhadas . (No est
claro se ou no vantajoso executar ldconfig em cada inicializao). Assim, alguns que gostam de
ter ldconfig a mo na situao que se tem um sln, pois no se sabe como nomear os links.

5.4.3.11- Subdiretrio /tmp


Composio : arquivos temporrios gerados por alguns arquivos utilitrios.
O /tmp utilizado para arquivos temporrios, preferencialmente em dispositivo rpido (um
sistema de arquivos basado em memria por exemplo). A "permanncia" da informao que
armazenada em /tmp diferente de aquela que armazenada em /var/tmp. /tmp pode ser limpo em
cada inicializao ou a intervalos relativamente frequentemente. Portanto, no se deve operar a
informao armazenada em /tmp permanecendo por algum perodo determinado de tempo.
Os programas devem utilizar /tmp ou /var/tmp (que era originalmente /usr/tmp) de acordo os
requisitos esperados da informao, pois no devem colocar nenhum arquivo particular em qualquer
diretrio de armazenamento temporrio.
Os administradores de sistemas podem querer ajuntar /tmp a algum outro diretrio, tal como
/var/tmp. Isto til, por exemplo, para conservar espao na partio raiz. Se est executada,
ento a permanncia de arquivos em /var/tmp deve ser mesmo to grande como a de /tmp. O
subdiretrio /tmp pode estar na memria RAM, /var/tmp nunca poder se localizar-se em algum
dispositivo RAM.
5.4.3.12 - A hierrquia /usr.
O subdiretrio /usr a segunda maior seo do sistema de arquivos. /usr informao
compartilhada, somente de leitura, isto significa que /usr, deve ser compartilhada entre vrias
mquinas que utilizam o LINUX e no deve exibir qualquer informao local de uma mquina ou
que varia com o tempo, deve ser armazenada em outro lugar.
Nenhum pacote grande (como TeX o GNUEmacs) deve utilizar o subdiretrio direto
abaixo de /usr, em vez disso, deve haver um subdiretrio dentro /usr/lib (o /usr/local/lib caso tenha
sido instalado localmente), a propsito, como o sistema X Windows faz-se uma exceo permitindo
um considervel precedente e a prtica amplamente aceita. Exemplo de um subdiretrio /usr tpico :
carvalho:/usr$ ls
X11@
X11R6/
X386@
adm@
bin/

etc/
games/
i486-linux/
i486-linuxaout/
i486-sysv4/

lib/
local/
man/
openwin/
preserve@

spool@
src/
tclX/
tkX/
tmp@

dict/
doc/
carvalho:/usr$

include/
info/

sbin/
share/

5.4.3.12.1 - Subdiretrios /usr (permanente)


Em um sistema tpico teremos mais ou menos os seguintes diretrio :
X11R6
X386
bin
dict
doc
etc
games
include
info
lib
local
man
sbir
share
src

Sistema X Windows Verso 11 release 6


Sistema X Windowss Verso 11 release 5 em plataformas X 386
A maioria dos comandos de usurio
Listas de palavras
Documentao miscelnia
Configurao do Sistema
Jogos e arquivos educacionais
arquivos header(cabealhos) incluidos por programas C
Diretrio primrio, o sistema GNU Info
Biblilotecas
Hierrquia local
Manual on line
Arquivos de Administrao do Sistema no vitais
Informao independente da arquitetura
Cdigo fonte

Os seguinte links simblicos a diretrios podem estar presentes. Esta possibilidade baseiase na necessidade de preservar a compatibilidade com sistemas anteriores haja visto que em todas as
implementaes pode asumir o uso da hierarquia /var, podero existir os seguintes links :
/usr/adm
/usr/prerve
/usr/spool
/usr/tmp
/var/spool/locks

------------------>
------------------>
------------------>
------------------>
------------------>

/var/adm
/var/prerve
/var/spool
/var/tmp
/var/lock

Uma vez que o sistema no precise mais de alguns dos liks anteriores, deve existir um links
deste /usr/X11 apontando para a hierarquia do sistema X Windows atual.
5.4.3.12.2 - Subdiretrio /usr/X386
composta do sistema X Windows, verso 11 release 5 em plataformas X 86, esta
hierarquia geralmente idntica a /usr/X11R6, exceto que os links simblicos de /usr devem estar
ausente se estiver instalado /usr/X11R6.
5.4.3.12.3 - Subdiretrio /usr/bin
composta da maioria dos comandos do usurio, este o diretrio principal de comandos
executveis no sistema possui o mh (comandos para o sistema de manipular e-mail MH) e o X11
(link simblico at /usr/X11R6/bin).
Os interpretadores de scripts dos shell (invocados com #! <rota> na primeira linha do script

de shell) no podem depender de uma rota, vantajoso o padronizar a localizao dos elos. A shell
Bourne e C to fixos em /bin, pois Perl, Pethon, Tlc se encontram em muitos lugares diferentes
/usr/bin/perl, /usr/bin/pethon e /usr/bin/tcl devem refernciar a os interpretador de shell perl,
pethon e tcl respectivamente. Estes podem ser links simblicos a localizao fsica dos
interpretador da shell.
5.4.3.12.4 - Subdiretrio /usr/dict - Listas de palavras
Arquivos recomendados em /usr/dict (words), tradicionalmente esta diretrio contm
somente arquivos words de palavras inglesas, o qual utilizado por "look" para vrios programas
de ortografia, words pode utilizar ortografia americana ou britnica. Os usurios que precisam
ambos, podem concatenar words a /usr/dict/american-english ou /usr/dict/ british-english.
As listas de palavras para outros linguagem pode usar o nome em ingls para a linguagem,
por exemplo, /usr/dict/french, /usr/dict/danish, etc. Estes devem, se possvel, utilizar o jogos de
caracteres ISO 8859 que faz aprpriado para linguagem em questo, e se possvel, o jogo de
caracteres ISO 8859-1 (Atin1) deve ser utilizado (muito raramente possvel faz-lo)
Qualquer outra lista de palavras, tal como o diretrio web2, deve ser incluido aqui,
razovel ter aqui s as listas de palavras, e que elas so os nicos arquivos comum a todos
os verificadores de ortografia.
5.4.3.12.5 - Subdiretrio /usr/etc
Contm a configurao do sistema, porm armazenar a configurao /usr/etc do software
que se encontra em /usr/bin e /usr/sbin um problema. Montar /usr somente para leitura de um CDROM ou atravs de NFS difcil no melhor dos casos.
Uma possvel soluo que considerada foi eliminar completamente /usr/etc e especificar que
todas as configuraes se armazenem em /etc. Acontece que existe a possibilidade de que muitos
site podem querer ter alguns arquivos de configurao que no estejam na sua mquina local.
Eventualmente, decide-se que /etc dever ser o nico diretrio que seja referenciado pelos
programas (Isto , todos devem buscar configuraes em /etc e no /usr/etc). Qualquer arquivo de
configurao que necessissrio para todo o sistema e que no era necessrio antes de montar /usr
(em uma situao de emergncia deve estar localizado em /usr/etc).
Arquivos
especificos
em /etc, em mquinas especficas podem ter ou no um link simblicos aos arquivos de
configurao localizados em /usr/etc. Isto tambm significa que /usr/etc tecnicamente um diretrio
opcional no sentido restrito, mesmo assim recomendamos que todos os sistemas LINUX o
incorporem.
No recomendado que /usr/etc contenha links simblicos que apontem para arquivos /etc.
Isto desnecessrio e interferem no controle local das mquinas que compartem o diretrio/usr.
5.4.3.12.6 - Subdiretrio /usr/include

Neste diretrio onde todos os arquivos include de uso geral do sistema para programao
em linguagem C e C++ podem ser localizados.
Descrio dos principais sudiretrios de /usr/include :
/usr/include arquivos include
X11 Link simblico at /usr/X11R6/include/X11
arpa Definio do protocolo definido por ARPNET.

asm Link simblico at /usr/scr/linux/include/asm-<arch>.


bsd
arquivos include de compatibilidade com BSD.
g++ arquivos include de GNU C++.
gnu arquivos include GNU.
linux Link simblico a /usr/src/linux/include/linux.
net
Definio genricas relacionadas com rede.
netax25
Definio especficas a +AX25 ( ARRL AX25).
NetinetDefinio especficas a TCP/IP.
netipx Definio especficas a +IPX (NovOIPX/SPX).
protocols
Definio de protocolos( basadas em INET)
readline
A bibliloteca readline GNU.
rpc
Definio RPC de Sun Microsystem.
RpcsvcDefinio de servios RPC de Sun Microsystem.
sys
arquivos include de gerao de sistemas
O subdiretrio arpa contm definies de header de protocolos para os protocolos
ARPANET, TCP/IP, definies para ftp, prototipos telnet e material similar.
O subdiretrio net contm definies genricas relacionadas com a rede, define a interface
sistema vs. kern, detalhes da famlia de protocolo, etc.
O subdiretrio netinet contm definies especficas de INET (DARPA Internet, que
tambm contida no TCP/IP )
ARRL AX.25 melhor conhecido como pacote de transmisso via radio (packet radio). Os
protocolos novell IPX/SPX so parte dos servios de arquivos Novell Netware.
5.4.3.12.7 - Subdiretrio /usr/lib
Inclui as biblilotecas para programas e pacotes, inclue as biblilotecas objeto, arquivos de
programa compilador, informao esttica de vrias casos, ambos, cdigos executvel (por exemplo
os arquivos internos de gcc esto localizados abaixo /usr/lib/gcc-lib) e outros tipos de informao.
/usr/lib/ - biblilotecas para programao e pacotes:
X11 Link simblico para /usr/X11R6/lib/X11
emacs arquivos de suporte estticos para o editor GNUEmacs.
games arquivos de dados estticos para /usr/games.
groff Biblilotecas / diretrios para GNU groff
gcc-lib arquivos/diretrios especificos do sistema para gcc.
kbd Tabelas de traduo de teclado e informao relacionada.
Mh
Biblilotecas para o sistema de manipular e-mail MH:
news Cnews/INN.
smail Smail.
terminfo
diretrios para a base de dados terminfo.
texmf TeX/MF ( e ATeX ) biblilotecas de informao.
uucp Comandos de UUCP.
zoneinfo
Configurao e informao da zona horaria.
Historicamente, /usr/lib incluido alm disso alguns comandos executveis tais como
sendmail e makewhatis.
Dado que makewhatis no refernciado por outros programas, no h problemas ao
mover para um diretrio de arquivos executveis. Arquivos que os usurios precisam para usar
makewhatis, /usr/lib de onde pertencem. O arquivo catman que repassa ao script makewhatis em
muitos sistemas LINUX, deve tambm estar em usr/bin.

O arquivo sendmail refernciado por muitos programas com seu nome histrico
/usr/lib/sendmail. Este deve ser um links simblico, a localizao layout para os agente de
transferncia de e-mail com uma interface de linha de comando compatvel com o sendmail,
/usr/bin/sendmail.
Em sistemas que utilizam smail devem localizar smail em /usr/sbin/smail e /usr/bin/sendmail
deve ser um links simblico a smail.
Este regra vai de encontro tambm com a nova ocorrncia no layout sendmail definida em
Sendmail 8.6.x e BSD 4.4.
Note que esta localizao requer que /usr/sbin e /usr/sbin/sendmail devem ser executveis
para usurios normais.
Qualquer pacote de programa que contenha e precisa informao que no necessite ser
modificada deve armazenar tal informao em /usr/lib (o /usr/local/lib, esta instalado localmente).
Recomenda-se a utilizao de um subdiretrio em /usr/lib para este propsito.
A informao de jogos armazenada em /usr/lib/games deve ser apenas informao esttica.
Qualquer arquivo modificvel tal como arquivos demarcado, registros de jogos e similar, devem de
ser localizados em var/lib. necessrio para compatibilidade de jogos, pode-se usar um links
simblico desde /usr/games/lib at /usr/lib/games.
Nota: nenhuma informao especifica de host para o sistema X Windows deve armazenar-se
em /usr/lib/X11 (que realmente /usr/X11R6/lib/X11). Os arquivos de configurao especificos do
host tal como Xconfig o XF86Config devem ser armazenados em /etc/X11. Este deve incluir
informao de configurao como o stem.twmrc, se for somente um links simblico, um arquivo de
configurao mais global (talvez em /usr/etc/X11 ou /usr/X11R6/lib/X11).
5.4.3.12.8 - Subdiretrio /usr/local
A hierarquia /usr/local est para ser utilizada pelo administrador de sistemas quando instala
o Linux localmente. Necesssita ficar a salvo de ser sobrescrito quando o software do sistema se
atualiza. Pode ser usado por programas e por informao que so compatvel entre um grupo
mquinas, pois no se encontram em /usr.
/usr/local Diretrios da Hierrquia local
bin
arquivos
doc
Documentao local
etc
arquivos de configurao utilizados somente no local
games Jogos instalados localmente
lib
Biblilotecas para /usr/local
info Pginas de informao local
man Hierrquias de pginas de manual para /usr/local
sbin Administrao do sistema
scr
Cdigo fonte local.
Este diretrio deve estar vazio ao terminar de instalar LINUX pela primeira vez. No deve
haver excees regra , exceto quia os subdiretrios vazios listados.
O software instalado localmente deve estar localizado dentro de /usr/local, em vez de /usr a
menos que esteja sendo instalado para reemplantar ou atualizar software em /usr.
Note que o software localizado em / ou em /usr pode ser sobrescrito por atualizaes do
sistema (assim mesmo, recomendado que as distribuies no sobrescrevam informaes /etc fora
destas circunstncias). Por esta razo, o software local no deve se colocado fora de /usr/local sem
uma boa causa.
5.4.3.12.9 - Subdiretrio /usr/man

Inclui as paginas do manual,


detalha a organizao das pginas do manual atravs do
sistema, devem estar dentro de /usr/man.
As pginas do manual esto armazenadas <mandir>/<locais>/man [1-9]. Faremos uma
pequena listagem de <mandir> e <locais> :
<mandir>/<locais> uma hierarquia de pginas de manual.
man1 Programas para usurios.
man2 Chamadas do sistema.
man3 Subrotinas e funes de bibliloteca.
man4 Dispositivos.
man5 Formatos arquivos.
man6 Jogos.
man7 Miscelneas.
man8 Administrao do Sistema.
man9 Funes e variveis internas do kernel.
O <mandir> primrio do sistema /usr/man contm informao do manual para comandos e
informao abaixo dos sistemas de arquivos / e /usr. Obviamente no h pginas de manual em /
porque no se necessitam para carregar nas emergncias.
Deve-se fazer reserva na estrutura de /usr/man para o suporte de pginas do manual que
esto escritas em diferentes idiomas (multiplos idiomas). Estas providncias devem levar em conta
o armazenamento e referncia destas pginas do manual. Os fatores relevantes incluir no idioma
(inclue diferenas basedas na geografia) e cdigo do conjunto caracteres.
Esta nomenclatura dos subdiretrios de idiomas de /usr/man esta basada no apndice e do
padro POSIX 1003.1 que descreve a cadeia de identificao locais.
O mtodo mas aceito para descrever um ambiente cultural. A cadeia <locais> :
<idioma>[<_territorio>][.<conjunto_de_caracteres>][,<verso>]
O campo <idioma> vem do ISO639 (um cdigo para a representao dos nomes dos
idiomas). Seja os caracteres especificado no padro ISO, com minsculas somente.
O campo <_territorio> ser o cdigo das letras de ISO3116 (uma especificao da
representao dos nomes dos pases, se possvel (muita gente est familiarizada com o cdigo 2
letras espelhado no cdigo pas como e-mail).
O campo <conjunto_de_caracteres> deve representar o layout que descreve o cdigo
caracteres. Se o campo <conjunto_de_caracteres> s uma especificao numrica, o nmero
representa o nmero do layout internacional que descreve o conjunto caracteres. Recomenda-se
que utilizar uma representao numrica, sempre que for possvel (especialmente o padro ISO),
que no inclua smbolos de pontuao e que todas as letras sejam minsculas.
Um parmetro que especifique <verso> do perfil pode ser colocada depois do campo
<conjunto_de_caracteres >. Esta pode utilizar-se para diferenciar as necessidade culturais.
Em sistemas que usem s um idioma e um cdigo do conjunto de caracteres para todas as
pginas do manual, pode-se omitir a subcadeia <locais> e armazenar todas as pginas do manual
em <mandir>. Por exemplo no sistemas que s tem pginas do manual em ingls codificados na
ASCII, podem armazenar as pginas do manual (Os diretrios man[1-9]) diretamente em /usr/man.
Em pases nos quais existe um cdigo do conjunto caracteres no layout, pode omitir o
campo <conjunto_de_caracteres>, porm bastante recomendado que a inclua, especialmente para
pases com vrios layouts.
Exemplos de vrios manuais encontrados :

Idioma

Pases

Ingls
Ingls
Ingls
Francs
Francs
Alemo
Alemo
Alemo
Alemo
Japons
Japons
Japons

-------Reino Unido
Estados Unidos
Canad
Frana
Alemanha
Alemanha
Alemanha
Suia
Japo
Japo
Japo

Conjunto
caracteres
ASCII
ASCII
ASCII
ISO8859-1
ISO8859-1
ISO646-DE
ISO6937
ISO8859-1
ISO646-CH
JIS
SJCS
UJ ( EUC-J)

Diretrio
/usr/man/em
/usr/man/em_GB
/usr/man/em_US
/usr/man/fr_CA
/usr/man/fr_FR
/usr/man/de_DE646de
/usr/man/de_DE6937
/usr/man/de_DE.88591
/usr/man/de_CH.646ch
/usr/man/ja_JP.jis
/usr/man/ja_JP.sjis
/usr/man/ja_JP.ujis

As pginas do manual para os comandos e informao que se encontra abaixo /usr/local


esto armazenadas em /usr/local/man. As pginas do manual para o sistema X Windows esto
armazenadas em /usr/X11R6/man. Logo todas as hierarquias de pginas do manual no sistema
devem ter a mesma estrutura que /usr/man. Os diretrios vazios podem ser omitidos da hierarquia
de pginas do manual. Por exemplo se, /usr/local/man no tem pginas do manual na seo 4
(dispositivos) ento se pode omitir /usr/local/man/man4.
As sees da pginas cat (cat[1-9]) que contm pginas do manual formatadas, tambm se
encontram dentro os subdiretrios /<mandir>/<locais>, pois no so requeridas nem devem ser
distribuidas no lugar das fonte nroff das pginas do manual.
As pginas do Manual do sistema de manipulao de e-mail mh devem ter o prefixo mh em
todos os nomes de arquivos das pginas.
As pginas do sistema X Windows devem de ter o prefixo X em todos os nomes dos
arquivos das pginas.
A prtica de colocar as pginas do manual de diferentes idiomas, nos subdiretrios
aprpriados de /usr/man tambm se aplica a as outras hierarquias de pginas do manual, tais
como /usr/local/man e /usr/X11R6/man. Isto tambm aplicvel a estrututura opcional de
/var/catman, mostrada no subdiretrio /var.
5.4.3.12.10 - Subdiretrio /usr/sbin
Este diretrio contm quaisquer arquivo no essenciais utilizado exclusivamente pelo
administrador do sistema.
Os programas de administrao do sistema que sejam utilizados para a reparao do
sistema, montado no /usr, outras funes essenciais devem localizar-se em /sbin em vez de /usr/bin.
Tipicamente /usr/sbin contm os deamons de rede, quaisquer ferramenta de administrao
no essenciais e arquivos para programas servidores no-crticos. Estes inclue os deamons da
internet que so chamados por inted (chamados in.*) tais como in.telnetd e in.fingerd e os
deamons basados em rpc manipulados por portmap (chamados rcp.*), tais como rcp.infsd e
rcp.mountd.
Estes programas servidores so utilizados quandoocorre um estado que o System V
conhece como "run levO2" (estado multi-usurio) e o "run levO3" (estado em rede) ou estado que o
BSD conhece como "modo multi-usurio", neste ponto ficam disponveis os servios para os
usurios (suporte de impresso) e at outras mquinas (por exemplo, exportar NFS).
Os programas administrativos instalados localmente devem estar localizados
em:
/usr/local/sbin.

5.4.3.12.11 - Subdiretrio /usr/share


So informao que independente da arquitetura, quaisquer especificao para /usr/share
ser incluida em um documento suplementar ao FSSTND, de acordo com a Linux Organization, os
pesquisadores do FSSTND acham que /usr/share no necessrio na maioria dos sistemas Linux.
5.4.3.12.12 - Subdiretrio /usr/src
Contm o Cdigo fonte para o kern do Linux, qualquer cdigo fonte no local deve
localizar-se neste diretrio . O nico cdigo fonte que sempre deve localizar-se em um lugar
especficos o cdigo do kern(quando exista ou esteja enlaado como parte de uma estrutura
/usr/include). Podem-se usar subdiretrios que desejar.
O cdigo fonte para Kern deve sempre estar em seu lugar mesmos. Os arquivos include do
cdigo do kernel. Esses arquivos esto localizados neste diretrios.
/usr/src/linux/include/asm-<arch>
/usr/src/linux/include/linux
/usr/include deve conter links a estes diretrios, chamados asm e linux, dados que so
necessitados pelo compilador de C, ao menos estes arquivos include devem sempre ser distribuidos
nas intalaes que incluem um compilador C. Devem ser distribuidos no diretrio/usr/src/linux de
forma que no existo problemas quanto os administradores do sistema atualizem sua verso do
kern pela primeira vez.
/usr/src/linux pode tambm ser um links simblico a um rvore de cdigo fonte do kernel.
5.4.3.13 - A Hierrquia /var
/var

Informao varivel

adm

Informaes administrativa do sistema (obsoleto). Link simblico at


/var/og
Pginas do manual formatadas localmente
Informao do estado das aplicaes
Informao varivel do software de /usr/local
arquivos de bloqueio
arquivos de Agenda
arquivos DNS, somente rede
arquivos base de dados NIS
arquivos relevantes a processos execuo do sistema
Diretrios de trabalhos em fila para realizar-se depois
arquivos temporrios, utilizado para manter /tmp menor possvel

catman
lib
local
ock
og
named
nis
run
spool
tmp

/var contm arquivos com informao varivel. Esta incluem arquivos e diretrios em fila de
execuo, informao de ordem administrativa e arquivos temporrios e transitorios.
Algumas poro de /var so no compatvel entre diferentes sistemas. Por exemplo, /var/og,
/var/ock e /var/run. Outras poro so compatvel, notoriamente /var/spool/mail e /var/spool/news.
/var especificada aqui para fazer possvel montar /usr somente para leitura. Tudo aquilo
que alguma vez ficou em /usr escrito durante a operao normal do sistema (no durante a
instalao e manuteno do software) deve ir em /var.
Se /var no pode ser uma participao separada, preferivel mover /var para fora do
diretrio raiz, pois dentro da partio /usr (Isto se fazia algumas vezes para reduzir o tamanho da

partio raiz ou quando h pouco espao na partio raiz). Sendo assim, /var no deve ser enlaada
a /usr, porque fazia que a separao entre /usr e /var seja mais difcil e seguramente criar um
conflito do nomes, em vez links /var e / usr/var.
5.4.3.13.1 - /var/adm : Agenda do sistema e arquivos contabilizados (obsoleto)
Este diretrio tem sido repassado para /var/og e outros diretrios . Deve ser um links
simblico a /var/og at que todos os programas no se refiram mas a algum arquivo em /var/adm.
utmp seja movido a /var/run. Todos os arquivos agendas vo ser movidos a /var/og
incluindo o arquivo wtmp.
O suporte de empacotamento das distribuies deve armazenar em /var/lib/<nome>.
Nota: O links simblico /var/adm no deve ser necessrio a maioria dos sistemas Linuxi386ELF dado que Otroca foi
introducido antes que ELF fora liberado al pblico.
5.4.3.13.2 - /var/catman : Pginas do Manual Formatadas localmente (opcional)
Este diretrio poporcionara uma localizao padro para os computadores que utilizam
uma partio /usr somente para leitura , pois desejam permitir o armazenamento temporrio de
pginas do manual formateados localmente. Os administradores que montaram /usr como escrita
(intalaes mono-usurios) podem escolher no usar /var/catman e exibir as pginas do manual
formatadas dentro dos diretrios cat[1-9] dentro /usr diretamente. Recomendamos que a maioria dos
administradores utilizem uma das seguintes opes em seu lugar.
Preformatando todas as pginas do manual dentro /usr com o programa (catman).
No ser permido o armazenamento temporrio das pginas formatadas do manual e precise
que se execute nroff cada vez que necessite uma pgina.
Se permita o armazenamento temporrio local das pginas do manual em /var/catman.
A estrutura de /var/catman necessita refrear ambos, O trecho da existencia de multiplas
hierarquias de pgina do manual e a possibilidade do uso de multiplos idiomas.
Dada uma pgina do
manual sem formatar que normalmente aparece em
/usr/<rota1>/man/man[1-9], a verso formatada armazenada temporriamente deve ir em
/var/catman/<rota2>/cat[1-9], aonde <rota2> <rota1>. Os componentes <rota2> e <rota1> esto
ausente no caso de /usr/man e /var/catman.
Por exemplo, /usr/man/man1/ls.1 formatado em /var/catman/cat1/ls.1 e
/usr/X11R6/man/<locais>/man3/XtCass.3x
esta
formatado
em
/var/catman/X11R6/
<locais>/cat3/XtCass.3x .
As pginas do manual escritas em /var/catman/cat[1-9] podem eventualmente, transferir-se
a /usr/<rota>/cat[1-9]. De igual forma as pginas do
manual formatadas dentro de
/usr/<rota>/cat[1-9] podem expirar se no so acceitas num perodo do tempo.
Se tivessem pginas do manual preformatadas com um sistema Linux num meio somente
para leitura (por exenplo um CD-ROM), devem estar instaladas em /usr/<rota>/cat[1-9].
/var/catman est reenviado para um lugar de armazenamento temporrio para pginas de manual
formatados.
5.4.3.13.3 - /var/lib : Informao de Estado das Aplicaes.
/var/lib.- Informao de Estado das Aplicaes
emacs Diretrio do estado do Emacs
games Informao varivel de jogos
news Arquivos variveis de Cnews/INN

texmf Informao varivel asociada com TeX


xdm arquivos de autenticao e cdigo de erros de aplicaes X Windows.
/var/lib/<nome> o lugar apropriado para o suporte de empacotamento de todas as distribuies.
Diferentes distribuies de Linux podem utilizar diferentes nomes para suporte.
/var/lib/emacs
O diretrio do estado GNU Emacs, O lugar do ndos arquivos de informao independente
da arquitetura, que Emacs modifica quando executa, deve ser /var/lib. No presente, Emacs somente
localiza seu diretrio de arquivos de bloqueio abaixo do diretrio de estado (em <direstado
>/emacs/lock), pois pode fazer uso mais extenso do mesmo no futuro, notoriamente, s requer a
adio de uma opo sensvel no programa configure de Emacs para fazer esta troca (antes de
compilar).
/var/lib/games
Assim como os subdiretrios antes citados, quaisquer informao varivel relacionada com
os jogos que se encontram em /usr/games, devem estar aqui. /var/lib/games deve incluir a
informao varivel que previamente ser encontrada em /usr/lib/games. A informao esttica, tal
como textos de ajuda, descries do niveis devem permanecer em /usr/lib/games.
/var/lib/news
/var/lib/news deve usar para armazenar toda a informao varivel asociada com os
servidores de news tais como Cnews e INN, inclusive o arquivo histrico, o arquivo ativo.
/var/lib/texmf
/var/lib/texmf deve usar para armazenar a informao varivel associada com TeX.
Particularmente, em /var/lib/texmf/fonts armazenaram todas as fonte tipogrficas que so geradas
automticamente por MakeTeXPK.
Deve haver um links desde /usr/lib/texmf/fonts/tmp at /usr/lib/texmf/fonts. Este links
permite os usurios fazer uso de uma s rota /usr/lib/texmf/fonts/tfm quando houver trocas da sua
varivel TEXFONTS (Esta A rota default nas ferramentas TeX de Karl Berre distribuidas por
ftp.cs.umb.edu:pub/tex [A razo de mencionar-lo aqui que so o padro de fato nas intalaes
UNIX, estas ferramentas so amplamente usadas na comunidade LINUX]. Se se utiliza outra
distribuo de TeX, deve fazer um links deste diretrio de fonte apropriada
at
/usr/lib/texmf/fonts).
O MakeTeXPK que se distribue e com dvipsk colocar os arquivos .pk em
fonts/pk/<dispositivo>/<nome_da_fonte>, (por exemplo, fonts/pk/Canon_CX/cmr10.300pk). Os
arquivos .pk podem ser plugados periodicamente do rvore /var/lib/texmf ou pode-se mover dentro
da rvore /usr/lib/texmf. Se usarem geradores automticos de .mf ou .tfm, estes devem por sua
informaes nos subdiretrios mf ou tfm de /var/lib/texmf/fonts.
/var/lib/xdm
/var/lib/xdm contm a informao varivel de xdm que consiste nos arquivos xdm-errors e
quaisquer arquivo pertencentes a xdm. Os arquivos de xdm tais como chooser devem at estar
localizados na localidade histrica em /usr/X11R6/lib/X11/xdm. O arquivo xdm-pid devem estar em
/var/lib/xdm apesar de existir /var/run. Os arquivos restantes devem estar em /etc/X11/xdm.

5.4.3.13.4 - /var/local : Informao varivel do software que est em /usr/local


Este diretrio contm toda a informao varivel que esta relacionada com o software que
se encontra em /usr/local. Naturalmente a implementao desta subdiretrio prerrogativa do
administrador do sistema . Como a informao pode estar noutro lugar do diretrio/var, no deve
colocar em /var/local. Por exemplo, todos os arquivos de bloqueios estaro em /var/ock.
5.4.3.13.5 - /var/ock : arquivos de Bloqueio
Os arquivos de bloqueio devem de armazenar-se dentro uma estrutura do diretrio de /var/ock.
Para preservar a habilidade de montar /usr somente para leitura , no se dever colocar os
arquivos de bloqueio na partio /usr.
Os arquivos de boqueio dos dispositivo, tais como os arquivos de boqueio do dispositivos
serie que antes se encontravam em /usr/spool/ock ou em /usr/spool/uucp devem agora ser
armazenado em /var/ock. A conveno para a nomenclatura que deve utilizar-se LCK., seguido do
nome base do dispositivo. Por exemplo, para bloquear /dev/cua0 se dever criar o
arquivoLCK..cua0.
O formato usado para os arquivos de bloqueios de dispositivo no Linux dever ser o
Formatos arquivos de bloqueio HDB UUCP. O formato HDB armazenado em OPID
(Identificador de processo) com um nmero decimal na ASCII de 10 bytes, com um caracter de
linha nova.
Por exemplo, se o processo 1230 retm um arquivo de bloqueio, contm dados seguinte
onze(11) caracteres: espao, espao, espao, espao, espao, espao, um, dois, trs, qautro e nova
linha.
Ento quaisquer coisa que usar /dev/cua0, pode ler o arquivo de bloqueio e atuar de acordo
(todos os arquivos de bloqueio em /var/ock devem ser lidos por todos).
54.3.13.6 - /var/og : Arquivos agenda e diretrios
Este diretrio contm arquivos agenda miscelneos. A maioria dos arquivos agenda se
devem exibir neste diretrios ou subdiretrios aprpriados.
astog
mesage
wtmp

Registro do ltimo acesso de cada usurio


Mensagem do sistema desde que logou ao sistema
Registro de todos os acessos e sadas

Pode requerer um links simblico desde /var/og/utmp at /var/run/utmp basta que nenhum
programa se refira a /var/adm/utmp (/var/adm em si mesmo um links simblico transicional at
/var/og).
5.4.3.13.7 - /var/named : arquivos DNS
Este diretrio contm todos os arquivos de trabalho do servidor de nomes Internet, named.
Recomendamos que /etc/named.boot seja um links simblico at /var/named/named.boot, dado que
/etc/named.boot o arquivo de inicializao default, se no fornece argumentos a named.

5.4.3.13.8 - /var/nis
Arquivos de base de dados do servio de informao de rede (NIS) o sistema de
informao de rede (NIS) era anteriormente conhecido como as pginas Amarelas Sun. A
funcionalidade e localizao de diretrios de ambos o mesmo pois o nome (yelow Page) uma
marca registrada no Reino Unido , pertencem a Bristish Telecommunications plc. e no pode ser
usada sem permiso.
5.4.3.13.9 - /var/preview:arquivos guardados depois de uma coliso ou uma termino
inesperado, exemplo vi (editor de texto).
Este diretrio contm os arquivos que so armazenados antes de quaisquer terminao no
esperada de ex. vi.
5.4.3.13.10 - /var/run : arquivos variveis de tempo de execuo
Este diretrio contm arquivos com informao do sistema que o descrevem desde que
inicializou. Geralmente os arquivos neste diretrio devem ser deletar (remover ou truncar) aol
comenar o processo de inicializao.
Os arquivos identificados do processo (PID), que estavam originalmente /etc, devem
colocar em /var/run. A conveno de nomenclatura dos arquivos PID <nome-programa>.pid, por
exemplo o arquivo PID de crond se chama /var/run/crond.pid.
O formato interno dos arquivos PID permanecem sem troca. O arquivo deve conter o
indicador de ponto decimal codificado como ASCII, seguido por um caracter nova linha. Por
exemplo, o processo nmero 25, /var/run/cond.pid conter 3 caracteres, dos cinco e nova linha.
Os programas que leiam arquivos PID devem ser flexvel na acepo, por exemplo devem
ignorar os espaos extras, zeros a esquerda, ausncia do caracter nova linha ou linhas adicionais no
arquivo PID. Os programas que criam arquivos PID devem utilizar a especificao dada no
pargrafo anterior.
O arquivo utmp, que armazena informao acerca de quem est atualmente utilizando o
sistema, se localiza neste subdiretrio .
Os programas que mantenham sockets transitorios de dominio UNIX, devem coloca-los
neste diretrio.
5.4.3.13.11 - /var/spool
Diretrios de fila de trabalhos para procedimento posterior /var/spool tradicionalmente
utilizado para a informao local de mquina que enviada para processo depois, at o subsistemas
UNIX. Por exemplo, trabalhos de impresso que so armazenados aqui para entrega posterior ao
daemon da impressora, o e-mail que sa armazenado aqui para entrega a sistemas remotos e os
arquivos UUCP so armazenados aqui para transmisso dos sistemas UUCP vencidos o e-mail que
entra e as noticias so armazenadas aqui para entregar-se aos usurios e os trabalhos de at e cron
so armazenados aqui para execuo posterior pelo daemon cron.
/var/spool
at
cron

Trabalhos de at
Trabalhos de cron

lpd
Diretrio de impressora *
mail arquivos caixa-postal dos usurios
mqueueFila de espera dos correio
news Diretrio de noticias *
rwhod arquivos rwhod
smail Diretrio de smail *
uucp Diretrio de UUCP
Nota:
* Segnifica fila de trabalhos para processamento posterior.
Os arquivos de bloqueio UUCP devem localizar-se em /var/ock. Veja a seo acerca de
/var/ock.
/var/spool/lpd
/var/spool/lpd --<impressora> ---

Diretrio de fila de trabalhos para processamento posterior a impresso


Diretrio que tem a fila especifica desta impressora

O arquivo de bloqueio para lpd, lpd.ock deve estar localizado em /var/spool/lpd. O arquivo
de bloqueios de cada impressora deve localizar-se no diretrio<impressora> da impressora
especifica e deve chamar ock.
5.4.3.13.12 - /var/tmp : Arquivos temporrios, utilizando para manter /tmp pequeno.
Os arquivos que esto no /var/tmp esto armazenados por uma durao no especifica.
(Lembre-se que os diretrios temporrios do sistema no garantiram manter a informao por
nenhum perodo particular).
A informao armazenada em /var/tmp tipicamente esta numa "forma definida localmente",
pois usualmente menos frequentemente que /tmp. Se pode encontar informao sobre diretrios
temporrios na seleo dedicada a /tmp (acima).
Deve existir um links simblico desde /usr/tmp at var/tmp por razo de compatibilidade.
5.4.4 - Alguns dilemas sobre o Sistema de Arquivos
A rede apresenta um dilema intirerante, algumas pessoas quiseram separar os arquivos de
rede e configurao dos outros arquivos de configurao. Ou seja, esto em desacordo . Sentimos
que a rede no um "pacote", seno uma parte integral da maioria das mquinas UNIX (e
similares). No se deve colocar a rede em um s diretrio seno localizar-se sistematicamente nos
diretrios aprpriados.
/bin {hostname, netstat, ping}
Qualquer coisa que algum usurio queiram utilizar considerado
vital.
/sbin {arp, ifconfig, route} Qualquer coisa que s root necessita e considera vital.
/usr/bin {finger, rep, rogin, telnet, etc.}
Alguns arquivos que algum usurio queira utilizar e
que no so vitais.
/usr/sbin {in.ftpd, inetd, lpd, portmap, etc..}
Alguns arquivos que somente o administrador
utiliza, que no so vitais.

Pode parecer confuso a princpio (leva tempo digerindo), tem sentido . Se por alguma razo
voc s pode montar a partio raiz, e necessita acessar a rede para reparar seu sistema, no quer
que os arquivos esto em /usr/etc (como esto algumas vezes). Os arquivos que necessitam para
montar /usr as situaes normais (e de emergncia) esto coocados dentro da sub-rvore raiz, e
quaisquer outros podem colocar em /usr, para manter
O tamanho do sistema de arquivos raiz
pequeno.
Os arquivos de configurao para a rede pertencem a /etc.
A Estruturas independente da arquitetura, o diretrio/usr/share tipicamente contm arquivos
independente da arquitetura, tais como pginas do manual, fuso horrio, informao de terminais,
etc. No momento presente no h diferentes arquiteturas para Linux, pois com o tempo, veremos
que Linux incluir outras arquiteturas e outros sistemas similares a UNIX.
Nota: Nenhum programa nunca dever fazer referncia a alguma coisa em /usr/share. Por
exemplo, um programa de pginas do
manual no deve nunca buscar diretamente
/usr/share/man/man1/1s.1, sempre deve referir a /usr/man/man1/1s.1. Qualquer coisa em /usr/share,
ser "apontada" atravs do uso do enlac smbolos de outras reas do sistema de arquivos, tais
como /usr/man, /usr/lib/<algo>, etc.
At se trabalhar as especificaes de /usr/share.
Os Link simblicos, existe muitos usos para os link simblicos em cada sistemas de
arquivos. Embora este documento
como esta no respalda o uso do link simblicos na
implementao default (os encontrados depois de instalar Linux), usam frequentemente com bons
propsitos em diferentes sistemas. O ponto que os link simblicos devem estar ali para manter
todos os arquivos e diretrios onde cada usurio espera encontar.
Estar preparado para acertar que certos diretrios, at aqueles contidos no diretrio raiz, at
sejam link simblicos. Por exemplo em alguns sistemas /home no estar na raiz, seno enlaado
simbolicamente a um diretrio/var ou algum outro lugar. /home poderia ter tambm sua prpria
partio fsica e desde logo, ser montada como tal.
Similarmente, dado que /usr poderia estar em um servidor de arquivos central montado va
NFS, /usr/local pode-se enlaar simbolicamente a /var/local. Este troca pode-se justificar
recordando A razo principal de ter /var: separadas de diretrios de arquivos que variam com o
tempo e entre diferentes sistemas e mquinas daqueles que podem compartilhar e sejam somente
para leitura .
Alguns sistemas alm disso enlaar /tmp a /var/<algo> se a partio raiz se torne muito
pequena (ou muito pequena). Existe mais exemplos de bons usos de link simblicos, pois todo o
assunto no se reduz a estas coisas: os pacotes devem ser capazes de encontar as coisas onde
esperam (razoavelmente) e os link simblicos pode-se utilizar para resolver os problemas de muitos
casos. Ou seja, se podem gerar problemas com o uso demasimados link simblicos. Este problema
influi sobre a confiana nos link simblicos para resolver problemas, confuso resultante do sobre
o uso do link simblicos e as preferncias estticas das diferentes pessoas.
Os Arquivos Compilados Estticamente o Linux executa atualmente em uma gama de
sistemas, alguns com somente um usurio e disco pequeno, outros como servidores em ambiente
com rede muito grande, dada esta variedade , esta documento no impe regra sobre quais arquivos
esto compilados estaticamente ou dinamicamente , com as seguinte excees. Ambos ln e se nc,
devem existir em /bin; quaisquer verso esttica pode-se colocar em /sbin ou repassa-la em /bin.
Os grande sistemas Linux podem desejar incluir outros arquivos estticos (sh, init, mkfs,
fsch, tunefs, mount, umount, swapon, swopff, gette , login e outros). Os instaladores e os
administradores de sistemas, so livres para conectar dinmicamente ou estaticamente estes outros
arquivos segundo sua convenincia, sempre que a localizao dos arquivos arquivos no troque.
Em sistemas de rede, (especialmente aqueles que no tem unidade de disco flexivel), podem
querer compilar estaticamente ifconfig, route, hostname e outras ferramentas de rede. Isto
usualmente no necessrio.
5.4.5 - Descries sucinta do contedo dos manuais.

man1: Programas de usurio.


As pginas deste manual descrevem os comandos aceitos publicamente. A maioria da
docomentao dos programas que o usurio necessita encontra-se aqui.
man2: Chamadas do Sistema.
Esta seo descreve todas as chamadas do sistema (requisio do kern do Linux para realizar
certas operaes).
man3: Subrotinas e funes de bibliloteca.
Descreve programas e rotinas da bibliloteca que no so chamadas diretas do servios do
kernel. Esta seo e a man2 so de interessante de programdores.
man4: arquivos especiais.
Esta seo descreve os arquivos especiais, funes relacionadas com os manipuladores e o
suporte a rede que esto disponveis no sistema. Esta documentao incluem os arquivos de
dispositivo que encontram-se em /dev e a interface do kern para suporte de protocolos de rede.
man5: Formatos de arquivos.
Aqui se encontram os formatos para muitos dos arquivos cujo o formato no seja intuitivo.
Esta incluem vrios arquivos include, arquivos de sada de programas, e arquivos de sistema.
man6: Jogos.(arquivos educativos)
Esta seo do comenta os jogos, demos e programas triviais.
man7: Miscelnia
As pginas do manual que so difcil de classificar e designar, pertencente a seo 7. As
troff e outros macro pacotes de procedimento do texto encontram-se aqui.
man8: Administrao do Sistema
Aqui esta a documentao dos programas utilizados pelos administradores de sistemas para
a operao e manuteno. Alguns destes programas so ocasionalmente utilitrios para usurios
normais.
man9: Funes e variveis internas do kernel
Contm informaes do cdigo fonte do kern no Sistemas Linux.

6 - Pontos Positivos e negativos


O Linux sem dvida a melhor opo de Unix para PC, pois possui todas as caractersticas
um UNIX moderno, tais como : multitarefa real, multiusurio, memria virtual, biblioteca
compartilhada, interface grfica (X Windows) etc. O Linux possui centenas de comandos
embutidos, chamado utilitrios e ferramentas, cada ferramenta um programa distinto, destinado a
fazer um tarefa especfica de forma rpida e segura, vide item 5.4.3 - Compisio dos diretrios do
Linux.
O fato de ser um sistema aberto extremamente flexvel (usurio tem acesso ao fonte do
sistema) outro ponto positivo.
O preo outro atrativo US$ 44,00 (no Brasil, US$ 22,00 nos E.U.A), incluem 6 CDs do
Linux Developers Resourses CD-ROM, distribuido pela InfoMagic.
Diversos grupos de estudo do Linux no mundo inteiro garante atualizaes do software
praticamente mensais. Aliado a isto, cada nova verso incorpora dispositivos perfericos que so
lanado no mercado, trazendo a seu usurio suporte as mais recentes conquista da indstria do
hardware.
O Linux tem excelente mercado a nvel acadmico, o que nos faz crer constantes melhoras
no software, pois grande parte dos melhores professores/pesquisadores de sistemas operacionais
colaboram para o seu desenvolvimneto tecnolgico.
A documentao detalhada e completa (em ingls), em portugus bastante escassa (ponto
negativo). Toda a documentao pode ser facilmente acessada pela internet em diversos sites ou na
documentao que acompanha o software.
O suporte tcnico um dos pontos fracos do sistema, feito basicamente atravs da internet,
no existe nenhuma empresa no Brasil especializada no suporte ao Linux.
O nmero de aplicativos limitado e no existe a curto prazo pespectiva de entrada de
grandes software house desenvolvendo aplicativos para Linux, sem aplicativos no h como um
sistema se tornar popular no mundo dos PCs.
O sistema de arquivos varia de um distribuio a outro, tornado difcil a vida do
administrador de sistema, que muitas vezes tem dificuldade de descobrir o que essencial em cada
subdiretrio, limpar, criar, preparar, verificar, encontar e montar outros sistemas de arquivos
(possvelmente em mquinas remotas), todas estas tarefas podem ser dificultadas se no
encontrarmos os arquivos aonde esperamos.
A administrao e a operao de um modo geral bem mais complexa em um ambiente
unix, inclusive o Linux, do que no ambiente DOS/Windows, o que dificulta sua popularizao.
A Interface Grfica X-Windows, Xfree86 verso 3.2, ainda precisa ser melhorada,
principalmente os aplicativos que so desenvolvidos para a mesma, ainda muito pobres comparada
com a GUI do Windows95.

Concluso
O Linux, um sistema operacional do tipo Unix, o padro System V esta embutido no seu
kernel, foi desenvolvido para a plataforma IBM-PC, sendo assim, ele possui a robustez e segurana
e flexibilidade do Unix. Alm disso ele possui uma interface grfica chamada de X
Windows(XFree86 verso 3.2, por exemplo, existe outrasinterface grfica), que semelhante a do
Windows 95, menos sofisticada, menos aplicativos e menos elaborada, porm funcional.
O Projeto Linux foi desenvolvido para ser uma arquitetura aberta, voc ter toda a liberdade
de desenvolver software para sua plataforma. Os fontes so distribuidos junto com o produto. Por
outro lado, no existe um grande mercado para a plataforma Linux, sendo assim, as grandes
softwares houses do mundo, como a Microsoft, Lotus, Corel, Borland, Novell, etc no se
preocuparam em desenvolvem aplicativos para ele. O desenvolvimento de aplicativos ainda
pequeno, colaboradores, em sua maioria pesquisadores, desenvolve os softwares e a distribuio
feita, preferencialmente, no mesmo pacote a preos mdicos, todo o pacote custa no Brasil US$
44,00 (US$ 22,00 nos USA), pode ser comprado utilizando qualquer Carto de Crdito
Internacional.
Outro problema do Linux a falta de suporte tcnico, no existe a nvel comercial no Brasil,
as informaes so obtidas atravs de diversos manuais contidos no software, ou atravs da internet.
Existe uma farta documentao disponvel na rede, diversos servidores WWW (World Wide Web),
lista de discusses (servios que permite o intercmbio de mensagem entre vrios usurios,
funciona como uma extenso do correio eletrnico, onde qualquer mensagem enviada a este
endereo fictcio, conhecido como alias, e reenviada automaticamente para todos os endereos da
lista associada), Netnews ou USENET ou NEWS (semelhante a lista de discusso, s que as
mensagem so enviadas a um determinado computador da rede que as reenvia em bloco, para outros
computadores que aceitam o servio), FTP (File Transfer Protocol, servio bsico de tranferncia de
arquivos na rede), etc.
O mercado do Linux no Brasil restrito, praticamente, ao meio acadmico e alguns
provedores da Internet (ex.: Universidade Federal de Gois utiliza como roteador e servidor de
WWW em algumas unidade acadmicas). difcil acreditar no crescimento do mercado Linux no
Brasil a curto e a mdio prazo fora deste nincho de mercado, devido a sua dificuldade de operao,
o Linux foi projetado por programadores para programadores, a fim de ser utilizado em ambiente
onde a maioria dos usurios tenha uma certa experincia, soma-se a isto a falta de software para a
plataforma Linux que dificulta a sua popularizao. As empresas que utilizam o Unix
comercialmente na plataforma RISC, utilizam sistemas proprietrios desenvolvidos por empresas
como Sun, IBM, Dec, etc, que fazem tanto o hardware quanto SO, embora exista verses do Linux
para algumas destas plataformas (ex. Sun) no acreditamos no crescimento do Linux neste mercado,
pois estritamente fechado.
Apesar disto, o Linux uma opo sria como sistemas operacional do tipo Unix para o
mundo PC, podemos recomend-lo sem medo de errar, se sua empresa ou aplicao precisar de um
sistema com as caractersticas do Unix, voc possue mquinas Intel ou compatveis, pode utillizlo a melhor opo hoje e com grandes possibilidades de crescimento nesta faixa de mercado.

Apndices
A - Comandos bsicos do sistema UNIX
Principais comandos - ordem albabtica
Comandos em Unix possuem algumas caractersticas particulares. Eles podem ser
controlados por opes e devem ser digitados em letras minsculas.
1 - cat : Oficialmente usado para concatenar arquivos. Tambm usado para exibir todo o
contedo de um arquivo de uma s vez, sem pausa.
Sintaxe: cat < arquivo1 > < arquivo2 >... < arquivo n >,
onde (arquivo1) at (arquivo n) so os arquivos a serem mostrados. "cat" l cada arquivo em
sequencia e exibe-o na sada padro. Deste modo , a linha de comando:
cat < arquivo >
exibir o arquivo em seu terminal; e a linha de comando :
cat < arquivo1 > < arquivo2 > > < arquivo3 >
concatenar "arquivo1" e "arquivo2", e escrever o resultado em . O smbolo ">", usado para
redirecionar a sada para um arquivo, tem carter destrutivo; em outras palavras, o comando acima
escrever por cima do contedo de < arquivo3 >. Se, ao invs disto, voc redirecionar com o
smbolo ">>", a sada ser adicionada a <arquivo3 >, ao invs de escrever por cima de seu
contedo.
2 - cd : Muda o diretrio de trabalho corrente.
Sintaxe : cd < diretrio >
onde (diretrio) o nome do diretrio para o qual voc deseja mudar. O smbolo "." refere-se ao
diretrio corrente e o smbolo ".." refere-se ao "diretrio-pai". Para mover para um "diretrio-pai",
ou seja, um diretrio acima do que voc est, use o comando :
cd ..
( Note o espao entre "cd" e ".." )
Voc tambm pode usar nomes-de-caminho (pathnames) como argumento para o comando cd. Por
exemplo :
cd /diretorio1/diretorio2

o posicionar diretamente em "diretrio2". O uso de "cd" sem nenhum argumento far com que
voc retorne para o seu "home-directory" .
3 - chgrp : Modifica o grupo de um arquivo ou diretrio.
Sintaxe: chgrp [-f] [-h] [-R] gid nome-do-arquivo
"chgrp" modifica o identificador de grupo ("group ID" , gid) dos arquivos passados como
argumentos.
"gid" pode ser um nmero decimal especificando o group id, ou um nome de grupo encontrado no
arquivo "/etc/group". Voc deve ser o proprietrio do arquivo, ou o super-usurio, para que possa
utilizar este comando.
Opes
Sada
-f
Esta opo no reporta erros
-h
Se o arquivo for um link simblico, esta opo modifica o grupo do link simblico. Sem esta
opo, o grupo do arquivo referenciado pelo link simblico modificado.
-R
Esta opo recursiva."chgrp" percorre o diretrio e os subdiretrios, modificando o GID
medida em que prossegue.
4 - chmod : Modifica as permisses de um arquivo ou diretrio.Voc deve ser o proprietrio de
um arquivo ou diretrio, ou ter acesso ao root, para modificar as suas permisses.
Sintaxe : chmod permisses nome_do_arquivo
onde :
permisses - indica as permisses a serem modificadas;
nome - indica o nome do arquivo ou diretrio cujas permisses sero afetadas.
As permisses podem ser especificadas de vrias maneiras. Aqui est uma das formas mais
simples de realizarmos esta operao :
1- Use uma ou mais letras indicando os usurios envolvidos:
. u (para o usurio)
. g (para o grupo)
. o (para "outros")
. a (para todas as categorias acima)
2- Indique se as permisses sero adicionadas (+) ou removidas (-).
3- Use uma ou mais letras indicando as permisses envolvidas :
. r (para "read") (ler)
. w (para "write") (escrever)
. x (para "execute") (executar)

Exemplo : No exemplo a seguir, a permisso de escrita ("write") adicionada ao diretrio "dir1"


para usurios pertencentes ao mesmo grupo. (Portanto, o argumento "permisses" g+w e o
argumento "nome" dir1).
$ ls -l dir1
drwxr-xr-x 3 dir1
1024 Feb 10 11:15 dir1
$ chmod g+w dir1
$ ls -l dir1
drwxrwxr-x 3 dir1 1024 Feb 10 11:17 dir1
$
Como voc pde verificar, o hfen (-) no conjunto de caracteres para grupo foi modificado
para "w" como resultado deste comando.
Quando voc cria um novo arquivo ou diretrio, o sistema associa permisses
automaticamente. Geralmente, a configurao "default" (assumida) para os novos arquivos :
-rw-r--r-e para novos diretrios :
drwxr-xr-x
5 - chown : Modifica o proprietrio de um arquivo ou diretrio.
Sintaxe: chown [-fhR] (proprietrio) (nome-do-arquivo)
O argumento "proprietrio" especifica o novo proprietrio do arquivo.Este argumento deve
ser ou um nmero decimal especificando o userid do usurio ou um "login name" encontrado no
arquivo "/etc/passwd".
Somente o proprietrio do arquivo ( ou o super-usurio ) pode modificar o proprietrio deste
arquivo.
Opces
Sada
-f
Esta opo no reporta erros.
-h
Se o arquivo for um link simblico, esta opo modifica o proprietrio do link simblico. Sem
esta opo, o proprietrio do arquivo referenciado pelo link simblico modificado.
-R
Esta opo recursiva."chown" percorre o diretrio e os subdiretrios, modificando as
propriedades medida em que prossegue.
6 - cp : Copia arquivos para um outro arquivo ou diretrio.
Sintaxe: cp (arquivo1) (arquivo2) ... (arquivo n) (destino)
onde (arquivo1) at (arquivo n) so os arquivos a serem copiados, e (destino) o arquivo ou
o diretrio para onde os arquivos sero copiados. O(s) arquivo(s) fonte(s) e o (destino) no podem
ter o mesmo nome. Se o arquivo-destino no existe, "cp" criar um arquivo com o nome
especificado em . Se o arquivo-destino j existia antes e no for um diretrio, "cp" escrever o novo
contedo por cima do antigo.

Exemplo : $ cp -r temp temp1


Este comando copia todos os arquivos e subdiretrios dentro do diretrio temp para um novo
diretrio temp1. Esta uma cpia recursiva, como designado pela opco -r. Se voc tentar copiar
um diretrio sem utilizar esta opco, voc ver uma
mensagem de erro.
7 - du : Exibe o espao ocupado de um diretrio e de todos os seus subdiretrios, em blocos de
512 bytes; isto , unidades de 512 bytes ou caracteres..
"du" mostra a utilizao do disco em cada subdiretrio.

8 - date : Exibe a data configurada no sistema.


O comando "date",a nvel de usurio, exibe na tela a data configurada no sistema. Ele pode
se usado com opes mostram a data local ou data universal GMT - Greenwich Mean Time. A
configurao dos dados deste comando s podem se realizadas pelo super-usurio.
Para exibir a data local, basta executar "date". Caso queira a data GMT utilize a opo "-u".
Veja:
%date
Wed Jan 8 12:05:57 EDT 1997
Aqui a data exibida em 6 campos que representam o dia da semana abreviado, o ms do ano
abreviado, o dia do ms, a hora disposta em horas/minutos/segundos, a zona horria e o ano.
9 - file : Exibe o tipo de um arquivo.
Alguns arquivos, tais como arquivos binrios e executveis, no podem ser visualizados na
tela. O comando "file" pode ser til se voc no tem certeza sobre o tipo do arquivo. O uso do
comando permitir a visualizao do tipo do arquivo.
Exemplo :

$file copyfile
copyfile: ascii text

10 - grep : Exibe todas as linhas, dos arquivos especificados, que contm um certo padro.
O comando "grep" exibe todas as linhas, dos arquivos nomeados, que so iguais ao padro
especificado.
Sintaxe:
grep [padro] <arquivo_1> <arquivo_2> ... <arquivo_n>
onde [padro] uma expresso regular, e "arquivo_1" at "arquivo_n" so os arquivos nos quais
a procura ser feita.

Por exemplo, o comando


grep trabalho /trabalho/unix/grep.html
mostrar todas as linhas no arquivo /trabalho/unix/grep.html que contm o padro "trabalho".
11 - ls : Exibe informaes sobre arquivos nomeados e diretrios, usado para visualizar o
contedo de um diretrio.
Sintaxe: ls (diretrio)[opes]
Quando executado sem qualquer parmetro, mostra o contedo do diretrio corrente.Assim, a linha
de comando:
$ ls
mostra o contedo do diretrio corrente naquele momento.Como na maioria dos comandos UNIX,
"ls" pode ser controlado por opes que comeam com um hfen (-). Tenha sempre o cuidado de
deixar um espao antes do hfen. Uma opo bastante til -a (que vem do ingls 'all', tudo), e ir
mostrar detalhes que voc nunca imaginou sobre o seu diretrio. Por exemplo:
$ cd
$ ls -a
Digitando estes comandos em sequncia, o sistema vai para o seu home directory, atravs do
comando cd e em seguida mostra o contedo do mesmo, que ser exibido da seguinte forma:
.
.bacshrc
..
.emacs
.bash_history
.exrc

.fvwmrc
.xinitrc

Aqui, o ponto simples refere-se ao diretrio corrente, e o ponto duplo refere-se ao diretrio
imediatamente acima dele. Mas o que so estes outros arquivos que se iniciam com um ponto? Eles
so chamados arquivos escondidos. A colocao do ponto na frente de seus nomes os impede de
serem mostrados durante um comando "ls" normal.
Outra opo bastante utilizada -l (que vem do ingls "long"). Ela mosta informao extra
sobre os arquivos . Assim, o comando:
$ ls -l
mostra, alm do contedo do diretrio, todas os detalhes sobre cada arquivo pertencente a ele. Por
exemplo, suponha que voc tenha executado este comando e na tela apareceu algo assim:
-rw-r--r-- 1 xyz users 2321
-rw-r--r-- 1 xyz users 14567
drwxr-xr-x 2 xyz users 1024
drwxr-xr-x 3 xyz users 1024

Mar 15 1994 Fontmap


Feb 3 1995 file003
Apr 23 1995 Programs
Apr 30 1995 bitmaps

Lendo da esquerda para direita, este primeiro caracter indica se o arquivo um diretrio ( d )
ou um arquivo comum (-). Em seguida temos as permisses de acesso ao arquivo, sendo as trs
primeiras referentes ao proprietrio, as seguintes ao grupo e, por ltimo, aos demais usurios.

A segunda coluna desta listagem mostra o nmero de links que o arquivo possui.
A terceira coluna mostra o proprietrio do referido arquivo, neste caso, o usurio cujo user
name "xyz".
Na prxima coluna mostrado o grupo ao qual pertence o proprietrio do arquivo ( no
exemplo temos o grupo users). Na quinta coluna temos o tamanho do arquivo em bytes.
Por fim, na sexta e stima colunas, temos a data da ltima modificao feita no arquivo e o
nome do mesmo, respectivamente. Vale lembrar que vrias opes podem ser usadas de forma
composta. Por exemplo, podemos executar o comando:
$ ls -la
e este mostrar todos os detalhes que as opes -l e -a dispem.
12 - man : Exibe uma pgina do manual interno do Unix, para um dado comando ou ou
recurso (isto , qualquer utilitrio do sistema que no seja comando, por exemplo, uma funo
de biblioteca). como um "help" interno ao sistema.
Sintaxe :
man <comando>
onde "comando" e o nome do comando ou recurso que se deseja obter a ajuda.
13 - mkdir : Cria usado para a criao de novos diretrios.
Sintaxe : mkdir (diretrio 1) (diretrio 2) ...(diretrio n)
onde (diretrio 1) at (diretrio n) so os diretrios a serem criados.
As entradas padro em um diretrio (por exemplo, os arquivos ".", para o prprio diretrio, e ".."
para o diretrio pai ) so criadas automaticamente. A criao de um diretrio requer permisso de
escrita no diretrio pai.
O identificador de proprietrio (owner id), e o identificador de grupo (group id) dos novos
diretrios so configurados para os identificadores de proprietrio e de grupo do usurio efetivo,
respectivamente.
* Opes:
-m (mode)
Esta opo permite aos usurios especificar o modo a ser usado para os novos diretrios.
-p
Com esta opo, mkdir cria o nome do diretrio atravs da criao de todos os diretrios-pai no
existentes primeiro.
Exemplo:
mkdir -p diretrio 1/diretrio 2/diretrio 3
cria a estrutura de subdiretrios "diretrio 1/diretrio 2/diretrio 3".

14 - more : Exibe o contedo de arquivos nomeados, fazendo pausas a cada tela cheia.
Ele exibe um arquivo, uma tela cheia de cada vez, fazendo normalmente uma pausa aps
cada tela cheia, quando exibe "--More-- " na parte de baixo da tela.
Ao teclar-se (Enter), more ir exibir uma linha a mais; ele exibe outra tela cheia ao teclar-se
o caracter "espao". O caracter "b" faz com que "more" exiba a tela anterior. O caracter "q" provoca
a parada de execuo do comando more.
Sintaxe: more (arquivo 1) (arquivo 2) ... (arquivo n)
onde (arquivo 1) at (arquivo n) so os arquivos a serem exibidos.
Pode-se procurar por uma palavra (ou uma cadeia de caracteres) em um arquivo. Para isso,
pressione o caracter "/", digite a palavra (ou a cadeia de caracteres),e tecle (Enter).
* Opes:
-c
Limpa a tela antes de exibir o contedo do arquivo. Esta opo ignorada se o terminal no
tem a abilidade para limpar at o final de uma linha.
15 - mv : Move arquivos para um outro arquivo ou diretrio.
O comando "mv" utilizado para mover arquivo(s) para outro arquivo ou diretrio. Este
comando faz o equivalente a uma cpia seguida pela deleo do arquivo original. Pode ser usado
para renomear arquivos.
Sintaxe: mv (arquivo 1) (arquivo 2) ... (arquivo n) (destino)
onde (arquivo 1) at (arquivo n) so os arquivos a serem movidos, e (destino) o arquivo ou o
diretrio para onde os arquivos sero movidos.
Se (destino) no for um diretrio, somente um arquivo dever ser especificado como fonte.
Se for um diretrio, mais de um arquivo poder ser especificado.
Se (destino) no existir, "mv" criar um arquivo com o nome especificado. Se (destino)
existir e no for um diretrio, seu contedo ser apagado e o novo contedo ser escrito no lugar do
antigo. Se (destino) for um diretrio, o(s) arquivo(s) ser(o) movido(s) para este diretrio.
Os arquivos "fonte" e "destino" no precisam compartilhar o mesmo diretrio pai.
*Opes:
-i
Com esta opo, "mv" ir perguntar a voc se permitido escrever por cima do contedo de um
arquivo destino existente.
Uma resposta "y" (yes = sim) significa que a operao poder ser executada. Qualquer outra
resposta impedir que "mv" escreva por cima do contedo de um arquivo j existente.
Exemplo: $ pwd
/home/usurio1/temp

$ ls
teste
$ mv teste ../temp1
$ ls ../temp1
teste
Neste exemplo, o diretrio teste foi movido de temp para temp1 com o comando "mv".
16 - passwd : Modifica a senha pessoal.
Para garantir a segurana do sistema, o sistema Unix requer o uso de uma senha. Se voc
achar que algum utilizou sua conta sem permisso, mude sua senha imediatamente.
Algumas dicas para a escolha da senha:

Escolha uma senha que voc possa lembrar sem a necessidade de escrever.
A sua password deve ter ao menos seis caracteres e deve conter pelo menos um nmero.
No use seu prprio nome ou suas iniciais.
No use nomes de animais ou objetos relacionados a seu interesse.
Se voc tem mais de uma conta, no use a mesma senha para todas as contas.
O comando "passwd" utilizado para modificar a senha pessoal.
A seguir esto os passos que acontecem quando "passwd" utilizado:
$ passwd
Changing password for (nome-do-usurio)
Old password:
New password:
Retype new password:
$

-> Quando o sistema pedir "Old Password:" , digite sua senha atual.
Se nenhuma senha estiver associada a sua conta, o sistema ir omitir este prompt. Note que
o sistema no mostra a senha que voc digita na tela. Isto previne que outros usurios descubram
sua senha.
-> Quando o sistema pedir "New Password:", digite sua nova senha.
-> O ltimo prompt , "Retype new password", pede que voc digite a nova senha novamente.
Se voc no digitar a senha da mesma maneira em que digitou da primeira vez, o sistema se
recusa a modificar a senha e exibe a mensagem "Sorry".
17 - pwd : Exibe o diretrio corrente.
Este comando utilizado para exibir o seu diretrio corrente no sistema de arquivos.

18 - rm : Este comando utilizado para apagar arquivos. importante lembrar que quando os
arquivos so apagados, no sistema Unix, impossvel recuper-los.
Sintaxe: rm (arquivo 1) (arquivo 2) ... (arquivo n)
onde (arquivo 1) at (arquivo n) so os arquivos a serem apagados.
Se um arquivo no possuir permisso de escrita e a sada-padro for um terminal, todo o
conjunto de permisses do arquivo ser exibido, seguido por um ponto de interrogao. um
pedido de confirmao. Se a resposta comear com "y" ("yes" = sim), o arquivo ser apagado, caso
contrrio ele ser mantido no sistema.
Quando voc apaga um arquivo com o comando "rm", voc est apagando somente um link
(ligao ou entrada) para um arquivo. Um arquivo somente ser apagado verdadeiramente do
sistema quando ele no possuir mais nenhuma ligao para ele, isto , nenhum link referenciando-o.
Geralmente, arquivos possuem somente um link, portanto o uso do comando "rm" ir apagar o(s)
arquivo(s). No entanto, se um arquivo possuir muitos links, o uso de "rm" ir apagar somente uma
ligao; neste caso, para apagar o arquivo, necessrio que voc apague todos os links para este
arquivo.
Voc pode verificar o nmero de links que um arquivo possui utilizando o comando ls, com
a opo "-l".
*Opes:
-f
Remove todos os arquivos (mesmo se estiverem com proteo de escrita) em um diretrio
sem pedir confirmao do usurio.
-i
Esta opo pedir uma confirmao do usurio antes de apagar o(s) arquivo(s)
especificado(s).
-r
Opco recursiva para remover um diretrio e todo o seu contedo, incluindo quaisquer
subdiretrios e seus arquivos.
-> CUIDADO : diretrios e seus contedos removidos com o comando "rm -r" no podem ser
recuperados.
19 - rmdir : utilizado para apaga diretrios vazios.
Sintaxe: rmdir (diretrio 1) (diretrio 2) ... (diretrio n)
onde (diretrio 1) at (diretrio n) so os diretrios a serem apagados.
O comando "rmdir" se recusa a apagar um diretrio inexistente, exibindo a mensagem:
rmdir : (nome-do-diretrio) : No such file or directory
Quando usar "rmdir", lembre-se que o seu diretrio de trabalho corrente no pode estar

contido no(s) diretrio(s) a ser(em) apagado(s). Se voc tentar remover seu prprio diretrio
corrente, ser exibida a seguinte mensagem:
rmdir : . : Operation not permited
Se o diretrio o qual voc deseja remover no estiver vazio, utilize o comando "cd" para
acessar os arquivos dentro do diretrio, e ento remova estes arquivos utilizando o comando "rm".
Opes:
-p
Permite aos usurios remover o diretrio e seu diretrio pai, o qual se torna vazio. Uma
mensagem ser exibida na sada padro informando se o caminho ("path") inteiro foi removido ou
se parte do caminho persiste por algum motivo.
-> CUIDADO : diretrios removidos com o comando "rmdir" no podem ser recuperados!
20 - touch : atualiza o ltimo tempo de acesso e/ou modificaco de um arquivo.
Um arquivo vazio ser criado se o nome especificado ainda no existir.
Sintaxe: touch [opces] [mmddhhMM[yy]] nome-do-arquivo
sendo :

mm ms
dd dia
hh hora
MM minuto
yy ano (ltimos dois dgitos)

Se no for especificada nenhuma data, a data atual ser utilizada.


*Opces:
-a
Atualiza somente o tempo de acesso respectivo.
-m
Atualiza somente o tempo de modificaco.
-c
Previne a criaco de um arquivo se ele no existia anteriormente.
-> As opes default so : -am.
Fonte: Universidade Federal de Gois, Instituto de Informtica, home-page do
de Apoio ao Usurio Internet (http://www.dei.ufg.br/~apoio/unix.html)

Projeto

B - Perguntas Freqentemente Colocadas na Linux-BR (FAQ)

Original de Maio - 1996, Ian Jackson <ijackson@gnu.ai.mit.edu>


Verso em portugus mantida por Alfredo K. Kojima <kojima@inf.ufrgs.br>
Esta a lista de perguntas freqentemente colocadas (FAQ) sobre Linux, o Unix gratuito para
386/486/586 [Veja P1.1 para mais informaes]. Leia-a juntamente com os documentos HOWTO,
disponveis em:
ftp.funet.fi (128.214.6.100) : /pub/OS/Linux/doc/HOWTO
tsx-11.mit.edu (18.172.1.2) : /pub/linux/docs/HOWTO
sunsite.unc.edu (152.2.22.81) : /pub/Linux/docs/HOWTO
e em outros espelhos -- veja P2.5 "Onde pego material sobre Linux por FTP?".
Veja P2.1 "Onde eu pego os HOWTOs e outra documentao?" para uma lista dos HOWTOs e
outras informaes. O INFO-SHEET e META-FAQ, disponveis no mesmo lugar, tambm indicam
outras fontes de informaes sobre Linux.
Este documento baseia-se no LINUX FREQUENTLY ASKED QUESTIONS WITH ANSWERS,
mantida por Ian Jackson<ijackson@gnu.ai.mit.edu>. Alm da traduo completa
do documento original em ingls, ela contm perguntas freqentes na lista de discusses Linux-BR
[Veja Quais so as listas de discusses sobre Linux?
para obter informaes sobre como assinar a lista]
Os documentos do Linux Documentation Project esto em sunsite.unc.edu em
/pub/Linux/docs/LDP. Esses documentos (existem mais em preparao) so indispensveis para os
novatos ou para serem usados como referncia.
Por favor, d uma olhada nesses documentos e neste FAQ, especialmente em P12.1 "Vocs ainda
no responderam minha pergunta!", antes de enviar sua pergunta a um grupo de discusso ou
Linux-BR.
Veja P13.2 Formatos em que este FAQ est disponvel para detalhes de onde pegar as versoes em
PostScript, HTML (WWW) e ASCII puro deste documento, bem como a verso original em ingls
em diversos formatos.
Uma nova verso deste documento ser criada mensalmente. Se esta cpia tiver mais de um ms,
ela pode estar desatualizada.

ndice
Seo 1. Introduo e Informaes Gerais
P1.1 O que Linux?
P1.2. Que programas ele suporta?
P1.3. Ele roda no meu micro? Que hardware ele suporta?
P1.4. Para quais plataformas ele foi portado?
P1.5. De quanto espao em disco ele precisa?
P1.6. O Linux est em Domnio Pblico? Tem Copyright?
Seo 2. Material na Rede e outros Recursos
P2.1. Onde pego os HOWTOs e outra documentao?
P2.2. O que tem na World Wide Web sobre Linux?
P2.3. Que grupos de discusso (newsgroups) sobre Linux existem?
P2.4. Como instalo o Linux?
P2.5. Onde eu pego material sobre Linux por FTP?
P2.6. Eu no tenho acesso a FTP. Como eu consigo o Linux?
P2.7. Eu nao tenho acesso Usenet. Onde consigo informaes?
P2.8. Quais so as listas de discusso sobre Linux?
P2.9. Os newsgroups so arquivados em algum lugar? (inclui Linux-BR)
Seo 3. Compatibilidade com outros sistemas operacionais
P3.1. Eu posso instalar o Linux junto com o DOS? OS/2? 386BSD? Win95?
P3.2. Como eu acesso arquivos na minha partio DOS ou em disquetes?
P3.3. Eu posso usar drives do DOS com Stacker/Double Space/etc?
P3.4. Eu posso acessar parties HPFS do OS/2 no Linux?
P3.5. Eu posso acessar sistemas de arquivos como o FFS do BSD, UFS do SysV, Mac, Amiga
etc?
P3.6. Eu posso rodar programas do Microsoft Windows no Linux?
P3.7. Como eu posso iniciar o Linux a partir do Boot Manager do OS/2?
P3.8. Como eu fao para usar a mesma partio de swap no Windows e no
Linux?
Seo 4. O tratamento do Linux para sistemas de arquivos, discos e unidades
de disco.
P4.1. Como posso fazer o Linux funcionar com meu disco "grande" de mais
de 1024 cilindros lgicos?
P4.2. Como posso reaver (undelete) arquivos apagados?
P4.3. H algum desfragmentador para ext2fs e outros sistemas de
arquivos?
P4.4. Como posso formatar um disquete e criar nele um sistema de
arquivos?
P4.5. Estou recebendo mensagens estranhas sobre "inodes", "blocks", e
coisas desse gnero.
P4.6. Minha rea de paginao (swap) no funciona.
P4.7. Como posso desinstalar o LILO e voltar a reiniciar meu sistema
pelo DOS?

P4.8. Porque no posso usar fdformat, exceto como root?


P4.9. H algum produto como Stacker ou Doublespace para Linux?
P4.10. Minhas parties ext2fs so verificadas toda vez que reinicio o
sistema.
P4.11. Meu sistema de arquivos principal est "read-only"!
P4.12. Tem um arquivo /proc/kcore enorme! Posso apag-lo?
P4.13. Minha controladora AHA1542C no funciona com Linux.
Seo 5. Portando, compilando e obtendo programas
P5.1. Como porto XXX para Linux?
P5.2. O que ld.so e onde posso obt-lo?
P5.3. Algum j portou / compilou / escreveu XXX para Linux?
P5.4. possvel usar um programa ou compilador compilado para um 486
em um 386?
P5.5. O que gcc -O6 faz?
P5.6. Onde esto <linux/*.h> e <asm/*.h>?
P5.7. Eu recebo erros quando tento compilar o kernel
P5.8. Como fao uma bilioteca dinmica?
P5.9. Meus executveis so (muito) grandes.
P5.10. O Linux suporta "threads" ou processos "lightweight"?
P5.11. Onde posso obter `lint' para Linux?
Seo 6. Solues para problemas comuns diversos.
P6.1. free no funciona.
P6.2. Meu relgio est totalmente errado.
P6.3. Scripts setuid parecem no funcionar.
P6.4. A memria livre mostrada pelo free fica diminuindo.
P6.5. Linux fica muito lento quando coloco mais memria.
P6.6. Alguns programas (xdm) no me deixam "logar".
P6.7. Alguns programas me deixar "logar" sem senha.
P6.8. Minha mquina roda muito lentamente quando eu executo GCC / X /
...
P6.9. Eu s consigo me "logar" como root.
P6.10. Minha tela est cheia de caracteres esquisitos ao invs de
letras.
P6.11. Houve um desastre em meu sistema e no consigo me logar para
consert-lo.
P6.12. Descobri uma falha de segurana enorme no rm!
P6.13. lpr e/ou lpd no esto funcionando.
P6.14. A hora dos arquivos de parties msdos esto gravados
incorretamente.
P6.15. Como fao o LILO carregar o arquivo vmlinux?
Seo 7. Como fao isso ou aquilo...?
P7.1. Como fao para rolar a tela para cima em modo texto?
P7.2. Como troco de console virtual? Como os habilito?
P7.3. Como configuro o timezone (fuso-horrio)?
P7.4. Que verso de Linux e que mquina estou usando?
P7.5. Como posso habilitar ou desabilitar core dumps?

P7.6. Como atualizo/recompilo meu kernel?


P7.7. Posso ter mais de 3 portas seriais compartilhando interrupes?
P7.8. Como fao um disquete inicializvel?
P7.9. Como remapeio meu teclado para portugus, francs etc.
P7.10. Como fao para deixar o NUM LOCK ligado por default?
P7.11. Como posso ter mais de 128Mb de swap?
P7.12* Como fao para obter acentuao no Linux?
Seo 8. Perguntas respondidas e informaes diversas.
P8.1. Como programo XYZ no Linux?
P8.2. O que esse tal de ELF?
P8.3. O que so arquivos .gz? E .tgz? E ...?
P8.4. O que significa VFS?
P8.5. O que um BogoMip?
P8.6. O que o Linux Journal e onde posso consegui-lo?
P8.7. Quantas pessoas usam Linux?
P8.8. Como se pronuncia Linux?
Seo 9. Mensagens de erro freqentemente encontradas
P9.1. "Unknown terminal type linux" e semelhantes
P9.2. Durante a "linkagem" aparecem Undefined symbol _mcount
P9.3. lp1 on fire
P9.4. INET: Warning: old style ioctl(IP_SET_DEV) called!
P9.5. ld: unrecognized option '-m486'
P9.6. GCC diz Internal compiler error
P9.7. make diz Error 139
P9.8. shell-init: permission denied quando me logo.
P9.9. No utmp entry. You must exec ... quando me logo.
P9.10. Warning - bdflush not running
P9.11. Warning: obsolete routing request made.
P9.12. EXT2-fs: warning: mounting unchecked filesystem
P9.13. EXT2-fs warning: maximal count reached
P9.14. EXT2-fs warning: checktime reached
P9.15. df diz Cannot read table of mounted filesystems
P9.16. fdisk says Partition X has different physical /logical...
P9.17. fdisk: Partition 1 does not start on cylinder boundary
P9.18. fdisk diz partition n has an odd number of sectors
P9.19. mtools diz cannot initialise drive XYZ
P9.20. Memory tight no comeo da inicializao
P9.21. You don't exist. Go away.
Seo 10. O Sistema de Janelas X
P10.1. O Linux suporta X Windows?
P10.2. Onde posso conseguir um XF86Config para meu sistema?
P10.3. Logins pelo "xterm" aparecem de forma estranha em who, finger
etc.
P10.4. No consigo fazer o X Windows funcionar
P10.5* O X tem suporte para TGUI9xxx / Diamond Stealth / ... ?

Seo 11. Perguntas aplicveis a programas muito antigos


P11.1. Emacs s faz core dump
P11.2. fdisk diz cannot use nnn sectors of this partition
P11.3. GCC algumas vezes usa quantidades enormes de memria virtual e
quebra
P11.4. Meu teclado fica todo esquisito quando troco de VCs.
Seo 12. Como conseguir mais ajuda
P12.1. Vocs ainda no respondero minha pergunta.
P12.2. O que colocar em pedido de ajuda.
P12.3. Quero mandar e-mail a algum sobre meu problema.
Seo 13. Informaes administrativas e outros
P13.1. Comentrios so bem-vindos
P13.2. Formatos em que este FAQ disponvel
P13.3. Autores e agradecimentos
P13.4. Copyright e outras informaes legais
Questo 1.1. O que Linux?
Linux um clone do Unix escrito por Linus Torvalds com a assistncia de um
grupo de hackers espalhados pela Internet. Pretende-se que ele conforme com
o padro POSIX.
Ele faz tudo o que voc esperaria de um Unix moderno e completo, incluindo
multi-tarefa real, memria virtual, shared libraries (bibliotecas de
"linkagem" dinmica), carregamento por demanda, redes TCP/IP, alem de nomes
de arquivos com at 255 caracteres, proteo entre processos (crash
protection), suporte a UNICODE etc.
Ele roda principalmente em PCs baseados em 386/486/586, usando recursos de
hardware da famlia de processadores 386 (segmentos TSS etc.) para
implementar essas funes. Ports (verses modificadas para outro sistema)
para outras arquiteturas esto a caminho. [ P1.4. Para quais plataformas ele
foi portado?].
Veja o INFO-SHEET do Linux [ P2.1. Onde pego os HOWTOs e outra documentao?
] para mais detalhes.
O kernel (ncleo do sistema operacional) distribudo sob os termos do GNU
General Public License - veja P1.6. O Linux est em Domnio Pblico? Tem
Copyright? para mais detalhes.
Questo 1.2. Que programas ele suporta?
O Linux tem GCC, Emacs, X-Windows, todos os utilitrios Unix padro, TCP/IP
(inclusive SLIP e PPP) e centenas de outros programas compiladas ou portadas
para ele por diversas pessoas.

Existe um emulador de DOS (veja em tsx-11.mit.edu em


/pub/linux/ALPHA/dosemu) que pode rodar o DOS e algumas (no todos)
aplicaes DOS. H rumores de que agora ele pode rodar o Windows 3.1 em modo
avanado.
Um emulador iBCS2 (Intel Binary Compatibility Standard) para binrios ELF de
SVR4 e COFF de SVR3.2 est em um estgio consideravelmente avanado de
desenvolvimento. Veja o arquivo /pub/linux/BETA/ibcs2/README em
tsx-11.mit.edu.
trabalho no emulador para binrios do MS Windows [ P3.6. Eu posso rodar
programas do Microsoft Windows no Linux? ] esta progredindo;
alternativamente, a equipe do emulador de DOS tem tido sucesso em rodar o
prprio Windows dentro do dosemu - haver um anncio se e quando ele
funcionar.
Para mais informaes leia o INFO-SHEET, que um dos HOWTOs [ P2.1. Onde
pego os HOWTOs e outra documentao? ]. Veja tambm P5.1 Como eu porto XXX
para o Linux?.
Algumas empresas tm software comercial disponvel, incluindo Motif. Eles os
anunciam no grupo comp.os.linux.announce --- tente dar uma olhada nos
repositrios de mensagens [ P2.9. Os newsgroups so arquivados em algum
lugar?].
Questo 1.3. Ele roda no meu micro? Que hardware ele suporta?
Voc precisa de um 386, 486 ou 586, com pelo menos 2Mb de RAM e um drive
para experiment-lo. Para fazer qualquer coisa til, mais RAM (4Mb para
instalar a maioria das distribuies, e 8Mb altamente recomendado para
rodar X) e um disco rgido so necessrios.
VESA local bus e PCI so ambos suportados.
Existem problemas com mquinas que usam MCA (barramento proprietrio da
IBM), principalmente com o controlador de discos. H um pr-lanamento para
desenvolvedores para drives ESDI de PS/2 em invaders.dcrl.nd.edu em
/pub/misc/linux. Alguns controladores SCSI tambm funcionam, pelo que
entendo. Existe trabalho em andamento para criar uma verso adaptada da
distribuio Slackware. Para maiores detalhes tente perguntar para Arindam
Banerji <axb@defender.dcrl.nd.edu> .
Linux roda em Laptops baseados na famlia 386, com X na maioria. Uma pgina
relevante http://www.cs.utexas.edu/users/kharker/linux-laptop/.
Para detalhes de exatamente quais PCs, placas de vdeo, controladores de
disco etc. funcionam, leia o INFO-SHEET e o Hardware HOWTO [ P2.1. Onde pego
os HOWTOs e outra documentao?].
Existe um port do Linux para 8086, conhecido como Embeddable Linux Kernel
Subset (ELKS). Este um subconjunto de 16-bits do kernel do Linux, que ir

ser usado principalmente em embeded systems{?}. Veja


http://www.linux.org.uk/Linux8086 para mais informaoes. Linux jamais rodar
totalmente em um 8086 ou 286, pois ele requer recursos de gerenciamento de
memria e de chaveamento de tarefas no encontrado nesses processadores.
Verses recentes do Linux (1.3.35 e posteriores) suportam mquinas
multiprocessadas (SMP), apesar dele ainda nao estar satisfatoriamente
estvel.
Questo 1.4. Para quais plataformas ele foi portado?
Um projeto para portar o Linux para sistemas baseados na famlia 68000, como Ataris e Amigas,
est em andamento. Ele j tem qualidade beta e tem um servidor X. H uma lista de discusso sobre
linux-680x0 [ P2.8. Quais so as listas de discusso sobre Linux? ] e um FAQ Linux/68K em
http://pfah.informatik.uni-kl.de:8000/pers/jmayer/linux68k-faq e em
ftp://tsx-11.mit.edu/pub/linux/680x0/FAQ;
h
mais
informaes
em
http://wwwusers.informatik.rwth-aachen.de/~hn/linux68k.html. H uma lista de discusses sobre o port do
Atari - mande um mail para majordomo@phil.uni-sb.de com corpo da mensagem contendo somente
subscribe atarix - e uma rea de FTP em ftp.phil.uni-sb.de em /pub/atari/linux.
Existia um projeto para portar o Linux para Macintoshes baseados em 68000, mas sua rea
de FTP desapareceu recentemente e o projeto parece estar abandonado.
Existe um port para o PowerPC. At 7 de julho (95), ele estava bastante precrio e no podia
nem se recompilar, alm de s suportar placas Motorola 1603. Trabalho no Motorola Ultra,
PowerStack, RS/6000 e mquinas NuBus continua. Se voc desejar contribuir ao projeto assine a
lista linux-ppc
[P2.8 Que listas de discusso existem?]. Existe um FAQ em liber.stanford.edu
em /pub/linuxppc/linux-ppc-FAQ e em
http://liber.stanford.edu/linuxppc/linux-ppc-FAQ.html.
A Apple e OSF esto trabalhando em um port do Linux para o PowerMac, baseado
no microkernel Mach da OSF. http://mklinux.apple.com/.
Existe um port para o DEC Alpha/AXP de 64bits. Veja
http://www.azstarnet.com/~ axplinux/. Tambm h uma lista de discusses em
vger.rutgers.edu.
Ralf Baechle est trabalhando em um port para MIPS, inicialmente para o
R4600 em mquinas Deskstation Tyne. O Linux/MIPS FAQ est disponvel em WWW
e na rea do port para MIPS em ftp.waldorf-gmbh.de em /pub/linux/mips Tambm
h um canal no servidor de mail do Linux Activists e uma lista linux-mips [
P2.8. Quais so as listas de discusso sobre Linux? ]. Pessoas interessadas
podem mandar suas perguntas e ofertas de ajuda para linux@waldorf-gmbh.de.
Atualmente existem dois ports do Linux para a famlia ARM de processadores
em andamento; um deles o ARM3, usado no Acorn A5000, e inclui drivers de
I/O para o 82710/11, e o outro para o ARM610, usado no Acorn Risc PC. O
port para o Risc PC est atualmente em estgio mdio, necessitando da
reescrita do cdigo de gerenciamento de memria. O port para o A5000 est em
besta-teste restrito e poder ser lanado em breve. Para informaes mais
recentes cheque comp.sys.acorn.misc, olhe veja no WWW em
http://whirligig.ecs.soton.ac.uk/~rmk92/armlinux.html; se voc quiser
voluntarear contate Martin Ebourn mje@soton.ac.uk

David Miller est trabalhando em um port para o Sparc. Ainda est num
estgio bastante primrio; pessoas dispostas a dedicar bastante tempo e com
acesso a Sparcs para teste devem entrar em contato com
davem@caip.rutgers.edu.
Nenhum dos ports acima poder rodar binrios do Linux/386.
O port Linux para a placa Aleph One 486 foi terminado e parece estvel. Para
maiores detalhes: http://www.ph.kcl.ac.uk/~amb /linux.html
Questo 1.5. De quanto espao em disco ele precisa?
10Mb para uma instalao mnima, o suficiente para experimenta-lo e pouca
coisa mais.
Voc pode espremer uma instalao mais completa com X Windows em 80Mb.
Instalar quase todo o Debian 0.93R6 ocupa uns 500Mb, incluindo algum espao
para arquivos de usurios e reas para spool.
Questo 1.6. O Linux est em Domnio Pblico? Tem Copyright?
O copyright do kernel do Linux pertence a Linus Torvalds. Ele o colocou sob
o GNU General Public License, o que basicamente significa que voce pode
copi-lo livremente, modifica-lo e distribu-lo, mas voc no pode impor
quaisquer restries na sua distribuio e ainda deve deixar o cdigo fonte
disponvel. Isto no o mesmo que domnio pblico (leia o FAQ sobre
copyright que est disponvel em rtfm.mit.edu em
/pub/usenet/news.answers/law/Copyright-FAQ, para detalhes).
Detalhes completos esto no arquivo COPYING nos fontes do kernel do Linux
(provavelmente em /usr/src/linux em seu sistema).
As licensas dos utilitrios e programas que vm com as instalaes so
variadas; muito desse cdigo do projeto GNU da Free Software Foundation, e
tambm est sobre o GPL.
Note que discusses sobre o mrito ou no do GPL devem ser postadas a
gnu.misc.discuss e no para os grupos comp.os.linux.
Questo 2.1. Onde pego os HOWTOs e outra documentao?
D uma olhada nesses lugares, e em outros que os espelham:
ftp.funet.fi (128.214.6.100) : /pub/OS/Linux/doc/HOWTO
tsx-11.mit.edu (18.172.1.2) : /pub/linux/docs/HOWTO
sunsite.unc.edu (152.2.22.81) : /pub/Linux/docs/HOWTO
No Brasil:
linux.if.usp.br (143.107.251.4) :
/pub/mirror/sunsite.unc.edu/pub/Linux/docs/HOWTO
farofa.ime.usp.br (143.107.251.4) : /pub/linux/docs/HOWTO

Para uma lista completa de stios de FTP veja P2.5. Onde eu pego material
sobre Linux por FTP?
Se voc no tem acesso a FTP tente usar servidores de FTP-por-mail em
ftpmail@decwrl.dec.com, ftpmail@doc.ic.ac.uk ou
ftp-mailer@informatik.tu-muenchen.de.
Uma lista completa de HOWTOs est disponvel no arquivo HOWTO.INDEX no
diretrio docs/HOWTO dos stions de FTP, ou na Web em
http://sunsite.unc.edu/mdw/HOWTO/HOWTO-INDEX.html
Esta uma lista (provavelmente incompleta) dos HOWTOs:
Linux INFO-SHEET
Linux META-FAQ
Bootdisk HOWTO
Busmouse HOWTO
CDROM HOWTO
Commercial HOWTO
Cyrillic HOWTO
DOSEMU HOWTO
Danish HOWTO
Distribution HOWTO
ELF HOWTO
Ethernet HOWTO
Firewall HOWTO
Ftape HOWTO
German HOWTO
HAM HOWTO
Hardware HOWTO
Installation HOWTO
JE HOWTO
Kernel HOWTO
MGR HOWTO
Electronic Mail HOWTO
NET-2 HOWTO
NIS HOWTO
News HOWTO
PCI-HOWTO
PCMCIA HOWTO
Portuguese HOWTO
PPP HOWTO
Printing HOWTO
SCSI HOWTO
SCSI Programming HOWTO
Serial HOWTO
Sound HOWTO
Term HOWTO
Tips HOWTO
UPS HOWTO
UUCP HOWTO
XFree86 HOWTO

Outros documentos desses esto sempre em preparao. Se no encontrar a


informao que voc precisa em um destes documentos procure em outros
diretrios prximos nos stios de FTP. Alm destes HOWTOs ainda existem os
mini HOWTOs, no diretrio docs/HOWTO/mini.
O arquivo WRITING contm informaes sobre como escrever um novo HOWTO.
Os HOWTOs so coordenados por Greg Hankins gregh@cc.gatech.edu.
Os livros produzidos pelo Linux Documentation Project esto disponveis em
/pub/Linux/docs/LDP em sunsite.unc.edu. Por favor leia-os se voc for novo
em Unix e Linux. Sobretudo o Installation and Getting Started Guide. Os
livros produzidos at o momento so:
The Linux Documentation Project manifesto
Installation and Getting Started Guide
The Kernel Hacker's Guide
Network Administration Guide
Linux System Administrator's Guide
Questo 2.2. O que tem na World Wide Web sobre Linux?
Matt Welsh mantm Home Page do Linux Documentation Project, em
http://sunsite.unc.edu/mdw/linux.html.
Esta pgina se refere a todos os FAQs e HOWTOs, tanto em formato HTML quanto
em outros.
A pgina da Linux-BR est em http://www.br.freebsd.org/linux-br/index.html.
Ela mantida pelo Eduardo Maan e possui alm de links para outras pginas,
um repositrio de todas as mensagens vinculadas lista e verses
atualizadas deste documento.
Questo 2.3. Que grupos de discusso (newsgroups) sobre Linux existem?
Existem 10 newsgroups Usenet internacionais devotadas ao Linux.
comp.os.linux.announce um grupo de anncios moderado; voc deve l-lo se
pretende usar Linux. Submisses a este grupo devem ser mandadas para
linux-announce@news.ornl.gov.
comp.os.linux.answers Contm todos os FAQs, HOWTOs e outros documentos
importantes. Assine este grupo tambm.
Os outros grupos na hierarquia comp.os.linux.* tambm so recomendados -algums problemas comuns no respondidos neste FAQ podem estar nos
newsgroups. Esses grupos so comp.os.linux.setup, comp.os.linux.hardware,
comp.os.linux.networking, comp.os.linux.x, comp.os.linux.development.apps,
comp.os.linux.development.system, comp.os.linux.advocacy e
comp.os.linux.misc.

Lembre-se que como o Linux um clone do Unix, a maioria do material em


comp.unix.* e comp.windows.x.* sera relevante. Excetuando-se de algumas
consideraes de hardware e algum assunto obscuro ou muito tcnico e de
baixo-nvel, voc achar que esses grupos so o lugar certo para comear.
Por favor leia Vocs ainda no responderam minha pergunta! antes de
postar, e certifique-se de postar no grupo certo -- veja `Welcome to the
comp.os.linux.* hierarchy' que postado a cada duas semanas em
comp.os.linux.announce, comp.os.linux.answers e outros grupos.
Crossposting (mandar a mesma mensagem para mais de um grupo de discusso) em
grupos comp.os.linux.* diferentes raramente uma boa idia.
Podem haver grupos de discusso locais sua instituio ou rea verifique-os antes.
Os grupos comp.os.linux.development, comp.os.linux.admin and
comp.os.linux.help foram substitudos em uma reorganizao de grupos
recente. No os use mais.
Veja tambm P2.7. Eu nao tenho acesso Usenet. Onde consigo informaes?
P2.8. Quais so as listas de discusso sobre Linux?
Questo 2.4. Como instalo o Linux?
Existem vrias "releases" de Linux pr-empacotadas disponveis, incluindo
Debian, Red Hat e Slackware. Cada um contm o software que voc precisa para
rodar Linux, prontos para instalar e usar. Detalhes de quais softwares esto
includos e como instal-los varia de verso a verso.
O Mini-linux e' um pacote pequeno (4 disquetes) -- mas que inclui TCP/IP,
X-Windows e outras coisas -- apropriado para pessoas que querem experimentar
o Linux sem reparticionar seus discos rigidos.
Voce deve ler o Installation HOWTO para mais detalhes em como instalar o
pacote Slackware. O Red Hat e Debian so mais recentes, tm menos bugs e vm
com esquemas de instalao sofisticados, mas no so to populares quanto o
Slackware e no contm uma gama de software to larga.
Todos esses pacotes esto disponveis por FTP annimo em vrios stios de
FTP P2.5. Onde eu pego material sobre Linux por FTP? Tambm existe um garnde
nmero de outros pacotes distribudos menos globalmente, mas atendem melhor
a necessidades locais e nacionais (como suporte melhor
internacionalizao).
Questo 2.5. Onde eu pego material sobre Linux por FTP?
Os trs stios principais de Linux so:
ftp.funet.fi (Finland, 128.214.6.100) : /pub/OS/Linux
sunsite.unc.edu (US, 152.2.22.81) : /pub/Linux

tsx-11.mit.edu (US, 18.172.1.2) : /pub/linux


O melhor lugar para se pegar verses novas de kernels ftp.cs.helsinki.fi
em /pub/Software/Linux/Kernel; Linus Torvalds disponibiliza as verses mais
recentes do kernel nesse lugar.
A distribuio Debian disponvel em ftp.debian.org e a distribuio Red
Hat em ftp.redhat.com
O contedo destes stios so espelhados (copiados, em geral diariamente) por
outros stios. Por favor use um perto de voc -- ser mais rpido para voc
e nais fcil para a rede.
src.doc.ic.ac.uk : /packages/Linux (UK)
sunacm.swan.ac.uk : /pub/Linux (UK)
ftp.ibp.fr : /pub/linux (Frana)
ftp.cc.gatech.edu : /pub/linux (EUA - sudeste: Suranet)
wuarchive.wustl.edu : /systems/linux (EUA)
uiarchive.cso.uiuc.edu : /pub/systems/linux (EUA)
ftp.cdrom.com : /pub/linux (EUA)
ftp.informatik.tu-muenchen.de : /pub/comp/os/linux (Alemanha)
ftp.ibr.cs.tu-bs.de : /pub/os/linux (Alemanha)
ftp.dfv.rwth-aachen.de : /pub/linux (Alemanha)
ftp.informatik.rwth-aachen.de : /pub/Linux (Alemanha)
bond.edu.au : /pub/OS/Linux (Austrlia)
ftp.cc.monash.edu.au : /pub/linux (Austrlia)
ftp.dstc.edu.au : /pub/Linux (Austrlia: Queensland)
ftp.sun.ac.za : /pub/linux (frica do Sul)
ftp.inf.utfsm.cl : /pub/Linux (Chile)
ftp.zel.fer.hr : /pub/Linux (Crocia)
linux.if.usp.br : /pub/mirror/sunsite.unc.edu/Linux alm de outros em
/pub/mirror com a distribuicao Debian.
lcmi.ufsc.br : /pub/diversos/linux (Brasil : Santa Catarina) Slackware
cesar.unicamp.br : /pub3/linux (Brasil : So Paulo) Slackware
ftp.ime.usp.br : /pub/linux (Brasil : So Paulo) Slackware
ftp.ufpr.br : /pub/Linux/ (Brasil : Paran) Slackware
Nem todos eles espelham todo contedo dos stios "originais", e alguns tm
material que os stios "originais" no tm.
Questo 2.6 Eu no tenho acesso a FTP. Como eu consigo o Linux?
O jeito mais fcil talvez achar um amigo com acesso a FTP. Se existir um
Grupo de Usurios de Linux perto de voc, eles podero ajud-lo.
Se voc tiver uma conexo de email razoavelmente boa, voc poderia tentar os
servidores de FTP-por-mail em ftpmail@decwrl.dec.com, ftpmail@doc.ic .ac.uk
ou ftp-mailer@informatik.tu-muenchen.de.
Linux tambm disponvel por correio tradicional em disquetes, CD-ROM e
fita. Installation HOWTO e o arquivo /pub/Linux/docs/distributions em
sunsite.unc.edu, contm informaoes sobre essas distribuies.

Vrias empresas que comercializam CDs do Linux tm pginas na WWW. Eles tm


um preo razovel e despacham para outros pases. Veja em
http://www.ix.de/ix/linux/bookmarks/companies.html para alguns links de
algumas dessas empresas.
Voc ainda pode tentar a lista de BBSs de Zane Healy healyzh@holonet.net que
regularmente postado (dia 1o e 15 de cada ms) em comp.os.linux.announce e
ocasionalmente na Fidonet e RIME UNIX echoes.
Questo 2.7. Eu no tenho acesso Usenet. Onde consigo informaes?
Um resumo do comp.of.linux.announce pode ser obtido mandando e-mail contendo
subscribe para linux-announce-REQUEST@news-digests.mit.edu. Recomenda-se que
voc assine esta lista, pois ela contm informaes importantes e
documentao sobre Linux.
Lembre-se de adicionar -request depois do nome do newsgroup
(linux-anounce-request) para requisitar a sua assinatura. Se -request for
omitido, a sua mensagem ser postada no grupo de discusses.
Questo 2.8 Quais so as listas de discusso sobre Linux?
Os desenvolvedores do Linux usam principalmente o servidor Majordomo em
majordomo@vger.rutgers.edu . Mande uma mensagem com lists no corpo da
mensagem para receber uma lista das listas l; adicione uma linha com help
para receber o arquivo de ajuda do Majordomo, com instrues para inscrio
e desinscrio.
Note que a maioria dessas listas so usadas pelos desenvolvedores do Linux
para falarem sobre assuntos tcnicos e desenvolvimento futuro. Elas no
devem ser usadas para perguntas de usurio novatos.
Existe a lista linux-newbie, onde `nenhuma pergunta idiota demais';
infelizmente parece que poucos usurios experientes a lem. O trfego
bastante baixo.
No Brasil voc pode assinar a Linux-BR mandando um e-mail contendo subscribe
linux-br <seu nome> para listproc@iqm.unicamp.br.
Questo 2.9 Os newsgroups so arquivados em algum lugar? (inclui Linux-BR)
sunsite.unc.edu contm mensagens do comp.os.linux.announce, em
sunsite.unc.edu em /pub/Linux/docs/linux-announce.archive . Eles so
espelhados de /usenet em src.doc.ic.ac.uk.
Existe um repositrio de fcil acesso do comp.os.linux.announce na World
Wide Web em http://www.leo.org/archiv/linux/archiv/ann_index.html.
O repositrio das mensagens da Linux-BR est em
http://www.br.freebsd.org/linux-br/LINUX-BRmails.html

Questo 3.1. Eu posso instalar o Linux junto com o DOS? OS/2? 386BSD? Win95?
Sim. O Linux usa o esquema padro de particionamento do PC, assim ele pode
compartilhar o seu disco com outros sistemas operacionais. No entanto,
muitos desses outros sistemas operacionais so mal feitos: o FDISK e FORMAT
do DOS podem destruir dados em uma partio Linux, porque s vezes eles usam
incorretamente os dados do setor de boot da partio, ao invs da tabela de
partio do disco. Para previnir isso, zere o comeo da partio nova no
Linux, antes de usar o MSDOS ou outra coisa para format-la. Digite:
dd if=/dev/zero of=/dev/hdXY bs=512 count=1
onde hdXY a partio relevante (por ex.: hda1 para a primeira partio do
primeiro disco IDE).
O Linux pode ler e escrever arquivos em parties FAT do DOS e OS/2 e em
disquetes usando o suporte interno do kernel ou o mtools. Existe uma verso
alpha de suporte do kernel para o sistema VFAT usado pelo Widows 95 e
Windows NT; ele est disponvel em
/pub/multimedia/linux/vfat/vfat-0.3.0.tgz. Ele foi integrado ao kernel
padro na verso 1.3.60.
Veja P1.2. Que programas ele suporta? para detalhes e status dos emuladores
de DOS, MS Windows e programas para System V.
Veja tambm P3.5. Eu posso acessar sistemas de arquivos como o FFS do BSD,
UFS do SysV, Mac, Amiga etc?
ftp://sunsite.unc.edu/pub/Linux/docs/howto/mini/Win95+Win+Linux,
ftp://sunsite.unc.edu/pub/Linux/docs/howto/mini/Linux+DOS+Win95+OS2 e
ftp://sunsite.unc.edu/pub/Linux/docs/howto/mini/Linux+OS2+DOS contem
instrucoes especificas sobre instalacao de varios sistemas operacionais em
uma mesma maquina.
Questo 3.2. Como eu acesso arquivos na minha partio DOS ou em disquetes?
Use o filesystem DOS, i.e. digite, por exemplo:
mkdir /dos
mount -t msdos -o conv=text,umask=022,uid=100,gid=100 /dev/hda3 /dos
Se for um disquete, no esquea de umountar ele antes de tir-lo do drive,
ou dados sero perdidos.
Voc pode controlar a aparncia dos arquivos no filesystem no Linux quanto
converso automtica de fim de linha CR/LF para CR, permisses e propriedade
usando conv=text/binary/auto, umask=nnn, uid=nnn e gid=nnn. Se voc montar
seu filesystem DOS colocando-o no /etc/fstab voc pode configurar as opes
trocando o defaults pelas suas opes separadas por vrgulas.
Voc tambm pode usar o `mtools', disponvel tanto em forma binria e em
cdigo fonte nos stios FTP -- veja P2.5. Onde eu pego material sobre Linux

por FTP? Algumas distribuies j vm com ela.


Existe um "patch" para kernel (conhecido como fd-patches), que permitem o
uso de disquetes com nmeros de trilhas e/ou setores diferentes do padro;
esse patch includo na srie 1.1 de kernels em teste alpha.
Questo 3.3. Eu posso usar drives do DOS com Stacker/Double Space/etc?
No de maneira facil. Voc pode acess-los pelo emulador de DOS [P1.2 Que
programas ele suporta?], mas para acess-los no Linux ou pelo mtools mais
difcil. Existe um mdulo para o kernel do Linux que pode ler volumes
comprimidos, mas no pode escrever neles. Procure o pacote ths na
sunsite.unc.edu em /pub/Linux/system/Filesystems
Questo 3.4. Eu posso acessar parties HPFS do OS/2 no Linux?
Sim, mas no momento apenas para leitura. Para us-lo o kernel deve ser
compilado com o suporte para ele habilitado [P7.6. Como atualizo/recompilo
meu kernel? ]. A s mont-lo com o comando mount, por ex.:
mkdir /hpfs
mount -t hpfs /dev/hda5 /hpfs
Questo 3.5. Eu posso acessar sistemas de arquivos como o FFS do BSD, UFS do
SysV, Mac, Amiga etc?
H um filesystem Amiga precrio e em alpha-teste em
/pub/Linux/patches/amigaffs.tar.Z. Mais informaes no arquivo affs-readme
do arquivo tar.
Kernels recentes contm suporte para o UFS no System V, Coherent e Xenix.
Existe suporte do kernel em alpha, por enquanto somente para leitura, para o
UFS do 4.2BSD, em sunsite.unc.edu em /pub/Linux/ALPHA/ufs.
Ainda no existe suporte para o resto.
Questo 3.6. Eu posso rodar programas do Microsoft Windows no Linux?
Ainda no. Existe um projeto, o WINE, para construir um emulador de MS
Windows para o Linux, mas ainda no est disponvel para usurios. No
pergunte sobre ele, a no ser que voc ache que pode contribuir; procure os
relatrios de status em comp.emulators.ms-windows.wine.
No momento, se voc precisar usar algum programa do MS Windows, o melhor
provavelmente rodar o Windows direto sob o DOS. LILO (o bootloader do Linux)
possui um menu para escolher o sistema a entrar --- veja a documentao dele
para mais detalhes.
Questo 3.7. Como eu posso inicializar o Linux pelo Boot Manager do OS/2?

1. Crie uma partio usando o FDISK do OS/2. (No serve o fdisk do Linux).
2. Formate a partio no OS/2, em FAT ou HPFS. Isto para fazer o OS/2
saber que a partio est formatada. (Este passo no necessrio no
OS/2 "warp" 3.0).
3. Adicione a partio no Boot Manager.
4. Inicie o Linux, e crie um sistema de arquivos na partio usando mkfs
-t ext2 ou mke2fs. A essa altura voc pode usar o fdisk do Linux para
trocar o cdigo de tipo da partio para 83 (Linux Native) -- isso pode
ajudar alguns scripts de instalao automtica a achar a partio certa
para usar.
5. Instale o Linux na partio.
6. Instale o LILO na partio -- no o faa no master boot record do disco
rgido. Isso instala o LILO como um bootloader secundrio na partio
do Linux, para carregar o kernel especificado no arquivo de
configurao do LILO. Para isso coloque:
boot = /dev/hda2
(onde /dev/hda2 a partio de onde voc quer "bootar") no seu arquivo
/etc/lilo/config ou /etc/lilo.conf
7. Certifique-se de que a partio do Boot Manager esteja marcada como
ativa, para poder usar o Boot Manager para escolher o que carregar.

Questo 3.8. Como eu fao para usar a mesma partio de swap no Windows e no
Linux?
Veja o Mini-HOWTO de H. Peter Anvin hpa@yggdrasil.com sobre esse assunto na
sunsite.unc.edu em /pub/Linux/docs/HOWTO/mini/Swap-Space.
Questo 4.1. Como posso fazer o Linux funcionar com meu disco "grande" de
mais de 1024 cilindros lgicos?
Se seu disco for uma unidade IDE ou EIDE voc deve ler o arquivo
/usr/src/linux/drivers/block/README.ide (parte do cdigo-fonte do "kernel"
do Linux). Esse README contm vrias sugestes teis sobre unidades de disco
IDE.
Discos SCSI so acessados atravs de nmeros lineares de blocos; o BIOS cria
alguma simulao de cilindros/cabeas/setores "lgicos" para atender ao DOS.
DOS, em geral, no estar em condies de acessar parties que se estendam
alm dos 1024 cilindros lgicos, e ir tornar a iniciao de um "kernel"
Linux a partir dessas parties no mnimo problemtica.
Voc ainda poder usar essas parties para Linux ou quaisquer outros
sistemas operacionais que acessem a controladora de disco diretamente.
Recomendo criar no mnimo uma partio Linux contida inteiramente dentro do

limite de 1024 cilindros lgicos e iniciar o sistema dessa partio; as


outras parties estaro "OK".
Questo 4.2. Como posso reaver (undelete) arquivos apagados?
Em geral, isso muito dificil de conseguir em sistemas Unix em razo da sua
natureza multitarefa. Funes de recuperao esto em desenvolvimento, mas
no espere grandes resultados.
H uns poucos pacotes disponveis que funcionam oferecendo novos comandos
para apagamento (e em alguns casos cpia) que movem os arquivos "apagados"
para um diretrio "lixeira"; esses arquivos podem ser entao recuperados, at
que sejam apagados automaticamente por processos em segundo plano..
Outra alternativa a busca direta na prpria unidade de disco que contm o
sistema de arquivos em questo. Esse um trabalho difcil, e voc precisa
estar como root para isso.
Questo 4.3. H algum defragmentador para ext2fs e outros sistemas de
arquivos?
Sim. H um defragmentador de sistemas de arquivos Linux para ext2, minix e
antigos sistemas de arquivos ext disponvel em sunsite.unc.edu como
system/Filesystems/defrag-0.6.tar.gz.
Usurios do sistema ext2 provavelmente no precisaro de defragmentao pois
ext2 contm cdigo extra para manter a fragmentao reduzida, mesmo em
sistemas de arquivos muito cheios.
Questo 4.4. Como posso formatar um disquete e criar nele um sistema de
arquivos?
Para um disquete de 3,5 polegadas:
fdformat /dev/fd0H1140
mkfs -t ext2 -m 0 /dev/fd0H1140 1440
Para um disquete de 5,25 polegadas use fd0H1200 e 1200, respectivamente.
Para a unidade de disco 'B' use fd1 em lugar de fd0. Detalhes completos do
que se pode fazer com unidades de disco flexvel podem ser encontrados na
Lista de Dispositivos Linux (Linux Device List) [ P2.1. Onde pego os HOWTOs
e outra documentao? ]. Voc pode precisar 'rodar' mk2efs diretamente em
lugar de mkfs -t ext2. A opo -m 0 diz a mkfs.ext2 para no reservar espao
no disco para o superusurio -- habitualmente os 10% finais so reservados
para ele. O primeiro comando formata o disquete em baixo nivel (ou
fisicamente); o segundo cria um sistema de arquivos vazio nele. Depois de
fazer isso voc pode montar o disquete como um disco rgido e simplesmente
usar cp e mv em arquivos etc.
Questo 4.5. Estou recebendo mensagens estranhas sobre "inodes", "blocks", e
coisas desse gnero.

Voc provavelmente tem um sistema de arquivos corrompido, talvez provocado


por no se preparar o Linux da maneira adequada antes de desligar o
computador ou reinici-lo. Voc precisa de um programa 'shutdown' recente
para fazer isso -- por exemplo, aquele includo no pacote 'util-linux',
disponvel em sunsite e tsx-11.
Se voc tiver sorte, o programa fsck (ou e2fsck ou xfsck como for adequado,
se voce no possui o 'front-end' automtico para fsck) ter condies de
reparar seu sistema de arquivos; caso contrrio, o sistema de arquivos
estar destrudo, e voc ter de reinici-lo com mkfs (ou mke2fs, mkxfs
etc.) e restaur-lo do 'backup'.
Note bem: no tente verificar um sistema que est montado como sendo de
leitura e escrita -- isso inclui a partio da raiz -- se voc no v
VFS: mounted root ... read-only
no momento da iniciao do sistema.
Questo 4.6. Minha rea de paginao (swap) no funciona.
Quando voc d partida ao sistema (ou ativa a paginao manualmente) voc
deve ver
Adding Swap: NNNNk swap-space
Se voc no v qualquer mensagem, provavelmente est faltando swapon -av (o
comando para ativar a paginao) em seu arquivo /etc/rc.local ou /etc/rc.d/*
(os 'scripts' de iniciao do sistema) ou voc esqueceu de colocar a entrada
correta em /etc/fstab:
/dev/hda2

none

swap

sw

por exemplo.
Se voc v
Unable to find swap-space signature
voc esqueceu de usar mkswap. Veja a pgina do man(ual) para detalhes;
mkswap funciona de maneira anloga ao mkfs.
Verifique o documento Ins tallation HOWTO para instrues detalhadas para se
configurar uma rea de paginao (swap).
Questo 4.7. Como posso desinstalar LILO e voltar a reiniciar meu sistema
pelo DOS?
Se voc est utilizando DOS (MS-DOS 5.0 ou posterior, ou OS/2), digite FDISK
/MBR (o que no est documentado). Isso vai restaurar um 'Master Boot
Record' padro do MS-DOS. Se voc tem DR-DOS 6.0, acione FDISK da maneira

habitual e selecione a opo 'Re-Write Master Boot Record'.


Se voc no tem DOS 5 ou DR-DOS, vai precisar do setor de 'boot' original
que LILO salvou quando voc o instalou pela primeira vez. Voc guardou
aquele arquivo, no ? E provavelmente chamado boot.0301 ou algo assim.
Digite
dd if=boot.0301 of=/dev/hda bs=512 count=1
(ou sda se voc est utilizando um disco SCSI). Isso pode tambm destruir
sua tabela de parties, portanto, cuidado! Se voc est desesperado, pode
usar
dd if=/dev/zero of=/dev/hda bs=512 count=1
o que ir apagar seu setor de 'boot' e sua tabela de parties
completamente; voc pode ento reformatar o disco usando o formatador de sua
preferncia; entretanto, isso tornar o contedo dos seus discos inacessvel
-- voc vai perder tudo, a menos que seja um 'expert'.
Note que o MBR do DOS inicia qualquer (nica!) partio que esteja marcada
como ativa: voc pode precisar usar fdisk para ligar e desligar as marcas de
ativa das parties convenientemente.
Questo 4.8. Porque no posso usar fdformat, exceto como root?
A chamada de sistema necessria para formatar um disco flexvel somente pode
ser acionada pelo usurio root, quaisquer que sejam as permisses de
/dev/fd0*. Se voc quiser que qualquer usurio pssa formatar um disco
flexvel, tente conseguir o programa fdformat2; ele contorna os problemas
por ser 'setuid' para root.
Questo 4.9 H algum produto como Stacker ou Doublespace para Linux?
No presente, nenhum dos sistemas de arquivos Linux pode fazer compresso.
H um programa chamado Zlibc que permite a aplicaes existentes ler
transparentemente arquivos comprimidos ('GNU-zipped') como se eles no
estivessem comprimidos. Aps sua instalao, voc pode comprimir arquivos
com gzip e os programas ainda podero encontr-los, sem necessidade de
mudana nos mesmos. Procure em sunsite.unc.edu, diretorio <
code>/pub/Linux/libs. O autor Alain.Knaff@imag.fr.
H um controlador de dispositivos blocados (block device driver) com
recursos de compresso, que pode prover compresso 'on the fly',
independente do sistema de arquivos, no kernel. chamado 'DouBle'. H uma
distribuio (em forma apenas de cdigo-fonte) em sunsite.unc.edu, diretrio
/pub/Linux/kernel/patches/diskdrives; o autor Jean-Marc Verbavatz
jmv@receptor.mgh.harvard.edu. Note que, devido ao fato de comprimir 'inodes'
(informao administrativa) e diretrios, alm de contedo de arquivos,
qualquer problema de corrupo pode ser grave.

H tambm um pacote disponvel chamado tcx ('Transparent Compressed


Executables') que permite manter executveis pouco usados comprimidos e
descomprimi-los temporariamente quando voc precisar deles. Voce encontrar
tcx nos sites FTP Linux [ P2.5. Onde eu pego material sobre Linux por FTP?];
ele tambm foi anunciado em comp.os.linux.announce. Nota: este programa no
o mesmo que gzexe, que uma implementao inferior do mesmo conceito.
Questo 4.10. Minhas parties ext2fs so verificadas toda vez que reinicio
o sistema.
Veja P9.12 'EXT2-fs: warning: mounting unchecked filesystem'
Questo 4.11 Meu sistema de arquivos raiz est "read-only"!
Remonte-o. Se /etc/fstab estiver correto voc pode simplesmente fazer
mount -n -o remount /
Se /etc/fstab est errado voc deve fornecer o nome do dispositivo e
possivelmente o tipo, e.g.:
mount -n -o remount -t ext2 /dev/hda2 /.
Para compreender porque seu sistema ficou nesse estado, veja P9.12.
'EXT2-fs: warning: mounting unchecked filesystem'.
Questo 4.12. Tem um arquivo /proc/kcore enorme! Posso apag-lo?
Nenhum dos arquivos em /proc esto realmente l -- eles so todos arquivos
fictcios, criados pelo kernel, para dar a voc informaes sobre o sistema,
e no consomem nenhum espao em disco.
/proc/kcore como um 'apelido' para a memria em seu computador; seu
tamanho igual quantidade de RAM que ele possui, e se voc pedir para
l-lo como um arquivo, o kernel executa leituras da memria.
Questo 4.13. Minha controladora AHA1542C no funciona com Linux.
A opo para permitir discos com mais de 1024 cilindros somente requerida
como uma alternativa para uma deficincia do DOS e deve ser *desligada* sob
Linux. Para antigos kernels Linux voc precisa desligar a maioria das opes
do 'BIOS avanado' -- todas menos a opo de procurar pelo barramento (bus)
por dispositivos iniciveis.
Questo 5.1. Como porto XXX para Linux?
Em geral, programas Unix precisam de poucas modificaes para serem
portados. Simplesmente siga as instrues de instalao. Se voc no souber
e nem souber como encontrar as respostas para algumas das perguntas feitas
pelo procedimento de instalao, voc pode tentar adivinhar, mas isso tende
a produzir programas defeituosos. Neste caso, melhor voc pedir para
alguma outra pessoas fazer a portagem.

Se voc tiver um programa para sistemas similares ao BSD, tente usar


-I/usr/include/bsd e -lbsd nos lugares apropriados.
Questo 5.2. O que ld.so e onde posso obt-lo?
ld.so um carregador de bibliotecas dinmicas. Cada binrio usando essas
bibliotecas costumava ter cerca de 3K de cdigo de iniciliazao que
procurara e carregara essas bibliotecas. Agora, esse cdigo foi colocado em
uma biblioteca dinmica especial, /lib/ld.so, que pode ser usado por todos
os binrios, gastando assim menos espao em disco e facilitando
atualizaes.
Ele pode ser obtido de tsx-11.mit.edu em /pub/linux/packages/GCC e seus
espelhos. A ltima verso, no momento da escrita deste,
ld.so.1.7.11.tar.gz.
/lib/ld-linux.so.1 a mesma coisa para ELF e vem no mesmo pacote do
carregador a.out.
Questo 5.3. Algum ja portou / compilou / escreveu XXX para Linux?
Primeiro, veja o Linux Software Map (LSM) --- ele est no diretrio docs em
sunsite.unc.edu e outros sites de FTP. Um mecanismo de procura disponvel
por WWW em http://www.boutell.com/lsm/.
Verifique os sites FTP (veja P2.5 Onde eu pego material sobre Linux por
FTP?') antes --- procure por palavras apropriadas nos arquivos find-ls ou
INDEX. Cheque o Linux Projects Map (LPM), em ftp.ix.de em
/pub/Linux/docs/Projects-Map.gz.
Se voc no encontrar nada, voc pode fazer download dos fontes e
compil-los voc mesmo [P5.1. Como porto XXX para Linux?] ou se o pacote for
muito grande e necessitar de algumas modificaes mande uma mensagem para o
grupo comp.os.linux.development.apps.
Se voc compilar um programa grande, por favor faa upload dele para um ou
mais sites FTP e envie uma mensagem para comp.os.linux.announce (submeta sua
mensagem para linux-announce@news.ornl.gov).
Se voc estiver procurando por um programa tipo aplicativo provvel que
algum j tenha escrito uma verso gratuita. Tente ler o FAQ em
comp.sources.wanted para instrues de como achar fontes.
Voc tambm pode ler o Projects-FAQ, disponvel em
/pub/Linux/docs/faqs/Projects-FAQ em sunsite.unc.edu.
Questo 5.4. possvel usar um programa ou compilador compilado para um 486
em um 386?
Sim, a menos que seja o kernel.

A opo -m486 do GCC, que usado para compilar binrios para mquinas 486,
meramente faz algumas certas otimizaes. Isso produz binrios levemente
maiores que rodam um pouco mais rpido em um 486. Porm eles ainda funcionam
perfeitamente em um 386, apesar de uma pequena queda em sua performance.
Todavia, apartir da verso 1.3.35, o kernel usar instrues especficos de
486 em Pentium, se configurado para tais mquinas, impossibilitando a
utilizao deles em 386s.
O GCC pode ser configurado para 386 ou 486; a nica diferena que
configurando-o para um 386, faz com que -m386 seja default e configurando-o
para um 486, faz com que -m486 seja o default. Em qualquer caso, essa opo
pode ser mudada em cada compilao ou editando
/usr/lib/gcc-lib/i*-linux/n.n.n/specs.
Existe uma verso alpha do GCC que sabe fazer otimizaes para 586, mas ele
ainda no confivel, especialmente se forem pedidas muitas otimizaes. O
GCC para Pentium pode ser encontrado em tsx-11.mit.edu em
/pub/linux/ALPHA/pentium-gcc. Recomendo usar o GCC normal para 486; diz-se
que usando-se a opo -m386 produz cdigo melhor para o Pentium, ou pelo
menos um pouco menor.
Questo 5.5. O que gcc -O6 faz?
Atualmente o mesmo que -O2 (GCC 2.5) ou -O3 (GCC 2.6, GCC 2.7); qualquer
nmero maior que aqueles, no momento faz a mesma coisa. Os Makefiles the
kernels mais recentes usam -O2, voc provavelmente deveria fazer o mesmo.
Questo 5.6. Onde esto <linux/*.h> e <asm/*.h>?
Estes esto nos diretrios /usr/include/linux e /usr/include/asm.
Porm eles devem ser links simblicos para os fontes de seu kernel em
/usr/src/linuc e no diretrios reais.
Se voc no tiver os fontes do kernel faa download deles.
Ento use rm para remover quaisquer arquivos desnecessrios e ln para criar
os links:
rm -rf /usr/include/linux /usr/include/asm
ln -sf /usr/src/linux/include/linux /usr/include/linux
ln -sf /usr/src/linux/include/asm /usr/include/asm
Hoje em dia /usr/src/linux/include/asm um link simblico para um deretrio
asm-<arch> especfico para cada arquitetura - make symlinks criar os links
simblicos. Voc tambm poder precisar fazer make config em uma rvore de
fontes do kernel recm "desempacotada" para criar <linux/autoconf.h>.
Questo 5.7. Eu recebo erros quando tento compilar o kernel
Certifique-se que /usr/include/linux e /usr/include/asm no so realmente

diretrios e sim links simblicos para /usr/src/linux/include/linux e


/usr/src/linux/include/asm respectivamente.
Se necessrio, apague-os usando rm e ento use ln -s para criar os links
como mostrado em P5.6. Onde esto <linux/*.h> e <asm/*.h>?'.
Lembre-se de que ao aplicar um patch a um kernel voc deve usar a opo -p0
ou -p1; caso contrrio o patch pode ser aplicado de forma incorreta. Veja a
pgina de manual do patch para detalhes.
Se voc estiver aplicando patches a um kernel mais recente que 1.1.44, voc
notar um novo diretrio /usr/src/linux/include/asm-i386. O diretrio asm l
deve ser removido. O "target" symlinks do Makefile far eles serem links
simblicos para asm-i386 e arch/i386/boot respectivamente. A forma mais
fcil de certificar-se de que no ocorram problemas deste tipo fazer o
download de todo kernel, ao invs de aplicar um ptach.
ld: unrecognised option `-qmagic' significa que voc deve pegar um linker
mais novo, de tsx-11.mit.edu em /pub/linux/packages/GCC, no arquivo
binutils-2.6.0.2.bin.tar.gz.
Questo 5.8. Como fao uma bilioteca dinmica?
Para ELF,
gcc -fPIC -c *.c
gcc -shared -Wl,-soname,libsoo.so.1 -o libfoo.so.1.0 *.o
Para a.out, pegue tools-n.nn.tar.gz de tsx-11.mit.edu, em
/pub/linux/packages/GCC/src. Ele vem com documentao que lhe dir o que
fazer. Note que bibliotecas dinmicas para a.out so bastante complicados.
Questo 5.9. Meus executveis so (muito) grandes.
Com um compilador ELF (veja P8.2. O que esse tal de ELF?) a causa mais
comum de executveis grandes a falta de um link para a biblioteca .so
apropriada que voc est usando. Deve haver um link como libc.so para cada
biblioteca como libc.so.5.2.18.
Com um compilador a.out (veja P8.2. O que esse tal de ELF?) a causa mais
comum do problema o flag -g passado ao linkeditor (compilador). Ele produz
um programa que "linkado" estaticamente (alm de informaes para
depurao no arquivo de sada), i.e. um que inclui uma cpia da bilioteca C,
ao invs de usar uma copia ligada dinamicamente.
Outros fatores a serem investigados so -O e -O2 que habilitam otimizao
(veja documentao do GCC) e -s (ou o comando strip) que remove informaes
de smbolos do binrio resultante (tornando a depurao totalmente
impossvel).
Voc pode querer usar -N em executveis muito pequenos (menores que 8K com a
opco -N), mas voc no deve us-lo a menos que esteja ciente das

implicaes sobre a performance, e definitivamente jamais em daemons.


Questo 5.10. O Linux suporta "threads" ou processos "lightweight"?
Assim como o modelo de multiprocessamento do Unix envolvendo processos
"heavyweight", que claro, so parte do kernel padro do Linux, existem
vrias implementaes de processos "lightweight" ou "threads", a maioria dos
quais so pacotes genricos para qualquer Unix.
Em sipb.mit.edu: /pub/pthread ou ftp.ibp.fr:
/pub/unix/threads/pthreads. A documentao no est no pacote, mas est
disponvel em WWW em
http://www.mit.edu:8001/people/proven/home_page.html. libcs mais novos
do Linux contm o fonte pthreads; o compilador GNU Ada em
sunsite.unc.edu em /pub/Linux/devel/lang/ada/gnat-3.01-linux+elf.tar.gz
contm binrios feitos com esse cdigo fonte.
Em ftp.cs.washington.edu: /pub/qt-001.tar.Z est QuickThreads. Mais
informaes podem ser encontrados no relatrio tcnico disponvel no
mesmo local como /tr/1993/05/UW-CSE-93-05-06.PS.Z.
Em gummo.doc.ic.ac.uk: /rex est lwp, uma implementao bastante
simples.
Em ftp.cs.fsu.edu: /pub/PART, est uma implementao em Ada. Esta
til principalmente por conter vrios papers em PostScript teis para
se aprender mais sobre "threads". Ele no diretamente usvel sob
Linux.
Por favor contate os autores dos pacotes em questo para detalhes.
A verso 1,3,35 do kernel possui algum soporte para threads no kernel, mas
esse cdigo no foi bem testado.
Questo 5.11. Onde posso obter `lint' para Linux?
Funcionalidade aproximadamente equivalente est includo no compilador C GNU
(gcc) que usado em sistemas Linux. Use a opo -Wall para habilitar a
maioria dos avisos teis extra. Veja o manual do GCC para mais detalhes
(tecle contro-h seguido de i no Emacs e selecione a entrada para GCC).
Existe um programa gratuitamente disponvel chamado `lclint' que faz quase a
mesma coisa que o lint tradicional. O anncio e o cdigo fonte esto
disponveis em larch.lcs.mit.edu em /pub/Larch/lclint; no World Wide Web
veja em http://larch-www.lcs.mit.edu:8001/larch/lclint.html.
Questo 6.1. free no funciona.
No Linux 1.3.57 e posteriores o formato do /proc/meminfo foi mudado para um
formato que a implementao atual do free no entende.
Pegue a verso mais recente em sunsite.unc.edu em
/pub/Linux/system/Status/ps/procps-0.99.tgz.
Questo 6.2. Meu relgio est totalmente errado

Existem dois relgios no seu computador. O relgio do hardware (CMOS)


funciona mesmo quando o computador est deslidado e usado quando o sistema
inicia e pelo DOS (se voc us-lo). A hora do sistema, mostrada e mudada por
date, mantido pelo kernel enquanto o Linux est rodando.
Voc pode ver a hora do relgio CMOS, ou acerta-lo pelo relgio do sistema
ou vice-versa, com o programa /sbin/clock - veja man 8 clock.
Existem vrios outros programas que podem corrigir os relgios para tempo de
transferncia ou ajuste sistemtico pela rede. Alguns deles j podem estar
instalados em seu sistema. Procure por adjtimex (faz ajustes), netdate e
getdate (pegam a hora pela rede) ou xntp (daemon de rede completo e
preciso).
Questo 6.3. Scripts setuid parecem no funcionar
Est correto. Esta caracterstica foi deliberadamente desabilitada no kernel
do Linux porque scripts setuid so quase sempre uma falha de segurana. Se
voc quiser saber porqu, leia o FAQ do comp.unix.questions.
Questo 6.4. A memria livre mostrada pelo free fica diminuindo
O item `free' mostrado por free no inclui a memria usada como cache de
buffer de disco - mostrado na coluna `buffers'. Se voc quiser saber quanta
memria realmente est livre, some a quantidade mostrada em `buffers' de
`free' - verses mais recentes de free mostram uma linha a mais com essa
informao.
O cache de buffer de disco tende a crescer logo aps o Linux iniciar, no
momento em que voc carrega programas usando mais arquivos, o contedo deles
vai sendo guardado na cache. Aps algum tempo o cache ir se estabilizar.
Questo 6.5. Linux fica muito lento quando coloco mais memria
Este um sintoma comum de uma falha do cache com a memria adicional. O
problema exato depende da sua placa-me.
Algumas vezes voc precisa habilitar a cache de certas regies na
configurao do seu BIOS. Olhe no setup do CMOS e veja se existe alguma
opo para usar a cache na nova rea de memria e que esteja desabilitada.
Aparentemente isso bastante comum num 486.
Algumas vezes a RAM precisa estar em certos soquetes para que a cache possa
atuar.
Algumas vezes voc precisa ligar jumpers para habilitar a cache.
Algumas placas-me no usam cache para toda RAM se voc tiver mais RAM do
que os fabricantes esperavam. Geralmente uma cache de 256K resolver o
problema.

Em caso de dvida consulte o manual de sua placa-me. Se voc ainda no


conseguir conserta-la porque a documenta no adequada envie uma mensagem
para comp.os.linux.hardware dando todos os detalhes - marca, modelo etc.,
assim, outros usurios de Linux podero evit-la.
Questo 6.6. Alguns programas (xdm) no me deixam logar
Provavelmente voc est usando programas sem shadow password, mas est
usando shadow passwords.
Se for o caso, voc precisa pegar ou compilar uma verso para shadow
password do(s) programa(s) em questo. Programas para shadow password podem
ser encontrados em (dentre outros lugares):
tsx-11.mit.edu:/pub/linux/sources/usr.bin/shadow-*
L esto o cdigos fonte; voc provavelmente encontrar os binrios em
.../linux/binaries/usr.bin.
Questo 6.7. Alguns programas me deixar logar sem senha.
Voc provavelmente tem o mesmo problema de P6.5. Linux fica muito lento
quando coloco mais memria., com uma complicao a mais:
Se voc estiver usando shadow passwords voc deve colocar a letra x ou um
asterisco no campo de senha do arquivo /etc/passwd para cada conta, dessa
forma programas que no estejam cientes sobre shadow passwords no pensaram
que a conta no possui senha.
Questo 6.8. Minha mquina roda muito lentamente quando eu executo GCC / X /
...
Talvez voc esteja sem reas de swap habilitadas. Voc precisa habilitar a
paginao (swapping) para que o Linux possa mover dados que os programas no
estejam usando no momento para o disco, liberando memria para outros
programas e dados. Se voc no fizer isso, o Linux precisar se desfazer de
pores de programas na memria, fazendo com que o Linux tenha que
recarrega-los posteriormente.
Veja o Installation HOWTO e o Installation and Getting Started Guide [ P2.1.
Onde pego os HOWTOs e outra documentao?] para detalhes de como adicionar
uma partio de swap ou um arquivo de swap; veja tambm P4.6. Minha rea de
paginao (swap) no funciona..
Alternativamente, voc pode estar com muito pouca memria real. Se voc tem
menos memria que o usado por todos os programas que voc estiver
executando, o Linux ir usar o seu disco rgido e ficar terrivelmente
lento. A soluo neste caso no rodar tantos programas ao mesmo tempo ou
comprar mais memria. Voc pode tambm liberar alguma memria compilando e
usando um kernel com menos opes configuradas. Veja P7.6. Como
atualizo/recompilo meu kernel? .

Voc pode ver quanta memria e/ou swap voc est usando com o comando free,
ou digitando
cat /proc/meminfo
Se seu kernel est configurado com um ramdisk, isso provavelmente um
desperdcio de espao deixando o sistema lento. Use o LILO ou rdev para
fazer o kernel no alocar a ramdisk (veja a documentao do LILO ou digite
man rdev).
Questo 6.9. Eu s consigo me "logar" como root.
Provavelmente voc tem problemas de permisso, ou tem um arquivo
/etc/nologin.
No caso do ltimo, coloque rm -f /etc/nologin no seu /etc/rc.local ou nos
scripts /etc/rc.d/*.
Caso contrrio verifique as permisses do seu shell, de quaisquer nomes de
arquivos que apaream em mensagens de erro, e tambm da hierarquia de
diretrios que contm esses arquivos, inclusive o diretrio raiz.
Questo 6.10. Minha tela est cheia de caracteres esquisitos ao invs de
letras.
Voc possivelmente mandou algum dado binrio para a sua tela por engano.
Digite echo '\033c' para consertar. Muitas distribuies de Linux contm um
comando reset que faz isso.
Questo 6.11. Eu acabei com meu sistema e no consigo me logar para
consert-lo.
Inicialize o sistema com um (ou um par de) disquete de emergncia, como por
exemplo o par de discos boot e root do Slackware (no subdiretrio install
dos espelhos do Slackware) ou com o disquete de boot de instalao do MCC.
Existem dois pacotes de criao de disquetes de emergncia no
sunsite.unc.edu em /pub/Linux/system/Recovery. Ser melhor se voc colocar o
seu prprio kernel neles, dessa forma voc no correr o risco de ficar sem
algum controlador de dispositivo, sistema de arquivos etc.
De algum prompt de shell monte seu disco rgido com algo tipo
mount -t ext2 /dev/hda1 /mnt
Assim seu sistema de arquivos estar acessvel em /mnt e voc poder
consertar o problema. Lembre-se de desmontar (umount /mnt) o seu disco
rgido antes de reiniciar (volte ao diretrio raiz antes ou ele dir que
est ocupado).

Questo 6.12. Descobri uma falha de segurana enorme no rm!


No, voc no descobriu. Obviamente voc novo no Unix e precisa ler um bom
livro sobre ele para ver como as coisas funcionam. Pista: a habilidade de
apagar arquivos no Unix depende de permisses de escrita no diretrio onde
eles esto.
Questo 6.13. lpr e/ou lpd no esto funcionando.
Veja Printing HOWTO [ P2.1. Onde pego os HOWTOs e outra documentao? ].
Questo 6.14. A hora de arquivos de parties msdos esto gravados
incorretamente.
Existe um erro no programa clock (geralmente encontrado em /sbin) - ele
conta incorretamente um ajuste de fuso horrio, confundindo segundos com
minutos ou coisa parecida. Pegue uma verso mais nova dele.
Questo 6.15. Como fao o LILO carregar o arquivo vmlinux?
Nos kernel verses 1.1.80 e posteriores a imagem comprimida do kernel, que
o que voc deve dar ao LILO, foi movido para arch/i386/boot/zImage. O
arquivo vmlinux no diretrio root um kernel descomprimido e voc no deve
tentar carreg-lo.
Questo 7.1. Como fao para rolar a tela para cima em modo texto?
Com o mapeamento de teclado (keymap) americano padro, voc pode usar a
tecla Shift com PageUp ou PageDown (Nota: as teclas cinzas, no as brancas
do teclado numrico!). Para outros mapeamentos de teclado, veja
/usr/lib/keytables; voc pode remapear as teclas de rolamento para cima
(scroll up) e para baixo (scroll down) para o que voc quiser --- por
exemplo, para remapea-los para as teclas existentes em um teclado AT de 94
teclas.
No possvel aumentar a quantidade de tela guardada, porque a forma que
implementado usa a memria de vdeo para guardar o texto rolado. Porm, voc
pode aumentar a quantidade de texto guardado em cada console virtual,
reduzindo a quantidade deles -- veja o <linux/tty.h>.
Questo 7.2. Como troco de console virtual? Como os habilito?
Em modo texto, pressione Left Alt-F1 a Alt-F12 para selecionar os consoles
tty1 a tty12; Right Alt-F1 vai para tty13 e assim em diante. Para mudar de
console no X windows pressione Ctrl-Alt-F1 etc; Alt-F5 ou algo assim ir
lev-lo de volta ao X.

Se voc quer usar um console virtual para login normal, voc precisa listar
quais consoles virtuais possuem prompt de login em /etc/inittab. (Nota: o X
precisa de pelo menos um console virtual para rodar).
Kernels anteriores ao 1.1.59 possuem um limite no nmero de consoles
configurado em tempo de compilao, cujo default 8. Veja NR_CONSOLES em
linux/include/linux/tty.h. Kernels mais recentes alocam consoles
dinamicamente, at um mximo de 63.
Questo 7.3. Como configuro o timezone (fuso-horrio)?
V ao diretrio /usr/lib/zoneinfo; pegue o pacote de timezone se voc no
possui esse diretrio. Os fontes podem ser encontrados no sunsite.unc.edu em
/pub/Linux/system/Admin/timesrc-1.2.tar.gz.
Faa um link simblico com o nome localtime apontando para um dos arquivos
nesse diretrio (ou subdiretrio), e um chamado posixrules apontando para
localtime. Por exemplo:
ln -sf Brazil/West localtime
ln -sf localtime posixrules
Isso tomar feito imediatamente - experimente date.
No tente usar a varivel de ambiente TZ - deixe-a indefinida.
Voc tambm deve certificar-se de que o relgio de seu kernel Linux est
ajustado para o horrio GMT correto - digite date -u e verifique se o
horrio universal correto mostrado.
Questo 7.4. Que verso de Linux e que mquina estou usando?
Digite:
uname -a

Questo 7.5. Como posso habilitar ou desabilitar core dumps?


O Linux agora tem os corefiles desabilitados por default para todos os
processos.
Voc pode habilitar ou desabilitar os core dumps (gravao em disco da
memria do processo, em alguns casos de erro fatal) com o comando ulimit no
bash, limit no tcsh ou rlimit no ksh. Veja a pgina de manual para o seu
shell para maios detalhes.
Esse comando afeta todos os programas executados por aquele shell (direta ou
indiretamente) e no no sistema todo.

Se voc quiser habilitar ou desabilitar core dumps para todos os processos


por default mude <linux/sched.h> - veja a definio de INIT_TASK, e tambm
d uma olhada em <linux/resource.h>.
1.2.13 produzir core dumps a.out [ O que esse tal de ELF?].
Questo 7.6. Como atualizo/recompilo meu kernel?
Leia o Kernel HOWTO ou o README que acompanha o pacote do kernel em
ftp.cs.helsinki.fi, em /pub/Software/Linux/Kernel e espelhos de l [ P2.5.
Onde eu pego material sobre Linux por FTP?]. Voc pode j possuir uma verso
do cdigo fonte do kernel instalado em seu sistema, mas se voc o obteve
como parte de alguma distribuio do Linux, provvel que ele esteja
desatualizado (o que no problema se voc s quer um kernel configurado
sob medida, mas provavelmente se voc precisa fazer uma atualizao.)
Lembre-se que para fazer o novo kernel ser carregado, voc precisa rodar o
LILO depois de copiar o kernel em sua partio raiz -- o Makefile de verses
recentes do kernel possui um "target" zlilo especial que j faz isso; tente
make zlilo.
Kernels com nmero de verso secundrio mpares (ie, 1.1.x, 1.3.x) so para
teste; kernels estveis possuem nmero de verso pares (1.0.x, 1.2.x). Se
voc quiser experimentar algum kernel de teste, assine a lista de discusses
linux-kernel [ P2.8. Quais so as listas de discusso sobre Linux?].
Russel Nelson envia sumrios de mudanas recentes no kernel para
comp.os.linux.development , estes so arquivados em /pub/kchanges.
Questo 7.7. Posso ter mais de 3 portas seriais compartilhando interrupes?
Sim, mas voc no poder usar duas portas comuns que compartilham uma
interrupo simultaneamente (sem usar alguns truques). Esta uma limitao
da arquitetura do barramento ISA.
Veja o Serial HOWTO para informaes sobre possveis solues para este
problema.
Questo 7.8. Como fao um disquete inicializvel?
Faa um sistema de arquivos nele com os diretrios bin, etc, lib e dev -tudo que voc precisa. Instale um kernel nele e faa com que o LILO
carregue-o pelo disquete (veja a documentao do LILO em lilo.u.*.pl).
Se voc montou o kernel (ou fez o LILO dizer ao kernel) para ter um ramdisk
do mesmo tamanho do disquete, o ramdisk ser carregado em tempo de
inicializao (boot) e ser montado como raiz no lugar do disquete.

Veja o Bootdisk HOWTO.


Questo 7.9. Como remapeio meu teclado para portugus, francs etc.
Para kernels recentes, pegue /pub/Linux/system/Keyboards/kbd-0.90.tar.gz em
sunsite.unc.edu. Certifique-se de pegar uma verso apropriada; voc precisa
do pacote de mapeamento de teclado especfico para a verso do seu kernel.
0.90 deve funcionar com verses de kernel apartir de 1.0.
Para kernels mais antigos, voc precisar editar o Makefile do kernel em
/usr/src/linux.
Voc pode encontrar mais informaes teis no Keystroke HOWTO, em
sunsite.unc.edu em /pub/Linux/docs/HOWTO/Keystroke-HOWTO ou no
Portuguese-HOWTO , no mesmo local.
Questo 7.10. Como fao para deixar o NUM LOCK ligado por default?
Use o programa setleds, por exemplo (em /etc/rc.local ou em um dos arquivos
/etc/rc.d/*):
for t in 1 2 3 4 5 6 7 8
do
setleds +num &lft; /dev/tty$t > /dev/null
done
setleds parte do pacote kbd (P7.8. Como fao um disquete inicializvel?).
Alternativamente, modifique seu kernel. Voc precisa fazer com que
KBD_DEFLEDS seja definido para (1 << VC_NUMLOCK) ao compilar
drivers/char/keyboard.c.
Questo 7.11. Como posso ter mais de 128Mb de swap?
Use vrias parties ou arquivos de swap - o Linux suporta at 16 reas de
swap, cada um com at 128Mb.
Kernels muito velhos somente suportam reas de swap com tamanhos de at
16Mb.
Questo 7.12. Como fao para obter acentuao no Linux?
Leia o Portuguese-HOWTO
Documentacao para outras linguas tambem podem ser uteis. Tente ver
Danish-HOWTO.
Antonio Fernando C. M. Fo. afmoraes@if.usp.br esta organizando um HOWTO

sobre o assunto. Ele ainda nao esta completo, mas ja possui muitas
informacoes. Tente ver em
ftp://linux.if.usp.br/pub/operating_systems/Linux/local. Note que esta
localizacao do texto e' temporaria.
Questo 8.1. Como programo XYZ no Linux?
Leia os manuais ou um bom livro sobre Unix. As pginas de manual online
(digite man man) so geralmente uma boa fonte de informaes de referncia
sobre como usar um comando ou funo exatamente.
Tambm existe bastante documentao em formato GNU Info, til como tutorial.
Rode Emacs e tecle Ctrl-h i, ou digite info info se voc no tem, ou no
gosta de Emacs. Note que o nodo libc do Emacs no descreve exatamente o libc
do linux (que mais parecido com um libc tradicional de Unix, no tendo
algumas das esquisitices da GNU), mas suficientemente semelhante para
servir como tutorial de programao em C no Unix.
A ltima verso dos manuais online do Linux e uma coleo de documentao
GNU Info, com vrias outras informaes sobre programao em Linux pode ser
encontrada em sunsite.unc.edu em /pub/Linux/docs/man-pages.
Questo 8.2. O que esse tal de ELF?
Veja o ELF HOWTO por Daniel Barlow, note que esse no o arquivo
move-to-elf, que uma explicao de como atualizar para ELF manualmente.
Linux est migrando para um formato diferente de executveis, arquivos
objeto e bibliotecas de cdigo objeto, conhecido por `ELF' (o formato antigo
chamado `a.out'). Este ter muitas vantagens, incluindo suporte melhorado
para bibliotecas compartilhadas (shared libraries) e ligao dinmica
(dinamic linking).
Binrios a.out e ELF podem coexistir em um sistema. Porm, como eles usam
bibliotecas C compartilhadas diferentes, ambos tipos devem estar instaladas
para isso.
Se voc quer saber se seu sistema pode rodar binrios ELF, procure /lib por
um arquivo libc.so.5. Se este existir, ele provavelmente pode. Se voc quer
saber se a sua instalao relamtente ELF voc pode pegar um programa
representativo, como ls, e rodar file nele:
-chiark:~> file /bin/ls
/bin/ls: Linux/i386 impure executable (OMAGIC) - stripped
valour:~> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped
Existe um patch para fazer o 1.2.x compilar usando compiladores ELF, e
produzir coredumps ELF, no tsx-11.mit.edu em /pub/packages/GCC. Voc no

precisa do patch para meramente rodar binrios ELF. 1.3.x e posteriores no


precisam do patch.
Questo 8.3. O que so arquivos .gz? E .tgz? E ...?
Arquivos .gz (e .z) foram comprimidos usando o GNU gzip. Voc precisa usar o
gunzip (que um link simblico para o comando gzip que vem com a maioria
das instalaes Linux) para descomprimir o arquivo.
.taz e .tz so tarfiles (feitos com o tar do Unix) comprimidos usando o o
compress padro do Unix.
.tgz (ou .tpz) um tarfile comprimido com o gzip.
.lsm so entradas do Linux Software Map, sob forma de um arquivo texto
curto. Detalhes sobre o LSM e o LSM em si esto disponveis no subdiretrio
docs em sunsite.unc.edu.
.deb o pacote binrio Debian - o formato de pacote binrio usado pela
distribuio Debian GNU/Linux. Ele manipulado com dpkg e dpkg-deb
(disponveis em sustemas Debian e em ftp.debian.org).
.rpm o pacote Red Hat RPM, que usado na distribuio Red Hat. Eles podem
ser encontrados em ftp.redhat.com.
O comando file pode, na maioria dos casos, dizer o que um arquivo.
Se o gzip reclamar quando voc tenta descomprimir um arquivo comprimido por
ele, voc provavelmente transferiu o arquivo em modo ASCII por engano. Voc
deve fazer a transferncia (download) da maioria das coisas em modo binrio
- lembre-se de digitar binary como um comando no FTP antes de usar o get
para pegar o arquivo.
Questo 8.4. O que significa VFS?
Virtual File System. uma camada de abstrao entre o usurio e os sistemas
de arquivos reais como ext2, minix e msdos. Entre outras coisas, sua funo
esvaziar o buffer de leitura quando detecta uma mudana de discos na
unidade de disco flexvel:
VFS: Disk change detected on device 2/0

Questo 8.5. O que um BogoMip?


`BogoMips' uma contrao de `Bogus MIPS'. MIPS significa (dependendo de
por quem voc ouviu falar) Milhes de Instrues Por Segundo, ou Meaningless
Indication of Processos Speed.

O nmero mostrado em tempo de inicializao o resultado de uma


calibragem de tempo do kernel, usado para loops de espera bastante
curtos por alguns controladores de dispositivo.
Como um guia bastante grosseiro, o BogoMips ser aproximadamente:
386SX
clock * 0.14
386DX
clock * 0.18
486Cyrix/IBM clock * 0.33
486SX/DX/DX2 clock * 0.50
586
clock * 0.39
Se o nmero que voc v sensivelmente inferior ao acima, voc pode estar
com o boto do Turbo ou velocidade da CPU configurados incorretamente, ou
ter algum tipo de problema de cache [como descrito em P6.5. Linux fica muito
lento quando coloco mais memria. ].
Para valores encontrados em outros chips mais raros veja o BogoMips
Mini-HOWTO, no sunsite.unc.edu em /pub/Linux/docs/howto/mini/BogoMips.
Questo 8.6. O que o Linux Journal e onde posso consegui-lo?
Linux Journal uma revista mensal (impressa em papel) que disponvel em
bancas e por assinaturas mundialmente. Mande email para linux@ssc.com para
detalhes. Eles esto na WWW em http://www.ssc.com/.
Questo 8.7. Quantas pessoas usam Linux?
Linux disponvel gratuitamente, e ningum obrigado a registrar suas
cpias em nenhuma autoridade central, portanto isso difcil de se saber.
Muitas empresas sobrevivem agora somente da venda e suporte ao Linux, e
relativamente muito poucos usurios de Linux usam esses servios. Os grupos
de discusso sobre Linux so alguns dos mais lidos na Rede, assim o nmero
deve estar na casa das centenas de milhares, mas nmeros exatos so difceis
de se dizer.
Contudo, uma brava alma, Harald T. Alvestrand
Harald.T.Alvestrand@uninett.no, decidiu tentar e pede que se voc usa Linux,
mande uma mensagem para linux-counter@uninett.no com uma das seguintes
linhas de subject:`I use Linux at home', `I use Linux at work', ou `I use
Linux at home and at work'. Ele tambm aceitar registros de terceiros pergunte a ele por detalhes.
Alternativamente, voc pode registrar-se usando formulrios WWW em
http://domen.uninett.no/~hta/linux/counter.html.
Ele envia suas contagens para comp.os.linux.misc todo ms; voc tambm pode
olhar em aun.uninett.no em /pub/misc/linux-counter ou na pgina WWW acima.
Questo 8.8. Como se pronuncia Linux?

Este um debate religioso, claro!


Se voc quiser ouvir o prprio Linus pronuncia-lo pegue english.au ou
swedish.au em ftp.funet.fi (em /pub/OS/Linux/PEOPLE/Linus/SillySounds). Se
voc tiver uma placa de som ou o driver de udio para PC-speaker, voc
poder ouvi-los digitando
cat english.au >/dev/audio
A diferena no na pronncia de Linux mas na lngua que Linus usa para
dizer hello. A verso em ingls parodiada muito bem por Jin Choi as "Hi, my
name is Leenoos Torvahlds and I pronounce Leenooks as Leenooks."
Para o benefcio daqueles que no tm o equipamento nem a inclinao: Linus
pronuncia Linux aproximadamente como se l em portugus: Linux.
Questo 9.1. "Unknown terminal type linux" e semelhantes
Em verses 1.3.x antigas do kernel, o tipo de terminal do console default
mudou de console para linux. Voc deve editar o /etc/termcap e mudar a
linha:
console|con80x25:\
para
linux|console|con80x25:\
(Se houver um dumb a mais nesta linha, ela dever ser removida.)
Para fazer o editor funcionar, voc provavelmente ter que digitar
TERM=console (para o bash e ksh) ou setenv TERM console (csh, tcsh) antes.
Alguns programas usam /usr/lib/terminfo em vez do /etc/termcap. Para esses
programas voc deve atualizar seu terminfo, que parte do ncurses.
Questo 9.2. Durante a "linkagem" aparecem Undefined symbol _mcount
Isso geralmente se deve a uma m interao entre um defeito do SLS e as
notas de instalao da biblioteca C. Seu libc.a foi trocado pela biblioteca
de testes. Voc deve remover libc.a, libg.a e libc_p.a e reinstalar as
bibliotecas (seguindo as notas de instalao delas).
Questo 9.3. lp1 on fire
Esta um mensagem tradicional/de brincadeira indicando que algum tipo de
erro est sendo reportado pela sua impressora, mas o status do erro
invlido. Pode ser que voc tem algum tipo de conflito de I/O ou IRQ -

verifique a configurao de suas placas. Algumas pessoas dizem que recebem


esta mensagem quando suas impressoras esto desligadas. Provavelmente ela
no est realmente em chamas...
Em kernels mais recentes a mensagem foi mudada para lp1 reported invalid
error status (on fire, eh?).
Questo 9.4. INET: Warning: old style ioctl(IP_SET_DEV) called!
Voc est tentando usar os utilitrios de configurao de rede antigos; os
novos podem ser encontrados em ftp.linux.org.uk em
/pub/linux/Networking/PROGRAMS/NetTools (somente fontes, acho).
Note que estes no podem ser usados como os antigos; veja o NET-2 HOWTO para
instrues de como configurar redes corretamente.
Questo 9.5. ld: unrecognized option '-m486'
Voc possui uma verso antiga do ld. Instale um pacote binutils mais recente
-- ele conter um ld mais recente. Procure por binutils-2.6.0.2.bin.tar.gz
em tsx-11.mit.edu em /pub/linux/packages/GCC.
Questo 9.6. GCC diz Internal compiler error
Se o erro reprodutvel (i.e, ele sempre ocorre no mesmo local do mesmo
arquivo --- mesmo aps reinicializar e tentar novamente, usando um kernel
estvel) voc descobriu um erro no GCC. Veja a documentao do GCC em
formato Info (digite Control-h i no Emacs, e selecione GCC no menu) para
detalhes de como reportar isso -- no entanto, certifique-se de que voc
possui a ltima verso do GCC.
Note que este provavelmente no um erro especfico do Linux; a no ser que
voc esteja compilando um programa que muitos outros usurios Linux
compilam, voc no deve enviar seu aviso sobre o erro para os grupos
comp.os.linux.
Se o erro for irreprodutvel voc provavelmente est experimentando
corrupo de memria --- veja P9.7 make diz Error 139.
Questo 9.7. make diz Error 139
Seu compilador (gcc) fez um core dump. Voc possivelmente tem uma verso
velha, com erros ou corrompida do GCC -- pegue a ltima verso. Voc tembm
pode estar com pouco espao de swap -- veja P6.8. Minha mquina roda muito
lentamente quando eu executo GCC / X / ... para mais informaes.
Se isto no consertar o problema voc est provavelmente tendo problemas de
corrupo de memria ou disco. Verifique se a velocidade do clock, wait

states etc. de seus SIMMs e cache esto corretos (manuais de hardware


algumas vezes esto incorretos). Se estiverem, voc pode estar com SIMMs
defeituosos ou com velocidades conflitantes ou placa-me ou controladora ou
disco defeituosos.
Linux, como qualquer Unix, um excelente testador de memria --- muito
melhor que programas de teste de memria baseados em DOS.
Alguns clones de coprocessadores aritmtico x87 podem causar problemas;
tente compilar um kernel com emulao de processamento aritmtico (Kernel
math emulation) habilitado; voc precisar passar o comando no387 para o
kernel, no prompt do LILO, para forar o kernel a us-lo ou o kernel no
usar o cdigo de emulao.
Mais informaes sobre este problema est disponvel no WWW em
http://einstein.et.tudelft.nl/~wolff/sig11/.
Questo 9.8. shell-init: permission denied quando me logo.
Seu diretrio raiz e todos os diretrios at o seu diretrio home devem
estar com permisso de leitura e execuo para todos. Veja a pgina de
manual do chmod ou um livro de Unix para ver como consertar o problema.
Questo 9.9. No utmp entry. You must exec ... quando me logo.
Seu /var/run/utmp est corrompido. Voc deve ter
> /var/run/utmp
em seu /etc/rc.local ou /etc/rc.d/*. Veja Eu acabei com meu sistema e no
consigo me logar para consert-lo. para ver como poder fazer isso. Note que
utmp pode tambm ser encontrado em /var/adm/utmp ou /etc/utmp em alguns
sistemas mais antigos.
Questo 9.10. Warning - bdflush not running
Kernels modernos usam estratgias melhores para escrever blocos de disco em
cache. Em adio s mudanas no kernel, isto envolve a troca do programa
update, que costumava escrever tudo a cada 30 segundos, por um (na verdade
dois) daemon mais sutil, conhecido por bdflush.
Pegue o bdflush-n.n.tar.gz do mesmo local que os fontes do kernel [P7.6.
Como atualizo/recompilo meu kernel?], compile-o e instale-o; ele deve ser
iniciado antes da checagem usual dos sistemas de arquivos em tempo de
inicializao. Ele funcionar sem problemas com kernels mais antigos,
portanto no h motivos para manter o update antigo.
Questo 9.11. Warning: obsolete routing request made.

No se preocupe com isto; isto s quer dizer que a verso do route que voc
tem um pouco desatualizado em relao ao kernel. Voc pode se livrar da
mensagem pegando uma verso mais recente do route do mesmo local que os
fontes do kernel [P7.6. Como atualizo/recompilo meu kernel?].
Questo 9.12. EXT2-fs: warning: mounting unchecked filesystem
Voc deve rodar e2fsck (ou fsck -t ext2 se voc tem o programa fsck) com a
opo -a para limpar o flag de `dirty', e depois desmontar a partio
durante cada finalizao (shutdown) do sistema.
A forma mais fcil de fazer isto pegar a ltima verso dos comandos fsck,
umount e shutdown, disponveis no pacote util-linux de Rik Faith [ P2.5.
Onde eu pego material sobre Linux por FTP?]. Voc deve certificar-se de que
os scripts /etc/rc* usam-nos corretamente.
Nota: no tente checar um sistema de arquivos que est montado como
read-write - isso inclui a partio raiz se voc no vir
VFS: mounted root ... read-only
durante a inicializao. Voc deve fazer com que a partio raiz seja
montada somente para leitura, chec-la se necessrio e ento remont-la como
read-write. Leia a documentao que acompanha com o util-linux para ver como
fazer isso.
Note que voc deve especificar a opo -n para mount para fazer com que ele
no tente atualizar o /etc/mtab, caso contrrio ele falhar, pois o sistema
de arquivos raiz (onde est /etc/mtab) ainda somente para leitura.
Questo 9.13. EXT2-fs warning: maximal count reached
Esta mensagem emitida pelo kernel quando ele monta um sistema de arquivos
marcado como limpo, mas cujo contador de "montagens desde a ltima checagem"
atingiu um valor pr-definido. A soluo pegar a ltima verso dos
utilitrios ext2fs (e2fsprogs-0.5b.tar.gz no momento da escrita disto) dos
sites usuais [ P2.5. Onde eu pego material sobre Linux por FTP? ].
O nmero mximo de montagens pode ser examinado e mudado com o programa
tune2fs deste pacote.
Questo 9.14. EXT2-fs warning: checktime reached
Kernels 1.0 em diante suportam a checagem de sistemas de arquivos baseados
no tempo decorrido desde a ltima checagem assim como no nmero de
montagens. Pegue a ltima verso dos utilitrios ext2fs
(e2fsprogs-0.5b.tar.gz no momento da escrita disto) dos sites usuais [ P2.5.
Onde eu pego material sobre Linux por FTP? ].

Questo 9.15. df diz Cannot read table of mounted filesystems


Provavelmente h algo de errado com seus arquivos /etc/mtab ou /etc/fstab.
Se voc possuir uma verso razoavelmente recente do mount, /etc/mtab deve
ser esvaziado ou apagado em tempo de inicializao (em /etc/rc.local ou
/etc/rc.d/*), usando algo como
rm -f /etc/mtab*
Algumas verses de SLS tm uma entrada para a partio raiz em /etc/mtab
feito no /etc/rc* usando rdev. Isso incorreto: verses recentes de mount
fazem isso automaticamente.
Outras verses do SLS tm uma linha em /etc/fstab que se parece com:
/dev/sdb1 /root ext2 defaults
Isso errado. /root deve ser simplesmente /.
Questo 9.16. fdisk says Partition X has different physical /logical...
Se o nmero da partio (X, na mensagem acima) for 1 esse o mesmo problema
que fdisk: Parttion 1 does not start on cylinder boundary.
Se a partio comea ou termina em um cilindro com nmero maior que 1024,
isso devido ao fato das informaes do DOS sobre geometria do disco no
suportarem nmeros de cilindro com mais de 10 bits. Leia P4.1. Como posso
fazer o Linux funcionar com meu disco "grande" de mais de 1024 cilindros
lgicos?.
Questo 9.17. fdisk: Partition 1 does not start on cylinder boundary
A verso do fdisk que vem com muitos sistemas Linux cria parties que
falham em seus prprios testes de consistncia. Infelizmente, se voc j
instalou seu sistema no h muito o que se fazer sobre isso, alm de copiar
os dados da partio, remov-lo, reconstru-lo e copiar os dados de volta.
Voc pode evitar o problema pegando a ltima verso de fdisk, do pacote
util-linux de Rik Faith (disponvel em todos os bons sites de FTP).
Alternativamente, se voc estiver criando uma nova partio 1 que comea no
primeiro cilindro, voc pode fazer o seguinte para obter uma partio que o
fdisk goste:
1. Crie a partio 1 normalmente. Uma listagem p produzir uma reclamao
sobre inconsistncia.
2. Digite u para mudar a unidade de medida para setores e digite p
novamente. Copie o nmero da coluna "End".
3. Remova a partio 1.

4. Ainda com a unidade de medida em setores recrie a partio 1. Faa com


que o primeiro setor coincida com o nmero de setores por trilha. Este
o nmero de setor na primeira linha da sada de p. Ajuste o ltimo
setor para o valor indicado no passo 2.
5. Digite u para mudar a unidade de volta para cilindros e continue com as
outras parties.
Ignore as mensagens sobre setores no alocados - eles referem-se aos setores
na primeira trilha alm do MBR, que no usado se voc comear a primeira
partio na trilha 2.
Questo 9.18. fdisk says partition n has an odd number of sectors
O esquema de particionamento de disco do PC funciona com setores de 512
bytes, mas Linux usa blocos de 1K. Se voc tiver uma partio com um nmero
mpar de setores o ltimo setor no utilizado. Ignore a mensagem.
Questo 9.19. mtools diz cannot initialise drive XYZ
Isso significa que mtools est tendo problemas em acessar o drive. Isso pode
ser causado por vrias coisas.
Freqentemente isso ocorre devido s permisses nos dispositivos das
unidades de disco flexvel (/dev/fd0* e /dev/fd1*) estarem incorretas --- o
usurio rodando mtools deve ter acesso apropriado. Veja a pgina de manual
do chmod para detalhes.
A maioria das verses do mtools distribudos com sistemas Linux (no a
verso padro GNU) usa o contedo do arquivo /etc/mtools para ver quais
dispositivos e densidades usar, ao invs de ter essas informaes compilados
no programa. Erros nesse arquivo podem causar problemas. Freqentemente no
h documentao sobre isso --- produtores de distribuies por favor notem
que isso mau.
Para a forma mais fcil de acessar seus arquivos DOS (especialmente aqueles
em parties de disco rgido) veja P3.2. Como eu acesso arquivos na minha
partio DOS ou em disquetes? . Nota - voc jamais deve usar mtools para
acessar arquivos em uma partio ou disquete msdosfs montado!
Questo 9.20. Memory tight no comeo da inicializao
Isso significa que voc tem um kernel muito grande, o que significa que o
Linux tem que fazer alguma mgica de gerenciamento de memria extra para
poder inicializar-se apartir do BIOS. Isso no relacionado com a
quantidade de memria fsica em sua mquina. Ignore a mensagem ou compile um
kernel contendo somente os drivers e funes que voc precisa P7.6. Como
atualizo/recompilo meu kernel?

Questo 9.21. You don't exist. Go away.


Isso no uma infeco viral :-). Isso vem de vrios programas como write,
talk e wall, se o seu uid efetivo ao executar o programa no corresponde a
um usurio vlido (provavelmente devido a uma corrupo no /etc/passwd), ou
se a sesso (pseudoterminal, especificamente) que voc est usando no
estiver registrado no arquivo utmp (provavelmente porque voc o invocou de
um jeito engraado)
Questo 10.1. O Linux suporta X Windows?
Sim. Linux usa XFree86 (a verso atual 3.1.2, que baseado no X11R6).
Voc deve ter uma placa de vdeo suportado pelo XFree86. Veja o Linux
XFree96 HOWTO para maiores detalhes.
Atualmente, a maioria das distribuies Linux vm com uma instalao X.
Voc tambem pode instala-lo por conta propria, com /pub/Linux/X11/Xfree86-*
em sunsite.unc.edu e seus sites espelho. Leia o XFree86 HOWTO para
informaes sobre instalao.
Questo 10.2. Onde posso conseguir um XF86Config para meu sistema?
Leia o Linux XFree86 HOWTO.
Voc dever fazer seu prprio arquivo XF86Config, porque ele depende da
combinao exata de placa de vdeo e monitor que voc tem. Isso no
difcil de fazer -- leia as instrues que vem com o XFree86, em
/usr/X11R6/lib/X11/etc. O arquivo que voc mais precisa olhar
provavelmente o README.Config.
Voc pode usar o programa xf86config para agilizar o trabalho. Note que
ConfigXF86 obsoleto e no deve ser usado.
Por favor, no pea por arquivos XF86Config em comp.os.linux.x nem responda
a tais pedidos.
Questo 10.3. Logins pelo "xterm" aparecem de forma estranha em who, finger
etc.
O xterm que acompanha o XFree86 2.1 e anteriores no entende corretamente o
formato que o Linux usa para o arquivo /var/adm/utmp, onde o sistema guarda
registros de quem est no sistema. Portanto ele no interpreta todas as
informaes corretamente.
XFree96 3.1 conserta esse problema.
Questo 10.4. No consigo fazer o X Windows funcionar

Leia o XFree86 HOWTO - note a seo de perguntas e respostas.


Tente ler comp.windows.x.i386unix - especificamente leia o FAQ daquele
grupo.
Por favor no envie mensagens sobre X Windows ou XFree86 para
comp.os.linux.x a no ser que sejam especficos sobre Linux.
Questo 10.5. O que fao para o X funcionar com a minha TGUI9440, Diamond
Stealth...?
Suporte para placas TGUI9xxx e outras est sendo desenvolvido. Se voc
quiser experimentar uma verso beta, d uma olhada em
http://www.xfree86.org.
Placas Diamond mais antigas no so suportadas, mas voc pode faz-las
funcion-las em sua mquina com algum trabalho. Veja Diamond.FAQ em
ftp://sunsite.unc.edu/pub/Linux/X11/. Placas mais recentes possuem suporte.
Obtenha mais informaes em http://www.diamondmm.com/linux.html
Mais informaes sobre suporte a placas de vdeo no Hardware HOWTO ou para o
caso do XFree86 em http://www.xfree96.org
Questo 11.1. Emacs s faz core dump
Voc provavelmente possui uma verso do Emacs que foi compilado para
funcionar com o X11; ele precisa das bibliotecas X11 para funcionar. Se voc
estiver usando Slackware, voc pode mudar o link simblico /usr/bin/emacs
para apontar para emacs-19.29-no-x11 (veja man ln). Ele est no arquivo
emac_nox.tgz do disco E6 do Slackware.
Questo 11.2. fdisk diz cannot use nnn sectors of this partition
Originalmente o Linux s suportava o sistema de arquivos do Minix, que no
pode usar mais de 64Mb por partio. Essa limitao no existe em sistemas
de arquivos mais avanados, como o ext2fs (a segunda verso do Sistema de
Arquivos Extendido, o sistema de arquivos padro do Linux).
Se voc pretende usar o ext2fs, voc pode ignorar a mensagem.
Questo 11.3. GCC algumas vezes usa quantidades enormes de memria virtual e
quebra
Verses antigas do GCC tinham um erro que os fazia usar muita memria se
voc tentasse compilar um programa com uma tabela de dados esttico nele.
Voc pode tanto atualizar seu GCC para pelo menos a verso 2.5, ou adicionar

mais espao de swap se necessrio e simplesmente suport-lo; no final ele


ir funcionar.
Questo 11.4. Meu teclado fica todo esquisito quando troco de VCs.
Este um erro em kernels de verses anteriores a 0.99pl14-alpha-n. Algumas
vezes Linux se perde quanto a quais teclas modificadoras (Shift, Alt,
Control etc.) esto pressionadas ou no, e acha que um ou outro esto
pressionadas, quando no esto. A soluo pressionar e soltar cada uma das
teclas modificadoras (sem pressionar outras teclas junto) --- isso far com
que Linux saiba do estado em que o teclado realmente est.
Este problema ocorre freqentemente ao se sair do X Windows; ele pode ser
evitado algumas vezes ao largar rapidamente as teclas Ctrl e Alt depois de
se apertar a tecla de funo do VC para que voc est mudando.
Questo 12.1. Vocs ainda no respondero minha pergunta.
Por favor leia toda esta resposta antes de postar. Sei que ela um pouco
comprida, mas voc pode estar a ponto de fazer papel de bobo na frente de
50000 pessoas e gastar centenas de horas de seus tempos. Voc no acha que
vale a pena gastar algum tempo seu lendo e seguindo estas instrues?
Se voc achar que alguma resposta est incompleta ou incorreta, por favor
envie e-mail para Ian Jackson em ijackson@gnu.ai.mit.edu ou Alfredo Kojima
em kojima@inf.ufrgs.br
Leia os livros apropriados do Linux Documentation Project - veja P2.1. Onde
pego os HOWTOs e outra documentao?.
Se voc um novato no Unix leia o FAQ para comp.unix.questions, e aqueles
para quaisquer grupos comp.unix.* que podem ser relevantes.
Linux um clone de Unix, portanto quase tudo que voc ler l pode se
aplicar a Linux. Esses FAQs, assim como todos os FAQs, podem ser encontrados
em rtfm.mit.edu em /pub/usenet/news.answers (o mail-server@rtfm.mit.edu pode
mandar esses arquivos para os que no tem acesso FTP). Esses so espelhos
dos arquivos de FAQ rtfm em vrios sites - cheque o Introduction to
*.answers na USENET ou veja news-answers/introduction no diretrio acima.
Cheque o HOWTO relevante para o assunto em questo, se existe um, ou um
documento sub-FAQ no estilo antigo apropriado. Veja os sites FTP.
Tente experimentar -- esse a melhor forma de se conhecer Unix e Linux.
Leia a documentao. Veja as pginas de manual (digite man man se voc no
os conhece. Tente man -k <assunto> : algumas vezes isso lista pginas de
manual relevantes e teis).
Verifique a documentao Info (digite Control-h i, no Emacs) --- nota: isso

no s para o Emacs; por exemplo, a documentao do GCC est l tambm.


Freqentemente haver um arquivo README junto com o pacote dando instrues
de uso e instalao.
Certifique-se de que voc no tem cpias velhas ou corrompidas do programas
em questo. Se possvel, pegue o novamente e reinstale-o -- talvez voc
tenha cometido um engano da primeira vez.
Leia comp.os.linux.announce. Muitas vezes ele contm informaes importantes
para todos usurios Linux.
Questes sobre X Windows gerais pertencem a comp.windows.x.i386unix, no em
comp.os.linux.x. Mas leia o grupo antes (incluindo o FAQ), antes de voc
postar!
Somente depois de ter feito tudo isso e voc ainda estiver encalhado voc
deve enviar sua mensagem para o grupo comp.os.linux.* ou lista de discusses
apropriada. Leia antes a prxima questo: P12.2 O que colocar num pedido de
ajuda.
Questo 12.2. O que colocar em um pedido de ajuda.
Por favor leia cuidadosamente o seguinte conselho sobre como escrever sua
mensagem. Ao segui-los voc aumentar as chances de um expert e/ou
companheiro usurio lendo sua mensagem tenha informaes suficientes e
motivao para responder.
Este conselho se aplica tanto para mensagens para grupos/listas de discusso
pedindo ajuda quanto para email mandado para experts e companheiros
usurios.
Certifique-se de dar detalhes completos do problema, incluindo:
Com qual programa exatamente que voc est tendo problemas. Inclua o
nmero da verso, se conhecido, e diga onde voc o pegou. Muitos
comandos padro dizem suas verses ao serem invocados com a opo
--version.
Qual distribuio de Linux voc est usando (MCC, Slackware, Debian
etc.) e qual verso dessa distribuio.
Uma transcrio exata e completa do texto de quaisquer mensagens de
erro mostradas.
Exatamente que efeitos voc esperava e exatamente que efeitos voc
observou. Uma transcrio de uma sesso exemplo uma boa maneira de se
fazer isso.
O contedo de quaisquer arquivos de configurao usados pelo programa
em questo e quaisquer programas relacionados.
Quais verses do kernel e biblioteca dinmica voc est usando. A
verso do kernel pode ser verificada com uname -a, e o da biblioteca
dinmica com ls -l /lib/libc.so.4.
Se parecer apropriado, detalhes de qual hardware voc est usando.

Voc corre pouco risco de deixar sua mensagem comprida demais a no ser que
inclua grandes pedaos de cdigo fonte ou arquivos com uuencode, portanto
no se preocupe em dar informaes de mais.
Use uma linha de Subject clara e detalhada. No coloque coisas como 'no
funciona', 'Linux', 'ajuda' ou 'pergunta' nele --- nos j sabemos disso!
Guarde o espao para o nome do programa, um pedao da mensagem de erro,
sumrio do comportamento incomum etc.
Se voc estiver reportando uma mensagem `unable to handle kernel paging
request', siga as instrues do README no cdigo fonte do kernel, para
transformar os nmeros em algo mais significativo. Se voc no fizer isso,
ningum que ler sua mensagem poder fazer isso por voc, j que o mapeamento
dos nmeros para nomes de funes varia de um kernel para outro.
Coloque um pargrafo de sumrio no topo de sua mensagem.
No fim de sua mensagem, pea por respostas por email particular e diga que
voc enviar um sumrio. Aps alguns dias envie um sumrio. No faa simples
concatenaes das respostas que voc recebeu --- sumarise. Colocar a palavra
SUMRIO na linha de Subject de sua mensagem tambm uma boa idia.
Considere em submeter seu sumrio para comp.os.linux.announce.
Se for postar a mensagem para grupos USENET, certifique-se de que sua
mensagem no tem uma linha References inapropriada. Isso marca seu artigo
como parte da discusso referida, o que ir seguidamente fazer com que ele
no seja lido por leitores junto com o resto de uma discusso
desinteressante.
Se voc pode querer dizer em sua mensagem que voc j leu este FAQ e os
HOWTOs apropriados.
Lembre-se de que voc no deve postar mensagens enviadas particularmente a
voc sem a autorizao do autor.
Questo 12.3. Quero mandar e-mail a algum sobre meu problema.
Tente encontrar o autor ou desenvolvedor do programa ou componente que est
lhe causando dificuldades. Se voc tiver um local de contato para a
distribuio Linux que voc est usando, use-o.
Coloque tudo em seu email que voc colocaria em uma mensagem pedindo por
ajuda.
Finalmente, lembre-se de que apesar do fato da maioria da comunidade Linux
ser bastante prestativa e responder a perguntas por email, voc estar
pedindo ajuda a um voluntrio no pago, portanto voc no tem o direito de
esperar uma resposta.

Questo 13.1. Comentrios so bem-vindos


Por favor envie seus comentrios sobre este FAQ.
Sugestes de perguntas para este FAQ so aceitas em qualquer formato;
quaisquer contribuies, comentrios e correes sero muito bem vindas.
Por favor, mande-as para kojima@inf.ufrgs.br. Contribuies que se referem
verso original em ingls deste FAQ ou que podem ser teis a outros usurios
em geral (no s para os brasileiros) podem ser mandadas tanto para
kojima@inf.ufrgs.br como para o autor da verso original,
ijackson@gnu.ai.mit.edu .
Ao se referir a alguma(s) pergunta(s) faa-a pelo cabealho da(s)
pergunta(s), ao invs dos nmeros, j que a numerao no fixa.
Questo 13.2. Formatos em que este FAQ disponvel
A verso original em ingls deste documento disponvel em arquivos texto
ASCII, documento Info do Emacs, uma pgina HTML na World Wide Web,
PostScript e como mensagem do USENET news.
As verses em ASCII, Info do Emacs, HTML e a da USENET e um arquivo para o
formatador de textos Lout (de onde a verso PostScript produzido) so
gerados automaticamente por um script Perl e um arquivo no Bizarre Format
with No Name.
Os arquivos gerados linux-faq.ascii, .inf e .ps um arquivo tar
linux-faq.source.tar.gz, contendo o arquivo fonte BFNN e os scripts de
converso em Perl est disponvel nos diretrios docs dos stios FTP.
A verso HTML deste FAQ em ingls disponvel como
http://www.cl.cam.ac.uk/users/iwj10/linux-faq/index.html e espelhado em
www.li.org e em outros lugares.
A verso USENET postado regularmente para comp.os.linux.announce,
comp.os.linux.answers, comp.answers e news.answers.
A verso brasileira do FAQ (este que voc est lendo) disponvel em ASCII
puro e HTML, alm de ser postado Linux-BR periodicamente e estar
disponvel no servidor de listas da Linux-BR.
Voc pode encontrar um arquivo contendo todas as verses e outro somente com
a verso ASCII em http://www.inf.ufrgs.br/~kojima/linux/pack/.
Questo 13.3. Autores e agradecimentos
A verso original do Linux FAQ, em que esta verso foi baseada, foi
compilada por Ian Jackson ijackson@gnu.ai.mit.edu, com ajuda e comentrios
de muitas outras pessoas.

Agradecimentos especiais so devidos a Matt Welsh, que moderou o


comp.os.linux.announce e comp.os.linux.answers, coordenava os HOWTOs e
escreveu uma parte substancial deles, a Greg Hankins, que coordena os HOWTOs
agora, a Lars Wirzenius que modera comp.os.linux.announce, e a Marc-Michel
Corsini, que escreveu o Linux FAQ original.
Agradecimentos tambm para as muitas pessoas que mandaram seus valiosos
comentrios e sugestes, numerosos demais para serem listados.
E por ltimo, mas no menos importante, obrigado a Linus Torvalds e os
outros contribuidores do Linux, por dar a ns o que escrever.
Esta verso brasileira do FAQ foi traduzida e extendida por Alfredo K.
Kojima,kojima@inf.ufrgs.br, Marlon Borba,trfsinf@eu.ansp.br.
Questo 13.4. Copyright e outras informaes legais
Este o copyright do documento em que este FAQ se baseia:
Note that this document is provided as is. The information in it is not
warranted to be correct; you use it at your own risk.
Linux Frequently Asked Questions with Answers is Copyright 1994, 1995, 1996
by Ian Jackson ijackson@gnu.ai.mit.edu.
It may be reproduced and distributed in its entirety (including this
authorship, copyright and permission notice) provided that either:
the distribution is not commercial (commercial means any situation in
which you benefit financially - directly or indirectly such as by
inclusion in a publication which carries commercial advertising), or
the distribution is in machine-readable form (ie, a form intended to be
easily processed by a computer).
Note that this restriction is not intended to prohibit charging for the
service of printing or copying a document supplied by your customer.
Any distribution of a partial copy or extract, a translation or a derivative
work must be approved by me before distribution. Email me - I'll probably be
happy to oblige !
Exceptions to these rules may be granted, and I shall be happy to answer any
questions about this copyright --- write to Ian Jackson, Churchill College,
Cambridge, CB3 0DS, United Kingdom or email ijackson@gnu.ai.mit.edu . These
restrictions are here to protect the contributors, not to restrict you as
educators and learners.
Ian Jackson asserts the right to be identified as the author of this work,
and claims the moral rights of paternity and integrity, in accordance with
the Copyright, Designs and Patents Act, 1988.

C - Copyrights do Linux e Esquema de numerao das verses do Linux

O Linux no um software de domnio pblico, mas sob a GNU Public License (veja
apndice), o cdigo fonte do Linux pode permanecer livremente disponvel. As pessoas podem
cobrar pela cpia do Linux, se desejarem, desde que, com isso, no limite a distribuio do Linux.
Muitas pessoas, pelo mundo, tem trabalhado conjuntamente para criar o Linux, sob a direo
de Linus Torvalds, o autor original, e cada uma mantm os direitos de copyright sobre o cdigo que
ele, ou ela, tenham escrito.
A verso 1.0 do Linux foi liberada no dia 14 de maro de 1994 e, depois disso, foram feitas
numerosas verses novas. Ainda existem bugs no sistema (como em qualquer sistema operacional),
e novos bugs vem sendo descobertos e ajustados no decorrer do tempo. O Linux segue o modelo de
desenvolvimento aberto e, por isso, a cada nova verso liberada ao pblico, quer sim, quer no, ele
considerado um "produto de qualidade". Contudo, para dizer s pessoas se elas esto obtendo uma
verso estvel ou no, o esquema a seguir foi implementado:
Verses r.x.y, onde x um nmero par, so verses estveis, e, enquanto o y incrementado, apenas
reparos de bugs so efetuados. Assim da verso 2.0.2 para a 2.0.3, houve apenas reparo de bugs,
sem nenhuma caracterstica nova.
Verses r.x.y, onde x um nmero impar, so verses beta destinadas apenas a desenvolvedores,
podem ser instveis e falhar, e estaro sendo colocadas novas caracterstica o tempo todo. De
tempos em tempos, com o atual desenvolvimento do kernel sendo considerado "estvel", x
trocado para um nmero par, e o desenvolvimento continua com uma nova verso (x impar).

D - Contrato de licena (em Ingls)

O texto a seguir pode ser encontrado em: http://www.cs.helsinki.fi/linux/gpl.html


NOTE!
This copyright does not cover user programs that use kernel services by normal system calls - this is
merely considered normal use of the kernel, and does not fall under the heading of "derived work".
Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of
code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.
Linus Torvalds
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139,
USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By
contrast, the GNU General Public License is intended to guarantee your freedom to share and
change free software--to make sure the software is free for all its users. This General Public License
applies to most of the Free Software Foundation's software and to any other program whose authors
commit to using it. (Some other Free Software Foundation software is covered by the GNU Library
General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public
Licenses are designed to make sure that you have the freedom to distribute copies of free software
(and charge for this service if you wish), that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free programs; and that you know you
can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to
ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give
the recipients all the rights that you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license
which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that
there is no warranty for this free software. If the software is modified by someone else and passed

on, we want its recipients to know that what they have is not the original, so that any problems
introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger
that redistributors of a free program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any patent must be licensed for
everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
GNU GENERAL PUBCLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the
copyright holder saying it may be distributed under the terms of this General Public License. The
"Program", below, refers to any such program or work, and a "work based on the Program" means
either the Program or any derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in the term "modification".) Each
licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they
are outside its scope. The act of running the Program is not restricted, and the output from the
Program is covered only if its contents constitute a work based on the Program (independent of
having been made by running the Program). Whether that is true depends on what the Program
does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in
any medium, provided that you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this
License and to the absence of any warranty; and give any other recipients of the Program a copy of
this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer
warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work
based on the Program, and copy and distribute such modifications or work under the terms of
Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files
and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is
derived from the Program or any part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it,
when started running for such interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself
is interactive but does not normally print such an announcement, your work based on the Program is

not required to print an announcement.)


These requirements apply to the modified work as a whole. If identifiable sections of that work are
not derived from the Program, and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those sections when you distribute them
as separate works. But when you distribute the same sections as part of a whole which is a work
based on the Program, the distribution of the whole must be on the terms of this License, whose
permissions for other licensees extend to the entire whole, and thus to each and every part
regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely
by you; rather, the intent is to exercise the right to control the distribution of derivative or collective
works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with
a work based on the Program) on a volume of a storage or distribution medium does not bring the
other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code
or executable form under the terms of Sections 1 and 2 above provided that you also do one of the
following:
a) Accompany it with the complete corresponding machine-readable source code, which must be
distributed under the terms of Sections 1 and 2 above on a medium customarily used for software
interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a
charge no more than your cost of physically performing source distribution, a complete machinereadable copy of the corresponding source code, to be distributed under the terms of Sections 1 and
2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source
code. (This alternative is allowed only for noncommercial distribution and only if you received the
program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it.
For an executable work, complete source code means all the source code for all modules it contains,
plus any associated interface definition files, plus the scripts used to control compilation and
installation of the executable. However, as a special exception, the source code distributed need not
include anything that is normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on which the executable runs,
unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated
place, then offering equivalent access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not compelled to copy the source along
with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided
under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License. However, parties who have
received copies, or rights, from you under this License will not have their licenses terminated so

long as such parties remain in full compliance.


5. You are not required to accept this License, since you have not signed it. However, nothing else
grants you permission to modify or distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by modifying or distributing the
Program (or any work based on the Program), you indicate your acceptance of this License to do so,
and all its terms and conditions for copying, distributing or modifying the Program or works based
on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient
automatically receives a license from the original licensor to copy, distribute or modify the Program
subject to these terms and conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing compliance by third
parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other
reason (not limited to patent issues), conditions are imposed on you (whether by court order,
agreement or otherwise) that contradict the conditions of this License, they do not excuse you from
the conditions of this License. If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then as a consequence you may
not distribute the Program at all. For example, if a patent license would not permit royalty-free
redistribution of the Program by all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License would be to refrain entirely from
distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the
balance of the section is intended to apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right
claims or to contest validity of any such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is implemented by public license practices.
Many people have made generous contributions to the wide range of software distributed through
that system in reliance on consistent application of that system; it is up to the author/donor to decide
if he or she is willing to distribute software through any other system and a licensee cannot impose
that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of
this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or
by copyrighted interfaces, the original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such case, this License
incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public
License from time to time. Such new versions will be similar in spirit to the present version, but
may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of
this License which applies to it and "any later version", you have the option of following the terms

and conditions either of that version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of this License, you may choose any
version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution
conditions are different, write to the author to ask for permission. For software which is copyrighted
by the Free Software Foundation, write to the Free Software Foundation; we sometimes make
exceptions for this. Our decision will be guided by the two goals of preserving the free status of all
derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS

Bibliografia

Servidores www
http://www.openline.com.br/linux-br/ - Home Page do Linux no Brasil
http://www.br.freebsd.org/linux-br/index.html - Home Page do Linux em portugus
http://www.inf.ufrgs.br/~kojima/linux/faq-linux.html - Perguntas frequentemente colocadas na
linux-br (FAQ)
http://www.linux.org - Home page da Linux Organization, site oficial do Linux
http://www.suncite.unc.edu/mdw/welcome.html - Pgina do Projeto de Documentao do Linux.
http://www.linux.if.usp.br - Tudo para linux em portugus/ingls site da USP.
http://www.infor.es/LuCAS - Projeto Lucas - informaes do Linux em espanhol.
http://www.cl.com.ac.uk/users/wj10/linux-faq - Pergunta mais frequentes do Linux em ingls.
http://sunsite.unc.edu/mdw/linux.html - Site com tudo sobre Linux em Ingls
Servidores de FTP
ftp.iis.com.br - diversos arquivos da internet.
ftp.versatec.com - contm diversos softwares para Linux.
ftp.ibp.fr : /pub/linux (Frana)
ftp.cc.gatech.edu : /pub/linux (EUA - sudeste: Suranet)
ftp.cdrom.com : /pub/linux (EUA)
ftp.informatik.tu-muenchen.de : /pub/comp/os/linux (Alemanha)
ftp.ibr.cs.tu-bs.de : /pub/os/linux (Alemanha)
ftp.dfv.rwth-aachen.de : /pub/linux (Alemanha)
ftp.informatik.rwth-aachen.de : /pub/Linux (Alemanha)
ftp.cc.monash.edu.au : /pub/linux (Austrlia)
ftp.dstc.edu.au : /pub/Linux (Austrlia: Queensland)
ftp.sun.ac.za : /pub/linux (frica do Sul)
ftp.inf.utfsm.cl : /pub/Linux (Chile)
ftp.zel.fer.hr : /pub/Linux (Crocia)
linux.if.usp.br : /pub/mirror/sunsite.unc.edu/Linux alm de outros em
/pub/mirror com a distribuicao Debian.
lcmi.ufsc.br : /pub/diversos/linux (Brasil : Santa Catarina) Slackware
cesar.unicamp.br : /pub3/linux (Brasil : So Paulo) Slackware
ftp.ime.usp.br : /pub/linux (Brasil : So Paulo) Slackware
ftp.ufpr.br : /pub/Linux/ (Brasil : Paran) Slackware
Lista de discusses (usernet newsgroup)
comp.os.linux.announce - um grupo de anncios moderado; voc deve l-lo se
pretende usar Linux. Submisses a este grupo devem ser mandadas para
linux-announce@news.ornl.gov.
comp.os.linux.answers - Contm todos os FAQs, HOWTOs e outros documentos
importantes. Assine este grupo tambm.

Os outros grupos na hierarquia comp.os.linux.* tambm so recomendados algums


problemas comuns no respondidos neste FAQ podem estar nos newsgroups. Esses grupos so :
comp.os.linux.setup
comp.os.linux.hardware
comp.os.linux.networking
comp.os.linux.x
comp.os.linux.development.apps,
comp.os.linux.development.system
comp.os.linux.advocacy
comp.os.linux.misc.
Endereo eletrnico de diversos colaboradores da Linux Organizao
Drew Eckhard (US)
Brondo n S. Allbere
Ian Jackso (UK)
Rik Faith
(US)
Iar Mc Coghrie
Stephem Harris
DaniOQuilan (US)
Fred N. vain Kemper
Mike Sangree (US)
Jhon A. Martir(US)
David H. Selber
Chris Netcalf (US)
Theodo re Ts (US)
Ian Murdo ck (US)
Stephem Tweedie
David C. Niemi

drew@coorado .edu
(US) bsa@kf8nh.wariat.org
ijackso@cus.cam.ac.uk
faith@cs.unc.edu
(US) ian@ucsd.edu
(UK) sweh@spudde .mew.co.uk
Daniel.Quinlan@linux.org
(US) waltje@infomagic.com
mike@sojurn.lns.pa.us
jmartin@csc.com
(US) dhs@gowworm.firefle .com
metcalf@lcs.mit.edu
te tso@athema.mit.edu
imurdo ck@debian.org
(UK) sct@dcs.ed.ac.uk
(US) niemid@clarck.net

Você também pode gostar