Vous êtes sur la page 1sur 140

ndice

1- Introduo....................................................................................................... 2- Histrico do Linux........................................................................................... 3- Gerncia de Processos..................................................................................... 3.1- Consideraes Iniciais............................................................................. 3.1.1- Inicializao (boot do sistema)................................................. 3.2- Gerncia do Processo pelo kernel............................................................ 3.3- Criando e Destruindo um Processo......................................................... 3.4- Executando Processos............................................................................ 4- Gerncia de Memria....................................................................................... 4.1- Gerenciamento de Memria do Linux..................................................... 4.2- Memria Fsica....................................................................................... 4.3- Distribuio da Memria do Processo Usurio........................................ 4.4- Inicializao da Memria........................................................................ 4.5- Adquirindo e Liberando Memria........................................................... 4.6- Paginao (Paging)................................................................................. 4.7- Gerenciamento de Memria Cache.......................................................... 6 8 10 10 10 12 13 13 15 15 16 17 18 19 22 23

4.7.1- Arquitetura de Memria Cache do Linux (Linux Flush Architecture) .............................................................................. 23 4.7.2- Implementao de Memria Cache.............................................. 4.7.3- Arquitetura Baseada no SMP....................................................... 4.7.3.124 2

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

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

ndice

4.7.5- Implicaes Referentes a Arquitetura.......................................... 4.7.5.14.7.5.2Arquitetura baseado no contexto SMP......................

28 28

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

4.7.6- Como tratar o que a Arquitetura flush no executa com exemplos..................................................................................... 29 4.7.7- Questes Abertas na Arquitetura Cache....................................... 5- Sistema de Arquivos do Linux (File System).................................................... 5.1- Conceitos Fundamentais......................................................................... 5.1.1- Arquivos..................................................................................... 5.1.2- Diretrios.................................................................................... 5.1.3- Conta.......................................................................................... 5.1.4- Tipo de Arquivos......................................................................... 5.1.5- Acesso a Arquivos....................................................................... 5.1.6- Atributos dos Arquivos................................................................ 5.2- Operaes sobre Arquivos...................................................................... 5.3- Arquivos Compartilhados........................................................................ 30 31 31 31 31 32 32 33 33 34 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.1Subdiretrio /bin....................................................... 5.4.3.1.138 39

Arquivos e/ou Comandos disponveis em /bin............................................... 39

ndice

5.4.3.25.4.3.35.4.3.4-

Subdiretrio /boot..................................................... Subdiretrio /dev....................................................... Subdiretrio /etc....................................................... 5.4.3.4.1-

40 40 41

Arquivos e/ou Comandos disponveis em /etc............................................... 41 42 42 43 43 43 44

5.4.3.55.4.3.65.4.3.75.4.3.85.4.3.95.4.3.10-

Subdiretrio /home.................................................... Subdiretrio /lib....................................................... Subdiretrio /mnt...................................................... Subdiretrio /proc..................................................... Subdiretrio /root (opcional).................................... Subdiretrio /sbin...................................................... 5.4.3.10.1-

Arquivos e/ou Comandos disponveis em /sbin.............................................. 44 Arquivos e/ou Comandos opcionais em /sbin..............................................

5.4.3.10.2-

45 45 45

5.4.3.115.4.3.12-

Subdiretrio /tmp...................................................... A hierrquia /usr....................................................... 5.4.3.12.15.4.3.12.25.4.3.12.35.4.3.12.45.4.3.12.55.4.3.12.65.4.3.12.7-

Subdiretrio /usr (permanente)........... 46 Subdiretrio /usr/x386........................ 47 Subdiretrio /usr/bin........................... 47 Subdiretrio /usr/dict.......................... 47 Subdiretrio /usr/etc........................... 47

Subdiretrio /usr/include..................... 48 Subdiretrio /usr/lib............................ 49

ndice
3

5.4.3.12.85.4.3.12.95.4.3.12.105.4.3.12.115.4.3.12.125.4.3.13-

Subdiretrio /usr/local........................ 50 Subdiretrio /usr/man......................... 50 Subdiretrio /usr/bin........................... 52 Subdiretrio /usr/share....................... Subdiretrio /usr/src........................... 53 54 54

A hierrquia /var....................................................... 5.4.3.13.15.4.3.13.25.4.3.13.35.4.3.13.45.4.3.13.55.4.3.13.65.4.3.13.75.4.3.13.85.4.3.13.95.4.3.13.105.4.3.13.115.4.3.13.12-

Subdiretrio /var/adm......................... 54 Subdiretrio /var/catman..................... 55 Subdiretrio /var/lib............................ 56 Subdiretrio /var/local........................ 56 Subdiretrio /var/ock......................... 57

Subdiretrio /var/og............................ 57 Subdiretrio /var/name....................... 58 Subdiretrio /var/nis........................... 58 Subdiretrio /var/preview................... 58 Subdiretrio /var/run.......................... 58

Subdiretrio /var/spool....................... 58 Subdiretrio /var/tmp.......................... 59

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........................................................................... 7- Concluso........................................................................................................ 63 64

ndice

9- Apndices........................................................................................................ ABCD-

65

Comandos Bsicos do Sistema Unix........................................................ 65 Perguntas mais Frequentes (FAQs) colocadas na Linux-BR..................... 77 Copyrights Linux e Esquema de numerao verso Linux....................... 127 Contrato de Licena................................................................................ 128 134

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

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, gnused, 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
8

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,

10

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. O encapsulamento do kernel em um arquivo gzip realizado por Makefile e utilitrios no diretrio zBoot. So arquivos interessantes para se dar uma olhada.
mais

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
11

(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(). 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.
mais

12

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".

13

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

14

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

15

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.

16

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 t-los 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

17

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?
18

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

19

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 getfree-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-pagelist 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 page-list 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

20

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-nopage ( ). 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-wppage ( ) que faz o copy-on-write. Do-wp-page ( ) faa o seguinte:

21

Mande SIGSEGV se qualquer usar process o est escrevendo para o corrente codespace. 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-no-page ( ) 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

22

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.

23

(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-cachefoo(...); 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:

24

Eliminar todos os entradas do cache que so vlidas neste momento quando flushcache-all invocado isto refere-se ao virtual cache architecture, se a cache is writeback, 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 mmstruect 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.
25

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 writeback. 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).

26

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.

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
27

4.

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 interprocessor 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

28

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.

29

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

30

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.

Sis te m a de Dir e tr ios Hie r r quic os


Fi g. 01 / - Raiz

bin

dev

usr - Subdiretrios

...

... - Subdiretrios

Dirson

Raulison

Weslei

31

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.

32

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.
33

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 1 r 2 w 3 x 4 r 5 6 x 7 r 8 9 x 10 nome do arquivo 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

(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

6 - Permisses do Grupo 7 - Permisses do Grupo 8 - Permisses do Sistema 9 - Permisses do Sistema 10 -Permisses do sistema 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.

34

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.

35

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/linuxstandards/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.

36

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 cdrom, 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.
37

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 arquivos executveis(binrios) de comandos essenciais pertencentes ao sistema e que so usados com freqencia. boot arquivos estticos de boot de inicializao(boot-loader) dev arquivos de dispositivos de entrada/sada etc 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

38

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 (singleuser 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 /.
39

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.

40

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 sk arquivos de configurao para Ox11 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}

41

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

42

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 pre-processador 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 temporariamente. para armazenamento de arquivos montados

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.
43

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.
44

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

45

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/ dict/ doc/ carvalho:/usr$

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

lib/ local/ man/ openwin/ preserve@ sbin/ share/

spool@ src/ tclX/ tkX/ tmp@

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 baseia-se 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.

46

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 CD-ROM 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.
47

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). Netinet Definio 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. Rpcsvc Definio 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.

48

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

49

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.

50

man4 man5 man6 man7 man8 man9

Dispositivos. Formatos arquivos. Jogos. Miscelneas. Administrao do Sistema. 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 :

51

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

Pases -------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.

52

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 adm catman lib local ock og named Informao varivel 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

53

nis run spool tmp

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

/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 Linux-i386ELF 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.

54

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 games news texmf xdm

Diretrio do estado do Emacs Informao varivel de jogos Arquivos variveis de Cnews/INN Informao varivel asociada com TeX 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

55

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.

56

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 Registro do ltimo acesso de cada usurio mesageMensagem do sistema desde que logou ao sistema wtmp 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.

57

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 <nomeprograma>.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.
58

/var/spool at Trabalhos de at cron 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 --impresso <impressora> ---

Diretrio de fila de trabalhos para processamento posterior a 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

59

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

60

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)


61

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.

62

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.

63

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 utilliz-lo a melhor opo hoje e com grandes possibilidades de crescimento nesta faixa de mercado.
64

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 :

65

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)

66

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

67

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.

68

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:

69

. .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 Mar 15 1994 Fontmap -rw-r--r-- 1 xyz users 14567 Feb 3 1995 file003 drwxr-xr-x 2 xyz users 1024 Apr 23 1995 Programs drwxr-xr-x 3 xyz users 1024 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>

70

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.

71

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

72

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.

73

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)

74

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

75

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 Projeto de Apoio ao Usurio Internet (http://www.dei.ufg.br/~apoio/unix.html)

76

Principais comandos por categoria


Comandos de Controlo e Acesso exit Terminar a sesso, ou seja, a shell (mais ajuda digitando man sh ou man csh) logout Deslogar, ou seja, terminar a sesso actual, mas apenas na C shell e na bash shell passwd Mudar a password do nosso utilizador rlogin Logar de forma segura noutro sistema Unix/Linux ssh Sesso segura, vem de secure shell, e permite-nos logar num servidor atravs do protocolo ssh slogin Verso segura do rlogin yppasswd Mudar a password do nosso utilizador nas pginas amarelas (yellow pages)

Comandos de Comunicaes mail Enviar e receber emails mesg Permitir ou negar mensagens de terminal e pedidos de conversao (talk requests) pine Outra forma de enviar e receber emails, uma ferramenta rpida e prtica talk Falar com outros utilizadores que estejam logados no momento write Escrever para outros utilizadores que estejam logados no momento

Comandos de Ajuda e Documentao apropos Localiza comandos por pesquisa de palavra-chave find Localizar ficheiros, como por exemplo: find . -name *.txt -print, para pesquisa de ficheiros de texto por entre os ficheiros da directoria actual info Lana o explorador de informaes man Manual muito completo, pesquisa informao acerca de todos os comandos que necessitemos de saber, como por exemplo man find whatis Descreve o que um determinado comando whereis Localizar a pgina de ajuda (man page), cdigo fonte, ou ficheiros binrios, de um determinado programa

Comandos de Edio de Texto emacs Editor de texto screen-oriented pico Editor de texto screen-oriented, tambm chamado de nano sed Editor de texto stream-oriented vi Editor de texto full-screen vim Editor de texto full-screen melhorado (vi improved)

Comandos de Gesto de Ficheiros e Directorias

77

cd Mudar de directoria actual, como por exemplo cd directoria, cd .., cd / chmod Mudar a proteco de um ficheiro ou directoria, como por exemplo chmod 777, parecido com o attrib do MS-DOS chown Mudar o dono ou grupo de um ficheiro ou directoria, vem de change owner chgrp Mudar o grupo de um ficheiro ou directoria cmp Compara dois ficheiros comm Selecciona ou rejeita linhas comuns a dois ficheiros seleccionados cp Copia ficheiros, como o copy do MS-DOS crypt Encripta ou Desencripta ficheiros (apenas CCWF) diff Compara o contedo de dois ficheiros ASCII file Determina o tipo de ficheiro grep Procura um ficheiro por um padro, sendo um filtro muito til e usado, por exemplo um cat a.txt | grep ola ir mostrar-nos apenas as linhas do ficheiro a.txt que contenham a palavra ola gzip Comprime ou expande ficheiros ln Cria um link a um ficheiro ls Lista o contedo de uma directoria, semelhante ao comando dir no MS-DOS lsof Lista os ficheiros abertos, vem de list open files mkdir Cria uma directoria, vem de make directory mv Move ou renomeia ficheiros ou directorias pwd Mostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja a pathname quota Mostra-nos o uso do disco e os limites rm Apaga ficheiros, vem de remove, e semelhante ao comando del no MS-DOS, preciso ter cuidado com o comando rm * pois apaga tudo sem confirmao por defeito rmdir Apaga directorias, vem de remove directory stat Mostra o estado de um ficheiro, til para saber por exemplo a hora e data do ltimo acesso ao mesmo sync Faz um flush aos buffers do sistema de ficheiros, sincroniza os dados no disco com a memria, ou seja escreve todos os dados presentes nos buffers da memria para o disco sort Ordena, une ou compara texto, podendo ser usado para extrair informaes dos ficheiros de texto ou mesmo para ordenar dados de outros comandos como por exemplo listar ficheiros ordenados pelo nome tar Cria ou extrai arquivos, muito usado como programa de backup ou compresso de ficheiros tee Copia o input para um standard output e outros ficheiros tr Traduz caracteres umask Muda as proteces de ficheiros por defeito uncompress Restaura um ficheiro comprimido uniq Reporta ou apaga linhas repetidas num ficheiro wc Conta linhas, palavras e mesmo caracteres num ficheiro

Exibio ou Impresso de Ficheiros cat Mostra o contedo de um ficheiro, como o comando type do MD-DOS, e muito usado tambm para concatenar ficheiros, como por exemplo fazendo cat a.txt b.txt > c.txt para juntar o ficheiro a.txt e b.txt num nico de nome c.txt

78

fold Encurta, ou seja, faz um fold das linhas longas para caberem no dispositivo de output head Mostra as primeiras linhas de um ficheiro, como por exemplo com head -10 a.txt, ou usado como filtro para mostrar apenas os primeiros x resultados de outro comando lpq Examina a spooling queue da impressora lpr Imprime um ficheiro lprm Remove jobs da spooling queue da impressora more Mostra o contedo de um ficheiro, mas apenas um ecr de cada vez, ou mesmo output de outros comandos, como por exemplo ls | more less Funciona como o more, mas com menos features, menos caractersticas e potenciais usos page Funciona de forma parecida com o comando more, mas exibe os ecrs de forma invertida ao comando more pr Pagina um ficheiro para posterior impresso tail Funciona de forma inversa ao comando head, mostra-nos as ltimas linhas de um ficheiro ou mesmo do output de outro comando, quando usado como filtro zcat Mostra-nos um ficheiro comprimido xv Serve para exibir, imprimir ou mesmo manipular imagens gv Exibe ficheiros ps e pdf xpdf Exibe ficheiros pdf, usa o gv

Comandos de Transferncia de Ficheiros ftp Vem de file transfer protocol, e permite-nos, usando o protocolo de transferncia de ficheiros ftp, transferir ficheiros entre vrios hosts de uma rede, como aceder a um servidor de ftp para enviar ou puxar ficheiros rsync Sincroniza de forma rpida e flexvel dados entre dois computadores scp Verso segura do rcp

Comandos de Notcias ou Rede netstat Mostra o estado da rede rsh Corre umam shell em outros sistemas UNIX ssh Verso segura do rsh nmap Poderoso port-scan, para visualizarmos portas abertas num dado host ifconfig Visualizar os ips da nossa mquina, entre outras funes relacionadas com ips ping Pingar um determinado host, ou seja, enviar pacotes icmp para um determinado host e medir tempos de resposta, entre outras coisas

Comandos de Controlo de Processos kill Mata um processo, como por exemplo kill -kill 100 ou kill -9 100 ou kill -9 %1 bg Coloca um processo suspenso em background fg Ao contrrio do comando bg, o fg traz de volta um processo ao foreground

79

jobs Permite-nos visualizar jobs em execuo, quando corremos uma aplicao em background, poderemos ver esse job com este comando, e termina-lo com um comando kill -9 %1, se for o job nmero 1, por exemplo top Lista os processos que mais cpu usam, til para verificar que processos esto a provocar um uso excessivo de memria, e quanta percentagem de cpu cada um usa em dado momento ^y Suspende o processo no prximo pedido de input ^z Suspende o processo actual

Comandos de Informao de Estado clock Define a hora do processador date Exibe a data e hora df Exibe um resumo do espao livre em disco du Exibe um resumo do uso do espao em disco env Exibe as variveis de ambiente finger Pesquisa informaes de utilizadores history Lista os ltimos comandos usados, muito til para lembrar tambm de que comandos foram usados para fazer determinada aco no passado ou o que foi feito em dada altura last Indica o ltimo login de utilizadores lpq Examina a spool queue manpath Mostra a path de procura para as pginas do comando man printenv Imprime as variveis de ambiente ps Lista a lista de processos em execuo, til para saber o pid de um processo para o mandar abaixo com o comando kill, entre outras coisas pwd Mostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja a pathname set Define variveis da sesso, ou seja, da shell, na C shell, na bash ou na ksh spend Lista os custos ACITS UNIX at data time Mede o tempo de execuo de programas uptime Diz-nos h quanto tempo o sistema est funcional, quando foi ligado e o seu uptime w Mostra-nos quem est no sistema ou que comando cada job est a executar who Mostra-nos quem est logado no sistema whois Servio de directrio de domnios da Internet, permite-nos saber informaes sobre determinados domnios na Internet, quando um domnio foi registado, quando expira, etc whoami Diz-nos quem o dono da shell

Comandos de Processamento de Texto abiword Processador de Texto Open Source addbib Cria ou modifica bases de dados bibliogrficas col Reverte o filtro a line feeds diction Identifica sentenas com palavras diffmk Marca diferenas entre ficheiros

80

dvips Converte ficheiros TeX DVI em ficheiros PostScript explain Explica frases encontradas pelo programa diction grap Preprocessador pic para desenhar grficos, usado em tarefas elementares de anlises de dados hyphen Encontra palavras com hfenes ispell Verifica a ortografia de forma interactiva latex Formata texto em LaTeX, que baseado no TeX pdfelatex Para documentos LaTeX em formato pdf latex2html Converter LaTeX para html lookbib Encontra referncias bibliogrficas macref Cria uma referncia cruzada listando ficheiros de macros nroff/troff ndx Cria uma pgina de indexao para um documento neqn Formata matemticas com nroff nroff Formata texto para exibio simples pic Produz simples imagens para troff input psdit Filtra um output troff para a Apple LaserWriter ptx Cria uma indexao permutada mas no em CCWF refer Insere referncias de bases de dados bibliogrficas roffbib Faz o run off de uma base de dados bibliogrfica sortbib Ordena uma base de dados bibliogrfica spell Encontra erros de ortografia style Analisa as caractersticas superficiais de um documento tbl Formata tabelas para nroff/troff tex Formata texto tpic Converte ficheiros pic source em comandos TeX wget Permite-nos fazer o download completo de pginas web, com todos os ficheiros, de forma fcil e no interactiva, sem exigir por isso presena do utilizador, respeitando tambm o ficheiro robots.txt

Web html2ps Conversor de html para ps latex2html Conversor de LaTeX para html lynx Navegador web baseado em modo de texto, ou seja, um web browser que nos permite abrir todo o tipo de pginas visualizando apenas os textos e links, no vendo assim as imagens, e sendo por isso bastante rpido, mas requere prtica para ser manuseado netscape Navegador web da Netscape sitecopy Aplicao que nos permite manter facil e remotamente web sites weblint Verificador de sintaxes e de estilos html

81

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.

82

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.

83

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...?

84

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.

85

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?].

86

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

87

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.unikl.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.unisb.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/.

88

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

89

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

90

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

91

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

92

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)

93

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?

94

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:

95

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.

96

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

97

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

98

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.

99

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 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). none swap sw

100

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.

101

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

102

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

103

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.

104

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.

105

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.

106

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

107

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

108

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

109

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.

110

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

111

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?

112

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

113

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.

114

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

115

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

116

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.

117

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

118

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.

119

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

120

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

121

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?.

122

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.

123

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.

124

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

125

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.

126

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

127

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

128

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,

129

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

130

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.

131

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).

132

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.

133

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 MODIFICATION

COPYING,

DISTRIBUTION

AND

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:

134

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 machine-readable 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,

135

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

136

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

137

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

138

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

139

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

140