P. 1
Guia Linux

Guia Linux

|Views: 0|Likes:
Published by diminano2745

More info:

Published by: diminano2745 on Apr 05, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/19/2015

pdf

text

original

Índice

1- Introdução....................................................................................................... 2- Histórico do Linux........................................................................................... 3- Gerência de Processos..................................................................................... 3.1- Considerações Iniciais............................................................................. 3.1.1- Inicialização (“boot” do sistema)................................................. 3.2- Gerência do Processo pelo kernel............................................................ 3.3- Criando e Destruindo um Processo......................................................... 3.4- Executando Processos............................................................................ 4- Gerência de Memória....................................................................................... 4.1- Gerenciamento de Memória do Linux..................................................... 4.2- Memória Física....................................................................................... 6 8 10 10 10 12 13 13 15 15 16

4.3- Distribuição da Memória do Processo Usuário........................................ 17 4.4- Inicialização da Memória........................................................................ 4.5- Adquirindo e Liberando Memória........................................................... 4.6- Paginação (Paging)................................................................................. 4.7- Gerenciamento de Memória Cache.......................................................... 18 19 22 23

4.7.1- Arquitetura de Memória Cache do Linux (Linux Flush Architecture) .............................................................................. 23 4.7.2- Implementação de Memória Cache.............................................. 4.7.3- Arquitetura Baseada no SMP....................................................... 4.7.3.124 2

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

4.7.4- Conteúdo de uma Arquitetura Virtual..........................................

Índice

4.7.5- Implicações 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 não executa com exemplos..................................................................................... 29 4.7.7- Questões Abertas na Arquitetura Cache....................................... 30 5- Sistema de Arquivos do Linux (File System).................................................... 31 5.1- Conceitos Fundamentais......................................................................... 5.1.1- Arquivos..................................................................................... 5.1.2- Diretórios.................................................................................... 5.1.3- Conta.......................................................................................... 5.1.4- Tipo de Arquivos......................................................................... 5.1.5- Acesso a Arquivos....................................................................... 5.1.6- Atributos dos Arquivos................................................................ 5.2- Operações sobre Arquivos...................................................................... 5.3- Arquivos Compartilhados........................................................................ 31 31 31 32 32 33 33 34 35

5.4- Estrutura do Sistema de Arquivos Linux Realease 1.2............................. 36 5.4.1- Apresentação............................................................................... 36

5.4.2- Características Sistema de Arquivos............................................. 36 5.4.3- Composição dos Diretórios.......................................................... 5.4.3.1Subdiretório /bin....................................................... 5.4.3.1.138 39

Arquivos e/ou Comandos disponíveis em /bin............................................... 39

Índice

2

5.4.3.25.4.3.35.4.3.4-

Subdiretório /boot..................................................... Subdiretório /dev....................................................... Subdiretório /etc....................................................... 5.4.3.4.1-

40 40 41

Arquivos e/ou Comandos disponíveis 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-

Subdiretório /home.................................................... Subdiretório /lib....................................................... Subdiretório /mnt...................................................... Subdiretório /proc..................................................... Subdiretório /root (opcional).................................... Subdiretório /sbin...................................................... 5.4.3.10.15.4.3.10.2-

Arquivos e/ou Comandos disponíveis em /sbin.............................................. 44 Arquivos e/ou Comandos opcionais em /sbin.............................................. 45 45 45

5.4.3.115.4.3.12-

Subdiretório /tmp...................................................... A hierárquia /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-

Subdiretório /usr (permanente)........... 46 Subdiretório /usr/x386........................ 47 Subdiretório /usr/bin........................... 47 Subdiretório /usr/dict.......................... 47 Subdiretório /usr/etc........................... 47 Subdiretório /usr/include..................... 48 Subdiretório /usr/lib............................ 49

Índice
3

............3.......13....................35........13... 58 Subdiretório /var/tmp........105...... 50 Subdiretório /usr/man............. 58 Subdiretório /var/nis.95.....4.........13..125...3.3....................Descrição sucinta do conteúdo dos manuais.115..........4....4............3.. 59 5........... 58 Subdiretório /var/spool.........Conclusão......13.....4... 61 6.........Pontos Positivos e Negativos......... 56 Subdiretório /var/ock.....4. 58 Subdiretório /var/preview.12- Subdiretório /var/adm..........4......................................................3..................5..... 52 Subdiretório /usr/share..4............3...... 57 Subdiretório /var/og...........3........3...115.95..............................................4................85.... 5....13..65...........4......12.3......13.........4........3...........3....4. 54 Subdiretório /var/catman........105....25..13- Subdiretório /usr/local........4....13...4..3....4..13..............13...85...... 57 Subdiretório /var/name.. 7..4.................3.....12.........3...... 50 Subdiretório /usr/bin........3....13..4... 58 Subdiretório /var/run..............3............................. 55 Subdiretório /var/lib. 59 5....... 53 Subdiretório /usr/src........ 54 54 A hierárquia /var..................................3..4.........45........ 63 64 Índice 4 ..4........12.......4....55.75...... 56 Subdiretório /var/local.13.4..15..13................4..12......................3..........Alguns Dilemas sobre o Sistema de Arquivos.............12....5...

..........................................................Apêndices...................................................... 127 Contrato de Licença...........9................Bibliografia e Referências............................. ABCD- 65 Comandos Básicos do Sistema Unix....................................................................... 5 ................................................ 65 Perguntas mais Frequentes (FAQs) colocadas na LinuxBR......................................... 77 Copyrights Linux e Esquema de numeração versão Linux. 128 134 8.......................................

mas atualmente também roda em computadores Alpha da DEC. O Linux foi primeiramente desenvolvido para PCs baseados em 386/486/Pentium.0) Versão Debian GNU/Linux 1. O Linux tem se tornado uma alternativa efetiva de custo em relação aos caros sistemas UNIX existentes. a versão LINUX Developer’s Resource CD-ROM. O Linux foi escrito inteiramente do nada. O Linux pode ser livremente distribuído nos termos da GNU General Public License (veja apêndice). contém 6 CD-ROMs.infomagic. máquinas M68000 (semelhantes a Atari e Amiga). Um exemplo de pacote de distrribuição do Linux mais populares é distribuido pela InfoMagic (http://www. não há código proprietário em seu interior. incluindo: • • • • • • • • Multitarefa real Memória virtual Biblioteca compartilhada "Demand loading" Gerenciamento de memória próprio Executáveis "copy-on-write" compartilhados Rede TCP/IP (incluindo SLIP/PPP/ISDN) X Windows A maioria dos programas rodando em Linux são freeware genéricos para UNIX. MIPS e PowerPCs. e tem achado o Linux comparável com workstations médias da Sun e da Digital. Muitas pessoas tem executado benchmarks em sistemas Linux rodando em 80486. O Linux está disponível através da Internet por meio de centenas de sites FTP. muitos provenientes do projeto GNU.0 (instalando kernel 2. O Linux é uma implementação independente da especificação POSIX.2 X-Windows . bem como em código fonte. seu conteúdo sucinto é : • • • • Versão Red Hat 4. Está sendo usado para desenvolvimento de softwares. networking (intraoffice e Internet). de dezembro de 1996. com a qual todas as versões do UNIX padrão (true UNIX) estão convencionadas. O Linux está sendo usado hoje em dia por centenas e centenas de pessoas pelo mundo.Introdução O Linux é um clone UNIX de distribuição livre para PCs baseados em processadores 386/486/Pentium.1 (Slackware 96 .18) Versão Slackware 3.Xfree86 version 3. O Linux possui todos as características que você pode esperar de um UNIX moderno. O Linux está disponível na forma de código objeto.com. Sparcs da SUN.com).instalando kernel 2. e como plataforma de usuário final.0.2 6 .1 . e-mail info@infomagic.

StarOffice. Flagship.edu • Documnetação completa on-line & HOWTO’s (Guia de Instalação e Guia do Administrador da Rede.mit.unc. Smartware.mit. Scriptum.• Arquivos Linux de tsx-11. GP Modula-2. em inglês) • Softwares demostração comerciais como : BRU. Pathfinder. etc. dbMan. 7 .ai.edu • Arquivos GNU de prep. Cockpit.edu e sunsite.

e eu estou disposto a colocar os fontes para ampla distribuição.0 1. gnused. etc. gcc.O. Desde então muitos programadores têm respondido ao seu chamado.2.. quando homens serão homens e escreverão seus próprios "device drivers" ? Você está sem um bom projeto e esta morrendo por colocar as mãos em um S.13 Data: Wed Aug 2 12:54:12 UTC 1995 8 .. em suas próprias palavras. Ele se limitou a criar.9 Data: Sat Apr 16 21:18:02 UTC 1994 Release v1. E depois de algum tempo de trabalho em seu projeto.1.minix: Você suspira por melhores dias do Minix-1.0. Linus Torvalds iniciou cortando (hacking) o kernel como um projeto particular. contudo eu tive sucesso rodando bash.95 Data: Thu Mar 2 07:47:10 UTC 1995 Release v1. Ele está na versão 0. originalmente. finalmente. ele enviou a seguinte mensagem para comp.O. sozinho.1 1. "um Minix melhor que o Minix" ("a better Minix than Minix"). gnu-make.os.02. Historia do Linux O Kernel do Linux foi. estou trabalhando em uma versão independente de um S. compressão.1. Finlândia. próximo do estágio em que poderá ser utilizado (embora possa não ser o que você esteja esperando). Ele está. nele.2 1. versão 0.02. com a ajuda de vários programadores voluntários através da Internet. No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do Linux. Como eu mencionei a um mês atrás. escrito por Linus Torvalds do Departamento de Ciência da Computação da Universidades de Helsinki. Ultimas versões do kernel do Linux Release v1. e têm ajudado a fazer do Linux o Sistema Operacional que é hoje. 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 ? Então esta mensagem pode ser exatamente para você. similar ao Minix para computadores AT-386. um pequeno sistema UNIX desenvolvido por Andy Tannenbaum. inspirado em seu interesse no Minix.2.

Helsinki.Release v1.gz Release v2.0.0.cs.Helsinki.14 Data: Thu Jun 6 19:30:56 UTC 1996 Release v2.tar.0.tar.1/linux-2.23.FI/pub/Software/Linux/Kernel/v2.FI/pub/Software/Linux/Kernel/v2.cs.1.28 Data: Tue Jan 14 12:33:26 UTC 1997 ftp://ftp.1.28.0 2.gz 9 .23 Data: Sun Jan 26 14:12:18 UTC 1997 ftp://ftp.0/linux-2.3 pre2.1 2.

ele se move para o endereço absoluto 0x90000. Neste tópico tentaremos explicar. A parte de "setup" identifica algumas características do sistema (hardware) e o tipo da placa VGA. A maioria das informações reportadas aqui tem como referencia o código fonte do Linux versão 1. mas é tudo que se necessita para entender o trabalho inicial do kernel. faremos considerações iniciais sobre o código fonte do kernel do Linux (onde encontramos a implementação da Gerência de Processos) e a inicialização “boot” do sistema. Indicando onde poderam ser obtidas mais informações sobre o assunto corrente (geralmente o código fonte). vamos começar por onde o Linux começa: seu sistema de boot.. mais Ocasionalmente um parágrafo como este ocorrerá no texto.9-1.3 . Porém. usualmente /usr/src/linux.Inicialização ("boot" do sistema) Quando o PC é ligado.Gerência de Processos 3.1. A primeiríssima parte do kernel Linux está escrito em linguagem assembly 8086 (boot/bootsect. que corresponde a um endereço ROM-BIOS. nenhum código C aparecerá neste material. então. O objetivo é ajuda-lo a se familiarizar com o projeto geral do Linux. E.Considerações Iniciais Para explicarmos como o Linux gerência processos.1 . Se requerido.1.. 10 . outro código assembly de modo real. e passa a execução para este endereço. Caso o símbolo não estiver presente. e o resto do kernel para o endereço 0x10000.76. Qualquer referencia "pathname" à arquivos tem como ponto de partida a arvore principal de fontes. Depois disto ele carrega o primeiro setor do device bootavel em 0x7C00. de uma maneira ordenada o código fonte do Linux. Então. assim como familiaridade com conceitos de UNIX e arquitetura dos PCs.0. então passado para o código contido em boot/Setup. O controle é. A descrição anterior é um tanto simplificada. o disquete ou o disco rígido.1 . Um bom entendimento da linguagem C é necessário para entender este material. move todo o sistema do endereço 0x10000 para o endereço 0x1000.S. pede ao usuário para escolher o modo do vídeo da console." é apresentada durante o carregamento do sistema.S). Quando é executado. O BIOS do PC realiza alguns testes no sistema e inicializa o vetor de interrupções no endereço físico 0. 3. A mensagem "Loading. usualmente. Referencias a versões posteriores conterão o símbolo novo. mas referencias de onde podem ser encontrados. O device é. o processador 80x86 encontra-se em modo real e executa o código contido no endereço 0xFFFF0. significa que não houveram modificações após as versões 1. carrega os próximos 2 kBytes de código do device de boot até o endereço 0x90200. tentando conseguir um bom entendimento sobre como o código fonte está situado e como as características mais relevantes do UNIX foram implementadas.0.

Depois dos procedimentos com todas as questões iniciais. o código se desvia para "/bin/sh /etc/rc" e cria um root shell no primeiro terminal (console). é prover processos através de chamadas ao sistema 11 . Inicializa os traps.S. Inicializa todos device drives e buffers de discos. ou /bin/init. quando o S. em seguida fork (bifurca) o processo de inicialização. a maior parte das macros possuem códigos assembly embutidos.c. Este código é remanescente do Linux 0. E o processo número 0. também).c.75 moveu os diretórios boot e zBoot para arch/i386/boot. • Regula o delay loop (calcula o numero "BogoMips"). zBoot/unzip. Note que se algum erro ocorrer durante alguns dos passos precedentes. o kernel está pronto para move_to_user_mode(). Finalmente. e não havia processo de login. a rotina start_kernel é invocada. era feito para um kernel stand-alone. de agora em diante. Sua função. seja o código mais difícil em todo o kernel do Linux. onde todo o setup 32-bit esta lotado: IDT. cujos códigos estão no mesmo arquivo fonte. canais IRQ e scheduling. GDT e LDT são carregados. Tode de agora em diante esta codificado em linguagem C. bem como outras partes menores. O código em 0x1000 vem de zBoot/head.O. talvez. novo O código "descompresso" é executado a partir do endereço 0x1010000 . o qual é composto por zBoot/inflate. Se nenhum deles tem sucesso.c e zBoot/misc.S que inicializa os registradores e invoca decompress_kernel(). start_kernel() reside em init/main. o processador e o co-processador são identificados.01. O dado "descompresso" vai para o endereço 0x100000 (1 Mega). A versão 1. Este. também chamado idle task (tarefa preguiçosa). o kernel não tem controle direto sobre o fluxo do programa. e esta é a principal razão do por que o Linux não pode rodar com menos de 2 Megas de RAM. se mantém rodando em um loop infinito. O próximo passo é a descompressão do kernel. • Checa se a interrupção 16 está trabalhando com o co-processador. mais O encapsulamento do kernel em um arquivo gzip é realizado por Makefile e utilitários no diretório zBoot. aloja um profiling buffer.passa para o modo protegido e passa o controle para o resto do sistema (endereço 0x1000). o computador irá travar. Esta modificação pretendeu possibilitar a construção de "kernel verdadeiro" para diferentes arquiteturas. Depois de exec() o programa de inicialização de um dos lugares padrão (deve haver um deles). Se requerido. O processo de inicialização tenta executar /etc/init. start_kernel() inicializa todas as partes do kernel.1. ou /sbin/init. exceto gerência de interrupções e chamadas de sistemas (Bem.c. Os arquivos fonte das operações acima estão em boot/head. São arquivos interessantes para se dar uma olhada. O sistema operacional não pode manipular erros enquanto não estiver totalmente operante. especificamente: • • • • Inicializa a memória e chama paging_init().

a macro for_each_task é usada. A página de pilha para o modo kernel nunca é swapped out. é usado para guardar o processo que está rodando.com:8080/HyperNews/get/khg. Com a task_struct. no kernel do Linux. Chamadas a sistema (System calls). definida em include/linux/sched.h pode ajudar a entender a lista e a estrutura de árvore da tabela de processos. tanto informações de baixo quanto de alto nível. A implementação física é um array estático de ponteiros. Voce pode desejar mudar NR_TASKS do seu valor default (que é 128). um ponteiro para um item da task_struct. assim como prover eventos para serviços assíncronos (como uma interrupção do hardware). em kernel/sched. como uma árvore.h.Gerência de processo pelo kernel Do ponto de vista do kernel. através do fork() e processos de login. um processo é uma entrada na tabela de processos. porém.redhat. Quando. A pilha usada pelos processos netes dois modos de execução são diferentes – um seguimento de pilha convencional é usado para o modo usuário. e a variável global "current". e não será descrita aqui.h. A tabela de processos. Uma olhada em for_each_task e SET_LINKS. e inicializará o gerenciamento de acesso a multiusuários.c. são como funções da linguagem C. mas esteja certo de que há dependências. por exemplo. O item individual na tabela de processos é a estrutura task_struct. conjuntamente com a tabela de gerenciamento de memória e o buffer cache. Nada mais. em include/linux/sched. e será necessário recompilar todos os arquivos fonte envolvidos. vamos prosseguir dando uma olhada nesses serviços ("system calls"). porque ela pode estar disponível sempre que um system call é introduzido. Estando o kernel carregado e provendo serviço. A variável "current" só é mudada pelo scheduler. então.(system calls). cujo processo é dono) é usada no modo kernel.2 . A estrutura da lista está entre os ponteiros next_task e prev_task. o kernel está sempre trabalhando em um dos processos. é uma das mais importantes estruturas de dados no sistema. A multitarefa está inicializada. 12 . Isto é consideravelmente mais rápido que uma procura seqüencial no array. A tabela de processos é tanto um array quanto uma lista duplamente ligada. enquanto uma pilha de tamanho fixo (uma página. a estrutura em arvore é um tanto complexa.html). todos os processos necessitarem estar looked. O corpo principal de um programa de usuário é executado em modo usuário e chamadas a sistema são executados em modo kernel. Depois do boot. são mantidas – variando da cópia de alguns registradores de hardware até o inode do diretório de trabalho para o processo. mais O mecanismo de chamadas a sistema (System calls) está descrito no capítulo 3 do Linux Kernel Hackers' Guide (http://www. seu nome "oficial" esta prefixado por "sys_". burnout invoca a função de kernel sys_burnout(). Um processo está sempre rodando em ou em "modo usuário" ou em "modo kernel". cujo tamanho é NR_TASKS. Uma chamada a sistema de nome. e cada estrutura reside em uma pagina de memória reservada. uma constante definida em include/linux/tasks. 3.

A implementação do Linux para eles reside em kernel/fork. O código pertencente à exit.Criando e destruindo processos Um sistema UNIX cria um processo através da chamada a sistema fork(). O arquivo exit. copiar na memória a imagem binária do arquivo. Além disso. novo A versão 1. para que. Uma delas usualmente executa . 13 . portanto. o executável e sua "library". carrega-lo e executa-lo.c não é descrito aqui . a casa do sys_kill() e de variados aspectos de sys_wait(). Passos relevantes nesse processo são: • • • • • Criar uma página livre para dar suporte à task_struct Encontrar um process slot livre (find_empty_process()) Criar uma outra página livre para o kernel_stack_page Copiar a LTD do processo pai para o processo filho Duplicar o mmap (Memory map . Isto é dotado através da estrutura linux_binfmt. e tinha que trabalhar com eles. por conseguinte.0 do kernel possui algum vestígio de suporte ao "threading" (trabalho ou processo em paralelo).3. "Carrega-lo" não significa.memoria virtual) do processo pai sys_fork() também gerencia descritores de arquivos e inodes. 3. um processo pode ser morto (kill()) por outro processo (isto é um aspecto do UNIX). o Linux possa atender a demanda de programas a serem executados.exec() . A chamada a sistema exec() deve localizar a imagem binária do arquivo executável.c. cada formato binário deve conter. é dependente de sinais (flags). Ele trabalha com uma quantidade de detalhes para manter o sistema em um estado consistente. A implementação Linux do exec() suporta formatos binários diferentes. em acréscimo à sys_exit(). Sua principal tarefa é suprir a estrutura de dados para o novo processo. necessáriamente.outro programa. Executar o "Forking" é fácil. O POSIX "standard".ele não é tão interessante.c é curto e de fácil leitura.3 . duas copias do mesmo programa estão rodando.c é. e a chamada a sistema fork() apresenta algumas alusões à ele.c e kernel/exit. a qual embute dois ponteiros para funções um para carregar o executável e o outro para carregar a "library" associada. porque o processo pai necessita ser notificado sobre qualquer filhos que existam (ou deixem de existir). fork.Executando Processos Depois de executar o fork(). assim. A morte de um processo é difícil. portanto.4 . e o seu término é executado por exit().

foi estendida para acessar rotinas com o formato relativo à core-dump. Finalmente a estrutura. seis formas para a função exec().out" é invocada. Quase todos podem ser implementados como uma "library" de funções. Se os dois primeiros bytes são "#!". o Linux embutiu um sistema de arquivos (filesystem) revisado do msdos. e as funções relevantes são load_aout_binary e load_aout_library.c. "The former way uses the Linux demand loading mechanism to fault-in program pages when they're accessed. para permitir carregar um novo formato binário como um módulo do kernel. por si mesma. ou invoca read_exec(). O formato nativo do Linux é suportado diretamente por fs/exec. while the latter way is used when memory mapping is not supported by the host filesystem (for example the "msdos" filesystem)".O sistema UNIX prove. 14 . caso contrário o formato binário. e o kernel do Linux implementa sys_execve() independentemente das providas pelo UNIX.memória virtual). e tenta executa-lo. caso haja espaço em memória. ao programador. Além disso a estrutura linux_binfmt é uma "lista ligada" e não um array. e a função mmap() (memory map memória virtual ) aloca espaço em disco (no caso da memória real estar cheia) para o processo. novo A partir da versão 1.1 do kernel. que suporta mmap() (memory map . registrado. é executado seqüencialmente. então a primeira linha é ignorada e um interpretador é invocado. Assim como para os binários a função de carregamento "a. Ele executa uma única tarefa: carregar o cabeçalho do executável.

O Swapper .isto é um endereço virtual.dir e segmentos Kernel como ambos diretórios de páginas usa a mesma tabela de página neste espaço. endereços lineares vão de 0 Gb para 4 Gb. Um endereço lógico consiste de um seletor e um offset. endereços lineares e endereços lógicos são idênticos. O processo então erra em qualquer outra página que precisar. mas o modo privilegiado é acionado. Apenas task [0] (A tarefa inativa.dir = mesmo usuário page dir. mas usando segmentos Kernel. O código Kernel e o segmento de dados são seções privilegiados definidos na tabela descritora global e extende de 3Gb para 4Gb. se o processo tenta escrever para este espaço de memória e a página é uma copy on write page. page . por exemplo.dir é organizado para que estes endereços lógicos e físicos sejam idênticos no espaço Kernel. mesmo assim isto não tem relação com trocas nos implementos Linux) usa o swapper . Um exec ( ) resulta na leitura de uma página ou mais do executável. páginas que é 4 Gb de mémoria. ás vezes chamada de "tarefa trocadora" por razões históricas. isto é copiado e a página marcada read-write.1 . Nos espaços usuários. Estes segmentos usuários extendem de 0 para 3 Gb (0 X c 0000000). Um endereço linear indica uma posição particular de memória dentro deste espaço. • O segmento base do processo usuário = o X 00.Gerenciamento de Memória do Linux (LMM) A execução do LMM (Linux Memory Manager) exige uma estratégia de paginação com uma copy-on-write confiando nas 386 páginas auxiliares. • swapper . Cada processo tem uma tabela de página que significa que pode acessar 1 Kb de tabela de página indicando para 1 Kb de 4 Kb. No 80386.pg . Este espaço é invisível para o processo no user mode. para sustentar um sistema de ligação. Isto é idêntico no mapeamento produzido com o uso de swapper pg .dir diretamente.dir particular. O modo surpevisor é inserido dentro do contexto do processo atual então a tradução do endereço ocorre com respeito ao diretório de página do processo. O seletor indica para um segmento e o offset diz que distância na seção o endereço é localizado. Um endereço linear não é um endereço físico --.Gerência de Memória 4.page . • O processo usuário faz um sistema de ligação : segment base = 0 X c 0000000 page . Um diretório de página do processo é iniciado durante um Fork por copy-page-tables.dir contém um mapeamento para todas as páginas físicas de 0 X 0000000 para 0 X c 0000000 + and_mem. Um processo alcança suas tabelas de páginas de seu parent (durante um fork ) com as entradas marcadas como read-only ou trocado. Então. O espaço 3Gb acima aparece no process page directory como indicadores para tabelas de páginas Kernel. Cada processo usuário tem uma tabela descritória local que contém um código de segmento e um segmento de dados. O processo inativo tem seu diretório de página inicializado durante a sequência de inicialização.pg .4 . para o processo. então as primeiras 768 entradas em 15 .

Coisas ruins aconteceriam se Kernel Stack descesse abaixo de seu corrente stack frame. O Kernel Stack não é uma bonita estrutura ou segmento de dados que eu possa apontar com um "aqui é um Kernel Stack". é possível escrever para o code space. O texto e a porção de dados são distribuídos em páginas separadas ao menos que alguém escolha o N opção composta.pg . De qualquer modo. O código de segmento e dados do segmento extendem todo o caminho de 0 X 00 para 3 Gb. A vantagem é que sempre que o endereço linear é acima de 0 X c 0000000 tudo usa a mesma tabela de páginas Kernel (Kernel page Tables). Twin.pg . Note que toda memória não marcada como livre é reservada (mem-init). exceto em casos especiais. Isto é o que malloc ( ) faz quando precisa. causando ocorrência de um copy . Uma visão de memória do user process. Menores alterações são necessárias em alguns lugares ( testes para limites de memória vem para a mente) para prover suporte para definidos segmentos programados. ou dentro do valor do brK.|c| + O sistema de ligação usado por dosane. Wine. A biblioteca dividida carrega endereços são correntemente tornadas da imagem dividida por ele mesmo. Páginas reservadas pertencem ao Kernel e nunca estão livres ou trocadas.Memória Física Aqui está um mapa de memória física antes que qualquer processo de usuário for executado. As primeiras 768 entradas mapeam o espaço usuário.dir dos 768 acima. Correntemente o page fault handler do wp_page confere para assegurar que um processo não escreve para seu código de espaço.on . scsi. psaux. A grande coluna da direita mostra a rotina relevante ou o nome variável ou explicações para ingresso. ] 4.dir são 0's.2 .Inits que adquirem memória são (principais. e então há 4 ou mais que indicam na tabela de páginas Kernel. O endereço é entre 1. init. O Handler do_no_page assegura que qualquer página nova que o processo adquira pertença ao executável. pegando o sinal segu. Esta região não contém page directories ou page tables. . 16 . A coluna do meio mostra os nomes dos itens. * Projeto . and Wabi para criar segmentos arbitrários. O monte usuário permanece no topo do segmento de dados do usuário e desce. ao stack. • O user page directories têm as mesmas entradas como swapper .init.swapper . Apenas páginas sujas são trocadas.Um user page é um que é mapeado abaixo de 3 Gb em uma tabela de páginas usuários. com.5 Gb e 3 Gb. Um Kernel Stack_frame (uma página) é associada com cada novo processo criado e é usado sempre que o Kernel opera dentro do contexto deste processo.buffer. [ Há agora uma modificação . rd. uma biblioteca dividida. A coluna da esquerda mostra o endereço de partida do item e os números em negrito são aproximados. Um usuário de processo pode reordenar seu valor brK chamando sbrK ( ). mas onde isto é armazenado quando isto não está sendo usado? ] Páginas usuários podem ser roubados ou trocados . [ Onde o Kernel Stack é guardado? Eu sei que há um para cada processo. init.dev .c) profil . init.write.

trocáveis Se então as páginas do processo não serão trocados.Kernel .LDT (n) seletores para tarefas correntes do LDT 17 . Administração dos dados da memória na tabela do processo. Limites do processo da memória. Kernel Stack page Indicador para a página distribuída no fork.cs— Todos indicam para segmentos no corrente 1 dt [ ] c r 3 : indicam para o page directory para este processo 1 dt .Distribuição da memória do processo usuário O Stack.start_code .3 .brk. A maioria das vezes apenas as páginas limpas são divididas. Todas KPT são divididas por todos processo e deste modo eles não estão na lista.stock Erro de contagem de página. shlibs e os dados são muito afastados um do outro para serem spanned por uma tabela de página. Páginas limpas são roubadas e deste modo o processo pode tê-los de volta para o executável se for desejado. Swappable . Uma página suja termina dividida sobre um fork até que parent ou child escolham para escrever isto de novo. Ulong . Números de páginas residentes.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 Níveis de previlégio não usados. Tabela do descritor local. Apenas páginas sujas são trocadas. Sturct desc .sturct ldt {32} é a mesa descritora local para tarefa. Ds=es=fs=gs=ss=ok17. atart .4.and_code .and_data . Segmentos seletores. Aqui está um sumário de algum dos dados mantidos na tabela do processo que é usado para administração da memória. Saved .

e carregado para dentro do TR e LDTR (a única vez que isto é feito explicitamente). Um trap gate (0X80) é ordenado para system-call. Claro que o segmento usuário para task [0] são mapeados bem sobre os segmentos Kernel e deste modo a execução continua exatamente onde isto termina. Processos e a Administração da Memória.dir que sigmifica apenas endereços mapeados estão no alcance 3 Gb para 3 Gb + High memory.páginas . No sched_init ( ) o 1 dt e tss descritores para tarefa [0] são postos no GDT. término do código Kernel e dados que é carregado inicialmente Cada projeto init tipicamente torna memory_start e retorna um valor atualizado.4. Paging init ( ) inicializa a page-tables no { \ tt swapper . ou qualquer outro. limite = task_size = 0 x c 0000000. nenhum processo vê os segmentos Kernel enquanto no modo usuário.h > mem_map é então construído por mem_init ( ) para refletir o corrente uso das páginas físicas. A bandeira tarefa aninhada é desligada na preparação para entrada do modo usuário: O cronômetro é ligado. Memória relacionada trabalho feito por fork ( ): • distribuição de memória • 1 página para o Task-struct • 1 página para o Kernel Stack • 1 para o pg_dir e algumas para pg_tables (cópias .dir} ( começando a 0 X 0000000) para cobrir toda a memória física do memory_start para memory_end. Então Dinux move para dentro do modo usuário com um iret após empurrar o corrente ss.pg . base = 0 x 0000000. tamanho = 640 k O primeiro exec ( ) põe a LTD entrada para task [1] para os valores usuários da base = 0x0. esp. base = 0 x 0000000. Na verdade o primeiro 4 Mb é feito no startup_32 (heads). tamanho = 640 K LDT [2] = dados usuários. etc.pg . se distribui espaços no memory_start (simplesmente pegando-a). 16 Mb. Task [0]: pg_dir = swapper .4 . A primeira página é zerada para bloquear os indicadores das referências do alçapão nulo no Kernel. Depois disso.( ). término da memória física: 8 Mb.memory_start é incrementado se quaisquer nova page-tables são adicionados.c) há 3 variáveis relatadas para inicialização da memória: memory_start memory_end Low memory_start começa a 1 Mb atualizado pelo projeto de inicialização. LTD [1] = código usuário.tabelas) • Outras mudanças • sso põe para o segmento Kernel stack (0x10) para ter certeza? 18 . Este é o estado refletido no mapa da memória física da seção anterior. O task-struct para task [0] aparece por inteiro em < linux / sched.Inicialização da memória No Start Kernel (main.

O interruptor de instruções põe o indicador stack e o segmento stack do privilégio valor salvo no Tss do corrente task.table distribuídos no pg-dir do processo para mapeá-lo. limite = task . O 19 . de qualquer modo.size Estes segmentos são dpl = 3. Limites de Memória Atualizados • cud_code = ex. as entradas indicam para os mesmos segmentos).Stack . s=1. Como um exemplo o Kernel .page .memory) e mapeado pela tabela de páginas Kernel que são eles mesmos parte da memória reservada. Cada um distribuído quando um processo é criado e deixado quando ele sai.stack .ª_bss Interrupções e traps são sustentadas dentro do contexto da corrente tarefa. O espaço Kernel (0 x c 0000000 + high .a_text • cud_data = cud_code + &x.• espo põe para o topo da nova distribuição Kernel . o diretório de páginas do corrente processo é usado na tradução de endereços. Tipo = a (código or 2 dados) • Eleva para MAX_ARG_PAGES páginas sujas de arqu e enup são distribuídos e guardado ao topo do segmento de dados para o novo usuário pilha criado.page ( que ocupa algum lugar no espaço Kernel ) não precisa de um associado page . Isto põe indicadores no diretório de páginas de processo para indicar para tabelas de página Kernel e na verdade não distribui novas tabelas de páginas como isto faz normalmente. g=1.page. Durante um fork copy-page-tables ( ) trata tabela de páginas reservadas diferentemente. • Ponha os indicadores de instrução do caller cip = ex. • change 1 dt ( ) põe os descritores no novo 1 dt [ ] • 1 dt [1] = código base = 0 x 00. Note que o Kernel stack é um objeto realmente fragmentado . • c r 3 põe por copy . mas sim um grupo de stack frames. O stack e páginas de dados serão copiados quando o parent ou child escreve para eles ( copy-on-write).size • 1 dt [2] = data base = 0 x 00. limite = task .tables ( ) para indicar para nova página de diretório distribuída • 1 dt = LDT (task_nr) cria novo 1 dt descritor • descritores põe no gdt para novo tss e 1 dt [ ] • Os registros restantes são herdados do parent. O endereço linear é 0 x 00000001 (usando segmentos Kernel) e o endereço físico é 0 x 01. p=1.d_data • brK = end_data + ex. Este serão eliminados do Stack quando o caller resume. O último é porque a página do processo diretório mapea esta extensão exatamente como page_pg_dir.a_cutry • Ponha o stack indicador do caller para o stack criado (esp=stack indicador).Isto não é um objeto único. são segmentos Kernel para que todos os endereços lineares apontem para dentro da memória Kernel quer acessar uma variável no endereço 0 x 01. Em particular. Os segmentos. Os processos resultam dividindo seus códigos e segmentos de dados (embora eles tenham tabelas descritoras locais separados. Memória relacionada trabalho feito por exec ( ): • distribuição de memória • 1 página para exec header para omagic • 1 página ou mais para stack (max_arg_pages) • clear-página-tables ( ) usado para remover páginas velhas. Eles são consequentemente divididas por todos processos.

Adquirindo e liberando memórias Quando qualquer rotina Kernel precisa de memória isto acaba chamando getfree-page ( )..Kernel stack não deveria crescer tão rapidamente dentro de um contexto de um processo que extende abaixo da corrente frame. Isto tira uma página do the free-page-list. Isto é por ele mesmo bastante simples. 6 e 7 vão parar o processo poruqe eles resultam na liberação atual de uma página física. O problema é claro. • Ache um user page-table (não reservado) no espaço de Q.. atualizados mem_map. A prioridade é aumentada em cada iteration sucessiva para que estas duas rotinas processem suas page-sterling-loops mais frequentemente. Get-free-page ( ) toma um parâmetro. você entra dentro do domínio de uma page stealing e que nós discutiremos em um momento.] Agora de volta ao "Roubando páginas" get-free-page ( ) chame try-to-fre-page ( ) que chame repetidamente shrink_buffers ( ) e swap-out ( ) nesta ordem até conseguir liberar uma página. Note que swap-out ( ) (chamada try-to-free-page ( )) mantém variáveis estatísticas 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) Não brincar com as páginas (reserved) reservadas Envelheçar a página se ela é marcada acessada (1 bit) Não mexa com página adquirida recentemente (last-free-pages ( )) Deixe páginas sujas com map-counts > 1 intocadas Diminua o map-count das páginas limpas Librere páginas limpas se elas não são mapeadas Troque páginas sujas com um map-count de 1 De todas essas ações. Kernel. A lógica do mm depende do mapa da identidade entre o endereço lógico e físico. Se você não requisitar uma operação atômica. Isto não é tão difícil. nesta etapa.5 . quando páginas são libertadas. Q. zeram a página e retorna o endereço físico da página (note que Kmalloc) retorna um endereço físico. Este está num nível mais baixo do que Kmallor ( ) (de fato Kmalloc ( ) get-free-page ( ) quando isto precisa mais memória). por exemplo. o secundary-page-list enche primeiro a manipulação atual da page-list e mem-map ocorre neste misterioso macro chamado remove-from-mem-queve ( ) que você provavelmente nunca quer investigar.nfs e gfp atomic. O suficiente para dizer que interrupções são incapacitados. Possíveis valores são gfp_buffer_gfp. • Para cada página na tabela try-to-swap-out (page) • Termina quando a página é liberada. gfp. a prioridade. Aqui está um exemplo do processo swap-out: • Faça a tabela do processo e adquira uma swappable task. 20 . é que o free-pagelist pode estar vazio. Como um último recurso ( e para requisitos atômicos) uma página é separada do secundary-page-list (como você pode ter achado. 4. [Eu penso que isto deveria ser explicado aqui.

Page table então são atualizados e o TLB invalidado. e reserved pages não são trocadas. A página lida do disco é contada como um erro maior. o processo recebe um SIGKILL [ Por que este controle? Isto pode acontecer somente em Kernel mode por causa da proteção do nível do segmento. Você não ode supor que é a tarefa corrente que está executando de-no-page ( ) sustenta três situações possíveis: 1) A página é trocada 2) A página pertence a biblioteca executável ou dividida. Quando uma página divisível é achada ela é corite-protected. Qualquer porção da página fora do valor brK é zerada. page-table. e libera a página e atualiza o page-list (s) se não é mapeada. No terceiro para providenciar uma página no endereço requerido e no caso de uma página trocada. Do-wp-page ( ) faça o seguinte: • Mande SIGSEGV se qualquer usar process o está escrevendo para o corrente codespace. ele começa com um page directoru e uma página ou mais do executável. o handles calls share-page ( ) para ver se a página pode ser dividida com algum outro processo. Eles são liberados somente na saída do processo. Um processo que escreve para uma página dividida vai precisar passar por um do-wppage ( ) que faz o copy-on-write. roubadas ou envelhecidas. atualiza mem-map. Para troca (em 6 em cima). Isto acontece com um swap-in ( ) ou quando é lida da executável ou uma biblioteca. O código do erro ( recobrado no sys-call. mas os efeitos cumulativos de algumas iterations pode atrasar o processo muito. No segundo caso. 21 . O anterior é sustentado pelo do-wp-page ( ) e o posterior pelo do-nopage ( ). e depois começa com buffers ocupados e chama free-page ( ) quando pode liberar todos os buffers numa página. Isto ignora páginas reservadas. O trabalho atual de liberar uma página é feito por free-page ( ).A quinta ação resulta uma dos processos perdendo uma página limpa não dividida que não foi acessada recentemente (diminuindo Q à rss) que não é tão ruim. No presente.s) diferencia o acesso do user / supervisior e a região para o fault-write proteção de uma página faltando. deste modo uma página dividida por 6 processos pode ser roubada se está limpa. Essencialmente isto procura free "buffers" (buffers são uma parte da memória que segura informação temporariamente quando dados transferem de um lugar para outro) em seguida escreve buffers sujos. 3) A página está faltando – uma página de dados não foi distribuída Em todas as causas get-empty-pgtable ( ) é chamada primeiro para assegurar a existência de uma page table que cobre o endereço falatando. swap-in ( ) é chamado. Outras casos são consideradas erros menores (mim-flt). Note que page directories. Os detalhes de shink-buffers ( ) nos levaria muito longe. The page fault handles do page-fault ( ) recupera o endereço faltando no registro c r 2. The page Fault Handles Quando um processo é criado por fork. Estas rotinas tem algumas sutilezas como elas podem ser chamadas num interrompimento. Se isto falhar leia a página do executável ou biblioteca (Isto repete a chamada para Share-page ( ) se um outro processo fez o mesmo enquanto isso). a complementação de get-free-page ( ). Deste modo the page fault handles é a forte da maioria da memória do processo. Se o endereço falatando é maior do que Task-Size. há 6 iterations. Eles são mapeadas no process page directories com reserved page tables. write-swappage ( ) é chamada e não faz nada notável da perspectiva da administração da memória.

Diminua a conta do mapa da página velha. O campo das bandeiras (SWP-USED ou SWP-WRITE ok) é usado para controlar acesso para o swap files. Esta página nunca é distribuída deste modo a inicialização precisa ser feita somente uma vez. A primeira página contém uma assinatura (swap-space) nos últimos 10 bytes. do-no-page ( ) quando necessário.bit limitam a região livre na pasta de troca e são usadas para adiantar a procura por espaço de troca livre. 22 . Nós vamos usar trocando aqui para referir à "paginando" . swap-map contém um byte para cada página no swapfile. Kernel pages nunca são trocadas páginas limpas também não são escritas para trocar. Quando SWP.6 .• Se a página velha não é dividida. Os campos lowest . então simplesmente não proteja-o. Isto é para manter uma conta das petições da troca em cada página no swap file.bit e hihgest . Swap-lockmap contém um bit para cada página que é usada para assegurar exclusão mútua quando lendo ou escrevendo swap-files. Quando swapoff adiciona um arquivo de troca nova isto aplica SWP-USED. Isto é usado por Swapoff quando isto tenta de não usar um arquivo. Cada swap file ou projeto é descrito por uma strut-swap-info. O programa do usuário m | < swap inicializa um swap device ou file. e não trocar.WRITE ok é desligado. um índice para posição da troca é obtido com uma chamada para get-swap-page ( ). Ao invés o tamanho do swap file é limitado para 16 Mb. Quando uma página da memória está para ser trocada. o espaço não vai ser distribuído neste arquivo. 4. The Syscall Swapor ( ) é chamado pelo user program swapon tipicamente de / etc / rc. Isto faz até 128 swap files. A página adquirire a bandeira suja da página velha. porque o swap map então toma 1 página. Elas são liberadas e recarregadas quando é requerida.Paginando (Paging) Paginando é a troca numa base da página melhor do que os processos inteiros. Um variável imóvel no Swap files armazena o número dos arquivos ativos correntemente ativos. Senão get-free-page ( ) and copy-page ( ). O trocador mantém um único bit de informação de envelhecimento nas Páginas acessadas bit da page table cutries . cada um com espaço para mais ou menos 64 Gb. mas o espaço em cima devido o swap map seria grande.[ O que são os detalhes de manutenção? Como isto é usado?] Linux suporta múltiplos swap files ou projetos que podem ser ligados ou desligados pelas ligações de swapoff system. e pessoas são mais acostumadas à palavra "Swap" / "trocar" do que "page" / "paginar". Os 7 bits mais altos do índice dão o swap file ( ou projeto) e os 24 bits mais baixos dão o número da página neste projeto. Inicialmente 1's no bitmap significam páginas ruins A'1' no bitmap significa que a página correspondente é livre. Isto é inicializado do bitmap para conter 0 para páginas disponíveis e 128 para páginas que não pode ser usadas. e contém um mapa de bit. Este índice é deste modo guardado em bits 1-31 da page table entry para que a página trocada possa ser localizada pela page fault handles. uma vez que apenas Linux página. Algumas páginas da memória são distribuídas por swap-map e swap-lockmap.

Cada processo vai trocar numa cópia da página separa quando acessá-la. quando um processador requerer um dado no memory bus de maneira e um outro processador tem uma cópia mais atualizada. a mesma porção do dedo pode acabar residindo no cache duas vezes. de qualquer jeito o requesitor vai obter uma cópia atualizada que pertença um outro processador.7 . 4. numa configuração cached virtual. Quando a conta abaixa para 0 a página pode ser redistribuída por get-swap-page ( ). • Projetos e DMA podem ou não ter capacidade para ver a cópia de um dedo mais atualizado que resida no cache do processo local. etc ). queira softivare ou hardware. As característica única são isto mantem em ordem o mapeamento do processo kernel de algum modo. • Isto pode. o arquitetura current flush não sustenta isto corretamente. Isto que dizer que. O shell (um lugar seguro p/ guardar dinheiro ou coisas) esta entidade é essencialmente “memory state”/”estado da memoria” como o flush architecture o vê. é suposto que a coerência num ambiente multiprocessador é mantida pelo subsistema cache/memória.A função swap-duplicate ( ) é usado por copy-page-tables ( ) para deixar o processo da child herdar páginas trocadas durante um fork. (NOTA: SMP arquiteturas sem hardware cache conferece mechanísms são realmente possíveis. deixando resultados incompativéis. Código específico de arquitetura pode precisar ser modificado quando o kernel tiver mudado um processo/mapeamento kernel. Isto é chamado cada vez que uma página trocada é lida na memória ( swap-inc ) ou quando uma página está para ser descartada ( free-one-table ( ).7.1 . Em geral isto tem as propiedades seguintes: • Isto sempre vai segurar cópias de dados que podem ser visto como atualizado pelo processo local. se em algum 23 . Isto somente incrementa a conta mantendo no Swap-map para aquela página.Arquitetura de Memória Cache do Linux (Linux Flush Architecture) O TBL é mais uma entidade virtual do que um modelo estrito quanto a Linux flush architecture e concernida. • Corretamente. • O funcionamento próprio pode ser relacionado ao TLB e o mapeamento do processo/Kernel page de algum jeito. causar problemas “aliasing” se uma página fisica é mapeada no mesmo tempo da que duas páginas virtuais e por causa dos bits de um endereço usado para catalogar a linha cache. isto é para dizer que eles podem depender um do outro. Swap-free diminui a conta mantendo no swap-map.Gerenciamento de Memória Cache 4.

. void flush . 4. se a cache is write- 24 . eu vou adicionar os ganchos necessários mas não vai ser bonito) Sobre o que o Fluch Architecture se importa: sempre.cache . veja embaixo como eles devem ser manuseados. Em geral. portanto o TLV flush é feito depois que os page tables terem sido mudados para que depois o hardware só pode carregar a cópia nova da informação de page table para o TLB void flush . indiferente da cache architecture e/ou a semântica. quando o estado do espaço de endereço é mudado somente (em código genérico da administração da memória kernelnome de generic kernel management cade) o fluch architecture hook apropriado vai ser chamado descrevendo que o estado muda totalmente. Split Instrution/data cache consistência com respeitro as modificações feito para processo de instrução de espaço realizado pelo código de sinal de despacho signal dispatch cade. Estes tipos des assuntos não devem esta no flush architecture.2 . Isto inclui DMA mappings (no sentido do MMU mappings) e o cache/DMA dado consistência. Se o memory managemat kernel code faz uma modificação para a user process page modificando o dado via kernel space alias da página física subjacente.).all (void).. As interfaces para a flushachitesture e como executá-los em geral todas as rotinas descritos embaixo vão ser chamados na sequência seguinte: Fluch-cachefoo(. clush ..ponto o Zinux apontar em algum sistema onda isto é uma questão debatida.7.) a lógica aqui é: Isto pode ser ilegal num arquitetura dada por um pedaço de dado cache para ensitir quando o mapeamento por aquele dado não existe.tlb .tlb-foo (. modify-address-space (). o fio controle de usuário vai ser o dado correto antes que é permitido continuar a execução.Implementação da Memória Cache Uma implementação deve: • Eliminar todos os entradas do cache que são válidas neste momento quando flushcache-all é invocado isto refere-se ao virtual cache architecture. Sobre o que o flush architecture não importa: que o mapeamento do DMA “DMA/driver coerência.all (void). veja embaixo como isto devem ser manuseado de um outro jeito. É possivél para uma arquitertura de MMU/TLB dada realizar um andamento da tabela hardware hardware table wolk dos kernel page tables. a visão da administração de memória hardware de um conjunto de mapeamento do processo Kernel serão consistentes com aqueles do Kernel page tables. portanto o flush deve ocorrer antes que a mudança é feita.. que significa que os mapeamentos de todos processos foram efetivamente mudados. Essas rotinas são para notificar o architecture specific cade que mapeamento do espaço do endereço kernel uma mudança foi feita ao kernel address space mappings. De novo.

• Para flush-tlb-all todos TLB mappings para o kernel address space devem ser feito consitente com os OS page tables de qualquer maneira. unsigned long address). alguem pode conferir para ver se um-exee esta posto no uma-sum-flags para possivelmente avistar flushing o instruction space. essa rotina vai submeter o dado da cache para memoria antes do que invalidar cada ingresso. flush_tlb_range(struct mm_struct *mm. Isso significa que quaiquer traduções estão no Kernel page tables no range start para acabar no address space descrito pelo mm-struet são para que a administração da memoria hardware sera deste ponto avançado. unsigned long end). flush_cache_range(struct mm_struct *mm. • Para Flush-tlb-range. unsigned long start. todas entradas cacha que são validas para a página no addrees no address space descrito pelo uma são para ser invalidados. unsigned long start. Para caches físicos.mm( ) relecianando a mm-struct passada aplicam-se aqui também. num virtualmente cache systam. unsigned long end). Uma efetivação. qualquer ação necessária para causar o MMUITLB hardware não conter traduções estragados são para ser realizados. se necessária. o tlb/mmu hardware é para estar localizado num estado onde isto vai ver (agora corrente) kernal page table entradas para o espaço de endereço pelo mm-strust. unsigned long address). void flush_tlb_page(struct vm_area_struct *vma. uma chance para uma particular range do user address no adelrass space descrito pelo mm-struct passada esta ocorrendo. por exemplos: As duas notas acima para flush-*-mm( ) concermindo o mm-struct (passado indiretamente via uma -um-mm) aplica aqui também. void flush_cache_page(struct vm_area_struct *vma. Uma chance para uma única página no address dentro do usar space para o address space descrito pelo um area-struet passado esta ocorrendo. Norte que com um arquitetura que possua a nação • Para flush-tlb-mm.back. todas entradess cache que são nolidas pena a range partem para o fim no address space descrito pelo mmstruect são para ser invalidadas. 25 . pode obter na mm-struet associado para este address space via uma um Flags. A implemetação deve também : • Para flush-cache-range. por qualquer significado. não é necessário realizar uma ação já que mapeamento físico não tem ponto de apoio no address space translations. • Para Flush-cache-range num virtualmente cached system. As duas notas acima para FLUSH . Este caminho em uma efetivação onde a instrução e dara space não são unificados.

• Para flush-tlb-range, qualquer ação necessária para causar o MMU/TLB hardware para não conter traduções estragadas são para ser efetuadas. Isto significa que quaisquer traduções estão nos kernel page tables para a página no address space descrito pelo uma passado são para que a administração de memória hardware, serão vistas deste ponto avançado de qualquer maneira. 4.7.3 - Carregando o Flush-PAGE para a RAM (Unsigned Long Page); Este é o patinho feio. Mas sera semântica é necessário 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 espaço kernal para efetuar a cópia da página em questão para uma nova página. Este apresenta um problema para caches virtualmente catalogados que são write-back escritos de volta na natureza. Neste caso, o Kernel toca duas páginas fisicas no espaço Kernel. A sequencia do código 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 códigos atuais tem sido simplificados para propositos espesificos. Considere um cache virtualmente catalogados que é escrito de volta writeback. Neste momento que a cópia da página acontece para o supisto espaço kernel, é possivel para usar space a visão da página original para estar no caches (no endereço do usuário, por exemplo, onde o erro esta ocorrendo). A cópia da página pode trazer este dado (para a página velha) dentro do caches. Será também colocado o dado (no novo suporte kernel mapeado da página) 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 não será a cópia mais recente do dado. Os caches são estúpidos, então para a nova página que estamos dando ao usuário, sem forçar o dado cached no suposto kernel para a memória principal o processo será o conteúdo velho da página. (Por exemplo qualquer lixo que estarem lá antes da cópia ter sido feita pelo processamento COW acima).

26

4.7.3.1 - Exemplo concreto de flush-page

Considere um processo que divide uma página, lê somente READ-ONLY com maior uma tarefa (ou varias) no endereço virtual Ox2000, no usar space. E para propósito espesíficos deixe nos dizer que este endereço virtual mapeia para a página física 0x14000. Se a tarefa 2 tenha escrever para a página lê apenas no endereço 0x2000 nós alteremos um esso e (eventual fragmento do código) mente resultado no code fragment mostrando acima no do-WP-PAGE ( ). O Kernel vai obter uma nova página para tarefa 2, deixe-nos dizer que esta e uma página física 0x2600, e deixe-nos tambem dizer que os mapeamentos do suposto Kernel para páginas físicas 0x14000 e 0x26000 podem residir em dias únicos linhas cache ao mesmo tempo buscando no esquema da linha catalogada deste cache. O conteúdo da página e copiado do mapeamento Kernel para página física 0x14000 para uns para página física 0x26000. Neste momento, numa arquitetura cache virtualmente catalogada write - back nos temos uma inconsistência potencial. O novo dado copiado dentro da página física 0x26000 não e necessário na memória principal neste momento, de fato isto poderá estar toda no cache apenas no suposto kernel do endereço físico. Também, o (não modificando, por exemplo, limpo) dado para a (velha) página original esta no cache do suposto kernel para página física 0x14000, isto pode produzir uma inconsistência mais tarde, então para proteger isto e melhor eliminar as cópias cached deste dado também. Deixe-nos dizer não escrevemos os dados de volta para a página no 0x256000 e nos apenas deixamos isto lá. Nos retornariamos para a tarefa 2 (Quem teve esta nova página agora mapeada no endereço virtual 0x2000) ele completaria sua escrita, então ele leria algumas outras porções de dados nesta nova página (por exemplo, esperando o conteúdo que existe lá antes). Neste momento seo dado e deixado no cache no suposto kernel para nova página física, o usuário obterá o que que estava na memória principal antes da cópia para sua leitura. Isto pode levar a resultados dasastrosos. 4.7.4 - Conteúdo de uma arquitetura virtual Numa arquitetura cache virtualmente catalogada, fica o que foi necessário para fazer a memória principal consistente com a cópia cached da página passada do espaço kernel. Nota: Isto é na verdade necessário para esta rotina invalidar linhos em um cache virtual que não escrito de volta é write - back na natureza. Para ver porque isto e realmente necessário, refaça o exemplo acima com a tarefa 1 e 2, mas agora fork ( ) ainda outra tarefa 3 antes dos erros do cow ocorreram, considere o conteúdo do caches no kernel e user space se a sequencia seguinte ocorre na exata sucessão:
1. Tarefa 1 lê uma parte da página no 0x2000 2. Tarefa 2 COW erra a página no 0x2000 3. Tarefa 2 efetiva suas escritas para a nova página no 0x2000

27

4. Tarefa 3 COW erra a página 0x2000

Mesmo em um cache não escrito devolta virtualmente catalogado, a tarefa 3 pode ver o dado incossistente depois do erro COW se FLUSH-PAGE-TO-RAM não invalida a página física do suposto kernel do cache. VOID-UP-DATE Embora não estritamente parte da arquitetura flush, em certas arquiteturas algumas operações 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 página não 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 páginas que traduzem para a exata página física, e devido ao algarismo catalogado do cache pode também residir na única e mutualmente exclusiva linhas cache. Se um BAD ALIAS é detectado, uma implementação precisa resolver esta inconsistência de alguma maneira, uma solução e andar através de todo os mapeamentos e mudar as page-tables para fazer estas páginas como não concreáveis se o hardaware permite tal coisa. As conferências para isto são muito simples, tudo que uma implementação precisa fazer é: Se ((uma -Um - Flags 6 (Um - Write/Um - Shared)) confere sua potência mau supostas, então para o caso comum (mapeamento escrevíveis devidos são extremamente raros) apenas uma comparação é necessitada para sistemas COW CAHCES virtualmente catalogados. 4.7.5 - Implicações Referentes a Arquitetura 4.7.5.1 - Arquitetura baseada no Modelo SMP Dependendo da arquitetura certos consertos podem ser necessários para permitir a arquitetura FLUSH para trabalhar num sistema SMP. O principal assunto e se uma das operações 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 é necessário. Os dois correntes sistemas SMP suportados no LiNUX (intel e space) usam interprocessor interrupts para “transmitir” a operação FLUSH e faz isto correr localmente em todo processador se necessário como um exemplo, no sistema SUNHM Space todos precessadores no sistema precisam executar o pedido FLUSH para garantir a consistência através do sistema inteiro. De qualquer modo, nas máquinas SUNHD Space, TLB FLUSHES efetivamente no processador local são transmitidos sobre o BUS-SYSTEM pelo hardware e desta forma uma ligação cruzada não e necessária

28

Implicações para arquitetura baseados no contexto MMU/CACHE.5. Nenhuma destas questões são para a arquitetura Flush. ou uma dispersa lista de muitos buffers. De fato esta implementação é mais eficiente porque o motorista sabe exatamente quando o DMA precisa ver o dado consistente ou quando o DMA está indo criar uma inconsistência que deve ser resolvida. ele usa um conjunto de rotinas abstratas. O custo por contexto Flush podem tornar uma questão chave. Mas em particular algumas destas questões são provavelmente para ser: • A relação do mapeamento do espaço Kernel para os USER-SPACE. requer-se algumas considerações extras do implementador. Por exemplo.Como tratar o que a arquitetura flush não executa com exemplos A arquitetura Flush descrita não faz emendas para coerência de projetos DMA com dados Cached. Quando um device driver deve efetuar o DMA para/de um único buffer. num contexto são convertidas. que tem seu atributo. Para levar total vantagem de tal facilidade. O autor está mais convencido disto depois de sua experiência com um conjunto comum de sparc device drivers que precisaram de toda função corretamente em mais do que uma hand full de cache/mmu e bus architetures no mesmo kernel. em um grande Range de endereços (ou um inteiro Address Space) pode ser mais prudente distribuir e assumir um nova contexto MMU/para este processo por causa da eficiência 4. e ainda manter a coerência descrita acima. 29 . Pode ser necessário em tal caso andar por todos contextos que são contentemente válidos e efetuam o Flush completo em cada um para um Kernall Address Space Flush. pelo menos esta tem sido a experiência do autor. A idéia inteira por trás do conceito de MMU e facilidades do contexto cache é para permitir muitos ADDRESS SPACES para dividir os recursos CACHE/MMU no CPU.6 .7. considere no sparc como os DMA buffers são manuscrito.4. alguns mapeamentos do sistema kernel tem um atributo global.7. se um Tlb Flush e necessário. especialmente com respeito ao TLB. 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. Tais questões são negociadas mais claramente no nível do Driver do projeto. naquele o hardware não concerde ele mesmo com o contexto da informação quando uma tradução é feita. Desta forma um FLUSH (em qualquer contexto) de um mapeamento de um Kernel CACHE/MMU poderia ser suficiente. De qualquer maneira e possível um outros implementações para o Kernel para dividir o contexto chave associado com um ADDRESS SPACE particular. As questões envolvidas variam muito de uma implementação para outro. Isto também não tem provisões para nenhuma estratégia de mapeamento necessários pelo DMA e projetos se forem necessários em um certa máquina Linux é Portad To.2 .

um motorista de networking usaria isto para uma transmissao de pesquisa ou receber buffers. linux_sbus de struct *sbus). sem (*mmu_sglist (*mmu_get_scsi_sgl)(struct de efeito *. sem (*mmu_release_scsi_one)(char de efeito *. Da nota está o mipsr4000 que dará uma exceção quando tal situação ocorre.7 . elas podem ocorrer quando o processamento cow está acontecendo na corrente implementação. por exemplo. unsigned linux_sbus longo de struct *sbus). len de int). Essencialmente o mmu_get_* rotinas são passadas por um indicador ou um conjunto de indicadores e especificações de tamanho para áres no espaço kernel para que o DMA ocorra.7.Char * (*mmu_get_scsi_one)(char de char *. linux_sbus de struct *sbus). 4. unsigned linux_sbus longo de struct *sbus). Quando o driver é feiro como DMA e o transferidor tiver completado com o(s) endereço(s) DMA para que recursos possam ser liberados (se necessario) e cache flushes possam ser efetivados (se necessario). No mais chips que fazem algo estupido como isto. que essencialmente está para flush um user space page e se não o fazendo então causaria os problemas acima descritos. A rotina ter um bloqueio de memoria de DMA por um longo periodo de tempo. Pode ser necessario estender a arquitetura flush para prover as interfaces e facilidades necessarias para estas mudanças para o codigo networking. int. É claro que. int. O autor esta mais concernido sobre o custo dessas exceções durante o processamento cow e seus efeitos que ocorrerão na performance cow. a arquitetura flush é sempre sujeita a aperfeiçoamentos e mudanças para buscar novas questões ou novos hardwares que apresentam um problema que estava até este ponto desconhecido 30 . sem (*mmu_sglist (*mmu_release_scsi_sgl)(struct de efeito *. Tem sido tardiamente aquecida a conversa sobre muito inteligentes networking hardware. eles retornam para o endereço capaz do DMA (por exemplo um que pode ser carregado do controlador do DMA para o transferidor). um exception handler pode flush as entradas no cache que está sendo reclamado e tudo está em ordem. sem (*mmu_map_dma_area)(unsigned de efeito addr longo. O argumento final é uma entidade especifica Sparc que permite o codigo do nivel da maquina efetuar o mapeamento se o mapeamento do DMA são ordenados em uma base por-bus.Questões 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 são escreviveis!).

normalmente dado pelo processo. arquivos são mecanismos de abstração que fornece uma forma de armazenar e recuperar informações em disco.vide figura 01. fica a critério do usuário. 5. usando para tanto o nome atribuido ao arquivo.Arquivos Conceitualmente. O Linux faz distinção entre nome maiúsculos e minúsculos.. isto dá uma flexibilidade espantosa ao sistema de arquivo.1 .Diretórios Para tratar dos arquivos. podendo ser acessado por outros processos.1. Sistema de Arquivo no Linux (File System) 5.Z. .. no caso do Linux diretórios hierárquico. e uma arquivo pode até ter duas ou mais extenções. Quando tal processo termina sua execução. é preciso que tal arquivo receba um nome.Conceitos Fundamentais 5. 01 / . o arquivo continua a existir. O Sistema Operacional Linux. Não há limite de números de caracteres utilizados para dar nome a arquivos.2 .5. o Unix não influência em NADA nesta processo de identificação. . separada por ponto no Linux. podem colocar o que desejarem nos arquivos e identificá-los da forma que lhe for mais conveniente.1.1. o sistema operacional normalmente lança mão do diretórios. olha o arquivo como uma sequência de byte. Normalmente um nome de arquivo é composto de nome e uma extensão. A características mais importante de qualquer mecanismo abstração é a forma de identificar os objetos como os quais o mecanismo trata. Sis tem a de Dir e tór ios Hier ár quicos Fig. .Subdiretórios Dirson Raulison Weslei 31 .c. Os programas de usuários. o tamanho da extensão..Raiz bin dev usr . sem nenhuma estrutura.. Os diretórios são um tipo de arquivo.Subdiretórios . Quando um processo cria um arquivo. se houver. exemplo : prog.

Arquivos especiais de caracteres estão diretamente ligado à entrada/saída e são usados para dispositivos seriais de entrada/saída. arquivos de diretório. ao entra pela primeira vez em sua conta. a figura 02 mostra um exemplo de abertura de conta no Linux. Nos SO padrão Unix.Conta É uma senha que é aberta pelo administrador do sistema (denominado de root) onde o usuário indentifica-se para o computador. assim eles são mantidos e organizados.0. o usuário já esta em um subdiretório denominado subdiretório de entrada.0 (carvalho. tais como terminais.0. a conta é obrigatória para todos. 32 . Os arquivos especiais blocados são usado modelar dispositivos.0. que então dá acesso ao seu diretório de entrada.3 .4 . os diretórios são meios de oferecer endereços dos arquivos.br) (tte p0) carvalho login: root Password: Ast login: Wed Jan 29 12:16:37 from jacaranda. carvalho:~$ 5.No Linux todos os arquivos fazem parte de um diretório.uf Linux 2.1. arquivos especiais de caracteres e arquivos especiais blocados. tipo ASCII. impressoras e rede.cpd. Figura 02 Linux 2.1.Tipos de arquivos O Linux suporta arquivos regulares. onde você pode executar os comandos permitidos a sua senha.ufg. Um exemplo de tipos de arquivos utilizados no Linux pode ser visto na figura 03.cpd. de maneira que o SO possa acessá-los rapidamente e facilmente. Os arquivos regulares são aqueles que contém informações de usuários. 5. por exemplos. Arquivos diretórios são arquivos usado na manutenção do sistema de arquivo.

5 .login Dec 9 13:59 utmp -> /var/og/utmp Dec 9 13:59 wtmp -> /var/og/wtmp Mae 8 1995 e p. bem como os demais SO. trata o acesso a arquivos de forma radômica.000 Jan 6 12:28 sendmail. ou seja.conf.6 .example Como vimos neste exemplo.1. 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.Acesso a arquivos O Sistema Operacional Linux. nos mostra alguns dos atributos dos arquivos.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 spool@ src/ tclX/ tkX/ tmp@ 5. 5.cf Dec 9 13:59 skel/ Jan 9 1995 slip.Atributos dos arquivos Cada arquivo tem necessariamente um nome e um conjunto dados. A figura 04. o Sistema de Arquivo do Linux permite restringir o acesso aos arquivos e diretórios permitindo que somente determinados usuários possam acessá-los. 33 .1. A cada arquivo e diretório é associado um conjunto de permissões. Além disso.conf lib/ local/ man/ opemwin/ préerve@ sbin/ share/ sesog. seus byte ou registros podem ser lidos em qualquer ordem.hosts Jan 9 1995 slip. o Sistema Operacional associa a cada arquivo algumas outras informações que chamaremos de atributos de arquivos.

desde que os direitos do arquivos assim o permitam. 34 .não permitida escrita) (x Ö execução. .l Ö link.2 . . e não executá-lo como se fosse programa. Se um usuário tem permissão de execução de um diretório. escrever. Várias opções podem ser especificadas.Permissões do Grupo 6 . mas também abre esta arquivo para escrita.não permitida leitura ) (w Ö escrita.Permissões do Sistema 9 . ou alterar um arquivo. . Se a chamada CREAT for executada sobre um arquivo existente.Permissões do Proprietário 3 . pode ser usado para escrever no arquivo. . escrita ou para ambas as operações.não permitida escrita) (x Ö execução. A chamada CREAT não só cria um arquivo.Permissões do Grupo 8 . As Chamadas de Sistemas mais comum relacionadas ao Sistema de Arquivo Linux são chamadas que operam sobre arquivos individuais ou envolvendo diretórios e sistema de arquivos como um todo . . O descritor de arquivo que a chama retorna.não permitida escrita) (x Ö execução. . indepedente do modo de proteção especificado para ele.caixa maior. . esta arquivo será truncado para o comprimento 0. cuja execução torna o descritor de arquivo disponível para ser novamente utilizado numa chamada CREAT ou OPEN subseqüente. o arquivo deve ser fechado através da chamada CLOSE.não permitida leitura ) (w Ö escrita. Posteriormente.Permissões do Sistema 10 -Permissões do sistema execução) (dÖdiretório.informa o tipo de arquivo 2 . Para que um arquivo existente possa ser lido ou escrito.não permitida 5. O processo que faz a chamada deve indicar a quantidade de informação a ser lida e providenciar um buffer para possibilitar a leitura. O descritor de arquivo que a chamada retorna pode então ser usado para leitura ou escrita. quais usuários podem executá-lo. . .não permitida execução) (r Ö leitura. é necessário que ele seja primeiramente aberto e se ele esta aberto para leitura. e no caso de arquivos executáveis como programas. os bytes lidos vêm em posição corrente de leitura. fd. . escolhemos aleatoriamente o sétimo 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.Permissões do Grupo 7 .não permitida execução) (r Öleitura. .Essas permissòes determinam quais usuários podem ler. corresponde a posição do arquivo skel/ 1 .Permissões do Proprietário 4 .Permissões do Proprietário 5 .Ödemais arquivo) (r Ö leitura. A chamada READ é utilizada para ler o arquivo. .Operações sobre arquivos Os arquivos existem para armazenar informações e permitir a sua recuperação.não permitida leitura ) (w Ö escrita. . Passaremos a explicar a codificação. significa que ele pode realizar buscas dentro daquele diretório.

geralmente a partir da posição corrente. respectivamente. os dados são escritos no arquivo.3 . Quando a última ligação para um arquivo é removida. à posição corrente ou final do arquivo. Os programas podem verificar estas informações. 5. Sua execução faz com que haja mudança na interpretação dos nome dos caminhos realtivos. O próprio sistema de arquivo é um gráfico acíclico dirigido . ou DAG. usando a chamada STAT. Esta estrutura é chamada nó-i. seu tamanho. e outra informações pertinentes. Apesar da maioria dos programas ler e escrever arquivos sequëncialmente. é a forma como o Linux implementa compartilhamentdo arquivo. existe um ponteiro que indica a posição corrente do arquivo. é automaticamente apagada .A chamada WRITE. A ligação de um arquivo cria uma nova entrada no diretório que aponta para um arquivo existente. os dados existente nesta posição estaram perdidos para sempre. ele aponta para o próximo byte a ser lido ou a ser escrito. de seus bits de proteção. em algumas aplicações os programas devem ser capaz de acessar randomicamente qualquer parte do arquivo. mas numa estrutura de dados associada ao próprio arquivo. em geral. Seu primeiro parâmetro é o nome do arquivo. A conecção entre um diretório e um arquivo compartilhado é chamada de ligação (link). diretório ou arquivo especial). No Linux os blocos do disco não são listados no diretório. o instante da última modificação. A chamada CHMODE torne possível a mudança do modo um arquivo. muitas vezes é conveniente que um arquivo compartilhado apareça simultâneamente em diretórios diferentes que pertençam a diferentes usuários. O valor que o LSEEK retorna é a posição absoluta no arquivo após a mudança no ponteiro. Os diretórios de trabalho é especificado pela chamada CHDIR. Se tal posição for a de final de arquivo.Arquivos Compartilhados Quando vários usuários estão trabalhando juntos em um projeto. o segundo é a posição do arquivo. Os diretórios são criados utilizando as chamadas MKDIR e RMDIR. pois a operação de write escreve os novos dados em cima dos antigos. ele comumente precisam compartilhar arquivos. O segundo é um ponteiro para a estrutura onde a informação solicitada deve ser colocada. ou seja. 35 . Em decorrência disto. A chamada LSEEK têm três parâmetros: o primeiro do descritor de área para o arquivo. As entrada do diretórios são removidas via UNLINK. em vez de um arquivo específicos. Para cada arquivo o Linux mantem o modo do arquivo (regular. o primeiro UNLINK faz com que ele desapareça. As chamadas do sistema relacionadas com os diretórios ou com o sistema de arquivo como um todo . o tamanho do mesmo cresce. Quando a leitura ou escrita for seqüêncial. em vez de árvore. Associado a cada arquivo. A chamada LINK cria esta ligação. Se a posição corrente no momento da escrita estiver no meio do arquivo. o terceiro informa se a posição é relativa ao inicio do arquivo. Os seus parâmetros especificam os nome originais e novo. Para um arquivo que nunca foi ligado. respectivamente. um diretórios o pode ser removido se estiver vazio.

que por sua vez é baseado em um documento de consenso da comunidade Linux (que poderá ser encontrado na internet -www. Este documento está disponível via ftp anonymous em tsx-11. biblilotecas. A não compatível é aquela que deve ser localizada em uma máquina particular.4 . e o conteúdo de alguns arquivos de sistema. O coordenador do FSSTND é Daniel Quinlan <Daniel. e variável vs. A informação variável é tudo aquilo que se troca com a intervenção do administrador. muitos dos aspectos da implementação do sistema de arquivos estão baseados em idéias encontradas em sistemas similar ao UNIX system V.2 5. De qualquer forma. 5. os diretórios local dos usuários são compatível. • A implementação de outras estruturas de sistemas de arquivos.org) o layout do sistema de arquivos foi inicialmente desenvolvido dentro da lista de e-mail FSSTND do LINUX-ACTIVISTS.1 . • Proteção dos arquivos.edu no diretório /pub/linux/docs/linuxstandards/fsstnd/ FSSTND-FAQ Nosso trabalho enfocará a estrutura do sistema de arquivos para LINUX típico.mit. Uma parte considerável deste trabalho foi tirado da FAQ (Lista de perguntas mais frequentes) mantida por Ian McCoghrie (FSSTND-FAQ).Estrutura do Sistema de arquivos do LINUX Release 1.4. 36 .2 . O sistema de arquivos Linux segue o mesmo princípio básico que a maioria dos sistemas de arquivos UNIX seguem.linux .org>.5. Por exemplo.Características Sistema de Arquivos O sistema de arquivos Linux esta caracterizado por: • Uma estrutura hierárquica. • Um tratamento consistente da informação dos arquivos. incluindo a localização de arquivos e diretórios. O entendimento destes princípios básicos ajudará a guiar a estrutura de qualquer sistema de arquivos bem planejado.2 da Estrutura do Sistema de arquivos do LINUX (LINUX File System Structure) FSSTND.Quinlan@linux.Apresentação Este trabalho é baseado na versão 1. A informação compatível é aquela que pode ser compartida entre várias máquinas diferentes. Apesar que o sistema de arquivo não concordar em 100% com cada aspecto possível de alguma implementação particular do sistema UNIX. estáticos. documentação e tudo aquilo que não precisa da intervenção do administrador do sistema. não compátivel. A informação estática inclui arquivos.4. • Definição das categorização ortogonal de arquivos: Compatível vs. porém os arquivos de bloqueio do dispositivo (lock file) não são compatíveis. outros fatores também foram levado em conta tais como : • Práticas comuns na comunidade LINUX.

informação do configuração e do boot de inicialização (boot loader) e algum outra informação essenciais ao inicilizar. estes sistemas de arquivos não podem ser compartilhados (antes de tomar medidas especiais). que diminui muito a funcionalidade tradicional da partição /usr. • As implementações de fato do sistema de arquivos não nos permitem que a hierárquia /usr fosse montada somente para leitura. O diretório raiz / . A distinção "estática" contra "variável" afeta o sistema de arquivos de duas maneiras principais: • Arquivo da /(raiz) contém ambos tipos de informação. Por várias razões é desejável mante-lo pequeno. Isto se faz com a criação de uma hierárquia /var que funciona leitura e escrita (ou é parte de uma partição leitura-escrita tal como /). é a meta de manter / tão pequeno quanto possível. • Em um ambiente de rede.A distinção entre informação compatível e não compatível é necessária por várias razões: • Em um ambiente de rede. • Arquivo do /usr tradicional contém ambos tipos de informação variável e estática e os arquivos poderíamos desejar montar-los somente para leitura. certos arquivos contém informação especifica de uma só máquina. restaurar. estará presente no sistema de arquivos raiz aquelas ferrramentas que o administrador experimentado necessitaria para diagnosticar e reconstruir um sistema danificado . etc. portanto. compartilhado com outros sistemas LINUX utilizando o sistema de e-mail como uma rede. O conteúdo do sistema de arquivos raiz será adequado para carregar. Para restaurar um sistema. variável e estática necessita permitir leitura e escrita. porque possuía arquivos e diretórios que necessitavam ser escritos muito freqüentemente. fitas. A principal preocupação e que procuraremos colocar muito pouca coisas do sistema de arquivos raiz. estaram presente no sistema de arquivos raiz aquelas ferrramentas necessárias para restaurar o sistema em floppy . Para habilitar a recuperação e /ou a reparação do sistema. por exemplo: • uma partição /usr (o componente de /usr) montada (somente para leitura) através da rede (usando NFS). recuperar o sistema: Para carregar o sistema. dar boot. deve estar presente o suficiente como para montar /usr e outras parte não essenciais do sistema de arquivos. Esta inclui ferrramentas. Esta sessão descreve a estrutura do diretório raiz. A distinção "compatível" pode ser usada para suportar. é necessário proporcionar um método para fazer que /usr funcione somente para leitura. • uma partição /usr (o componente de /usr) montada somente para leitura de um cdrom. existe uma boa quantidade de informação que se pode compartilhar entre diferentes máquinas para o aproveitamento de espaço e facilitar a tarefa da administração. pode ser considerado como um sistema de arquivos somente para leitura. Este é um fator que deve ser atacado quando algumas parte de /usr são compartilhadas na rede. 37 .

O software não deverá criar ou pedir arquivos de subdiretórios especiais. Por exemplo muitos usuários de LINUX instalam e recuperam sistemas montando como o disco copiado de disquete 1. boot arquivos estáticos de boot de inicialização(boot-loader) dev arquivos de dispositivos de entrada/saída etc Configuração do sistema da máquina local com arquivos diversos para a administração de sistema. 5. Mantendo-o pequeno no sistemas de rede.3 . O sistema de arquivos / tem muitos arquivos de configuração especificos de um sistema. poderiam estar montada de um servidor NFS. Isto significa que o sistema de arquivos / não é sempre compatível entre sistemas em rede. De qualquer forma. se minimiza o espaço perdido no servidor utilizados pelos arquivos não compatível.É freqüentemente montado em mídia muitas pequenas. não se necessita que o sistema de arquivos / esta totalmente armazenado localmente. que é específicos do sistema. home diretórios local(home) dos usuários.O Diretório Raiz A composição do diretorio raiz de um sistema Linux típico pode ser representado pela Tabela 01. Os erros do disco. Possíveis exemplos são de um kern. É recomendável colocar principalmente os arquivos em /etc/mtab. que corrompe as informação no sistema de arquivos / são um problema maior que os erros em qualquer outra partição.Composição dos Diretórios / --. Tabela 01 arquivos executáveis(binários) de comandos essenciais pertencentes ao sistema e que são usados com freqüencia.4. um hostname diferente. etc. Também permite estações de trabalho com winchesters locais menores. Um sistema de arquivos / pequeno é menos propenso a perder arquivos como resultado de uma falha do sistema. A estrutura do sistema de arquivos LINUX proporciona suficiente flexibilidade para qualquer pacote. lib arquivos da biblilotecas compartilhadas usados com freqüencia mnt Ponto de montagem de partição temporários root Diretório local do superusuário (root) sbin Arquvios de sistema essenciais tmp arquivos temporários gerados por alguns utilitários usr todos os arquivos de usuários devem estar aqui (segunda maior hierárquia) var Informação variável bin 38 .44Mb. A partição / não tem porque estar armazenada localmente pode ser especificada pelo sistema por exemplo.

Se a restauração do sistema se planeja através da rede. cp.Subdiretório /bin • Composição : Arquivos Binários de comandos essenciais de usuários (disponíveis para todos os usuários). login.Arquivos e/ou comandos disponíveis em bin Os arquivos que devem estar em /bin são : comandos gerais e comandos de rede. seu. Mais informação da localização do kern pode-se encontar na sessão sobre a raiz / neste trabalho. rmdir. sfte . chown.1 . chgrp. chmod. Não abra subdiretórios dentro /bin. Os arquivos dos comandos que não são suficientemente essenciais para estar em /bin estaram localizados em /usr/bin. /usr e /var.1. kill. montar /usr no NFS). dmeg. ed. Estariam localizados em /sbin ou /usr/sbin dependendo se são ou não essenciais. cada un tem seu própria sessão de documentos. 5. então estes arquivos podem ser omitidos (montar / em chip ROM. porém que são requeridos no modo mono-usuário (singleuser mode) pode também conter comandos que são utilizados indiretamente por alguns scripts. true. uname}. pwd. mount.3. date. etc. etc. mknod. Então FTP o TFTP (junto com todo o necessário para obter uma conexão FTP) estariam disponíveis na partição /.4. Se /bin/sh é bash. Porém jamais se espera restaurar o sistema da partição /. • {arch. então /bin/sh seria em links simbólico a /bin/bash dado que bash se comporta diferente quando é carregado como sh ou bash. O kern do LINUX estaria localizado na raiz / ou no /boot. Todos os arquivos utilizados somente pelo root. echo. 39 . tal como daemons. cat. Outros links simbólicos de sistemas utilizando outros programas. mkdir.4. Se estiver localizado em / é recomendado usar O nome VMLINUX o VMLINUZ. rm. in. df. ps.) não são suficientemente essenciais para estar dentro da partição /. mv. 5. Comandos gerais: Os seguintes comandos deverão sido incluídos porque são essenciais.3. dd. sh. false. setserial. gette. Por exemplos. init. os elementos que são utilizados pelos usuários isoladamente (porém não pelo root) (mail. sed. então a partição / conterá os componente mínimos necessários. A pdksh que pode ser a /bin/sh nos discos de instalação e seria igualmente carregada a que /bin/sh faz um links simbólico a /bin/ksh. umount. more. nome que deverá ser usados em programas fonte do kern do LINUX recentemente.1 . update.Cada diretório listado será discutido em detalhe em uma subsessão separada mas adiante. sinc. Alguns estaram presente e tradicionalmente deverão estado em /bin. chsh. muitos sistemas incluiria cpio como de segunda utilidade mais é usado para reparos depois do tar. Contém os comandos que podem ser utilizados pelos usuários e pelo administrador do sistema.

Comandos de redes. Este diretório contém tudo que é necessário para carregar o sistema. MAKEDEV deve fazer previsão para criar qualquer arquivo de dispositivo especial listado na lista de dispositivos suportados pelo Linux. 5. arquivos de mapa de setor e qualquer outra coisa que não é editada manualmente. Além disso. A lista de dispositivos compatível com o LINUX. é recomendado usar um nome mais descritivo.3 . Isto é porque as instalações locais seguro diferem daquelas da máquina do administrador. 40 . estes ligação seguramente não se atualizaram se houverem trocas locais no hardware. Pode conter um MAKEDEV local para dispositivos locais. /dev também contém. exceto os arquivos de configuração e o gerenciador de boot. Contém um arquivo para cada dispositivo que o kern do LINUX pode suportar. netstat. Este inclui setores master de inicialização (master boot sectors) guardados. no diretório /pub/device-list. Os arquivos de configuração para carregar de inicialização poderiam estar localizados em /etc. somente como preve na lista de dispositivos de LINUX. Os links simbólicos não devem ser distribuidos no sistemas LINUX. Os programas necessários para consertar o boot de inicialização e capaz de carregar um arquivo (tal como o gerenciador de boot [lilo]) estaram localizados em /sbin.org).eggdrassiml. Estes arquivos especial de dispositivo estão disponível no endereço eletrônico da internet ftp.4. Quando utilizados responsavelmente são de bom uso.Subdiretório /dev • Composição : arquivos de dispositivos de entrada/saída. hostname. Este é diretório dos dispositivos. Como o exposto acima. um script de instalação configura links simbólicos na instalação. se estiver em /boot.4. um script carregado MAKEDEV o qual pode criar dispositivos quando necessitar. ping}. 5. Estes são unicamente os arquivos de rede que os usuários e o root queiram ou necessitem executar que não estejam no /usr/bin ou /usr/local/bin {domain name.2 . é mantida por Peter Anvin (peter.Os comandos de restauração podem aparecer em /bin ou /usr/bin em sistemas LINUX diferentes.Subdiretório /boot: • Composição : arquivos estáticos do boot de inicialização (boot loader).3. o kern do LINUX pode estar localizado em / ou /boot.com.3.anvin@linux. O /boot é utilizado para qualquer coisa que se utiliza antes do kernel execute /sbin/init.

5. fstab.3. /etc/skell/usuários). gette e update. O /etc/X11/xdm contém os arquivos de configuração xdm.4.5.so. O /etc/X11 é o lugar recomendado para todos os arquivos de configuração X11 locais da máquina. securette .conf. Subdiretórios de /etc Tipicamente /etc possui dois sudiretórios : • X11 • sk arquivos de configuração para Ox11 Esqueletos da configuração usuários O /etc/sk é a localidade para os chamados arquivos esqueletos de usuários. que são os dados por default quando um novo usuário recebe uma conta. Os arquivos que nas primeiras versões encontravam-se em /etc. motd. Os arquivos gerais são necessários na maioria dos sistemas LINUX.Arquivos e/ou comandos disponíveis em /etc Este descrição do conteúdo é generica.3. se sog. issue. passwd. • Arquivos de rede. mtab. Estes são a maioria dos arquivos normalmente gravados em /usr/lib/X11/xdm. Isto inclui arquivos tal como init. portanto não está totalmente completa. fdprm. irá em /sbin ou /usr/sbin. pode haver algumas variações dependendo do distribuidor do Linux ou do administrador de sistema. csh. Nenhum arquivo deve ir diretamente dentro /etc.conf. profile.4. Os arquivos que devem ir neste diretório incluem Xconfig (e /o XF86Config) e Xmodmap.Subdiretório /etc • Composição : Configuração do sistema da máquina local com arquivos diversos para a administração de sistema. veja /var/lib/xdm.conf. arquivos como hostname que são utilizados por usuários comuns e pelo root não iriam em /sbin seriam em /bin. tte te pe} 41 . group. magic. inittab. mtools. psdaTabelase. ld. Este diretórios é necessário para permitir o controle local se /usr for colocado somente para leitura. disktab. tercamp. Contém arquivos e diretórios que são locais ao sistema atual. esta diretório pode conter subdiretórios para diferente grupos de usuários (/etc/skell/apoio.login. lilo.4. para maior informação. gettedefs. tais como : {adjtime.1 . shells.4 . Os arquivos /etc são composto de : • Arquivos gerais.

O linkador dinâmico compartilhado /lib/ld. Os sistemas com a senha de passwords sombreadas (shadow password) terão arquivos de configuração adicionais. deveria usar a função de bibliloteca getpwent em vez de contar com /etc/passwd.conf.*. ou o modo /etc/rc. ninguém deverá confiar nesta localização.Sudiretório /lib: • Composição : Biblilotecas compartilhadas e módulos do kern essenciais. networks. hosts. host. gateway. usermod. Em sistemas grande (especialmente quando os diretórios /home são compartilhados entre várias máquinas usando NFS) é útil subdividir os diretórios local . etc. portanto. Se você deseja encontar o diretório local de qualquer usuário.so. Estes incluem em /lib/libc.lpd.d/* etc do System V. porque a informação pode estar armazenada remotamente usando sistemas como NIS. service} Existe dois modo para a instalação dos scripts de comandos "rc" os quais são chamados por init no momento de carregar. Módulos -> Módulos de kern carregavéis. Só as biblilotecas compartilhadas requeridas para executar os arquivos dentro de /bin e /sbin devem 42 . reolv. 5. e outros). host. A subdivisão pode ser implementada utilizando subdiretórios tal como /home/apoio. host.*. Em sistemas pequenos. /home/docs. As biblilotecas que são necessárias somente pelos arquivos /usr (como qualquer arquivo X Windows) não pertencem a /lib. protocols. inetd.*. O diretório /lib contém aquelas biblilotecas compartilhadas que são necessária para carregar o sistema e executar os comandos do sistema de arquivos raiz.conf.3.so.6 . /lib/libm. cada diretório de usuário é um dos subdiretórios debaixo /home.Os arquivos de Rede mais utilizados na maioria dos sistemas LINUX são : {exports.3.rpc. Qualquer que seja o escolhido pode ser utilizado uma mescla dos dois.4. Descreve uma localização sugerida para os diretórios local dos usuários. 5. assim.Subdiretório /home: Composição : diretórios locais dos usuários (opcional) O sudiretório /home é claramente um sistema de arquivos específico do diretório local. /home/raulison. em /etc (/etc/shadow e outros) e /usr/bin (useradd. recomendamos que todas as distribuições LINUX usem esta lugar como localização default dos diretórios locais. etc.4. A regra de criá-lo difere de máquina para máquina. /home/cartas. Muitas pessoas preferem colocar as contas dos usuários numa variedade de lugares. /home/weslei. e outras biblilotecas compartilhadas requeridas por arquivos em /bin e /sbin.equiv.conf. /home/dirson.5 . ftpusers.so. printcap.

É recomendado a utilização deste para o armazenamento e obtenção de informação de processos.Subdiretório /proc • Composição : Sistema de arquivos virtual de informação de processos do kernel.Subdiretório /mnt • Composição : Utilizados temporariamente.7 . assim como outras informação do kern ou da memória.Subdiretório /root (opcional) Composição : Diretório local do superusuário (root) O diretório / é tradicionalmente o diretório local do usuário root nos sistemas UNIX. O diretório local da conta do usuário root pode ser determinada por preferências locais. Por razão de compatibilidade. Não é recomendado o uso da conta root para coisas corriqueiras tal como ler o e-mail e ver as notícias (mail & news). A especificação para /lib/module ainda não foi definida.4. É recomendamos a não utilização deste diretório para programas de instalação. /root utiliza-se em muitos sistemas LINUX e em alguns sistemas UNIX. O conteúdo deste diretório é um assunto local e não deve afetar a maneira que executamos nenhum programa. A localização usual do arquivo é /usr/lib/gcc-lib/ <target>/<versão>/cpp. 5.so. 5.* poderia estar localizada em /usr/lib se não é utilizada de nenhuma forma em /bin ou /sbin. (Por exemplo.3. É recomendado que o mail para root seja redirecionados a um usuário mais adequado. Pode existir links /lib/cpp apontando para estes arquivo ou a qualquer outra referência a ele que exista no sistema de arquivos. Por esta razão recomendamos que não apareçam subdiretórios como Mail e News no diretório local da conta do usuário root. O sistema de arquivos proc é utilizado para manipular informação de processos e de sistema em vez de /dev/kmem e outros métodos similares. e /home/root. pois ainda não há um concenso na comunidade Linux.estar ali. para armazenamento de arquivos montados Este diretórios foi previsto para o administador poder montar temporariamente sistemas de arquivos quando necessitar.8 .9 . /root.4.4. recomendá-se que seja usada somente para a administração do sistema. A bibliloteca libm. 5. /usr/bin/cpp é utilizado frequentemente). Se o diretório local do root não esta armazenado na partição raiz. As possibilidades óbvias inclue em /. 43 . e sugerimos utilizar um diretório temporário adequado que não esta em uso pelo sistema.3.3. /lib/cpp necessita existir como uma referência ao pre-processador C instalado no sistema. será necessário assegurar-se que tome / por default caso não seja localizado.

dumpe2fs. update. se o arquivo não é vital para a operação do sistema). ext2 minix. Os comandos de saída são fastboot.Subdiretório /sbin: • Composição : arquivos de Sistema (algumas vezes mantidos em /etc) Os utilitários usados pela administração do sistema (e outros comandos que somente o root utiliza) estão armazenados em /sbin. swapoff. fsck. Arquivos como chfn que os usuários usam ocasionalmente devem estar em /usr/bin.3.4. 5. mkfs. e2fsck. tais como scripts da administração. mkfs. Os comandos de manipular sistemas de arquivos são fdisk. comandos de manipular sistema de arquivos. Os comandos do sistema de arquivos ext2 (opcional) são badbocks. reboot. xia.Arquivos e/ou comandos armazenados em /sbin Arquivos armazenados são dos seguintes tipos : • • • • • comandos gerais. swapon. gette.3. comandos de saída. além dos arquivos em /bin. fsck. init. Se somente o administrador do sistema ou o root necessitem executar. mkswap. ping que é absolutamente necessário para o root é também frequentemente usado pelos usuários. Não há utilidade inerente na segurança em fazer que /sbin esteja fora do alcance dos usuários. A divisão entre /sbin e /bin não foi criada por motivos de segurança para evitar que os usuários violem o sistema operacional. Qualquer coisa que se executar depois sabendo que /usr foi montado (quando não há problemas) deveria estar em /usr/sbin. mke2fs. msdos.1 . então deve ir em /sbin (não /usr/sbin ou /usr/local/sbin.*. É recomendado que os usuários tenham permissão de leitura e execução em tudo que se encontra em /sbin exceto talvez certos programas. tune2fs. onde * = é um dos seguinte.10. halt. e talvez outros.*. Os usuários comuns não terão que por os diretórios sbin em seu caminho (path). telinit. ext. e /usr/local/sbin. O Gerenciador do boot de inicialização (lilo) e os 44 . gerenciador de boot de inicialização e comandos de rede. foi cirada para promover uma boa partição entre arquivos que todos usam e os que são utilizados principalmente para as tarefas administrativas. fasthalt. /usr/sbin. setuid e setgid. Decidir que arquivos vão no diretório de /sbin é difícil. /sbin.5. Os comandos gerais são clock. shutdown. Os arquivos da administração do sistema root local devem estar em /usr/local/sbin. tipicamente contém arquivos essenciais para dar boot ao sistema. mkost+found.4.10 . Se o usuário necessitar executá-lo. deve de ir para outro diretório. deverão estar em /bin.

45 . route. ifconfig.comandos de Rede : arp.

isto significa que /usr. Assim.3. em vez de só quando atualizam as biblilotecas compartilhadas . preferencialmente em dispositivo rápido (um sistema de arquivos basado em memória por exemplo). deve ser armazenada em outro lugar.4. Nenhum pacote grande (como TeX o GNUEmacs) deve utilizar o subdiretório direto abaixo de /usr.A hierárquia /usr. porém podem ser compilados estáticamente. A "permanência" da informação que é armazenada em /tmp é diferente de aquela que é armazenada em /var/tmp. deve haver um subdiretório dentro /usr/lib (o /usr/local/lib caso tenha sido instalado localmente). Os programas devem utilizar /tmp ou /var/tmp (que era originalmente /usr/tmp) de acordo os requisitos esperados da informação. somente de leitura. por exemplo. /var/tmp nunca poderá se localizar-se em algum dispositivo RAM.4. 5. pois não se sabe como nomear os links. /usr é informação compartilhada. a propósito.3. O subdiretório /usr é a segunda maior seção do sistema de arquivos. em vez disso. deve ser compartilhada entre várias máquinas que utilizam o LINUX e não deve exibir qualquer informação local de uma máquina ou que varia com o tempo.2 .12 . (Não está claro se é ou não vantajoso executar ldconfig em cada inicialização). O principal uso do sln (reparar links simbólicos incorretos em /lib depois de uma atualização mal sucedidas) não é a preocupação maior. Portanto. Se está é executada. 5. Isto é útil. Os administradores de sistemas podem querer ajuntar /tmp a algum outro diretório.3. então a permanência de arquivos em /var/tmp deve ser mesmo tão grande como a de /tmp. nc são utilitários quando ocorrem erros. /tmp pode ser limpo em cada inicialização ou a intervalos relativamente frequentemente. não se deve operar a informação armazenada em /tmp permanecendo por algum período determinado de tempo. Note que estes não necessitam ser obricatoriamente versões compiladas estaticamente dos ln e nc. O /tmp é utilizado para arquivos temporários. para conservar espaço na partição raiz. O nc estático é útil em algumas ocasiões de emergência. como o sistema X 46 . pois não devem colocar nenhum arquivo particular em qualquer diretório de armazenamento temporário. dado que um usuário pode escolher executar ldconfig ao dar boot. tal como /var/tmp.Arquivos opcionais em /sbin: Os arquivos estáticos (compilados estaticamente) estão o sln e nc estático.Subdiretório /tmp Composição : arquivos temporários gerados por alguns arquivos utilitários.5. O subdiretório /tmp pode estar na memória RAM. já que existe o programa ldconfig (usualmente localizado em /usr/sbin) e pode atuar como um assistente guiando para atualizar as biblilotecas dinâmicas.4.10. O arquivo ldconfig é opcional em /sbin. alguns que gostam de ter ldconfig a mão na situação que se tem um sln.11.

o sistema GNU Info Biblilotecas Hierárquia local Manual on line Arquivos de Administração do Sistema não vitais Informação independente da arquitetura Código fonte Os seguinte links simbólicos a diretórios podem estar presentes. Esta possibilidade baseia-se na necessidade de preservar a compatibilidade com sistemas anteriores haja visto que em todas as implementações pode asumir o uso da hierarquia /var.3. 47 .Windows faz-se uma exceção permitindo um considerável precedente e a prática amplamente aceita.Subdiretórios /usr (permanente) Em um sistema típico teremos mais ou menos os seguintes diretório : X11R6 X386 bin dict doc etc games include info lib local man sbir share src Sistema X Windows Versão 11 release 6 Sistema X Windowss Versão 11 release 5 em plataformas X 386 A maioria dos comandos de usuário Listas de palavras Documentação miscelânia Configuração do Sistema Jogos e arquivos educacionais arquivos header(cabeçalhos) incluidos por programas C Diretório primário. poderão existir os seguintes links : /usr/adm /usr/préerve /usr/spool /usr/tmp /var/spool/locks ------------------> ------------------> ------------------> ------------------> ------------------> /var/adm /var/préerve /var/spool /var/tmp /var/lock Uma vez que o sistema não precise mais de alguns dos liks anteriores.4. Exemplo de um subdiretório /usr típico : 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. deve existir um links deste /usr/X11 apontando para a hierarquia do sistema X Windows atual.12.1 .

3. o jogo de caracteres ISO 8859-1 (Atin1) deve ser utilizado (muito raramente é possível fazê-lo) Qualquer outra lista de palavras. Estes devem. porém armazenar a configuração /usr/etc do software que se encontra em /usr/bin e /usr/sbin é um problema. Uma possível solução que considerada foi eliminar completamente /usr/etc e especificar que todas as configurações se armazenem em /etc. deve ser incluido aqui. etc. se possível.Subdiretório /usr/dict . utilizar o jogos de caracteres ISO 8859 que faz aprópriado para linguagem em questão. Estes podem ser links simbólicos a localização física dos interpretador da shell. o qual é utilizado por "look" para vários programas de ortografia.Subdiretório /usr/X386 É composta do sistema X Windows.5 .Subdiretório /usr/etc Contém a configuração do sistema.12.4. Acontece que existe a possibilidade de que muitos site podem querer ter alguns arquivos de configuração que não estejam na sua máquina local. /usr/dict/french. A shell Bourne e C é tão fixos em /bin. e se possível. Pethon.4. é vantajoso o padronizar a localização dos elos. As listas de palavras para outros linguagem pode usar o nome em inglês para a linguagem.3 . por exemplo. Os interpretadores de scripts dos shell (invocados com #! <rota> na primeira linha do script de shell) não podem depender de uma rota.5. Tlc se encontram em muitos lugares diferentes /usr/bin/perl. /usr/bin/pethon e /usr/bin/tcl devem referênciar a os interpretador de shell perl.12. 5. É razoável ter aqui só as listas de palavras.4 . versão 11 release 5 em plataformas X 86. words pode utilizar ortografia americana ou britânica.3.3.Listas de palavras Arquivos recomendados em /usr/dict (words).2 . Montar /usr somente para leitura de um CD-ROM ou através de NFS é difícil no melhor dos casos.3. este é o diretório principal de comandos executáveis no sistema possui o mh (comandos para o sistema de manipular e-mail MH) e o X11 (link simbólico até /usr/X11R6/bin).Subdiretório /usr/bin É composta da maioria dos comandos do usuário. pois Perl. 5. /usr/dict/danish. podem concatenar words a /usr/dict/american-english ou /usr/dict/ british-english. 48 . tal como o diretório web2. esta hierarquia é geralmente idêntica a /usr/X11R6. Os usuários que precisam ambos.12. 5.4. tradicionalmente esta diretório contém somente arquivos words de palavras inglesas.12. pethon e tcl respectivamente. e que elas são os únicos arquivos comum a todos os verificadores de ortografia. exceto que os links simbólicos de /usr devem estar ausente se estiver instalado /usr/X11R6.4.

Isto também significa que /usr/etc é tecnicamente um diretório opcional no sentido restrito. decide-se que /etc deverá ser o único diretório que seja referenciado pelos programas (Isto é. net Definição genéricas relacionadas com rede. rpc Definição RPC de Sun Microsystem. todos devem buscar configurações em /etc e não /usr/etc). define a interface sistema vs. netipx Definição específicas a +IPX (NovOIPX/SPX). detalhes da família de protocolo. 49 . g++ arquivos include de GNU C++. Qualquer arquivo de configuração que necessissário para todo o sistema e que não era necessário antes de montar /usr (em uma situação de emergência deve estar localizado em /usr/etc). O subdiretório netinet contém definições específicas de INET (DARPA Internet.6 .3.Subdiretório /usr/include Neste diretório é onde todos os arquivos include de uso geral do sistema para programação em linguagem C e C++ podem ser localizados. etc. gnu arquivos include GNU. definições para ftp.12. Rpcsvc Definição de serviços RPC de Sun Microsystem. Netinet Definição específicas a TCP/IP. Descrição dos principais sudiretórios de /usr/include : /usr/include arquivos include X11 Link simbólico até /usr/X11R6/include/X11 arpa Definição do protocolo definido por ARPNET. kern. que também é contida no TCP/IP ) ARRL AX. Arquivos especificos em /etc. mesmo assim recomendamos que todos os sistemas LINUX o incorporem. O subdiretório net contém definições genéricas relacionadas com a rede. 5. protocols Definição de protocolos( basadas em INET) readline A bibliloteca readline GNU. TCP/IP.Eventualmente. em máquinas específicas podem ter ou não um link simbólicos aos arquivos de configuração localizados em /usr/etc. bsd arquivos include de compatibilidade com BSD. linux Link simbólico a /usr/src/linux/include/linux. Os protocolos novell IPX/SPX são parte dos serviços de arquivos Novell Netware. Não é recomendado que /usr/etc contenha links simbólicos que apontem para arquivos /etc.25 é melhor conhecido como pacote de transmissão via radio (packet radio).4. asm Link simbólico até /usr/scr/linux/include/asm-<arch>. sys arquivos include de geração de sistemas O subdiretório arpa contém definições de header de protocolos para os protocolos ARPANET. netax25 Definição específicas a +AX25 ( ARRL AX25). Isto é desnecessário e interferem no controle local das máquinas que compartem o diretório/usr. prototipos telnet e material similar.

smail Smail. arquivos de programa compilador. códigos executável (por exemplo os arquivos internos de gcc estão localizados abaixo /usr/lib/gcc-lib) e outros tipos de informação. registros de jogos e similar.Subdiretório /usr/lib Inclui as biblilotecas para programas e pacotes. Qualquer arquivo modificável tal como arquivos demarcado. kbd Tabelas de tradução de teclado e informação relacionada.5.x e BSD 4.6. /usr/bin/sendmail. Arquivos que os usuários precisam para usar makewhatis. uucp Comandos de UUCP.3. /usr/lib de onde pertencem. games arquivos de dados estáticos para /usr/games.biblilotecas para programação e pacotes: X11 Link simbólico para /usr/X11R6/lib/X11 emacs arquivos de suporte estáticos para o editor GNUEmacs. texmf TeX/MF ( e ATeX ) biblilotecas de informação. A informação de jogos armazenada em /usr/lib/games deve ser apenas informação estática. É necessário para compatibilidade de jogos. O arquivo catman que repassa ao script makewhatis em muitos sistemas LINUX. inclue as biblilotecas objeto. Dado que makewhatis não é referênciado por outros programas. informação estática de várias casos. Em sistemas que utilizam smail devem localizar smail em /usr/sbin/smail e /usr/bin/sendmail deve ser um links simbólico a smail. O arquivo sendmail é referênciado por muitos programas com seu nome histórico /usr/lib/sendmail. /usr/lib é incluido além disso alguns comandos executáveis tais como sendmail e makewhatis. Este deve ser um links simbólico. Note que esta localização requer que /usr/sbin e /usr/sbin/sendmail devem ser executáveis para usuários normais. a localização layout para os agente de transferência de e-mail com uma interface de linha de comando compatível com o sendmail.7 . ambos. devem de ser localizados em var/lib. pode-se usar um links simbólico desde /usr/games/lib até /usr/lib/games.12. esta instalado localmente). Este regra vai de encontro também com a nova ocorrência no layout sendmail definida em Sendmail 8.4. Qualquer pacote de programa que contenha e precisa informação que não necessite ser modificada deve armazenar tal informação em /usr/lib (o /usr/local/lib. Historicamente. deve também estar em usr/bin. 50 . terminfo diretórios para a base de dados terminfo. /usr/lib/ . Mh Biblilotecas para o sistema de manipular e-mail MH: news Cnews/INN. Recomenda-se a utilização de um subdiretório em /usr/lib para este propósito. groff Biblilotecas / diretórios para GNU groff gcc-lib arquivos/diretórios especificos do sistema para gcc.4. não há problemas ao mover para um diretório de arquivos executáveis. zoneinfo Configuração e informação da zona horaria.

3. man3 Subrotinas e funções de bibliloteca. Necesssita ficar a salvo de ser sobrescrito quando o software do sistema se atualiza.4. é recomendado que as distribuições não sobrescrevam informações /etc fora destas circunstâncias).12. O software instalado localmente deve estar localizado dentro de /usr/local. As páginas do manual estão armazenadas <mandir>/<locais>/man [1-9]. man1 Programas para usuários.8 . 5.12. 5. man6 Jogos. man4 Dispositivos. Os arquivos de configuração especificos do host tal como Xconfig o XF86Config devem ser armazenados em /etc/X11. Não deve haver exceções regra . /usr/local Diretórios da Hierárquia local bin arquivos doc Documentação local etc arquivos de configuração utilizados somente no local games Jogos instalados localmente lib Biblilotecas para /usr/local info Páginas de informação local man Hierárquias de páginas de manual para /usr/local sbin Administração do sistema scr Código fonte local. detalha a organização das páginas do manual através do sistema.Subdiretório /usr/man Inclui as paginas do manual. o software local não deve se colocado fora de /usr/local sem uma boa causa.4.3. um arquivo de configuração mais global (talvez em /usr/etc/X11 ou /usr/X11R6/lib/X11). em vez de /usr a menos que esteja sendo instalado para reemplantar ou atualizar software em /usr. Por esta razão.Subdiretório /usr/local A hierarquia /usr/local está para ser utilizada pelo administrador de sistemas quando instala o Linux localmente. man2 Chamadas do sistema. Este diretório deve estar vazio ao terminar de instalar LINUX pela primeira vez. devem estar dentro de /usr/man.Nota: nenhuma informação especifica de host para o sistema X Windows deve armazenar-se em /usr/lib/X11 (que é realmente /usr/X11R6/lib/X11). se for somente um links simbólico. man5 Formatos arquivos. Note que o software localizado em / ou em /usr pode ser sobrescrito por atualizações do sistema (assim mesmo. 51 . Este deve incluir informação de configuração como o stem. pois não se encontram em /usr.twmrc. exceto quiça os subdiretórios vazios listados.9 . Pode ser usado por programas e por informação que são compatível entre um grupo máquinas. Faremos uma pequena listagem de <mandir> e <locais> : <mandir>/<locais> uma hierarquia de páginas de manual.

que não inclua símbolos de pontuação e que todas as letras sejam minúsculas. especialmente para países com vários layouts. pode-se omitir a subcadeia <locais> e armazenar todas as páginas do manual em <mandir>. Esta nomenclatura dos subdiretórios de idiomas de /usr/man esta basada no apêndice e do padrão POSIX 1003. podem armazenar as páginas do manual (Os diretórios man[1-9]) diretamente em /usr/man. Em sistemas que usem só um idioma e um código do conjunto de caracteres para todas as páginas do manual. Obviamente não há páginas de manual em / porque não se necessitam para carregar nas emergências. sempre que for possível (especialmente o padrão ISO). Esta pode utilizar-se para diferenciar as necessidade culturais. Se o campo <conjunto_de_caracteres> é só uma especificação numérica.man7 Misceláneas. man8 Administração do Sistema. porém é bastante recomendado que a inclua. se possível (muita gente está familiarizada com o código 2 letras espelhado no código país como e-mail).1 que descreve a cadeia de identificação locais. Deve-se fazer reserva na estrutura de /usr/man para o suporte de páginas do manual que estão escritas em diferentes idiomas (multiplos idiomas).<conjunto_de_caracteres>][. A cadeia <locais> é: • <idioma>[<_territorio>][. Os fatores relevantes incluir no idioma (inclue diferenças basedas na geografia) e código do conjunto caracteres. o número representa o número do layout internacional que descreve o conjunto caracteres. Estas providências devem levar em conta o armazenamento e referência destas páginas do manual. Por exemplo no sistemas que só tem páginas do manual em inglês codificados na ASCII. man9 Funções e variáveis internas do kernel. Recomenda-se que utilizar uma representação numérica. Em países nos quais existe um código do conjunto caracteres no layout. O campo <_territorio> será o código das letras de ISO3116 (uma especificação da representação dos nomes dos países. O campo <conjunto_de_caracteres> deve representar o layout que descreve o código caracteres. O método mas aceito para descrever um ambiente cultural. Exemplos de vários manuais encontrados : 52 . pode omitir o campo <conjunto_de_caracteres>. com minúsculas somente.<versão>] O campo <idioma> vem do ISO639 (um código para a representação dos nomes dos idiomas). Seja os caracteres especificado no padrão ISO. Um parâmetro que especifique <versão> do perfil pode ser colocada depois do campo <conjunto_de_caracteres >. O <mandir> primário do sistema é /usr/man contém informação do manual para comandos e informação abaixo dos sistemas de arquivos / e /usr.

Subdiretório /usr/sbin Este diretório contém quaisquer arquivo não essenciais utilizado exclusivamente pelo administrador do sistema. mostrada no subdiretório /var.3. nos subdiretórios aprópriados de /usr/man também se aplica a as outras hierarquias de páginas do manual.88591 /usr/man/de_CH. quaisquer ferramenta de administração não essenciais e arquivos para programas servidores não-críticos. Isto também é aplicável a estrututura opcional de /var/catman. tais como rcp. 53 . Por exemplo se. montado no /usr. 5. A prática de colocar as páginas do manual de diferentes idiomas.jis /usr/man/ja_JP. outras funções essenciais devem localizar-se em /sbin em vez de /usr/bin. pois não são requeridas nem devem ser distribuidas no lugar das fonte nroff das páginas do manual.4.telnetd e in.*).sjis /usr/man/ja_JP.mountd.infsd e rcp. Estes inclue os deamons da internet que são chamados por inted (chamados in. Os programas de administração do sistema que sejam utilizados para a reparação do sistema. tais como /usr/local/man e /usr/X11R6/man.*) tais como in.ujis As páginas do manual para os comandos e informação que se encontra abaixo /usr/local estão armazenadas em /usr/local/man. Logo todas as hierarquias de páginas do manual no sistema devem ter a mesma estrutura que /usr/man. As páginas do Manual do sistema de manipulação de e-mail mh devem ter o prefixo mh em todos os nomes de arquivos das páginas. As páginas do sistema X Windows devem de ter o prefixo X em todos os nomes dos arquivos das páginas. As seções da páginas cat (cat[1-9]) que contém páginas do manual formatadas.646ch /usr/man/ja_JP. também se encontram dentro os subdiretórios /<mandir>/<locais>.12. Tipicamente /usr/sbin contém os deamons de rede. /usr/local/man não tem páginas do manual na seção 4 (dispositivos) então se pode omitir /usr/local/man/man4.fingerd e os deamons basados em rpc manipulados por portmap (chamados rcp.Idioma Inglês Inglês Inglês Francês Francês Alemão Alemão Alemão Alemão Japonês Japonês Japonês Países -------Reino Unido Estados Unidos Canadá França Alemanha Alemanha Alemanha Suiça Japão Japão Japão Conjunto caracteres ASCII ASCII ASCII ISO8859-1 ISO8859-1 ISO646-DE ISO6937 ISO8859-1 ISO646-CH JIS SJCS UJ (ó EUC-J) Diretório /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.10 . Os diretórios vazios podem ser omitidos da hierarquia de páginas do manual. As páginas do manual para o sistema X Windows estão armazenadas em /usr/X11R6/man.

neste ponto ficam disponíveis os serviços para os usuários (suporte de impressão) e até outras máquinas (por exemplo. 5.A Hierárquia /var /var adm catman lib local ock og named nis Informação variável Informações administrativa do sistema (obsoleto).3.Subdiretório /usr/share São informação que independente da arquitetura. /usr/src/linux/include/asm-<arch> /usr/src/linux/include/linux /usr/include deve conter links a estes diretórios.13 . O código fonte para Kern deve sempre estar em seu lugar mesmos. ao menos estes arquivos include devem sempre ser distribuidos nas intalações que incluem um compilador C.Estes programas servidores são utilizados quandoocorre um estado que o System V conhece como "run levO2" (estado multi-usuário) e o "run levO3" (estado em rede) ou estado que o BSD conhece como "modo multi-usuário". /usr/src/linux pode também ser um links simbólico a um árvore de código fonte do kernel. dados que são necessitados pelo compilador de C. Os arquivos include do código do kernel.12. 5. quaisquer especificação para /usr/share será incluida em um documento suplementar ao FSSTND.3. de acordo com a Linux Organization.4. 5. Link simbólico até /var/og Páginas do manual formatadas localmente Informação do estado das aplicações Informação variável do software de /usr/local arquivos de bloqueio arquivos de Agenda arquivos DNS. somente rede arquivos base de dados NIS 54 . os pesquisadores do FSSTND acham que /usr/share não é necessário na maioria dos sistemas Linux. Os programas administrativos instalados localmente devem estar localizados em: /usr/local/sbin. Esses arquivos estão localizados neste diretórios.12. O único código fonte que sempre deve localizar-se em um lugar específicos é o código do kern(quando exista ou esteja enlaçado como parte de uma estrutura /usr/include).3.12 . qualquer código fonte não local deve localizar-se neste diretório .4. Devem ser distribuidos no diretório/usr/src/linux de forma que não existão problemas quanto os administradores do sistema atualizem sua versão do kern pela primeira vez. chamados asm e linux.4.Subdiretório /usr/src Contém o Código fonte para o kern do Linux. Podem-se usar subdiretórios que desejar.11 . exportar NFS).

5.3. Se permita o armazenamento temporário local das páginas do manual em /var/catman. Outras porção são compatível. Os administradores que montaram /usr como escrita (intalações mono-usuários) podem escolher não usar /var/catman e exibir as páginas do manual formatadas dentro dos diretórios cat[1-9] dentro /usr diretamente. Algumas porção de /var são não compatível entre diferentes sistemas. pois dentro da partição /usr (Isto se fazia algumas vezes para reduzir o tamanho da partição raiz ou quando há pouco espaço na partição raiz). utmp seja movido a /var/run.13. notoriamente /var/spool/mail e /var/spool/news. informação de ordem administrativa e arquivos temporários e transitorios./var/catman : Páginas do Manual Formatadas localmente (opcional) Este diretório poporcionara uma localização padrão para os computadores que utilizam uma partição /usr somente para leitura .run spool tmp arquivos relevantes a processos execução do sistema Diretórios de trabalhos em fila para realizar-se depois arquivos temporários. em vez links /var e / usr/var. porque fazia que a separação entre /usr e /var seja mais difícil e seguramente criará um conflito do nomes. /var não deve ser enlaçada a /usr. Sendo assim. Nota: O links simbólico /var/adm não deve ser necessário a maioria dos sistemas Linux-i386ELF dado que Otroca foi introducido antes que ELF fora liberado al público. /var/og. 55 ./var/adm : Agenda do sistema e arquivos contabilizados (obsoleto) Este diretório tem sido repassado para /var/og e outros diretórios .13. Deve ser um links simbólico a /var/og até que todos os programas não se refiram mas a algum arquivo em /var/adm. /var é especificada aqui para fazer possível montar /usr somente para leitura. /var/ock e /var/run.3.1 . pois desejam permitir o armazenamento temporário de páginas do manual formateados localmente.2 .4. Se /var não pode ser uma participação separada. Tudo aquilo que alguma vez ficou em /usr é escrito durante a operação normal do sistema (não durante a instalação e manutenção do software) deve ir em /var. Por exemplo.4. utilizado para manter /tmp menor possível /var contém arquivos com informação variável. Preformatando todas as páginas do manual dentro /usr com o programa (catman). Recomendamos que a maioria dos administradores utilizem uma das seguintes opções em seu lugar. Todos os arquivos agendas vão ser movidos a /var/og incluindo o arquivo wtmp. é preferivel mover /var para fora do diretório raiz. Não será permido o armazenamento temporário das páginas formatadas do manual e precise que se execute nroff cada vez que necessite uma página. Esta incluem arquivos e diretórios em fila de execução. 5. O suporte de empacotamento das distribuições deve armazenar em /var/lib/<nome>.

/var/lib. Os componentes <rota2> e <rota1> estão ausente no caso de /usr/man e /var/catman.3x esta formatado em /var/catman/X11R6/ <locais>/cat3/XtCass. A informação estática.3. transferir-se a /usr/<rota>/cat[1-9].1 e /usr/X11R6/man/<locais>/man3/XtCass.Informação de Estado das Aplicações emacs games news texmf xdm Diretório do estado do Emacs Informação variável de jogos Arquivos variáveis de Cnews/INN Informação variável asociada com TeX arquivos de autenticação e código de erros de aplicações X Windows. devem estar instaladas em /usr/<rota>/cat[1-9]. /var/lib/games Assim como os subdiretórios antes citados. notoriamente. O trecho da existencia de multiplas hierarquias de página do manual e a possibilidade do uso de multiplos idiomas. 56 .. Emacs somente localiza seu diretório de arquivos de bloqueio abaixo do diretório de estado (em <direstado >/emacs/lock)./var/lib : Informação de Estado das Aplicações. /usr/man/man1/ls. De igual forma as páginas do manual formatadas dentro de /usr/<rota>/cat[1-9] podem expirar se não são acceitas num período do tempo. deve ser /var/lib.4.1 é formatado em /var/catman/cat1/ls. descrições do niíveis devem permanecer em /usr/lib/games. devem estar aqui. 5. /var/lib/emacs O diretório do estado GNU Emacs. Por exemplo.3x . /var/lib/games deve incluir a informação variável que previamente será encontrada em /usr/lib/games. a versão formatada armazenada temporáriamente deve ir em /var/catman/<rota2>/cat[1-9]. Dada uma página do manual sem formatar que normalmente aparece em /usr/<rota1>/man/man[1-9]. só requer a adição de uma opção sensível no programa configure de Emacs para fazer esta troca (antes de compilar). pois pode fazer uso mais extenso do mesmo no futuro. O lugar do ndos arquivos de informação independente da arquitetura.A estrutura de /var/catman necessita refrear ambos.3 . Se tivessem páginas do manual preformatadas com um sistema Linux num meio somente para leitura (por exenplo um CD-ROM). /var/lib/<nome> é o lugar apropriado para o suporte de empacotamento de todas as distribuições. /var/catman está reenviado para um lugar de armazenamento temporário para páginas de manual formatados. aonde <rota2> é <rota1>. quaisquer informação variável relacionada com os jogos que se encontram em /usr/games. Diferentes distribuições de Linux podem utilizar diferentes nomes para suporte.13. tal como textos de ajuda. As páginas do manual escritas em /var/catman/cat[1-9] podem eventualmente. que Emacs modifica quando executa. No presente.

estas ferramentas são amplamente usadas na comunidade LINUX]. Os arquivos . /var/lib/xdm /var/lib/xdm contém a informação variável de xdm que consiste nos arquivos xdm-errors e quaisquer arquivo pertencentes a xdm./var/ock : arquivos de Bloqueio 57 .tfm. o arquivo ativo. Os arquivos de xdm tais como chooser devem até estar localizados na localidade histórica em /usr/X11R6/lib/X11/xdm. Se usarem geradores automáticos de . (por exemplo. Naturalmente a implementação desta subdiretório é prerrogativa do administrador do sistema . estes devem por sua informações nos subdiretórios mf ou tfm de /var/lib/texmf/fonts.edu:pub/tex [A razão de mencionar-lo aqui é que são o padrão de fato nas intalações UNIX.4.13.umb. Os arquivos restantes devem estar em /etc/X11/xdm. Este links permite os usuários fazer uso de uma só rota /usr/lib/texmf/fonts/tfm quando houver trocas da sua variável TEXFONTS (Esta é A rota default nas ferramentas TeX de Karl Berre distribuidas por ftp.4. O arquivo xdm-pid devem estar em /var/lib/xdm apesar de existir /var/run.3. fonts/pk/Canon_CX/cmr10. O MakeTeXPK que se distribue e com dvipsk colocará os arquivos . deve fazer um links deste diretório de fonte apropriada até /usr/lib/texmf/fonts). inclusive o arquivo histórico. em /var/lib/texmf/fonts armazenaram todas as fonte tipográficas que são geradas automáticamente por MakeTeXPK. Se se utiliza outra distribução de TeX. 5.mf ou .13./var/lib/news /var/lib/news deve usar para armazenar toda a informação variável asociada com os servidores de news tais como Cnews e INN.pk podem ser plugados periodicamente do árvore /var/lib/texmf ou pode-se mover dentro da árvore /usr/lib/texmf. todos os arquivos de bloqueios estarão em /var/ock.cs. Particularmente.3.pk em fonts/pk/<dispositivo>/<nome_da_fonte>.300pk).5 . 5. não deve colocar em /var/local. Por exemplo./var/local : Informação variável do software que está em /usr/local Este diretório contém toda a informação variável que esta relacionada com o software que se encontra em /usr/local.4 . Deve haver um links desde /usr/lib/texmf/fonts/tmp até /usr/lib/texmf/fonts. /var/lib/texmf /var/lib/texmf deve usar para armazenar a informação variável associada com TeX. Como a informação pode estar noutro lugar do diretório/var.

7 . 58 . astog mesage wtmp Registro do último acesso de cada usuário Mensagem do sistema desde que logou ao sistema Registro de todos os acessos e saídas Pode requerer um links simbólico 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 simbólico transicional até /var/og). dois. espaço.cua0.3.13.. se não fornece argumentos a named. 5. espaço. para bloquear /dev/cua0 se deverá criar o arquivoLCK. 54.4.13./var/named : arquivos DNS Este diretório contém todos os arquivos de trabalho do servidor de nomes Internet. com um caracter de linha nova. Por exemplo.3. dado que /etc/named.Os arquivos de bloqueio devem de armazenar-se dentro uma estrutura do diretório de /var/ock. Recomendamos que /etc/named. um. pode ler o arquivo de bloqueio e atuar de acordo (todos os arquivos de bloqueio em /var/ock devem ser lidos por todos).boot é o arquivo de inicialização default. contém dados seguinte onze(11) caracteres: espaço. não se deverá colocar os arquivos de bloqueio na partição /usr. seguido do nome base do dispositivo. Por exemplo. três.. A maioria dos arquivos agenda se devem exibir neste diretórios ou subdiretórios aprópriados.6 . named. qautro e nova linha. Os arquivos de boqueio dos dispositivo. Então quaisquer coisa que usar /dev/cua0. espaço. O formato HDB é armazenado em OPID (Identificador de processo) com um número decimal na ASCII de 10 bytes.boot. O formato usado para os arquivos de bloqueios de dispositivo no Linux deverá ser o Formatos arquivos de bloqueio HDB UUCP. espaço. espaço.boot seja um links simbólico até /var/named/named. 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. Para preservar a habilidade de montar /usr somente para leitura . A convenção para a nomenclatura que deve utilizar-se é LCK. se o processo 1230 retém um arquivo de bloqueio./var/og : Arquivos agenda e diretórios Este diretório contém arquivos agenda misceláneos.

Por exemplo. Geralmente os arquivos neste diretório devem ser deletar (remover ou truncar) aol començar o processo de inicialização./var/spool Diretórios de fila de trabalhos para procedimento posterior /var/spool é tradicionalmente utilizado para a informação local de máquina que é enviada para processo depois. exemplo vi (editor de texto). 5.pid.10 . que armazena informação acerca de quem está atualmente utilizando o sistema. O arquivo deve conter o indicador de ponto decimal codificado como ASCII. o processo número 25. Este diretório contém os arquivos que são armazenados antes de quaisquer terminação não esperada de ex. Por exemplo.13. /var/run/cond. Os programas que criam arquivos PID devem utilizar a especificação dada no parágrafo anterior. devem colocaá-los neste diretório.4.9 ./var/preview:arquivos guardados depois de uma colisão ou uma termino inesperado. dos cinco e nova linha.11 . pertencem a Bristish Telecommunications plc. por exemplo o arquivo PID de crond se chama /var/run/crond.pid./var/run : arquivos variáveis de tempo de execução Este diretório contém arquivos com informação do sistema que o descrevem desde que inicializou. e não pode ser usada sem permisão./var/nis Arquivos de base de dados do serviço de informação de rede (NIS) o sistema de informação de rede (NIS) era anteriormente conhecido como as páginas Amarelas Sun. vi.4.3. até o subsistemas UNIX. devem colocar em /var/run.5. zeros a esquerda.4.3. O arquivo utmp. Os arquivos identificados do processo (PID). por exemplo devem ignorar os espaços extras. A convenção de nomenclatura dos arquivos PID é <nome-programa>. O formato interno dos arquivos PID permanecem sem troca.13.13. Os programas que leiam arquivos PID devem ser flexível na acepção. que estavam originalmente /etc. Os programas que mantenham sockets transitorios de dominio UNIX. ausência do caracter nova linha ou linhas adicionais no arquivo PID.3.8 .pid conterá 3 caracteres. trabalhos de impressão que são 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 são armazenados aqui para transmissão dos sistemas UUCP vencidos o e-mail que entra e 59 .13. seguido por um caracter nova linha. A funcionalidade e localização de diretórios de ambos é o mesmo pois o nome (yelow Page) é uma marca registrada no Reino Unido . se localiza neste subdiretório . 5. 5.4.3.

/var/spool at Trabalhos de at cron Trabalhos de cron lpd Diretório de impressora * mail arquivos caixa-postal dos usuários mqueueFila de espera dos correio news Diretório de noticias * rwhod arquivos rwhod smail Diretório de smail * uucp Diretório de UUCP Nota: * Segnifica fila de trabalhos para processamento posterior.4. Os arquivos que estão no /var/tmp estão armazenados por uma duração não especifica.12 . Veja a seção acerca de /var/ock. /var/spool/lpd /var/spool/lpd --impressão <impressora> --Diretório de fila de trabalhos para processamento posterior a Diretório que tem a fila especifica desta impressora O arquivo de bloqueio para lpd.3.as noticias são armazenadas aqui para entregar-se aos usuários e os trabalhos de at e cron são armazenados aqui para execução posterior pelo daemon cron. A informação armazenada em /var/tmp tipicamente esta numa "forma definida localmente"./var/tmp : Arquivos temporários. 5. Se pode encontar informação sobre diretórios temporários na seleção dedicada a /tmp (acima). Deve existir um links simbólico desde /usr/tmp até var/tmp por razão de compatibilidade. 5.4 . Os arquivos de bloqueio UUCP devem localizar-se em /var/ock. O arquivo de bloqueios de cada impressora deve localizar-se no diretório<impressora> da impressora especifica e deve chamar ock. (Lembre-se que os diretórios temporários do sistema não garantiram manter a informação por nenhum período particular).4.ock deve estar localizado em /var/spool/lpd. lpd. utilizando para manter /tmp pequeno.Alguns dilemas sobre o Sistema de Arquivos 60 .13. pois usualmente é menos frequentemente que /tmp.

Similarmente. Nota: Nenhum programa nunca deverá fazer referência a alguma coisa em /usr/share.} Alguns arquivos que somente o administrador utiliza. Pode parecer confuso a princípio (leva tempo digerindo). e quaisquer outros podem colocar em /usr. O ponto é que os link simbólicos devem estar ali para manter todos os arquivos e diretórios onde cada usuário espera encontar. netstat. /usr/bin {finger. algumas pessoas quiseram separar os arquivos de rede e configuração dos outros arquivos de configuração. tais como /usr/man. tem sentido . Por exemplo em alguns sistemas /home não estará na raiz. Os arquivos de configuração para a rede pertencem a /etc. o diretório/usr/share tipicamente contém arquivos independente da arquitetura. até aqueles contidos no diretório raiz.1. rogin. estão em desacordo . rep. senão uma parte integral da maioria das máquinas UNIX (e similares). Até se trabalhar as especificações de /usr/share. /home poderia ter também sua própria partição física e desde logo. que não são vitais. e necessita acessar a rede para reparar seu sistema. /usr/lib/<algo>. sempre deve referir a /usr/man/man1/1s. senão enlaçado simbolicamente a um diretório/var ou algum outro lugar.} Alguns arquivos que algum usuário queira utilizar e que não são vitais. /bin {hostname. Os arquivos que necessitam para montar /usr as situações normais (e de emergência) estão coocados dentro da sub-árvore raiz. informação de terminais. etc. route} Qualquer coisa que só root necessita e considera vital. Qualquer coisa em /usr/share. tais como páginas do manual. Por exemplo. existe muitos usos para os link simbólicos em cada sistemas de arquivos. lpd. pois com o tempo. Os Link simbólicos. para manter O tamanho do sistema de arquivos raiz pequeno. será "apontada" através do uso do enlacé símbolos de outras áreas do sistema de arquivos. portmap. etc. Se por alguma razão você só pode montar a partição raiz. Ou seja. 61 . Estar preparado para acertar que certos diretórios. Este troca pode-se justificar recordando A razão principal de ter /var: separadas de diretórios de arquivos que variam com o tempo e entre diferentes sistemas e máquinas daqueles que podem compartilhar e sejam somente para leitura . inetd. não quer que os arquivos estão em /usr/etc (como estão algumas vezes). ping} Qualquer coisa que algum usuário queiram utilizar considerado vital. ser montada como tal. Sentimos que a rede não é um "pacote". Embora este documento como esta não respalda o uso do link simbólicos na implementação default (os encontrados depois de instalar Linux).ftpd. usam frequentemente com bons propósitos em diferentes sistemas. Não se deve colocar a rede em um só diretório senão localizar-se sistematicamente nos diretórios aprópriados. etc. No momento presente não há diferentes arquiteturas para Linux. veremos que Linux incluirá outras arquiteturas e outros sistemas similares a UNIX. dado que /usr poderia estar em um servidor de arquivos central montado vía NFS. fuso horário. ifconfig. /sbin {arp. telnet. um programa de páginas do manual não deve nunca buscar diretamente /usr/share/man/man1/1s.A rede apresenta um dilema intirerante. A Estruturas independente da arquitetura.1.. /usr/sbin {in. etc. /usr/local pode-se enlaçar simbolicamente a /var/local. até sejam link simbólicos.

arquivos de saída de programas. e arquivos de sistema. man4: arquivos especiais. man1: Programas de usuário.Descrições sucinta do conteúdo dos manuais. gette . dada esta variedade . sempre que a localização dos arquivos arquivos não troque. 62 . man5: Formatos de arquivos. tunefs. As páginas deste manual descrevem os comandos aceitos publicamente. Os instaladores e os administradores de sistemas. Os grande sistemas Linux podem desejar incluir outros arquivos estáticos (sh. alguns com somente um usuário e disco pequeno. swapon. mount. Ambos ln e se nc. (especialmente aqueles que não tem unidade de disco flexivel). mkfs. man2: Chamadas do Sistema. swopff. hostname e outras ferramentas de rede. Os Arquivos Compilados Estáticamente o Linux executa atualmente em uma gama de sistemas. A maioria da docomentação dos programas que o usuário necessita encontra-se aqui. fsch. Esta incluem vários arquivos include. confusão resultante do sobre o uso do link simbólicos e as preferências estéticas das diferentes pessoas. outros como servidores em ambiente com rede muito grande.4. Ou seja. Esta seção descreve todas as chamadas do sistema (requisição do kern do Linux para realizar certas operações). quaisquer versão estática pode-se colocar em /sbin ou repassa-la em /bin.Alguns sistemas além disso enlaçar /tmp a /var/<algo> se a partição raiz se torne muito pequena (ou é muito pequena). Em sistemas de rede. são livres para conectar dinâmicamente ou estaticamente estes outros arquivos segundo sua conveniência. funções relacionadas com os manipuladores e o suporte a rede que estão disponíveis no sistema. man3: Subrotinas e funções de bibliloteca. init.5 . Esta seção e a man2 são de interessante de programdores. se podem gerar problemas com o uso demasimados link simbólicos. Existe mais exemplos de bons usos de link simbólicos. Esta documentação incluem os arquivos de dispositivo que encontram-se em /dev e a interface do kern para suporte de protocolos de rede. Aqui se encontram os formatos para muitos dos arquivos cujo o formato não seja intuitivo. podem querer compilar estaticamente ifconfig. 5. devem existir em /bin. com as seguinte exceções. Descreve programas e rotinas da bibliloteca que não são chamadas diretas do serviços do kernel. pois todo o assunto não se reduz a estas coisas: os pacotes devem ser capazes de encontar as coisas onde esperam (razoavelmente) e os link simbólicos pode-se utilizar para resolver os problemas de muitos casos. esta documento não impõe regra sobre quais arquivos estão compilados estaticamente ou dinamicamente . route. login e outros). Isto usualmente não é necessário. umount. Este problema influi sobre a confiança nos link simbólicos para resolver problemas. Esta seção descreve os arquivos especiais.

(arquivos educativos) Esta seção do comenta os jogos. man8: Administração do Sistema Aqui esta a documentação dos programas utilizados pelos administradores de sistemas para a operação e manutenção. demos e programas triviais. man9: Funções e variáveis internas do kernel Contém informações do código fonte do kern no Sistemas Linux. As troff e outros macro pacotes de procedimento do texto encontram-se aqui. Alguns destes programas são ocasionalmente utilitários para usuários normais. 63 . pertencente a seção 7.man6: Jogos. man7: Miscelânia As páginas do manual que são difícil de classificar e designar.

tornado difícil a vida do administrador de sistema. A Interface Gráfica X-Windows. O número de aplicativos é limitado e não existe a curto prazo pespectiva de entrada de grandes software house desenvolvendo aplicativos para Linux. do que no ambiente DOS/Windows.4. criar. US$ 22. Toda a documentação pode ser facilmente acessada pela internet em diversos sites ou na documentação que acompanha o software.3 . Aliado a isto. ainda precisa ser melhorada. é feito basicamente através da internet. vide item 5. encontar e montar outros sistemas de arquivos (possívelmente em máquinas remotas). não existe nenhuma empresa no Brasil especializada no suporte ao Linux. inclusive o Linux. ainda muito pobres comparada com a GUI do Windows95. O sistema de arquivos varia de um distribuição a outro. incluem 6 CD’s do Linux Developer’s Resourses CD-ROM.A). pois possui todas as características um UNIX moderno. chamado utilitários e ferramentas. em português é bastante escassa (ponto negativo). pois grande parte dos melhores professores/pesquisadores de sistemas operacionais colaboram para o seu desenvolvimneto tecnológico. todas estas tarefas podem ser dificultadas se não encontrarmos os arquivos aonde esperamos. O Linux possui centenas de comandos embutidos. principalmente os aplicativos que são desenvolvidos para a mesma.Compisição dos diretórios do Linux. O fato de ser um sistema aberto é extremamente flexível (usuário tem acesso ao fonte do sistema) é outro ponto positivo. trazendo a seu usuário suporte as mais recentes conquista da indústria do hardware. 64 .6 . multiusuário. tais como : multitarefa real. A documentação é detalhada e completa (em inglês). cada ferramenta é um programa distinto. biblioteca compartilhada. o que dificulta sua popularização.U. distribuido pela InfoMagic. preparar. sem aplicativos não há como um sistema se tornar popular no mundo dos PCs.00 (no Brasil. Xfree86 versão 3. limpar.00 nos E. o que nos faz crer constantes melhoras no software. memória virtual. verificar. A administração e a operação de um modo geral é bem mais complexa em um ambiente unix.Pontos Positivos e negativos O Linux é sem dúvida a melhor opção de Unix para PC. que muitas vezes tem dificuldade de descobrir o que essencial em cada subdiretório. O preço é outro atrativo US$ 44. cada nova versão incorpora dispositivos perífericos que são lançado no mercado.2. interface gráfica (X Windows) etc. O Linux tem excelente mercado a nível acadêmico. Diversos grupos de estudo do Linux no mundo inteiro garante atualizações do software praticamente mensais. O suporte técnico é um dos pontos fracos do sistema. destinado a fazer um tarefa específica de forma rápida e segura.

todo o pacote custa no Brasil US$ 44. Borland. etc. no mesmo pacote a preços módicos. soma-se a isto a falta de software para a plataforma Linux que dificulta a sua popularização. como a Microsoft. para outros computadores que aceitam o serviço). menos sofisticada. e reenviada automaticamente para todos os endereços da lista associada). desenvolve os softwares e a distribuição é feita. O Projeto Linux foi desenvolvido para ser uma arquitetura aberta. você terá toda a liberdade de desenvolver software para sua plataforma. onde qualquer mensagem enviada a este endereço fictício.2. pode utillizá-lo é a melhor opção hoje e com grandes possibilidades de crescimento nesta faixa de mercado. utilizam sistemas proprietários desenvolvidos por empresas como Sun. Além disso ele possui uma interface gráfica chamada de X Windows(XFree86 versão 3. Netnews ou USENET ou NEWS (semelhante a lista de discussão. porém funcional. FTP (File Transfer Protocol. As empresas que utilizam o Unix comercialmente na plataforma RISC. existe outrasinterface gráfica).: Universidade Federal de Goiás utiliza como roteador e servidor de WWW em algumas unidade acadêmicas). Sun) não acreditamos no crescimento do Linux neste mercado.Conclusão O Linux. menos aplicativos e menos elaborada. Corel. Os fontes são distribuidos junto com o produto. serviço básico de tranferência de arquivos na rede). sendo assim. etc não se preocuparam em desenvolvem aplicativos para ele. Novell. conhecido como alias. Lotus. só que as mensagem são enviadas a um determinado computador da rede que as reenvia em bloco. devido a sua dificuldade de operação. o Linux é uma opção séria como sistemas operacional do tipo Unix para o mundo PC. funciona como uma extensão do correio eletrônico. podemos recomendá-lo sem medo de errar. ele possui a robustez e segurança e flexibilidade do Unix. colaboradores. Por outro lado. IBM. é um sistema operacional do tipo Unix. embora exista versões do Linux para algumas destas plataformas (ex. o Linux foi projetado por programadores para programadores. Apesar disto.00 (US$ 22. praticamente. ao meio acadêmico e alguns provedores da Internet (ex. O desenvolvimento de aplicativos ainda é pequeno. Existe uma farta documentação disponível na rede. É difícil acreditar no crescimento do mercado Linux no Brasil a curto e a médio prazo fora deste nincho de mercado. lista de discussões (serviços que permite o intercâmbio de mensagem entre vários usuários. pode ser comprado utilizando qualquer Cartão de Crédito Internacional. pois é estritamente fechado. se sua empresa ou aplicação precisar de um sistema com as características do Unix. 65 . a fim de ser utilizado em ambiente onde a maioria dos usuários tenha uma certa experiência. as informações são obtidas através de diversos manuais contidos no software. em sua maioria pesquisadores. etc. é você possue máquinas Intel ou compatíveis. as grandes softwares houses do mundo. preferencialmente. Outro problema do Linux é a falta de suporte técnico. que fazem tanto o hardware quanto SO. não existe um grande mercado para a plataforma Linux. não existe a nível comercial no Brasil. Dec. por exemplo. o padrão System V esta embutido no seu kernel. ou através da internet. diversos servidores WWW (World Wide Web). que é semelhante a do Windows 95.00 nos USA). O mercado do Linux no Brasil é restrito. sendo assim. foi desenvolvido para a plataforma IBM-PC.

Apêndices
A - Comandos básicos do sistema UNIX
Principais comandos - ordem albabética
Comandos em Unix possuem algumas características particulares. Eles podem ser controlados por opções e devem ser digitados em letras minúsculas.
1 - cat : Oficialmente usado para concatenar arquivos. Também usado para exibir todo o conteúdo de um arquivo de uma só vez, sem pausa.

Sintaxe: cat < arquivo1 > < arquivo2 >... < arquivo n >, onde (arquivo1) até (arquivo n) são os arquivos a serem mostrados. "cat" lê cada arquivo em sequencia e exibe-o na saída padrão. 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 símbolo ">", usado para redirecionar a saída para um arquivo, tem caráter destrutivo; em outras palavras, o comando acima escreverá por cima do conteúdo de < arquivo3 >. Se, ao invés disto, você redirecionar com o símbolo ">>", a saída será adicionada a <arquivo3 >, ao invés de escrever por cima de seu conteúdo.
2 - cd : Muda o diretório de trabalho corrente.

Sintaxe : cd < diretório > onde (diretório) é o nome do diretório para o qual você deseja mudar. O símbolo "." refere-se ao diretório corrente e o símbolo ".." refere-se ao "diretório-pai". Para mover para um "diretório-pai", ou seja, um diretório acima do que você está, use o comando : cd .. ( Note o espaço entre "cd" e ".." ) Você também pode usar nomes-de-caminho (pathnames) como argumento para o comando cd. Por exemplo :

66

cd /diretorio1/diretorio2 o posicionará diretamente em "diretório2". 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 diretório.

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 número decimal especificando o group id, ou um nome de grupo encontrado no arquivo "/etc/group". Você deve ser o proprietário do arquivo, ou o super-usuário, para que possa utilizar este comando. Opções Saída -f Esta opção não reporta erros -h Se o arquivo for um link simbólico, esta opção modifica o grupo do link simbólico. Sem esta opção, o grupo do arquivo referenciado pelo link simbólico é modificado. -R Esta opção é recursiva."chgrp" percorre o diretório e os subdiretórios, modificando o GID à medida em que prossegue.
4 - chmod : Modifica as permissões de um arquivo ou diretório.Você deve ser o proprietário de um arquivo ou diretório, ou ter acesso ao root, para modificar as suas permissões.

Sintaxe : chmod permissões nome_do_arquivo onde : permissões - indica as permissões a serem modificadas; nome - indica o nome do arquivo ou diretório cujas permissões serão afetadas. As permissões podem ser especificadas de várias maneiras. Aqui está uma das formas mais simples de realizarmos esta operação : 1- Use uma ou mais letras indicando os usuários envolvidos: . u (para o usuário) . g (para o grupo) . o (para "outros") . a (para todas as categorias acima)

67

2- Indique se as permissões serão adicionadas (+) ou removidas (-). 3- Use uma ou mais letras indicando as permissões envolvidas : . r (para "read") (ler) . w (para "write") (escrever) . x (para "execute") (executar) Exemplo : No exemplo a seguir, a permissão de escrita ("write") é adicionada ao diretório "dir1" para usuários pertencentes ao mesmo grupo. (Portanto, o argumento "permissões" é 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ê pôde verificar, o hífen (-) no conjunto de caracteres para grupo foi modificado para "w" como resultado deste comando. Quando você cria um novo arquivo ou diretório, o sistema associa permissões automaticamente. Geralmente, a configuração "default" (assumida) para os novos arquivos é: -rw-r--r-e para novos diretórios é: drwxr-xr-x 5 - chown : Modifica o proprietário de um arquivo ou diretório. Sintaxe: chown [-fhR] (proprietário) (nome-do-arquivo) O argumento "proprietário" especifica o novo proprietário do arquivo.Este argumento deve ser ou um número decimal especificando o userid do usuário ou um "login name" encontrado no arquivo "/etc/passwd". Somente o proprietário do arquivo ( ou o super-usuário ) pode modificar o proprietário deste arquivo. Opcões Saída -f Esta opção não reporta erros. -h Se o arquivo for um link simbólico, esta opção modifica o proprietário do link simbólico. Sem esta opção, o proprietário do arquivo referenciado pelo link simbólico é modificado. -R

68

Exemplo : $ cp -r temp temp1 Este comando copia todos os arquivos e subdiretórios dentro do diretório temp para um novo diretório temp1. o mês do ano abreviado. 7 . Se o arquivo-destino não existe. você verá uma mensagem de erro. 69 . "du" mostra a utilização do disco em cada subdiretório. O(s) arquivo(s) fonte(s) e o (destino) não podem ter o mesmo nome. a zona horária e o ano. Esta é uma cópia recursiva. Caso queira a data GMT utilize a opção "-u". Se você tentar copiar um diretório sem utilizar esta opcão."chown" percorre o diretório e os subdiretórios.. e (destino) é o arquivo ou o diretório para onde os arquivos serão copiados. 8 . o dia do mês. (arquivo n) (destino) onde (arquivo1) até (arquivo n) são os arquivos a serem copiados. unidades de 512 bytes ou caracteres. Veja: %date Wed Jan 8 12:05:57 EDT 1997 Aqui a data é exibida em 6 campos que representam o dia da semana abreviado. modificando as propriedades à medida em que prossegue. 9 . Sintaxe: cp (arquivo1) (arquivo2) .Esta opção é recursiva. basta executar "date"..a nível de usuário.du : Exibe o espaço ocupado de um diretório e de todos os seus subdiretórios. O comando "date".cp : Copia arquivos para um outro arquivo ou diretório. Para exibir a data local.date : Exibe a data configurada no sistema. isto é. "cp" criará um arquivo com o nome especificado em . como designado pela opcão -r. A configuração dos dados deste comando só podem se realizadas pelo super-usuário. Se o arquivo-destino já existia antes e nào for um diretório. a hora disposta em horas/minutos/segundos. em blocos de 512 bytes. "cp" escreverá o novo conteúdo por cima do antigo. exibe na tela a data configurada no sistema.. 6 .file : Exibe o tipo de um arquivo. Ele pode se usado com opções mostram a data local ou data universal GMT Greenwich Mean Time.

tais como arquivos binários e executáveis.ls : Exibe informações sobre arquivos nomeados e diretórios. O comando "file" pode ser útil se você não tem certeza sobre o tipo do arquivo. Tenha sempre o cuidado de deixar um espaço antes do hífen. "ls" pode ser controlado por opções que começam com um hífen (-).html que contém o padrão "trabalho". O uso do comando permitirá a visualização do tipo do arquivo.. o comando grep trabalho /trabalho/unix/grep. mostra o conteúdo do diretório corrente.Assim. Sintaxe: ls (diretório)[opções] Quando executado sem qualquer parâmetro. que será exibido da seguinte forma: . Por exemplo. que são iguais ao padrão especificado. é usado para visualizar o conteúdo de um diretório. a linha de comando: $ ls mostra o conteúdo do diretório corrente naquele momento. <arquivo_n> onde [padrão] é uma expressão regular. Por exemplo: $ cd $ ls -a Digitando estes comandos em sequência. tudo).fvwmrc 70 .bacshrc .Como na maioria dos comandos UNIX. Uma opção bastante útil é -a (que vem do inglês 'all'. através do comando cd e em seguida mostra o conteúdo do mesmo. o sistema vai para o seu home directory. Exemplo : $file copyfile copyfile: ascii text 10 .Alguns arquivos.html mostrará todas as linhas no arquivo /trabalho/unix/grep. que contém um certo padrão. não podem ser visualizados na tela. Sintaxe: grep [padrão] <arquivo_1> <arquivo_2> . dos arquivos nomeados.grep : Exibe todas as linhas. dos arquivos especificados. e "arquivo_1" até "arquivo_n" são os arquivos nos quais a procura será feita. O comando "grep" exibe todas as linhas.. 11 . e irá mostrar detalhes que você nunca imaginou sobre o seu diretório. .

1 xyz users 2321 -rw-r--r-.xinitrc Aqui. por exemplo. . Na quinta coluna temos o tamanho do arquivo em bytes.bash_history . Na próxima coluna é mostrado o grupo ao qual pertence o proprietário do arquivo ( no exemplo temos o grupo users). Assim. Outra opção bastante utilizada é -l (que vem do inglês "long"). o comando: $ ls -l mostra. Em seguida temos as permissões de acesso ao arquivo. aos demais usuários. neste caso.man : Exibe uma página do manual interno do Unix. respectivamente.. Sintaxe : man <comando> 71 . Por exemplo. A segunda coluna desta listagem mostra o número de links que o arquivo possui.1 xyz users 14567 drwxr-xr-x 2 xyz users 1024 drwxr-xr-x 3 xyz users 1024 Mar 15 1994 Fontmap Feb 3 1995 file003 Apr 23 1995 Programs Apr 30 1995 bitmaps Lendo da esquerda para direita. A terceira coluna mostra o proprietário do referido arquivo. É como um "help" interno ao sistema. podemos executar o comando: $ ls -la e este mostrará todos os detalhes que as opções -l e -a dispõem. todas os detalhes sobre cada arquivo pertencente a ele. Por fim. as seguintes ao grupo e. uma função de biblioteca). 12 . Por exemplo. sendo as três primeiras referentes ao proprietário. o ponto simples refere-se ao diretório corrente. e o ponto duplo refere-se ao diretório imediatamente acima dele. temos a data da última modificação feita no arquivo e o nome do mesmo. Mas o que são estes outros arquivos que se iniciam com um ponto? Eles são chamados arquivos escondidos. suponha que você tenha executado este comando e na tela apareceu algo assim: -rw-r--r-. qualquer utilitário do sistema que não seja comando.emacs . além do conteúdo do diretório. o usuário cujo user name é "xyz". este primeiro caracter indica se o arquivo é um diretório ( d ) ou um arquivo comum (-). A colocação do ponto na frente de seus nomes os impede de serem mostrados durante um comando "ls" normal.. para um dado comando ou ou recurso (isto é. Vale lembrar que várias opções podem ser usadas de forma composta. Ela mosta informação extra sobre os arquivos . por último. na sexta e sétima colunas.exrc .

quando exibe "--More-.. 14 . os arquivos ".". O caracter "q" provoca a parada de execução do comando more.. O identificador de proprietário (owner id). 72 . * Opções: -m (mode) Esta opção permite aos usuários especificar o modo a ser usado para os novos diretórios. uma tela cheia de cada vez. e ". A criação de um diretório requer permissão de escrita no diretório pai." na parte de baixo da tela. para o próprio diretório. fazendo normalmente uma pausa após cada tela cheia. O caracter "b" faz com que "more" exiba a tela anterior.mkdir : Cria usado para a criação de novos diretórios. ele exibe outra tela cheia ao teclar-se o caracter "espaço". Ele exibe um arquivo. Sintaxe: more (arquivo 1) (arquivo 2) . respectivamente. Exemplo: mkdir -p diretório 1/diretório 2/diretório 3 cria a estrutura de subdiretórios "diretório 1/diretório 2/diretório 3". e o identificador de grupo (group id) dos novos diretórios sáo configurados para os identificadores de proprietário e de grupo do usuário efetivo. -p Com esta opção. As entradas padrão em um diretório (por exemplo. Sintaxe : mkdir (diretório 1) (diretório 2) .(diretório n) onde (diretório 1) até (diretório n) são os diretórios a serem criados. 13 . fazendo pausas a cada tela cheia. mkdir cria o nome do diretório através da criação de todos os diretórios-pai não existentes primeiro... (arquivo n) onde (arquivo 1) até (arquivo n) são os arquivos a serem exibidos. more irá exibir uma linha a mais. Ao teclar-se (Enter)." para o diretório pai ) são criadas automaticamente.onde "comando" e o nome do comando ou recurso que se deseja obter a ajuda.more : Exibe o conteúdo de arquivos nomeados..

*Opções: -i Com esta opção. "mv" criará um arquivo com o nome especificado. Se (destino) não for um diretório.. "mv" irá perguntar a você se é permitido escrever por cima do conteúdo de um arquivo destino existente. Se (destino) for um diretório.Pode-se procurar por uma palavra (ou uma cadeia de caracteres) em um arquivo. Qualquer outra resposta impedirá que "mv" escreva por cima do conteúdo de um arquivo já existente.e tecle (Enter). Esta opção é ignorada se o terminal não tem a abilidade para limpar até o final de uma linha./temp1 teste 73 . Para isso. Este comando faz o equivalente a uma cópia seguida pela deleção do arquivo original.. Pode ser usado para renomear arquivos. digite a palavra (ou a cadeia de caracteres). Exemplo: $ pwd /home/usuário1/temp $ ls teste $ mv teste . (arquivo n) (destino) onde (arquivo 1) até (arquivo n) são os arquivos a serem movidos. pressione o caracter "/". seu conteúdo será apagado e o novo conteúdo será escrito no lugar do antigo. o(s) arquivo(s) será(ão) movido(s) para este diretório. Se (destino) não existir. somente um arquivo deverá ser especificado como fonte. e (destino) é o arquivo ou o diretório para onde os arquivos serão movidos./temp1 $ ls . Uma resposta "y" (yes = sim) significa que a operação poderá ser executada. mais de um arquivo poderá ser especificado.. 15 . Se for um diretório. Sintaxe: mv (arquivo 1) (arquivo 2) . Se (destino) existir e não for um diretório. Os arquivos "fonte" e "destino" não precisam compartilhar o mesmo diretório pai.mv : Move arquivos para um outro arquivo ou diretório. O comando "mv" é utilizado para mover arquivo(s) para outro arquivo ou diretório. * Opções: -c Limpa a tela antes de exibir o conteúdo do arquivo..

A seguir estão os passos que acontecem quando "passwd" é utilizado: $ passwd Changing password for (nome-do-usuário) Old password: New password: Retype new password: $ -> Quando o sistema pedir "Old Password:" . 16 . o sistema se recusa a modificar a senha e exibe a mensagem "Sorry". pede que você digite a nova senha novamente.Neste exemplo. Se você achar que alguém utilizou sua conta sem permissão. • Se você tem mais de uma conta. Se você não digitar a senha da mesma maneira em que digitou da primeira vez. 17 . "Retype new password". Este comando é utilizado para exibir o seu diretório corrente no sistema de arquivos. • Não use seu próprio nome ou suas iniciais. Isto previne que outros usuários descubram sua senha. • A sua password deve ter ao menos seis caracteres e deve conter pelo menos um número. mude sua senha imediatamente. Note que o sistema não mostra a senha que você digita na tela. • Não use nomes de animais ou objetos relacionados a seu interesse. o sistema Unix requer o uso de uma senha. não use a mesma senha para todas as contas. digite sua nova senha.pwd : Exibe o diretório corrente. 74 . -> Quando o sistema pedir "New Password:". O comando "passwd" é utilizado para modificar a senha pessoal. Para garantir a segurança do sistema. o diretório teste foi movido de temp para temp1 com o comando "mv". Algumas dicas para a escolha da senha: • Escolha uma senha que você possa lembrar sem a necessidade de escrever. o sistema irá omitir este prompt. digite sua senha atual. Se nenhuma senha estiver associada a sua conta. -> O último prompt .passwd : Modifica a senha pessoal.

Um arquivo somente será apagado verdadeiramente do sistema quando ele não possuir mais nenhuma ligação para ele. É um pedido de confirmação.. Você pode verificar o número de links que um arquivo possui utilizando o comando ls. 75 . neste caso. é impossível recuperá-los. é necessário que você apague todos os links para este arquivo.. -i Esta opção pedirá uma confirmação do usuário antes de apagar o(s) arquivo(s) especificado(s). 19 . Se a resposta começar com "y" ("yes" = sim).. É importante lembrar que quando os arquivos são apagados. isto é. o uso de "rm" irá apagar somente uma ligação. o arquivo será apagado. Geralmente. seguido por um ponto de interrogação. -> CUIDADO : diretórios e seus conteúdos removidos com o comando "rm -r" não podem ser recuperados. -r Opcão recursiva para remover um diretório e todo o seu conteúdo.rm : Este comando é utilizado para apagar arquivos. você está apagando somente um link (ligação ou entrada) para um arquivo.. (diretório n) onde (diretório 1) até (diretório n) são os diretórios a serem apagados. No entanto. Se um arquivo não possuir permissão de escrita e a saída-padrão for um terminal. com a opção "-l". se um arquivo possuir muitos links. (arquivo n) onde (arquivo 1) até (arquivo n) são os arquivos a serem apagados. caso contrário ele será mantido no sistema. nenhum link referenciando-o. Sintaxe: rmdir (diretório 1) (diretório 2) . no sistema Unix. arquivos possuem somente um link. Quando você apaga um arquivo com o comando "rm".18 . todo o conjunto de permissões do arquivo será exibido. portanto o uso do comando "rm" irá apagar o(s) arquivo(s). *Opções: -f Remove todos os arquivos (mesmo se estiverem com proteção de escrita) em um diretório sem pedir confirmação do usuário. Sintaxe: rm (arquivo 1) (arquivo 2) . incluindo quaisquer subdiretórios e seus arquivos.rmdir : é utilizado para apaga diretórios vazios. para apagar o arquivo.

Sintaxe: touch [opcões] [mmddhhMM[yy]] nome-do-arquivo sendo : mm mês dd dia hh hora MM minuto yy ano (últimos dois dígitos) Se não for especificada nenhuma data. e então remova estes arquivos utilizando o comando "rm". a data atual será utilizada. Se você tentar remover seu próprio diretório corrente. Um arquivo vazio será criado se o nome especificado ainda não existir.touch : atualiza o último tempo de acesso e/ou modificacão de um arquivo. *Opcões: -a Atualiza somente o tempo de acesso respectivo. o qual se torna vazio. -> CUIDADO : diretórios removidos com o comando "rmdir" não podem ser recuperados! 20 . Uma mensagem será exibida na saída padrão informando se o caminho ("path") inteiro foi removido ou se parte do caminho persiste por algum motivo. lembre-se que o seu diretório de trabalho corrente não pode estar contido no(s) diretório(s) a ser(em) apagado(s). -m Atualiza somente o tempo de modificacão. será exibida a seguinte mensagem: rmdir : . 76 .O comando "rmdir" se recusa a apagar um diretório inexistente. : Operation not permited Se o diretório o qual você deseja remover não estiver vazio. exibindo a mensagem: rmdir : (nome-do-diretório) : No such file or directory Quando usar "rmdir". Opções: -p Permite aos usuários remover o diretório e seu diretório pai. utilize o comando "cd" para acessar os arquivos dentro do diretório.

dei.html) 77 . -> As opções default são : -am. Instituto de Informática. Fonte: Universidade Federal de Goiás.br/~apoio/unix.-c Previne a criacão de um arquivo se ele não existia anteriormente.ufg. home-page do Projeto de Apoio ao Usuário Internet (http://www.

mit.22. Veja P13. Kojima <kojima@inf. dê uma olhada nesses documentos e neste FAQ. disponíveis no mesmo lugar.6.edu (152.unc. antes de enviar sua pergunta a um grupo de discussão ou à Linux-BR.172.2.B . especialmente em P12.edu (18. 78 . bem como a versão original em inglês em diversos formatos. ela contém perguntas freqüentes na lista de discussões Linux-BR [Veja Quais são as listas de discussões sobre Linux? para obter informações sobre como assinar a lista] Os documentos do Linux Documentation Project estão em sunsite.mit.5 "Onde pego material sobre Linux por FTP?".1 "Vocês ainda não responderam à minha pergunta!". mantida por Ian Jackson<ijackson@gnu.funet.veja P2.fi (128. também indicam outras fontes de informações sobre Linux.ufrgs. Por favor. Este documento baseia-se no LINUX FREQUENTLY ASKED QUESTIONS WITH ANSWERS. Se esta cópia tiver mais de um mês.1 para mais informações]. Além da tradução completa do documento original em inglês. ela pode estar desatualizada.ai.1.2 Formatos em que este FAQ está disponível para detalhes de onde pegar as versoes em PostScript.2) : /pub/linux/docs/HOWTO sunsite.unc. Leia-a juntamente com os documentos HOWTO.Perguntas Freqüentemente Colocadas na Linux-BR (FAQ) Original de Maio . HTML (WWW) e ASCII puro deste documento.edu em /pub/Linux/docs/LDP.br> Esta é a lista de perguntas freqüentemente colocadas (FAQ) sobre Linux. o Unix gratuito para 386/486/586 [Veja P1. Ian Jackson <ijackson@gnu. disponíveis em: ftp.81) : /pub/Linux/docs/HOWTO e em outros espelhos -. Esses documentos (existem mais em preparação) são indispensáveis para os novatos ou para serem usados como referência.mit.1996.1 "Onde eu pego os HOWTOs e outra documentação?" para uma lista dos HOWTOs e outras informações.edu> Versão em português mantida por Alfredo K.edu>. Uma nova versão deste documento será criada mensalmente.100) : /pub/OS/Linux/doc/HOWTO tsx-11.ai.214. Veja P2. O INFO-SHEET e META-FAQ.

9. discos e unidades de disco.1. Como posso fazer o Linux funcionar com meu disco "grande" de mais de 1024 cilindros lógicos? P4. Onde consigo informações? P2.3. "blocks".8.3. Como eu acesso arquivos na minha partição DOS ou em disquetes? P3. 79 .6. Material na Rede e outros Recursos P2. Como eu consigo o Linux? P2. Eu nao tenho acesso à Usenet.2. Onde pego os HOWTOs e outra documentação? P2. e coisas desse gênero. Como eu posso iniciar o Linux a partir do Boot Manager do OS/2? P3. De quanto espaço em disco ele precisa? P1.8.5. P4. Quais são as listas de discussão sobre Linux? P2. Como posso formatar um disquete e criar nele um sistema de arquivos? P4. Minha área de paginação (swap) não funciona.6.6. O que tem na World Wide Web sobre Linux? P2. Onde eu pego material sobre Linux por FTP? P2.1.2.1 O que é Linux? P1. Introdução e Informações Gerais P1.7. Eu não tenho acesso a FTP. Eu posso acessar partições HPFS do OS/2 no Linux? P3. Como posso reaver (undelete) arquivos apagados? P4.7.4. UFS do SysV.5.2.5. O Linux está em Domínio Público? Tem Copyright? Seção 2.4. Estou recebendo mensagens estranhas sobre "inodes". Para quais plataformas ele foi portado? P1. Eu posso usar drives do DOS com Stacker/Double Space/etc? P3. Eu posso instalar o Linux junto com o DOS? OS/2? 386BSD? Win95? P3.6. Como eu faço para usar a mesma partição de swap no Windows e no Linux? Seção 4.3. Ele roda no meu micro? Que hardware ele suporta? P1. P4. Amiga etc? P3.Índice Seção 1. Compatibilidade com outros sistemas operacionais P3. Eu posso acessar sistemas de arquivos como o FFS do BSD. Eu posso rodar programas do Microsoft Windows no Linux? P3.4. O tratamento do Linux para sistemas de arquivos.1. Há algum desfragmentador para ext2fs e outros sistemas de arquivos? P4.5. Que grupos de discussão (newsgroups) sobre Linux existem? P2. Mac. Que programas ele suporta? P1.4.3. Como instalo o Linux? P2. Os newsgroups são arquivados em algum lugar? (inclui Linux-BR) Seção 3.2.

15.8. compilando e obtendo programas P5.9. Soluções para problemas comuns diversos..10. Como faço para rolar a tela para cima em modo texto? 80 .11.10. Alguém já portou / compilou / escreveu XXX para Linux? P5. P6. Alguns programas me deixar "logar" sem senha.8.11.1. A hora dos arquivos de partições msdos estão gravados incorretamente. P6. Linux fica muito lento quando coloco mais memória. Como porto XXX para Linux? P5. Onde posso obter `lint' para Linux? Seção 6. O que é ld. P6. P6.h> e <asm/*. Minha máquina roda muito lentamente quando eu executo GCC / X / . P6. Meus executáveis são (muito) grandes.8.9.14. free não funciona. Eu recebo erros quando tento compilar o kernel P5. Como faço o LILO carregar o arquivo vmlinux? Seção 7..h>? P5. P6. lpr e/ou lpd não estão funcionando. Porque não posso usar fdformat.1. Como faço isso ou aquilo. Meu relógio está totalmente errado.6. Descobri uma falha de segurança enorme no rm! P6.12. Eu só consigo me "logar" como root. Scripts setuid parecem não funcionar. Há algum produto como Stacker ou Doublespace para Linux? P4.7. P6..4.3.5.? P7.. Minha controladora AHA1542C não funciona com Linux. P6. P5. P6. Tem um arquivo /proc/kcore enorme! Posso apagá-lo? P4. Portando. P4. Minhas partições ext2fs são verificadas toda vez que reinicio o sistema. P6. Como posso desinstalar o LILO e voltar a reiniciar meu sistema pelo DOS? P4.6.2.7. É possível usar um programa ou compilador compilado para um 486 em um 386? P5. Como faço uma bilioteca dinâmica? P5.1.12. O que gcc -O6 faz? P5. Alguns programas (xdm) não me deixam "logar". P6. Onde estão <linux/*. Seção 5. P6.4. Meu sistema de arquivos principal está "read-only"! P4.so e onde posso obtê-lo? P5. exceto como root? P4. Houve um desastre em meu sistema e não consigo me logar para consertá-lo.13.7. P6.3.10.P4. O Linux suporta "threads" ou processos "lightweight"? P5. P6.5.2.13. Minha tela está cheia de caracteres esquisitos ao invés de letras.9. A memória livre mostrada pelo free fica diminuindo.11.

.? P8. O que são arquivos .18.8. francês etc. You don't exist..2. Quantas pessoas usam Linux? P8.20. Como faço para deixar o NUM LOCK ligado por default? P7. Como se pronuncia Linux? Seção 9.1. Seção 10.10.4.7.19. lp1 on fire P9. Como programo XYZ no Linux? P8. Como remapeio meu teclado para português.11. INET: Warning: old style ioctl(IP_SET_DEV) called! P9. P8.15. Como configuro o timezone (fuso-horário)? P7.17.7. Como troco de console virtual? Como os habilito? P7.5. EXT2-fs warning: maximal count reached P9. Memory tight no começo da inicialização P9. O que é o Linux Journal e onde posso consegui-lo? P8.2. make diz Error 139 P9.6.5. Perguntas respondidas e informações diversas.3.3. Que versão de Linux e que máquina estou usando? P7. shell-init: permission denied quando me logo. O que é esse tal de ELF? P8. Posso ter mais de 3 portas seriais compartilhando interrupções? P7.7.1. O Sistema de Janelas X P10. P9. fdisk: Partition 1 does not start on cylinder boundary P9. Durante a "linkagem" aparecem Undefined symbol _mcount P9. fdisk diz partition n has an odd number of sectors P9.5. fdisk says Partition X has different physical /logical. O que é um BogoMip? P8.8.10. P7. GCC diz Internal compiler error P9.1. ld: unrecognized option '-m486' P9.13. P9.4. Mensagens de erro freqüentemente encontradas P9.4. P9. O Linux suporta X Windows? 81 . Warning: obsolete routing request made. Como faço um disquete inicializável? P7.3.6. EXT2-fs warning: checktime reached P9. No utmp entry.14.bdflush not running P9.8.tgz? E . quando me logo. EXT2-fs: warning: mounting unchecked filesystem P9.. Go away..12.. You must exec .11.16.2.9. O que significa VFS? P8. Warning . P9.P7.. mtools diz cannot initialise drive XYZ P9.21.6. df diz Cannot read table of mounted filesystems P9. Como posso ter mais de 128Mb de swap? P7. "Unknown terminal type linux" e semelhantes P9. Como posso habilitar ou desabilitar core dumps? P7.gz? E .12* Como faço para obter acentuação no Linux? Seção 8.9. Como atualizo/recompilo meu kernel? P7.

2.3. Informações administrativas e outros P13. Como conseguir mais ajuda P12. Vocês ainda não responderão à minha pergunta.3. O que colocar em pedido de ajuda. Ports (versões modificadas para outro sistema) para outras arquiteturas estão a caminho.3.1. Perguntas aplicáveis a programas muito antigos P11.5* O X tem suporte para TGUI9xxx / Diamond Stealth / .3. O que é Linux? Linux é um clone do Unix escrito por Linus Torvalds com a assistência de um grupo de hackers espalhados pela Internet. fdisk diz cannot use nnn sectors of this partition P11. ? Seção 11. Meu teclado fica todo esquisito quando troco de VCs.4. P10.1. Formatos em que este FAQ é disponível P13. proteção entre processos (crash protection).1. Onde posso conseguir um XF86Config para meu sistema? P10.P10. Seção 13. shared libraries (bibliotecas de "linkagem" dinâmica).4. Emacs só faz core dump P11...2. [ P1.2.) para implementar essas funções.4. alem de nomes de arquivos com até 255 caracteres. memória virtual. P12. Ele faz tudo o que você esperaria de um Unix moderno e completo. Ele roda principalmente em PCs baseados em 386/486/586.2. finger etc.1. Logins pelo "xterm" aparecem de forma estranha em who. usando recursos de hardware da família de processadores 386 (segmentos TSS etc. Para quais plataformas ele foi portado?].4. Pretende-se que ele conforme com o padrão POSIX. carregamento por demanda. Autores e agradecimentos P13. Copyright e outras informações legais Questão 1. suporte a UNICODE etc. P12. Não consigo fazer o X Windows funcionar P10.1. Quero mandar e-mail a alguém sobre meu problema. Seção 12. redes TCP/IP. Comentários são bem-vindos P13. incluindo multi-tarefa real. Veja o INFO-SHEET do Linux [ P2. 82 . Onde pego os HOWTOs e outra documentação? ] para mais detalhes. GCC algumas vezes usa quantidades enormes de memória virtual e quebra P11.

Algumas empresas têm software comercial disponível.os. pelo que entendo. X-Windows. 486 ou 586.mit.announce --. Questão 1. Existem problemas com máquinas que usam MCA (barramento proprietário da IBM).dcrl.1 Como eu porto XXX para o Linux?.tente dar uma olhada nos repositórios de mensagens [ P2. Há um pré-lançamento para desenvolvedores para drives ESDI de PS/2 em invaders.linux. Para fazer qualquer coisa útil.6. Os newsgroups são arquivados em algum lugar?]. com pelo menos 2Mb de RAM e um drive para experimentá-lo. e 8Mb é altamente recomendado para rodar X) e um disco rígido são necessários. Eles os anunciam no grupo comp. Existe um emulador de DOS (veja em tsx-11.edu.nd.1. Ele roda no meu micro? Que hardware ele suporta? Você precisa de um 386. Questão 1. O Linux está em Domínio Público? Tem Copyright? para mais detalhes. Onde pego os HOWTOs e outra documentação? ]. Emacs.edu em /pub/linux/ALPHA/dosemu) que pode rodar o DOS e algumas (não todos) aplicações DOS. Eu posso rodar programas do Microsoft Windows no Linux? ] esta progredindo. mais RAM (4Mb para instalar a maioria das distribuições.9. TCP/IP (inclusive SLIP e PPP) e centenas de outros programas compiladas ou portadas para ele por diversas pessoas. Há rumores de que agora ele pode rodar o Windows 3. incluindo Motif. Para mais informações leia o INFO-SHEET. Existe trabalho em andamento para criar uma versão adaptada da distribuição Slackware. Veja o arquivo /pub/linux/BETA/ibcs2/README em tsx-11. Para maiores detalhes tente perguntar para Arindam 83 . Que programas ele suporta? O Linux tem GCC. todos os utilitários Unix padrão.edu em /pub/misc/linux. a equipe do emulador de DOS tem tido sucesso em rodar o próprio Windows dentro do dosemu .haverá um anúncio se e quando ele funcionar.2. que é um dos HOWTOs [ P2.2 está em um estágio consideravelmente avançado de desenvolvimento. Alguns controladores SCSI também funcionam. VESA local bus e PCI são ambos suportados. Um emulador iBCS2 (Intel Binary Compatibility Standard) para binários ELF de SVR4 e COFF de SVR3. alternativamente. principalmente com o controlador de discos.3. trabalho no emulador para binários do MS Windows [ P3. Veja também P5.veja P1.6.O kernel (núcleo do sistema operacional) é distribuído sob os termos do GNU General Public License .mit.1 em modo avançado.

Veja http://www. Existe um FAQ em liber. Também há uma lista de discussões em vger. Uma página relevante é http://www. Questão 1.de com corpo da mensagem contendo somente subscribe atarix . pois ele requer recursos de gerenciamento de memória e de chaveamento de tarefas não encontrado nesses processadores. Veja http://www.uk/Linux8086 para mais informaçoes. Ralf Baechle está trabalhando em um port para MIPS.cs.e uma área de FTP em ftp. Linux jamais rodará totalmente em um 8086 ou 286. Existe um port para o DEC Alpha/AXP de 64bits.uni-sb.phil.edu> .rutgers.com/~ axplinux/. Existe um port para o PowerPC.8 Que listas de discussão existem?]. A Apple e OSF estão trabalhando em um port do Linux para o PowerMac. Existe um port do Linux para 8086. que irá ser usado principalmente em embeded systems{?}.edu. funcionam.Banerji <axb@defender.mande um mail para majordomo@phil.de em /pub/atari/linux.dcrl.unisb.linux. Para detalhes de exatamente quais PCs.1.35 e posteriores) suportam máquinas multiprocessadas (SMP). baseado no microkernel Mach da OSF.stanford. ele estava bastante precário e não podia nem se recompilar. Versões recentes do Linux (1.mit.html.8. Onde pego os HOWTOs e outra documentação?]. controladores de disco etc.rwth-aachen. está em andamento.utexas.html.unikl. Existia um projeto para portar o Linux para Macintoshes baseados em 68000.de:8000/pers/jmayer/linux68k-faq e em ftp://tsx-11. Até 7 de julho (95). inicialmente para o 84 .edu/pub/linux/680x0/FAQ.org. Se você desejar contribuir ao projeto assine a lista linux-ppc [P2.com/.3.azstarnet.informatik.nd. Ele já tem qualidade beta e tem um servidor X.edu em /pub/linuxppc/linux-ppc-FAQ e em http://liber.stanford. conhecido como Embeddable Linux Kernel Subset (ELKS). mas sua área de FTP desapareceu recentemente e o projeto parece estar abandonado. com X na maioria. Há uma lista de discussão sobre linux-680x0 [ P2.4.informatik. PowerStack. Quais são as listas de discussão sobre Linux? ] e um FAQ Linux/68K em http://pfah. Trabalho no Motorola Ultra. além de só suportar placas Motorola 1603.apple. apesar dele ainda nao estar satisfatoriamente estável. leia o INFO-SHEET e o Hardware HOWTO [ P2. Para quais plataformas ele foi portado? Um projeto para portar o Linux para sistemas baseados na família 68000. RS/6000 e máquinas NuBus continua. Este é um subconjunto de 16-bits do kernel do Linux.edu/linuxppc/linux-ppc-FAQ. como Ataris e Amigas.edu/users/kharker/linux-laptop/. há mais informações em http://wwwusers. http://mklinux. placas de vídeo. Há uma lista de discussões sobre o port do Atari . Linux roda em Laptops baseados na família 386.de/~hn/linux68k.

As licensas dos utilitários e programas que vêm com as instalações são 85 .ac. Ele o colocou sob o GNU General Public License. mas você não pode impor quaisquer restrições na sua distribuição e ainda deve deixar o código fonte disponível. o suficiente para experimenta-lo e pouca coisa mais.edu. Questão 1. Nenhum dos ports acima poderá rodar binários do Linux/386.edu em /pub/usenet/news. O port para o Risc PC está atualmente em estágio médio. Detalhes completos estão no arquivo COPYING nos fontes do kernel do Linux (provavelmente em /usr/src/linux em seu sistema). O Linux/MIPS FAQ está disponível em WWW e na área do port para MIPS em ftp.waldorf-gmbh. O port para o A5000 está em besta-teste restrito e poderá ser lançado em breve.uk David Miller está trabalhando em um port para o Sparc.misc. Ainda está num estágio bastante primário. O port Linux para a placa Aleph One 486 foi terminado e parece estável. olhe veja no WWW em http://whirligig.ph. se você quiser voluntarear contate Martin Ebourn mje@soton.soton. Para maiores detalhes: http://www. usado no Acorn Risc PC.uk/~rmk92/armlinux. Pessoas interessadas podem mandar suas perguntas e ofertas de ajuda para linux@waldorf-gmbh. pessoas dispostas a dedicar bastante tempo e com acesso a Sparcs para teste devem entrar em contato com davem@caip.mit.93R6 ocupa uns 500Mb.kcl.de. Você pode espremer uma instalação mais completa com X Windows em 80Mb. o que basicamente significa que voce pode copiá-lo livremente.8.uk/~amb /linux.de em /pub/linux/mips Também há um canal no servidor de mail do Linux Activists e uma lista linux-mips [ P2.sys.answers/law/Copyright-FAQ. para detalhes).html Questão 1. Atualmente existem dois ports do Linux para a família ARM de processadores em andamento. modifica-lo e distribuí-lo. necessitando da reescrita do código de gerenciamento de memória. e inclui drivers de I/O para o 82710/11.R4600 em máquinas Deskstation Tyne. Para informações mais recentes cheque comp. incluindo algum espaço para arquivos de usuários e áreas para spool.ac.ac. O Linux está em Domínio Público? Tem Copyright? O copyright do kernel do Linux pertence a Linus Torvalds. Quais são as listas de discussão sobre Linux? ].ecs. Instalar quase todo o Debian 0.acorn.rutgers. De quanto espaço em disco ele precisa? 10Mb para uma instalação mínima.6. usado no Acorn A5000. um deles é o ARM3.html. Isto não é o mesmo que domínio público (leia o FAQ sobre copyright que está disponível em rtfm.5. e o outro é para o ARM610.

107.107.100) : /pub/OS/Linux/doc/HOWTO tsx-11.mit. Onde eu pego material sobre Linux por FTP? Se você não tem acesso a FTP tente usar servidores de FTP-por-mail em ftpmail@decwrl. ou na Web em http://sunsite.INDEX no diretório docs/HOWTO dos sítions de FTP.if.81) : /pub/Linux/docs/HOWTO No Brasil: linux.5.variadas.4) : /pub/linux/docs/HOWTO Para uma lista completa de sítios de FTP veja P2.misc.os.br (143.fi (128.unc.unc.uk ou ftp-mailer@informatik. e também está sobre o GPL.unc.2) : /pub/linux/docs/HOWTO sunsite.edu/mdw/HOWTO/HOWTO-INDEX.com. Questão 2.1.6.dec. ftpmail@doc.html Esta é uma lista (provavelmente incompleta) dos HOWTOs: Linux INFO-SHEET Linux META-FAQ Bootdisk HOWTO Busmouse HOWTO CDROM HOWTO Commercial HOWTO Cyrillic HOWTO DOSEMU HOWTO Danish HOWTO Distribution HOWTO ELF HOWTO Ethernet HOWTO Firewall HOWTO Ftape HOWTO German HOWTO HAM HOWTO Hardware HOWTO Installation HOWTO JE HOWTO 86 .usp.ic. Onde pego os HOWTOs e outra documentação? Dê uma olhada nesses lugares.discuss e não para os grupos comp.2.251.172.br (143.de.251.1.tu-muenchen.funet.ac.ime. muito desse código é do projeto GNU da Free Software Foundation.usp.edu (18.edu/pub/Linux/docs/HOWTO farofa.22.4) : /pub/mirror/sunsite. e em outros que os espelham: ftp.edu (152. Uma lista completa de HOWTOs está disponível no arquivo HOWTO.214. Note que discussões sobre o mérito ou não do GPL devem ser postadas a gnu.linux.

tanto em formato HTML quanto em outros. Se não encontrar a informação que você precisa em um destes documentos procure em outros diretórios próximos nos sítios de FTP.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 estão sempre em preparação. O que tem na World Wide Web sobre Linux? Matt Welsh mantém Home Page do Linux Documentation Project. Os livros produzidos pelo Linux Documentation Project estão disponíveis em /pub/Linux/docs/LDP em sunsite. Os HOWTOs são coordenados por Greg Hankins gregh@cc.2.unc. em http://sunsite.edu.edu.edu/mdw/linux. Os livros produzidos até o momento são: The Linux Documentation Project manifesto Installation and Getting Started Guide The Kernel Hacker's Guide Network Administration Guide Linux System Administrator's Guide Questão 2. Por favor leia-os se você for novo em Unix e Linux.unc. O arquivo WRITING contém informações sobre como escrever um novo HOWTO. 87 .gatech. Esta página se refere a todos os FAQs e HOWTOs. no diretório docs/HOWTO/mini. Além destes HOWTOs ainda existem os mini HOWTOs. Sobretudo o Installation and Getting Started Guide.html.

linux.advocacy e comp. Veja também P2. Ela é mantida pelo Eduardo Maçan e possui além de links para outras páginas.ornl.* diferentes é raramente uma boa idéia. comp.networking.linux. comp.admin and comp.freebsd. você deve lê-lo se pretende usar Linux.linux.linux. comp.os.linux.br.windows.org/linux-br/index. Questão 2.linux.os.os.answers Contém todos os FAQs.apps. um repositório de todas as mensagens vinculadas à lista e versões atualizadas deste documento. comp.system.os. a maioria do material em comp. Cada um contém o software que você precisa para 88 .* e comp.* sera relevante. Quais são as listas de discussão sobre Linux? Questão 2. comp.linux. Red Hat e Slackware.x.os. comp.linux. HOWTOs e outros documentos importantes.misc.os.veja `Welcome to the comp.development. Esses grupos são comp.announce é um grupo de anúncios moderado.os.x.gov.linux.linux.os. Assine este grupo também.7.linux.setup.4. Como instalo o Linux? Existem várias "releases" de Linux pré-empacotadas disponíveis. Eu nao tenho acesso à Usenet. Os outros grupos na hierarquia comp.linux. Podem haver grupos de discussão locais à sua instituição ou área verifique-os antes.linux.os. Excetuando-se de algumas considerações de hardware e algum assunto obscuro ou muito técnico e de baixo-nível.os.linux. Submissões a este grupo devem ser mandadas para linux-announce@news.linux.hardware.os. comp.development.os. você achará que esses grupos são o lugar certo para começar. comp.os.os. Não os use mais.linux.os.linux.A página da Linux-BR está em http://www.development. Lembre-se que como o Linux é um clone do Unix. Que grupos de discussão (newsgroups) sobre Linux existem? Existem 10 newsgroups Usenet internacionais devotadas ao Linux.* hierarchy' que é postado a cada duas semanas em comp.8. comp.3.announce.html.unix.linux. Os grupos comp.os. e certifique-se de postar no grupo certo -. Onde consigo informações? P2.* também são recomendados -algums problemas comuns não respondidos neste FAQ podem estar nos newsgroups. comp.os.os. Por favor leia Vocês ainda não responderam à minha pergunta! antes de postar. Crossposting (mandar a mesma mensagem para mais de um grupo de discussão) em grupos comp.help foram substituídos em uma reorganização de grupos recente.answers e outros grupos. incluindo Debian.

172.de : /pub/comp/os/linux (Alemanha) ftp.2) : /pub/linux O melhor lugar para se pegar versões novas de kernels é ftp.de : /pub/Linux (Alemanha) bond.com : /pub/linux (EUA) ftp. Por favor use um perto de você -. Linus Torvalds disponibiliza as versões mais recentes do kernel nesse lugar. 128.ac.5.cs.informatik.cdrom.edu : /pub/linux (EUA .edu : /systems/linux (EUA) uiarchive. Onde eu pego material sobre Linux por FTP? Também existe um garnde número de outros pacotes distribuídos menos globalmente.de : /pub/linux (Alemanha) ftp.tu-muenchen. Todos esses pacotes estão disponíveis por FTP anônimo em vários sítios de FTP P2.gatech.1. O Mini-linux e' um pacote pequeno (4 disquetes) -.cs.edu (US.funet.mit.edu : /pub/systems/linux (EUA) ftp.ac. em geral diariamente) por outros sítios. O Red Hat e Debian são mais recentes.rodar Linux.mas que inclui TCP/IP. têm menos bugs e vêm com esquemas de instalação sofisticados.tu-bs.monash.unc.edu (US.rwth-aachen.au : /pub/OS/Linux (Austrália) ftp.sudeste: Suranet) wuarchive.edu.com O conteúdo destes sítios são espelhados (copiados. src.uk : /packages/Linux (UK) sunacm.redhat.fr : /pub/linux (França) ftp. Voce deve ler o Installation HOWTO para mais detalhes em como instalar o pacote Slackware.org e a distribuição Red Hat em ftp. 18.doc. Onde eu pego material sobre Linux por FTP? Os três sítios principais de Linux são: ftp. mas atendem melhor a necessidades locais e nacionais (como suporte melhor à internacionalização).214.cc.6.au : /pub/linux (Austrália) 89 .5. 152. X-Windows e outras coisas -.swan.helsinki.ic. prontos para instalar e usar.fi (Finland.22.será mais rápido para você e nais fácil para a rede. Detalhes de quais softwares estão incluídos e como instalá-los varia de versão a versão.dfv.uk : /pub/Linux (UK) ftp.ibp.informatik.81) : /pub/Linux tsx-11.100) : /pub/OS/Linux sunsite.debian. A distribuição Debian é disponível em ftp.cso.2. Questão 2.fi em /pub/Software/Linux/Kernel.rwth-aachen.de : /pub/os/linux (Alemanha) ftp.apropriado para pessoas que querem experimentar o Linux sem reparticionar seus discos rigidos.edu.wustl.cc.ibr. mas não são tão populares quanto o Slackware e não contém uma gama de software tão larga.uiuc.

ac. a sua mensagem será postada no grupo de discussões. eles poderão ajudá-lo. CD-ROM e fita. Eu não tenho acesso à Usenet.7. Questão 2.ic .edu.ufpr. contém informaçoes sobre essas distribuições. lcmi. ftpmail@doc.os.if.edu/Linux além de outros em /pub/mirror com a distribuicao Debian. Linux também é disponível por correio tradicional em disquetes.edu. Eles têm um preço razoável e despacham para outros países.inf.unc.br : /pub/diversos/linux (Brasil : Santa Catarina) Slackware cesar. Se existir um Grupo de Usuários de Linux perto de você. Várias empresas que comercializam CDs do Linux têm páginas na WWW.dstc. Onde consigo informações? Um resumo do comp.cl : /pub/Linux (Chile) ftp. Se -request for omitido.tu-muenchen. você poderia tentar os servidores de FTP-por-mail em ftpmail@decwrl.za : /pub/linux (África do Sul) ftp.br : /pub3/linux (Brasil : São Paulo) Slackware ftp. Recomenda-se que você assine esta lista.unicamp.8 Quais são as listas de discussão sobre Linux? Os desenvolvedores do Linux usam principalmente o servidor Majordomo em 90 .ac.ftp.br : /pub/mirror/sunsite.linux. Lembre-se de adicionar -request depois do nome do newsgroup (linux-anounce-request) para requisitar a sua assinatura. Installation HOWTO e o arquivo /pub/Linux/docs/distributions em sunsite.de/ix/linux/bookmarks/companies.ix.usp.zel.fer.au : /pub/Linux (Austrália: Queensland) ftp.com.dec.hr : /pub/Linux (Croácia) linux.sun.net que é regularmente postado (dia 1o e 15 de cada mês) em comp. Questão 2. pois ela contém informações importantes e documentação sobre Linux.mit.uk ou ftp-mailer@informatik.linux.ime.de.ufsc.br : /pub/linux (Brasil : São Paulo) Slackware ftp. Você ainda pode tentar a lista de BBSs de Zane Healy healyzh@holonet. Veja em http://www. Como eu consigo o Linux? O jeito mais fácil é talvez achar um amigo com acesso a FTP.announce e ocasionalmente na Fidonet e RIME UNIX echoes.announce pode ser obtido mandando e-mail contendo subscribe para linux-announce-REQUEST@news-digests.edu.unc.6 Eu não tenho acesso a FTP.utfsm. e alguns têm material que os sítios "originais" não têm. Se você tiver uma conexão de email razoavelmente boa. Questão 2.usp.br : /pub/Linux/ (Brasil : Paraná) Slackware Nem todos eles espelham todo conteúdo dos sítios "originais".of.html para alguns links de algumas dessas empresas.

: hda1 para a primeira partição do primeiro disco IDE).ac.9 Os newsgroups são arquivados em algum lugar? (inclui Linux-BR) sunsite.doc. 91 . Existe a lista linux-newbie.os. ao invés da tabela de partição do disco. porque às vezes eles usam incorretamente os dados do setor de boot da partição. Mande uma mensagem com lists no corpo da mensagem para receber uma lista das listas lá. Note que a maioria dessas listas são usadas pelos desenvolvedores do Linux para falarem sobre assuntos técnicos e desenvolvimento futuro. Eu posso instalar o Linux junto com o DOS? OS/2? 386BSD? Win95? Sim.leo.edu .announce na World Wide Web em http://www. Ele foi integrado ao kernel padrão na versão 1. O Linux pode ler e escrever arquivos em partições FAT do DOS e OS/2 e em disquetes usando o suporte interno do kernel ou o mtools. Questão 2. Para previnir isso. onde `nenhuma pergunta é idiota demais'. infelizmente parece que poucos usuários experientes a lêem. Elas não devem ser usadas para perguntas de usuário novatos.announce. Eles são espelhados de /usenet em src.unc.tgz.linux.0.br.uk. em sunsite. No entanto.3.ic.org/archiv/linux/archiv/ann_index.org/linux-br/LINUX-BRmails. ele está disponível em /pub/multimedia/linux/vfat/vfat-0. O tráfego é bastante baixo.archive . antes de usar o MSDOS ou outra coisa para formatá-la. muitos desses outros sistemas operacionais são mal feitos: o FDISK e FORMAT do DOS podem destruir dados em uma partição Linux. assim ele pode compartilhar o seu disco com outros sistemas operacionais. O Linux usa o esquema padrão de particionamento do PC.html. No Brasil você pode assinar a Linux-BR mandando um e-mail contendo subscribe linux-br <seu nome> para listproc@iqm. Existe uma versão alpha de suporte do kernel para o sistema VFAT usado pelo Widows 95 e Windows NT.1.html Questão 3.60.edu contém mensagens do comp.unicamp.os.edu em /pub/Linux/docs/linux-announce. com instruções para inscrição e desinscrição.rutgers.linux. Existe um repositório de fácil acesso do comp. O repositório das mensagens da Linux-BR está em http://www.freebsd.br. Digite: dd if=/dev/zero of=/dev/hdXY bs=512 count=1 onde hdXY é a partição relevante (por ex.3. zere o começo da partição nova no Linux.unc. adicione uma linha com help para receber o arquivo de ajuda do Majordomo.majordomo@vger.

5. Como eu acesso arquivos na minha partição DOS ou em disquetes? Use o filesystem DOS.unc.2.: 92 . Que programas ele suporta? para detalhes e status dos emuladores de DOS. Questão 3. Eu posso acessar partições HPFS do OS/2 no Linux? Sim.uid=100. Para usá-lo o kernel deve ser compilado com o suporte para ele habilitado [P7. mas não pode escrever neles.1 de kernels em teste alpha. por ex. Você pode controlar a aparência dos arquivos no filesystem no Linux quanto à conversão automática de fim de linha CR/LF para CR. UFS do SysV. Procure o pacote ths na sunsite. ftp://sunsite. Veja também P3. mas no momento apenas para leitura.2. Como atualizo/recompilo meu kernel? ]. esse patch é incluído na série 1.unc.6. permissões e propriedade usando conv=text/binary/auto.gid=100 /dev/hda3 /dos Se for um disquete. Existe um "patch" para kernel (conhecido como fd-patches).unc. Amiga etc? ftp://sunsite.edu/pub/Linux/docs/howto/mini/Win95+Win+Linux. umask=nnn. por exemplo: mkdir /dos mount -t msdos -o conv=text.5.unc. Questão 3. não esqueça de umountar ele antes de tirá-lo do drive.umask=022.3. MS Windows e programas para System V. i. Onde eu pego material sobre Linux por FTP? Algumas distribuições já vêm com ela.edu/pub/Linux/docs/howto/mini/Linux+DOS+Win95+OS2 e ftp://sunsite. Existe um módulo para o kernel do Linux que pode ler volumes comprimidos.2 Que programas ele suporta?]. Aí é só montá-lo com o comando mount.Veja P1. Você pode acessá-los pelo emulador de DOS [P1.veja P2.4.edu em /pub/Linux/system/Filesystems Questão 3. Eu posso acessar sistemas de arquivos como o FFS do BSD.e.edu/pub/Linux/docs/howto/mini/Linux+OS2+DOS contem instrucoes especificas sobre instalacao de varios sistemas operacionais em uma mesma maquina. Você também pode usar o `mtools'. Mac. mas para acessá-los no Linux ou pelo mtools é mais difícil. ou dados serão perdidos. disponível tanto em forma binária e em código fonte nos sítios FTP -. Se você montar seu filesystem DOS colocando-o no /etc/fstab você pode configurar as opções trocando o defaults pelas suas opções separadas por vírgulas. uid=nnn e gid=nnn. que permitem o uso de disquetes com números de trilhas e/ou setores diferentes do padrão. digite. Eu posso usar drives do DOS com Stacker/Double Space/etc? Não de maneira facil.

wine.0).mkdir /hpfs mount -t hpfs /dev/hda5 /hpfs Questão 3. A essa altura você pode usar o fdisk do Linux para trocar o código de tipo da partição para 83 (Linux Native) -.veja a documentação dele para mais detalhes. mas ainda não está disponível para usuários. Como eu posso inicializar o Linux pelo Boot Manager do OS/2? 1. Inicie o Linux.unc. 4. Questão 3. Kernels recentes contém suporte para o UFS no System V. UFS do SysV. para construir um emulador de MS Windows para o Linux. Adicione a partição no Boot Manager.emulators. Instale o LILO na partição -. Isso instala o LILO como um bootloader secundário na partição do Linux. 2. procure os relatórios de status em comp.6.2BSD. Isto é para fazer o OS/2 saber que a partição está formatada. 3. (Não serve o fdisk do Linux).isso pode ajudar alguns scripts de instalação automática a achar a partição certa para usar. o WINE. (Este passo não é necessário no OS/2 "warp" 3. LILO (o bootloader do Linux) possui um menu para escolher o sistema a entrar --. 5. Existe um projeto. e crie um sistema de arquivos na partição usando mkfs -t ext2 ou mke2fs. Instale o Linux na partição. Formate a partição no OS/2. 6. Mac. o melhor é provavelmente rodar o Windows direto sob o DOS.edu em /pub/Linux/ALPHA/ufs. Eu posso acessar sistemas de arquivos como o FFS do BSD. Para isso coloque: boot = /dev/hda2 93 . No momento.5. Coherent e Xenix. Eu posso rodar programas do Microsoft Windows no Linux? Ainda não. para carregar o kernel especificado no arquivo de configuração do LILO. Amiga etc? Há um filesystem Amiga precário e em alpha-teste em /pub/Linux/patches/amigaffs. se você precisar usar algum programa do MS Windows. em FAT ou HPFS. Questão 3.não o faça no master boot record do disco rígido. em sunsite.ms-windows. Crie uma partição usando o FDISK do OS/2.Z. Ainda não existe suporte para o resto.7. Não pergunte sobre ele. a não ser que você ache que pode contribuir. Mais informações no arquivo affs-readme do arquivo tar. Existe suporte do kernel em alpha. por enquanto somente para leitura.tar. para o UFS do 4.

Como eu faço para usar a mesma partição de swap no Windows e no Linux? Veja o Mini-HOWTO de H.com sobre esse assunto na sunsite.1. Funções de recuperação estão em desenvolvimento. Você ainda poderá usar essas partições para Linux ou quaisquer outros sistemas operacionais que acessem a controladora de disco diretamente. esses arquivos podem ser entao recuperados.ide (parte do código-fonte do "kernel" do Linux).8. isso é muito dificil de conseguir em sistemas Unix em razão da sua natureza multitarefa. não estará em condições de acessar partições que se estendam além dos 1024 cilindros lógicos. Discos SCSI são acessados através de números lineares de blocos.unc.edu em /pub/Linux/docs/HOWTO/mini/Swap-Space. as outras partições estarão "OK". Peter Anvin hpa@yggdrasil. e irá tornar a iniciação de um "kernel" Linux a partir dessas partições no mínimo problemática. Questão 3. até que sejam apagados automaticamente por processos em segundo plano.(onde /dev/hda2 é a partição de onde você quer "bootar") no seu arquivo /etc/lilo/config ou /etc/lilo. para poder usar o Boot Manager para escolher o que carregar. Questão 4. Certifique-se de que a partição do Boot Manager esteja marcada como ativa. o BIOS cria alguma simulação de cilindros/cabeças/setores "lógicos" para atender ao DOS. DOS. Esse README contém várias sugestões úteis sobre unidades de disco IDE. Questão 4.2. mas não espere grandes resultados.. Há uns poucos pacotes disponíveis que funcionam oferecendo novos comandos para apagamento (e em alguns casos cópia) que movem os arquivos "apagados" para um diretório "lixeira".conf 7. Outra alternativa é a busca direta na própria unidade de disco que contém o 94 . Como posso fazer o Linux funcionar com meu disco "grande" de mais de 1024 cilindros lógicos? Se seu disco for uma unidade IDE ou EIDE você deve ler o arquivo /usr/src/linux/drivers/block/README. Recomendo criar no mínimo uma partição Linux contida inteiramente dentro do limite de 1024 cilindros lógicos e iniciar o sistema dessa partição. Como posso reaver (undelete) arquivos apagados? Em geral. em geral.

gz.5. Questão 4. Estou recebendo mensagens estranhas sobre "inodes". e coisas desse gênero. Você pode precisar 'rodar' mk2efs diretamente em lugar de mkfs -t ext2. Depois de fazer isso você pode montar o disquete como um disco rígido e simplesmente usar cp e mv em arquivos etc.25 polegadas use fd0H1200 e 1200. e você terá de reiniciá-lo com mkfs (ou mke2fs. Você provavelmente tem um sistema de arquivos corrompido.sistema de arquivos em questão. "blocks". mkxfs etc. Esse é um trabalho difícil.5 polegadas: fdformat /dev/fd0H1140 mkfs -t ext2 -m 0 /dev/fd0H1140 1440 Para um disquete de 5. mesmo em sistemas de arquivos muito cheios. Usuários do sistema ext2 provavelmente não precisarão de defragmentação pois ext2 contém código extra para manter a fragmentação reduzida.ext2 para não reservar espaço no disco para o superusuário -.6. o segundo cria um sistema de arquivos vazio nele. se voce não possui o 'front-end' automático para fsck) terá condições de reparar seu sistema de arquivos. Você precisa de um programa 'shutdown' recente para fazer isso -. aquele incluído no pacote 'util-linux'.) e restaurá-lo do 'backup'. o programa fsck (ou e2fsck ou xfsck como for adequado.por exemplo. minix e antigos sistemas de arquivos ext disponível em sunsite. Questão 4. A opção -m 0 diz a mkfs.tar. disponível em sunsite e tsx-11. Detalhes completos do que se pode fazer com unidades de disco flexível podem ser encontrados na Lista de Dispositivos Linux (Linux Device List) [ P2. o sistema de arquivos estará destruído.3. caso contrário. e você precisa estar como root para isso.1. O primeiro comando formata o disquete em baixo nivel (ou fisicamente). Para a unidade de disco 'B' use fd1 em lugar de fd0.unc. Como posso formatar um disquete e criar nele um sistema de arquivos? Para um disquete de 3.habitualmente os 10% finais são reservados para ele. Se você tiver sorte. Note bem: não tente verificar um sistema que está montado como sendo de 95 . Há um defragmentador de sistemas de arquivos Linux para ext2. talvez provocado por não se preparar o Linux da maneira adequada antes de desligar o computador ou reiniciá-lo. Onde pego os HOWTOs e outra documentação? ]. Há algum defragmentador para ext2fs e outros sistemas de arquivos? Sim.4. Questão 4.edu como system/Filesystems/defrag-0. respectivamente.

Se você tem DR-DOS 6.leitura e escrita -.d/* (os 'scripts' de iniciação do sistema) ou você esqueceu de colocar a entrada correta em /etc/fstab: /dev/hda2 por exemplo. Digite dd if=boot. read-only no momento da iniciação do sistema. portanto. Se você vê Unable to find swap-space signature você esqueceu de usar mkswap. mkswap funciona de maneira análoga ao mkfs.0301 ou algo assim.. Isso vai restaurar um 'Master Boot Record' padrão do MS-DOS.local ou /etc/rc. Verifique o documento Ins tallation HOWTO para instruções detalhadas para se configurar uma área de paginação (swap). pode usar 96 none swap sw . Questão 4.7. Quando você dá partida ao sistema (ou ativa a paginação manualmente) você deve ver Adding Swap: NNNNk swap-space Se você não vê qualquer mensagem.0 ou posterior..0.6. digite FDISK /MBR (o que não está documentado). vai precisar do setor de 'boot' original que LILO salvou quando você o instalou pela primeira vez. acione FDISK da maneira habitual e selecione a opção 'Re-Write Master Boot Record'. ou OS/2). Minha área de paginação (swap) não funciona. Como posso desinstalar LILO e voltar a reiniciar meu sistema pelo DOS? Se você está utilizando DOS (MS-DOS 5. Isso pode também destruir sua tabela de partições. provavelmente está faltando swapon -av (o comando para ativar a paginação) em seu arquivo /etc/rc. Questão 4. Você guardou aquele arquivo. Se você não tem DOS 5 ou DR-DOS.0301 of=/dev/hda bs=512 count=1 (ou sda se você está utilizando um disco SCSI). Veja a página do man(ual) para detalhes.isso inclui a partição da raiz -. cuidado! Se você está desesperado.se você não vê VFS: mounted root . não é? E provavelmente chamado boot.

diretório /pub/Linux/kernel/patches/diskdrives. nenhum dos sistemas de arquivos Linux pode fazer compressão. você pode então reformatar o disco usando o formatador de sua preferência. diretóorio < code>/pub/Linux/libs. Há uma distribuição (em forma apenas de código-fonte) em sunsite. Note que. Porque não posso usar fdformat. Há um programa chamado Zlibc que permite a aplicações existentes ler transparentemente arquivos comprimidos ('GNU-zipped') como se eles não estivessem comprimidos. Questão 4. Após sua instalação.Knaff@imag.unc. Minhas partições ext2fs são verificadas toda vez que reinicio o sistema. independente do sistema de arquivos. você pode comprimir arquivos com gzip e os programas ainda poderão encontrá-los.announce.5. qualquer problema de corrupção pode ser grave. O autor é Alain. Questão 4. Questão 4. sem necessidade de mudança nos mesmos.edu.10. tente conseguir o programa fdformat2. ele contorna os problemas por ser 'setuid' para root. Note que o MBR do DOS inicia qualquer (única!) partição que esteja marcada como ativa: você pode precisar usar fdisk para ligar e desligar as marcas de ativa das partições convenientemente.mgh. a menos que seja um 'expert'. Há um controlador de dispositivos blocados (block device driver) com recursos de compressão.dd if=/dev/zero of=/dev/hda bs=512 count=1 o que irá apagar seu setor de 'boot' e sua tabela de partições completamente. além de conteúdo de arquivos.edu. Onde eu pego material sobre Linux por FTP?]. Nota: este programa não é o mesmo que gzexe. ele também foi anunciado em comp. no kernel. devido ao fato de comprimir 'inodes' (informação administrativa) e diretórios. entretanto.você vai perder tudo. 97 . Voce encontrará tcx nos sites FTP Linux [ P2.linux. quaisquer que sejam as permissões de /dev/fd0*.os.unc. É chamado 'DouBle'. Procure em sunsite. exceto como root? A chamada de sistema necessária para formatar um disco flexível somente pode ser acionada pelo usuário root.9 Há algum produto como Stacker ou Doublespace para Linux? No presente. o autor é Jean-Marc Verbavatz jmv@receptor. Se você quiser que qualquer usuário pssa formatar um disco flexível.harvard. que pode prover compressão 'on the fly'. Há também um pacote disponível chamado tcx ('Transparent Compressed Executables') que permite manter executáveis pouco usados comprimidos e descomprimi-los temporariamente quando você precisar deles.8.fr.edu. que é uma implementação inferior do mesmo conceito. isso tornará o conteúdo dos seus discos inacessível -.

12.so é um carregador de bibliotecas dinâmicas.12. Simplesmente siga as instruções de instalação. é melhor você pedir para alguma outra pessoas fazer a portagem. Para antigos kernels Linux você precisa desligar a maioria das opções do 'BIOS avançado' -. Minha controladora AHA1542C não funciona com Linux. você pode tentar adivinhar. /proc/kcore é como um 'apelido' para a memória em seu computador. Cada binário usando essas bibliotecas costumava ter cerca de 3K de código de iniciliazação que 98 . Se você não souber e nem souber como encontrar as respostas para algumas das perguntas feitas pelo procedimento de instalação. mas isso tende a produzir programas defeituosos.todas menos a opção de procurar pelo barramento (bus) por dispositivos iniciáveis.12 'EXT2-fs: warning: mounting unchecked filesystem' Questão 4. e se você pedir para lê-lo como um arquivo.Veja P9.g. o kernel executa leituras da memória. programas Unix precisam de poucas modificações para serem portados.eles são todos arquivos fictícios. O que é ld.so e onde posso obtê-lo? ld.1.11 Meu sistema de arquivos raiz está "read-only"! Remonte-o. Questão 4. Neste caso. Questão 4. 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. Como porto XXX para Linux? Em geral. Para compreender porque seu sistema ficou nesse estado. e. seu tamanho é igual à quantidade de RAM que ele possui. criados pelo kernel. A opção para permitir discos com mais de 1024 cilindros somente é requerida como uma alternativa para uma deficiência do DOS e deve ser *desligada* sob Linux. tente usar -I/usr/include/bsd e -lbsd nos lugares apropriados. Se você tiver um programa para sistemas similares ao BSD. 'EXT2-fs: warning: mounting unchecked filesystem'. Questão 5. veja P9. e não consomem nenhum espaço em disco.: mount -n -o remount -t ext2 /dev/hda2 /.2. para dar a você informações sobre o sistema. Questão 5. Tem um arquivo /proc/kcore enorme! Posso apagá-lo? Nenhum dos arquivos em /proc estão realmente lá -.13.

/lib/ld-linux. que pode ser usado por todos os binários.edu.5 Onde eu pego material sobre Linux por FTP?') antes --. Agora. A opção -m486 do GCC. Um mecanismo de procura é disponível por WWW em http://www.7.35. Como porto XXX para Linux?] ou se o pacote for muito grande e necessitar de algumas modificações mande uma mensagem para o grupo comp. Questão 5. Se você não encontrar nada.apps.procure por palavras apropriadas nos arquivos find-ls ou INDEX. Ele pode ser obtido de tsx-11.3. é ld. Se você estiver procurando por um programa tipo aplicativo é provável que alguém já tenha escrito uma versão gratuita. Você também pode ler o Projects-FAQ.so. Cheque o Linux Projects Map (LPM).so.unc. você pode fazer download dos fontes e compilá-los você mesmo [P5.out. no momento da escrita deste.edu em /pub/linux/packages/GCC e seus espelhos. /lib/ld.procurara e carregara essas bibliotecas.com/lsm/. o kernel usará instruções específicos de 99 .3.sources. A última versão. É possível usar um programa ou compilador compilado para um 486 em um 386? Sim. em ftp. apesar de uma pequena queda em sua performance. Isso produz binários levemente maiores que rodam um pouco mais rápido em um 486.linux. Tente ler o FAQ em comp.so.edu e outros sites de FTP.gov).11.ix. disponível em /pub/Linux/docs/faqs/Projects-FAQ em sunsite.mit.wanted para instruções de como achar fontes. por favor faça upload dele para um ou mais sites FTP e envie uma mensagem para comp.de em /pub/Linux/docs/Projects-Map.1.gz.development.1 é a mesma coisa para ELF e vem no mesmo pacote do carregador a. Verifique os sites FTP (veja P2.os. veja o Linux Software Map (LSM) --. Se você compilar um programa grande.1.ele está no diretório docs em sunsite.4.boutell. Porém eles ainda funcionam perfeitamente em um 386.linux. Questão 5. Todavia. meramente faz algumas certas otimizações.unc. que é usado para compilar binários para máquinas 486.gz.os. Alguém ja portou / compilou / escreveu XXX para Linux? Primeiro.tar. esse código foi colocado em uma biblioteca dinâmica especial. apartir da versão 1.ornl.announce (submeta sua mensagem para linux-announce@news. a menos que seja o kernel. gastando assim menos espaço em disco e facilitando atualizações.

n.6. impossibilitando a utilização deles em 386s.486 em Pentium. Eu recebo erros quando tento compilar o kernel Certifique-se que /usr/include/linux e /usr/include/asm não são realmente diretórios e sim links simbólicos para /usr/src/linux/include/linux e /usr/src/linux/include/asm respectivamente. Em qualquer caso. essa opção pode ser mudada em cada compilação ou editando /usr/lib/gcc-lib/i*-linux/n.h>? Estes estão nos diretórios /usr/include/linux e /usr/include/asm. O que gcc -O6 faz? Atualmente o mesmo que -O2 (GCC 2. Questão 5. Porém eles devem ser links simbólicos para os fontes de seu kernel em /usr/src/linuc e não diretórios reais. Existe uma versão alpha do GCC que sabe fazer otimizações para 586. qualquer número maior que aqueles. no momento faz a mesma coisa.h>. Então use rm para remover quaisquer arquivos desnecessários 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 simbólico para um deretório asm-<arch> específico para cada arquitetura . Se você não tiver os fontes do kernel faça download deles. se configurado para tais máquinas. O GCC pode ser configurado para 386 ou 486. Se necessário.h> e <asm/*.5) ou -O3 (GCC 2. faz com que -m486 seja o default. GCC 2.make symlinks criará os links simbólicos. Recomendo usar o GCC normal para 486. Questão 5. mas ele ainda não é confiável. apague-os usando rm e então use ln -s para criar os links 100 .mit.n/specs. Você também poderá precisar fazer make config em uma árvore de fontes do kernel recém "desempacotada" para criar <linux/autoconf. diz-se que usando-se a opção -m386 produz código melhor para o Pentium. você provavelmente deveria fazer o mesmo.6.7).edu em /pub/linux/ALPHA/pentium-gcc. especialmente se forem pedidas muitas otimizações. ou pelo menos um pouco menor. faz com que -m386 seja default e configurando-o para um 486. Questão 5.5. a única diferença é que configurando-o para um 386. Os Makefiles the kernels mais recentes usam -O2. O GCC para Pentium pode ser encontrado em tsx-11. Onde estão <linux/*.7.

18.como mostrado em P5.out (veja P8. Meus executáveis são (muito) grandes.h>?'. Você pode querer usar -N em executáveis muito pequenos (menores que 8K com a opcção -N).mit.-soname. Onde estão <linux/*.2. gcc -fPIC -c *.44.0.1. caso contrário o patch pode ser aplicado de forma incorreta.nn.0 *.2. Veja a página de manual do patch para detalhes.6.so.out são bastante complicados.out.libsoo. Ele vem com documentação que lhe dirá o que fazer.c gcc -shared -Wl. A forma mais fácil de certificar-se de que não ocorram problemas deste tipo é fazer o download de todo kernel.2. Outros fatores a serem investigados são -O e -O2 que habilitam otimização (veja documentação do GCC) e -s (ou o comando strip) que remove informações de símbolos do binário resultante (tornando a depuração totalmente impossível).bin.e. i.edu em /pub/linux/packages/GCC. Questão 5.1 -o libfoo.6. 101 . e definitivamente jamais em daemons.8. O que é esse tal de ELF?) a causa mais comum do problema é o flag -g passado ao linkeditor (compilador).so para cada biblioteca como libc. O que é esse tal de ELF?) a causa mais comum de executáveis grandes é a falta de um link para a biblioteca .o Para a.tar. no arquivo binutils-2.edu. pegue tools-n.5. Note que bibliotecas dinâmicas para a. ao invés de aplicar um ptach.gz de tsx-11.gz. de tsx-11.so.mit. Questão 5. Com um compilador ELF (veja P8.2. O "target" symlinks do Makefile fará eles serem links simbólicos para asm-i386 e arch/i386/boot respectivamente. Com um compilador a. Como faço uma bilioteca dinâmica? Para ELF.so apropriada que você está usando. Ele produz um programa que é "linkado" estaticamente (além de informações para depuração no arquivo de saída). Lembre-se de que ao aplicar um patch a um kernel você deve usar a opção -p0 ou -p1. mas você não deve usá-lo a menos que esteja ciente das implicações sobre a performance.1.h> e <asm/*. Se você estiver aplicando patches a um kernel mais recente que 1.9. você notará um novo diretório /usr/src/linux/include/asm-i386. um que inclui uma cópia da bilioteca C. Deve haver um link como libc.tar. ld: unrecognised option `-qmagic' significa que você deve pegar um linker mais novo.so. O diretório asm lá deve ser removido. ao invés de usar uma copia ligada dinamicamente. em /pub/linux/packages/GCC/src.

edu: /pub/pthread ou ftp.edu em /pub/Linux/devel/lang/ada/gnat-3.ic. Pegue a versão mais recente em sunsite. o compilador GNU Ada em sunsite.lcs.edu: /pub/qt-001. Questão 6. Questão 5.unc. Em gummo. libcs mais novos do Linux contêm o fonte pthreads.tar.fsu. Veja o manual do GCC para mais detalhes (tecle contro-h seguido de i no Emacs e selecione a entrada para GCC). existem várias implementações de processos "lightweight" ou "threads".cs. Em ftp. O anúncio e o código fonte estão disponíveis em larch.1.3. Mais informações podem ser encontrados no relatório técnico disponível no mesmo local como /tr/1993/05/UW-CSE-93-05-06.mit.washington.uk: /rex está lwp.3. Onde posso obter `lint' para Linux? Funcionalidade aproximadamente equivalente está incluído no compilador C GNU (gcc) que é usado em sistemas Linux.edu: /pub/PART. Esta é útil principalmente por conter vários papers em PostScript úteis para se aprender mais sobre "threads". está uma implementação em Ada.edu em /pub/Larch/lclint.57 e posteriores o formato do /proc/meminfo foi mudado para um formato que a implementação atual do free não entende. Em sipb. Use a opção -Wall para habilitar a maioria dos avisos úteis extra.01-linux+elf. mas está disponível em WWW em http://www. Em ftp.html. Por favor contate os autores dos pacotes em questão para detalhes.2. Meu relógio está totalmente errado 102 .fr: /pub/unix/threads/pthreads.edu:8001/people/proven/home_page.11.doc. Questão 6. uma implementação bastante simples.html. A documentação não está no pacote. A versão 1.unc.35 do kernel possui algum soporte para threads no kernel. a maioria dos quais são pacotes genéricos para qualquer Unix. O Linux suporta "threads" ou processos "lightweight"? Assim como o modelo de multiprocessamento do Unix envolvendo processos "heavyweight". no World Wide Web veja em http://larch-www.Z. Ele não é diretamente usável sob Linux. mas esse código não foi bem testado.edu:8001/larch/lclint.ac.99.Questão 5.cs.Z está QuickThreads.lcs.gz contém binários feitos com esse código fonte.mit.10. free não funciona.tar.edu em /pub/Linux/system/Status/ps/procps-0.mit.tgz. Existe um programa gratuitamente disponível chamado `lclint' que faz quase a mesma coisa que o lint tradicional.PS. No Linux 1.ibp. são parte do kernel padrão do Linux. que é claro.mit.

com o programa /sbin/clock . Após algum tempo o cache irá se estabilizar. Questão 6. Se você quiser saber quanta memória realmente está livre.unix. O relógio do hardware (CMOS) funciona mesmo quando o computador está deslidado e é usado quando o sistema inicia e pelo DOS (se você usá-lo). Scripts setuid parecem não funcionar Está correto. ou acerta-lo pelo relógio do sistema ou vice-versa.veja man 8 clock. some a quantidade mostrada em `buffers' à de `free' . Algumas placas-mãe não usam cache para toda RAM se você tiver mais RAM do que os fabricantes esperavam. Alguns deles já podem estar instalados em seu sistema.4.mostrado na coluna `buffers'. netdate e getdate (pegam a hora pela rede) ou xntp (daemon de rede completo e preciso). A memória livre mostrada pelo free fica diminuindo O item `free' mostrado por free não inclui a memória usada como cache de buffer de disco . Olhe no setup do CMOS e veja se existe alguma opção para usar a cache na nova área de memória e que esteja desabilitada.5. o conteúdo deles vai sendo guardado na cache. Você pode ver a hora do relógio CMOS. leia o FAQ do comp.questions. Questão 6. Linux fica muito lento quando coloco mais memória Este é um sintoma comum de uma falha do cache com a memória adicional. Se você quiser saber porquê. Existem vários outros programas que podem corrigir os relógios para tempo de transferência ou ajuste sistemático pela rede. é mantido pelo kernel enquanto o Linux está rodando. Algumas vezes a RAM precisa estar em certos soquetes para que a cache possa atuar. Procure por adjtimex (faz ajustes). A hora do sistema. Algumas vezes você precisa habilitar a cache de certas regiões na configuração do seu BIOS. Geralmente uma cache de 256K resolverá o 103 . Algumas vezes você precisa ligar jumpers para habilitar a cache.Existem dois relógios no seu computador. O problema exato depende da sua placa-mãe. no momento em que você carrega programas usando mais arquivos. Esta característica foi deliberadamente desabilitada no kernel do Linux porque scripts setuid são quase sempre uma falha de segurança. Aparentemente isso é bastante comum num 486.3. Questão 6.versões mais recentes de free mostram uma linha a mais com essa informação. mostrada e mudada por date. O cache de buffer de disco tende a crescer logo após o Linux iniciar.

bin. Questão 6.8.marca. o Linux precisará se desfazer de porções de programas na memória. liberando memória para outros programas e dados. você precisa pegar ou compilar uma versão para shadow password do(s) programa(s) em questão. Você precisa habilitar a paginação (swapping) para que o Linux possa mover dados que os programas não estejam usando no momento para o disco..5. assim.. fazendo com que o Linux tenha que recarrega-los posteriormente. veja também P4.. Talvez você esteja sem áreas de swap habilitadas. Veja o Installation HOWTO e o Installation and Getting Started Guide [ P2.bin/shadow-* Lá estão o códigos fonte. Minha máquina roda muito lentamente quando eu executo GCC / X / . você pode estar com muito pouca memória real.os.linux.edu:/pub/linux/sources/usr. Se você ainda não conseguir conserta-la porque a documentaçã não é adequada envie uma mensagem para comp. você provavelmente encontrará os binários em ./linux/binaries/usr. dessa forma programas que não estejam cientes sobre shadow passwords não pensaram que a conta não possui senha. com uma complicação 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.7..6.1. Se você tem menos memória que o usado por todos os programas que você estiver executando. Programas para shadow password podem ser encontrados em (dentre outros lugares): tsx-11.problema. Em caso de dúvida consulte o manual de sua placa-mãe. Alguns programas me deixar logar sem senha. A solução neste caso é não rodar tantos programas ao mesmo tempo ou 104 . outros usuários de Linux poderão evitá-la. Alternativamente. mas está usando shadow passwords.. Linux fica muito lento quando coloco mais memória. Se você não fizer isso. Se for o caso.hardware dando todos os detalhes . Questão 6... modelo etc.6. o Linux irá usar o seu disco rígido e ficará terrivelmente lento.mit. Questão 6. Alguns programas (xdm) não me deixam logar Provavelmente você está usando programas sem shadow password. Onde pego os HOWTOs e outra documentação?] para detalhes de como adicionar uma partição de swap ou um arquivo de swap. Você provavelmente tem o mesmo problema de P6. Minha área de paginação (swap) não funciona.

como por exemplo o par de discos boot e root do Slackware (no subdiretório install dos espelhos do Slackware) ou com o disquete de boot de instalação do MCC. Eu só consigo me "logar" como root. dessa forma você não correrá o risco de ficar sem algum controlador de dispositivo. Inicialize o sistema com um (ou um par de) disquete de emergência.6. Veja P7.d/*.9. Provavelmente você tem problemas de permissão.edu em /pub/Linux/system/Recovery.10. inclusive o diretório raiz. ou tem um arquivo /etc/nologin. Digite echo '\033c' para consertar. Minha tela está cheia de caracteres esquisitos ao invés de letras. coloque rm -f /etc/nologin no seu /etc/rc. Como atualizo/recompilo meu kernel? . sistema de arquivos etc. Use o LILO ou rdev para fazer o kernel não alocar a ramdisk (veja a documentação do LILO ou digite man rdev). Questão 6.11. Existem dois pacotes de criação de disquetes de emergência no sunsite. Muitas distribuições de Linux contém um comando reset que faz isso. e também da hierarquia de diretórios que contém esses arquivos.unc. Questão 6. Você possivelmente mandou algum dado binário para a sua tela por engano. De algum prompt de shell monte seu disco rígido com algo tipo mount -t ext2 /dev/hda1 /mnt 105 . de quaisquer nomes de arquivos que apareçam em mensagens de erro. Eu acabei com meu sistema e não consigo me logar para consertá-lo. No caso do último. Você pode ver quanta memória e/ou swap você está usando com o comando free. ou digitando cat /proc/meminfo Se seu kernel está configurado com um ramdisk.local ou nos scripts /etc/rc. Questão 6.comprar mais memória. Será melhor se você colocar o seu próprio kernel neles. Caso contrário verifique as permissões do seu shell. isso provavelmente é um desperdício de espaço deixando o sistema lento. Você pode também liberar alguma memória compilando e usando um kernel com menos opções configuradas.

Questão 6.1.1. Como faço o LILO carregar o arquivo vmlinux? Nos kernel versões 1. reduzindo a quantidade deles -. que é o que você deve dar ao LILO. porque a forma que é implementado usa a memória de vídeo para guardar o texto rolado.80 e posteriores a imagem comprimida do kernel.veja o <linux/tty.por exemplo. você pode usar a tecla Shift com PageUp ou PageDown (Nota: as teclas cinzas. Pegue uma versão mais nova dele. você pode aumentar a quantidade de texto guardado em cada console virtual. Questão 6. Obviamente você é novo no Unix e precisa ler um bom livro sobre ele para ver como as coisas funcionam. Questão 7. você não descobriu.Assim seu sistema de arquivos estará acessível em /mnt e você poderá consertar o problema. Existe um erro no programa clock (geralmente encontrado em /sbin) . lpr e/ou lpd não estão funcionando. foi movido para arch/i386/boot/zImage. confundindo segundos com minutos ou coisa parecida. para remapea-los para as teclas existentes em um teclado AT de 94 teclas. Para outros mapeamentos de teclado. Porém. não as brancas do teclado numérico!). Questão 6. Questão 6. Não é possível aumentar a quantidade de tela guardada. Pista: a habilidade de apagar arquivos no Unix depende de permissões de escrita no diretório onde eles estão. veja /usr/lib/keytables. Veja Printing HOWTO [ P2. Como faço para rolar a tela para cima em modo texto? Com o mapeamento de teclado (keymap) americano padrão. 106 . O arquivo vmlinux no diretório root é um kernel descomprimido e você não deve tentar carregá-lo.h>.15.14. A hora de arquivos de partições msdos estão gravados incorretamente.12. Onde pego os HOWTOs e outra documentação? ]. você pode remapear as teclas de rolamento para cima (scroll up) e para baixo (scroll down) para o que você quiser --.ele conta incorretamente um ajuste de fuso horário. Descobri uma falha de segurança enorme no rm! Não. Lembre-se de desmontar (umount /mnt) o seu disco rígido antes de reiniciar (volte ao diretório raiz antes ou ele dirá que está ocupado).1.13.

2. Para mudar de console no X windows pressione Ctrl-Alt-F1 etc. Por exemplo: ln -sf Brazil/West localtime ln -sf localtime posixrules Isso tomará feito imediatamente . Questão 7. Faça um link simbólico com o nome localtime apontando para um dos arquivos nesse diretório (ou subdiretório).5.h. Os fontes podem ser encontrados no sunsite. e um chamado posixrules apontando para localtime. Não tente usar a variável de ambiente TZ . Que versão de Linux e que máquina estou usando? Digite: uname -a Questão 7. pegue o pacote de timezone se você não possui esse diretório.deixe-a indefinida. Você também deve certificar-se de que o relógio de seu kernel Linux está ajustado para o horário GMT correto . Alt-F5 ou algo assim irá levá-lo de volta ao X. Questão 7. pressione Left Alt-F1 a Alt-F12 para selecionar os consoles tty1 a tty12. cujo default é 8.3.edu em /pub/Linux/system/Admin/timesrc-1. Kernels anteriores ao 1. Se você quer usar um console virtual para login normal.gz.Questão 7.unc. você precisa listar quais consoles virtuais possuem prompt de login em /etc/inittab. Kernels mais recentes alocam consoles dinamicamente.59 possuem um limite no número de consoles configurado em tempo de compilação.1.2. Veja NR_CONSOLES em linux/include/linux/tty. Como troco de console virtual? Como os habilito? Em modo texto.4.tar.experimente date. até um máximo de 63. Right Alt-F1 vai para tty13 e assim em diante. (Nota: o X precisa de pelo menos um console virtual para rodar). Como posso habilitar ou desabilitar core dumps? 107 .digite date -u e verifique se o horário universal correto é mostrado. Como configuro o timezone (fuso-horário)? Vá ao diretório /usr/lib/zoneinfo.

Se você quiser habilitar ou desabilitar core dumps para todos os processos por default mude <linux/sched.cs. estes são arquivados em /pub/kchanges. 1.x. limit no tcsh ou rlimit no ksh. Esta é uma limitação da arquitetura do barramento ISA. mas você não poderá usar duas portas comuns que compartilham uma interrupção simultaneamente (sem usar alguns truques). e também dê uma olhada em <linux/resource.x) são para teste.veja a definição de INIT_TASK. Questão 7.7. em alguns casos de erro fatal) com o comando ulimit no bash.5. Posso ter mais de 3 portas seriais compartilhando interrupções? Sim.O Linux agora tem os corefiles desabilitados por default para todos os processos. Quais são as listas de discussão sobre Linux?]. mas se você o obteve como parte de alguma distribuição do Linux. kernels estáveis possuem número de versão pares (1.helsinki. mas provavelmente é se você precisa fazer uma atualização. 1. assine a lista de discussões linux-kernel [ P2.o Makefile de versões recentes do kernel possui um "target" zlilo especial que já faz isso.out [ O que é esse tal de ELF?]. Você pode habilitar ou desabilitar os core dumps (gravação em disco da memória do processo. Onde eu pego material sobre Linux por FTP?]. Você pode já possuir uma versão do código fonte do kernel instalado em seu sistema. 1. 108 .development . Como atualizo/recompilo meu kernel? Leia o Kernel HOWTO ou o README que acompanha o pacote do kernel em ftp.) Lembre-se que para fazer o novo kernel ser carregado. em /pub/Software/Linux/Kernel e espelhos de lá [ P2.x.6. Esse comando afeta todos os programas executados por aquele shell (direta ou indiretamente) e não no sistema todo. 1.2.13 produzirá core dumps a. Russel Nelson envia sumários de mudanças recentes no kernel para comp.0.1.2.x). é provável que ele esteja desatualizado (o que não é problema se você só quer um kernel configurado sob medida. você precisa rodar o LILO depois de copiar o kernel em sua partição raiz -.8.h>.fi. Veja a página de manual para o seu shell para maios detalhes.3. Se você quiser experimentar algum kernel de teste. Veja o Serial HOWTO para informações sobre possíveis soluções para este problema.os. tente make zlilo. Kernels com número de versão secundário ímpares (ie. Questão 7.linux.h> .

Instale um kernel nele e faça com que o LILO carregue-o pelo disquete (veja a documentação do LILO em lilo.10. Como posso ter mais de 128Mb de swap? Use várias partições ou arquivos de swap .tar.u.*.local ou em um dos arquivos /etc/rc.Questão 7. Você pode encontrar mais informações úteis no Keystroke HOWTO.9.c. francês etc. Alternativamente.0. Você precisa fazer com que KBD_DEFLEDS seja definido para (1 << VC_NUMLOCK) ao compilar drivers/char/keyboard. o ramdisk será carregado em tempo de inicialização (boot) e será montado como raiz no lugar do disquete. você precisa do pacote de mapeamento de teclado específico para a versão do seu kernel. /dev/tty$t > /dev/null done setleds é parte do pacote kbd (P7. etc.unc. Certifique-se de pegar uma versão apropriada.gz em sunsite. você precisará editar o Makefile do kernel em /usr/src/linux. Para kernels mais antigos.90. Questão 7. Como faço um disquete inicializável? Faça um sistema de arquivos nele com os diretórios bin.edu.90 deve funcionar com versões de kernel apartir de 1. Questão 7.11.edu em /pub/Linux/docs/HOWTO/Keystroke-HOWTO ou no Portuguese-HOWTO .unc. Para kernels recentes. Se você montou o kernel (ou fez o LILO dizer ao kernel) para ter um ramdisk do mesmo tamanho do disquete. pegue /pub/Linux/system/Keyboards/kbd-0. Veja o Bootdisk HOWTO.8. Como remapeio meu teclado para português. Como faço para deixar o NUM LOCK ligado por default? Use o programa setleds.8.pl).d/*): for t in 1 2 3 4 5 6 7 8 do setleds +num &lft. Como faço um disquete inicializável?). em sunsite. modifique seu kernel.o Linux suporta até 16 áreas de 109 . por exemplo (em /etc/rc. lib e dev -tudo que você precisa. 0. Questão 7. no mesmo local.

Este terá muitas vantagens.2. Kernels muito velhos somente suportam áreas de swap com tamanhos de até 16Mb. As páginas de manual online (digite man man) são geralmente uma boa fonte de informações de referência sobre como usar um comando ou função exatamente.swap.edu em /pub/Linux/docs/man-pages. Porém. não tendo algumas das esquisitices da GNU). Também existe bastante documentação em formato GNU Info. Questão 8. como eles usam 110 . afmoraes@if.usp.1. Antonio Fernando C. Questão 8. útil como tutorial.out'). Linux está migrando para um formato diferente de executáveis.unc. Note que o nodo libc do Emacs não descreve exatamente o libc do linux (que é mais parecido com um libc tradicional de Unix. cada um com até 128Mb. Note que esta localizacao do texto e' temporaria. Como programo XYZ no Linux? Leia os manuais ou um bom livro sobre Unix.br esta organizando um HOWTO sobre o assunto. A última versão dos manuais online do Linux e uma coleção de documentação GNU Info. note que esse não é o arquivo move-to-elf. conhecido por `ELF' (o formato antigo é chamado `a. mas é suficientemente semelhante para servir como tutorial de programação em C no Unix. Como faço para obter acentuação no Linux? Leia o Portuguese-HOWTO Documentacao para outras linguas tambem podem ser uteis. que é uma explicação de como atualizar para ELF manualmente.br/pub/operating_systems/Linux/local. Rode Emacs e tecle Ctrl-h i. Tente ver Danish-HOWTO. incluindo suporte melhorado para bibliotecas compartilhadas (shared libraries) e ligação dinâmica (dinamic linking). arquivos objeto e bibliotecas de código objeto.if. O que é esse tal de ELF? Veja o ELF HOWTO por Daniel Barlow.12. Fo. Tente ver em ftp://linux.out e ELF podem coexistir em um sistema. com várias outras informações sobre programação em Linux pode ser encontrada em sunsite. Binários a.usp. mas ja possui muitas informacoes. ou não gosta de Emacs. M. Questão 7. ou digite info info se você não tem. Ele ainda nao esta completo.

so. como ls.deb é o pacote binário Debian .lembre-se de digitar binary como um comando no FTP antes de usar o get para pegar o arquivo. version 1. stripped Existe um patch para fazer o 1.x e posteriores não precisam do patch.5. O que são arquivos .3. você provavelmente transferiu o arquivo em modo ASCII por engano. .redhat.debian. dizer o que é um arquivo.org). Se você quer saber se seu sistema pode rodar binários ELF.lsm são entradas do Linux Software Map.2. e rodar file nele: -chiark:~> file /bin/ls /bin/ls: Linux/i386 impure executable (OMAGIC) . 1. Se você quer saber se a sua instalação relamtente é ELF você pode pegar um programa representativo.z) foram comprimidos usando o GNU gzip. ele provavelmente pode. .o formato de pacote binário usado pela distribuição Debian GNU/Linux.rpm é o pacote Red Hat RPM. Intel 80386.com. Questão 8.3.gz? E . na maioria dos casos. Detalhes sobre o LSM e o LSM em si estão disponíveis no subdiretório docs em sunsite.mit.gz (e . Você não precisa do patch para meramente rodar binários ELF.. Se este existir.bibliotecas C compartilhadas diferentes. Se o gzip reclamar quando você tenta descomprimir um arquivo comprimido por ele. Ele é manipulado com dpkg e dpkg-deb (disponíveis em sustemas Debian e em ftp. Eles podem ser encontrados em ftp. O comando file pode. .edu em /pub/packages/GCC. no tsx-11.unc. sob forma de um arquivo texto curto.? Arquivos .tgz (ou .tz são tarfiles (feitos com o tar do Unix) comprimidos usando o o compress padrão do Unix.tpz) é um tarfile comprimido com o gzip. procure /lib por um arquivo libc. ambos tipos devem estar instaladas para isso. Você deve fazer a transferência (download) da maioria das coisas em modo binário ..taz e . e produzir coredumps ELF. que é usado na distribuição Red Hat. Você precisa usar o gunzip (que é um link simbólico para o comando gzip que vem com a maioria das instalações Linux) para descomprimir o arquivo.tgz? E . . .edu.stripped valour:~> file /bin/ls /bin/ls: ELF 32-bit LSB executable.x compilar usando compiladores ELF. 111 .

18 486Cyrix/IBM clock * 0. ou ter algum tipo de problema de cache [como descrito em P6. sua função é esvaziar o buffer de leitura quando detecta uma mudança de discos na unidade de disco flexível: VFS: Disk change detected on device 2/0 Questão 8.39 Se o número que você vê é sensivelmente inferior ao acima.com/. O que significa VFS? Virtual File System. Quantas pessoas usam Linux? Linux é disponível gratuitamente. ].ssc. Eles estão na WWW em http://www.com para detalhes. no sunsite.6. Mande email para linux@ssc. Linux fica muito lento quando coloco mais memória. o BogoMips será aproximadamente: 386SX clock * 0.14 386DX clock * 0. Para valores encontrados em outros chips mais raros veja o BogoMips Mini-HOWTO. portanto isso é difícil de se saber. minix e msdos.5. Entre outras coisas. e 112 . MIPS significa (dependendo de por quem você ouviu falar) Milhões de Instruções Por Segundo. É uma camada de abstração entre o usuário e os sistemas de arquivos reais como ext2. Muitas empresas sobrevivem agora somente da venda e suporte ao Linux. ou Meaningless Indication of Processos Speed. Como um guia bastante grosseiro.7. usado para loops de espera bastante curtos por alguns controladores de dispositivo. O que é um BogoMip? `BogoMips' é uma contração de `Bogus MIPS'.edu em /pub/Linux/docs/howto/mini/BogoMips. Questão 8.unc. Questão 8.33 486SX/DX/DX2 clock * 0. O número mostrado em tempo de inicialização é o resultado de uma calibragem de tempo do kernel. você pode estar com o botão do Turbo ou velocidade da CPU configurados incorretamente.Questão 8.5. O que é o Linux Journal e onde posso consegui-lo? Linux Journal é uma revista mensal (impressa em papel) que é disponível em bancas e por assinaturas mundialmente. e ninguém é obrigado a registrar suas cópias em nenhuma autoridade central.50 586 clock * 0.4.

no em /pub/misc/linux-counter ou na página WWW acima.no/~hta/linux/counter. Questão 9.1. Como se pronuncia Linux? Este é um debate religioso. my name is Leenoos Torvahlds and I pronounce Leenooks as Leenooks.no. "Unknown terminal type linux" e semelhantes Em versões 1. você poderá ouvi-los digitando cat english.linux. Contudo. Questão 8. Ele também aceitará registros de terceiros pergunte a ele por detalhes.T. Alternativamente. assim o número deve estar na casa das centenas de milhares.no com uma das seguintes linhas de subject:`I use Linux at home'. você também pode olhar em aun.au >/dev/audio A diferença não é na pronúncia de Linux mas na língua que Linus usa para dizer hello. Alvestrand Harald. `I use Linux at work'. Harald T.uninett.au ou swedish.relativamente muito poucos usuários de Linux usam esses serviços.3.os.fi (em /pub/OS/Linux/PEOPLE/Linus/SillySounds). uma brava alma.Alvestrand@uninett. Se você tiver uma placa de som ou o driver de áudio para PC-speaker. Você deve editar o /etc/termcap e mudar a linha: console|con80x25:\ para linux|console|con80x25:\ 113 . ou `I use Linux at home and at work'. mas números exatos são difíceis de se dizer. mande uma mensagem para linux-counter@uninett.au em ftp.html. você pode registrar-se usando formulários WWW em http://domen. decidiu tentar e pede que se você usa Linux. o tipo de terminal do console default mudou de console para linux." Para o benefício daqueles que não têm o equipamento nem a inclinação: Linus pronuncia Linux aproximadamente como se lê em português: Linux.8.uninett. Ele envia suas contagens para comp.misc todo mês. A versão em inglês parodiada muito bem por Jin Choi as "Hi. claro! Se você quiser ouvir o próprio Linus pronuncia-lo pegue english. Os grupos de discussão sobre Linux são alguns dos mais lidos na Rede.x antigas do kernel.funet.

bin. Você deve remover libc.0. acho).2.edu em /pub/linux/packages/GCC. mas o status do erro é inválido.3.5. veja o NET-2 HOWTO para instruções de como configurar redes corretamente. ld: unrecognized option '-m486' Você possui uma versão antiga do ld. INET: Warning: old style ioctl(IP_SET_DEV) called! Você está tentando usar os utilitários de configuração de rede antigos. GCC diz Internal compiler error Se o erro é reprodutível (i.uk em /pub/linux/Networking/PROGRAMS/NetTools (somente fontes.ele conterá um ld mais recente.a e reinstalar as bibliotecas (seguindo as notas de instalação delas). Questão 9. Em kernels mais recentes a mensagem foi mudada para lp1 reported invalid error status (on fire. Note que estes não podem ser usados como os antigos. Alguns programas usam /usr/lib/terminfo em vez do /etc/termcap. Procure por binutils-2.2.(Se houver um dumb a mais nesta linha. ela deverá ser removida..tar. você provavelmente terá que digitar TERM=console (para o bash e ksh) ou setenv TERM console (csh. Para esses programas você deve atualizar seu terminfo. ele sempre ocorre no mesmo local do mesmo 114 . libg.e.6. Questão 9. eh?).a foi trocado pela biblioteca de testes.gz em tsx-11. Seu libc.) Para fazer o editor funcionar. Questão 9. Pode ser que você tem algum tipo de conflito de I/O ou IRQ verifique a configuração de suas placas.org. lp1 on fire Esta é um mensagem tradicional/de brincadeira indicando que algum tipo de erro está sendo reportado pela sua impressora..linux. Questão 9.4.6. que é parte do ncurses. Algumas pessoas dizem que recebem esta mensagem quando suas impressoras estão desligadas.mit. os novos podem ser encontrados em ftp. Durante a "linkagem" aparecem Undefined symbol _mcount Isso geralmente se deve a uma má interação entre um defeito do SLS e as notas de instalação da biblioteca C.a e libc_p.a. tcsh) antes. Provavelmente ela não está realmente em chamas. Questão 9. Instale um pacote binutils mais recente -.

para forçar o kernel a usá-lo ou o kernel não usará o código de emulação. você precisará passar o comando no387 para o kernel. shell-init: permission denied quando me logo. 115 . Se o erro for irreprodutível você provavelmente está experimentando corrupção de memória --. Linux. Questão 9. você não deve enviar seu aviso sobre o erro para os grupos comp. certifique-se de que você possui a última versão do GCC. No utmp entry. You must exec . no prompt do LILO.mesmo após reinicializar e tentar novamente. Seu diretório raiz e todos os diretórios até o seu diretório home devem estar com permissão de leitura e execução para todos. Se isto não consertar o problema você está provavelmente tendo problemas de corrupção de memória ou disco. com erros ou corrompida do GCC -. Questão 9. Minha máquina roda muito lentamente quando eu executo GCC / X / .7.os.linux..7 make diz Error 139. para mais informações..8. Questão 9. make diz Error 139 Seu compilador (gcc) fez um core dump. você pode estar com SIMMs defeituosos ou com velocidades conflitantes ou placa-mãe ou controladora ou disco defeituosos. Veja a documentação do GCC em formato Info (digite Control-h i no Emacs. Note que este provavelmente não é um erro específico do Linux.nl/~wolff/sig11/.tudelft. Você possivelmente tem uma versão velha.muito melhor que programas de teste de memória baseados em DOS. usando um kernel estável) você descobriu um erro no GCC. de seus SIMMs e cache estão corretos (manuais de hardware algumas vezes estão incorretos).. e selecione GCC no menu) para detalhes de como reportar isso -. tente compilar um kernel com emulação de processamento aritmético (Kernel math emulation) habilitado..et. quando me logo.pegue a última versão. Alguns clones de coprocessadores aritmético x87 podem causar problemas.arquivo --. como qualquer Unix. Se estiverem. Mais informações sobre este problema esté disponível no WWW em http://einstein. a não ser que você esteja compilando um programa que muitos outros usuários Linux compilam. Veja a página de manual do chmod ou um livro de Unix para ver como consertar o problema.8. é um excelente testador de memória --. wait states etc. Verifique se a velocidade do clock. Você tembém pode estar com pouco espaço de swap -.veja P6.veja P9.9.no entanto.

n. Pegue o bdflush-n. read-only durante a inicialização. que costumava escrever tudo a cada 30 segundos. Você deve fazer com que a partição raiz seja 116 . Questão 9.. e depois desmontar a partição durante cada finalização (shutdown) do sistema. Você deve certificar-se de que os scripts /etc/rc* usam-nos corretamente. ele deve ser iniciado antes da checagem usual dos sistemas de arquivos em tempo de inicialização. Nota: não tente checar um sistema de arquivos que está montado como read-write . disponíveis no pacote util-linux de Rik Faith [ P2.isso inclui a partição raiz se você não vir VFS: mounted root .tar. compile-o e instale-o.6. Como atualizo/recompilo meu kernel?]. Não se preocupe com isto. Questão 9. Warning: obsolete routing request made.bdflush not running Kernels modernos usam estratégias melhores para escrever blocos de disco em cache. Ele funcionará sem problemas com kernels mais antigos.local ou /etc/rc.6. conhecido por bdflush.10.5. isto só quer dizer que a versão do route que você tem é um pouco desatualizado em relação ao kernel. para ver como poder fazer isso.Seu /var/run/utmp está corrompido. Warning .11. A forma mais fácil de fazer isto é pegar a última versão dos comandos fsck. Você deve ter > /var/run/utmp em seu /etc/rc. Note que utmp pode também ser encontrado em /var/adm/utmp ou /etc/utmp em alguns sistemas mais antigos. umount e shutdown.. Veja Eu acabei com meu sistema e não consigo me logar para consertá-lo. Onde eu pego material sobre Linux por FTP?]. isto envolve a troca do programa update. por um (na verdade dois) daemon mais sutil. Como atualizo/recompilo meu kernel?]. Você pode se livrar da mensagem pegando uma versão mais recente do route do mesmo local que os fontes do kernel [P7. Questão 9. Em adição às mudanças no kernel. EXT2-fs: warning: mounting unchecked filesystem Você deve rodar e2fsck (ou fsck -t ext2 se você tem o programa fsck) com a opção -a para limpar o flag de `dirty'. portanto não há motivos para manter o update antigo.d/*.12.gz do mesmo local que os fontes do kernel [P7.

Questão 9. Leia a documentação que acompanha com o util-linux para ver como fazer isso. Onde eu pego material sobre Linux por FTP? ]. pois o sistema de arquivos raiz (onde está /etc/mtab) ainda é somente para leitura.gz no momento da escrita disto) dos sites usuais [ P2. O número máximo de montagens pode ser examinado e mudado com o programa tune2fs deste pacote.5b. Isso é incorreto: versões recentes de mount fazem isso automaticamente.tar. mas cujo contador de "montagens desde a última checagem" atingiu um valor pré-definido.5b. 117 . Questão 9. Outras versões do SLS têm uma linha em /etc/fstab que se parece com: /dev/sdb1 /root ext2 defaults Isso é errado.montada somente para leitura.5. df diz Cannot read table of mounted filesystems Provavelmente há algo de errado com seus arquivos /etc/mtab ou /etc/fstab. A solução é pegar a última versão dos utilitários ext2fs (e2fsprogs-0.d/*). Se você possuir uma versão razoavelmente recente do mount. Onde eu pego material sobre Linux por FTP? ].0 em diante suportam a checagem de sistemas de arquivos baseados no tempo decorrido desde a última checagem assim como no número de montagens. EXT2-fs warning: maximal count reached Esta mensagem é emitida pelo kernel quando ele monta um sistema de arquivos marcado como limpo.gz no momento da escrita disto) dos sites usuais [ P2. /root deve ser simplesmente /. Note que você deve especificar a opção -n para mount para fazer com que ele não tente atualizar o /etc/mtab. Pegue a última versão dos utilitários ext2fs (e2fsprogs-0. caso contrário ele falhará.14.15. Questão 9. /etc/mtab deve ser esvaziado ou apagado em tempo de inicialização (em /etc/rc.tar.5. checá-la se necessário e então remontá-la como read-write. usando algo como rm -f /etc/mtab* Algumas versões de SLS têm uma entrada para a partição raiz em /etc/mtab feito no /etc/rc* usando rdev.local ou /etc/rc. EXT2-fs warning: checktime reached Kernels 1.13.

Questão 9. reconstruí-lo e copiar os dados de volta. Como posso fazer o Linux funcionar com meu disco "grande" de mais de 1024 cilindros lógicos?. Leia P4. do pacote util-linux de Rik Faith (disponível em todos os bons sites de FTP).19. além de copiar os dados da partição. Faça com que o primeiro setor coincida com o número de setores por trilha. que não é usado se você começar a primeira partição na trilha 2. Copie o número da coluna "End". Uma listagem p produzirá uma reclamação sobre inconsistência.17.1. 5. Se a partição começa ou termina em um cilindro com número maior que 1024. se você já instalou seu sistema não há muito o que se fazer sobre isso. mtools diz cannot initialise drive XYZ 118 . fdisk: Partition 1 does not start on cylinder boundary A versão do fdisk que vem com muitos sistemas Linux cria partições que falham em seus próprios testes de consistência. Digite u para mudar a unidade de medida para setores e digite p novamente. 4. Alternativamente. isso é devido ao fato das informações do DOS sobre geometria do disco não suportarem números de cilindro com mais de 10 bits. você pode fazer o seguinte para obter uma partição que o fdisk goste: 1.. Ignore as mensagens sobre setores não alocados .eles referem-se aos setores na primeira trilha além do MBR.16. Infelizmente. Se você tiver uma partição com um número ímpar de setores o último setor não é utilizado. Ainda com a unidade de medida em setores recrie a partição 1. removê-lo. 2. mas Linux usa blocos de 1K. Digite u para mudar a unidade de volta para cilindros e continue com as outras partições.. Remova a partição 1. Questão 9. 3. fdisk says partition n has an odd number of sectors O esquema de particionamento de disco do PC funciona com setores de 512 bytes. fdisk says Partition X has different physical /logical. Crie a partição 1 normalmente. Este é o número de setor na primeira linha da saída de p. Ignore a mensagem. na mensagem acima) for 1 esse é o mesmo problema que fdisk: Parttion 1 does not start on cylinder boundary. Se o número da partição (X.18. se você estiver criando uma nova partição 1 que começa no primeiro cilindro. Questão 9. Ajuste o último setor para o valor indicado no passo 2. Questão 9. Você pode evitar o problema pegando a última versão de fdisk.

119 . Você deve ter uma placa de vídeo suportado pelo XFree86. Ignore a mensagem ou compile um kernel contendo somente os drivers e funções que você precisa P7. Isso não é relacionado com a quantidade de memória física em sua máquina. A maioria das versões do mtools distribuídos com sistemas Linux (não a versão padrão GNU) usa o conteúdo do arquivo /etc/mtools para ver quais dispositivos e densidades usar. Freqüentemente não há documentação sobre isso --. Para a forma mais fácil de acessar seus arquivos DOS (especialmente aqueles em partições de disco rígido) veja P3. Nota . Atualmente. Linux usa XFree86 (a versão atual é 3. You don't exist. O Linux suporta X Windows? Sim. Isso não é uma infecção viral :-). Veja a página de manual do chmod para detalhes.o usuário rodando mtools deve ter acesso apropriado. que é baseado no X11R6). se o seu uid efetivo ao executar o programa não corresponde a um usuário válido (provavelmente devido a uma corrupção no /etc/passwd). talk e wall.20. o que significa que o Linux tem que fazer alguma mágica de gerenciamento de memória extra para poder inicializar-se apartir do BIOS. Isso pode ser causado por várias coisas.6. a maioria das distribuições Linux vêm com uma instalação X.você jamais deve usar mtools para acessar arquivos em uma partição ou disquete msdosfs montado! Questão 9. Veja o Linux XFree96 HOWTO para maiores detalhes. ao invés de ter essas informações compilados no programa. ou se a sessão (pseudoterminal. Como eu acesso arquivos na minha partição DOS ou em disquetes? . especificamente) que você está usando não estiver registrado no arquivo utmp (provavelmente porque você o invocou de um jeito engraçado) Questão 10. Go away. Freqüentemente isso ocorre devido às permissões nos dispositivos das unidades de disco flexível (/dev/fd0* e /dev/fd1*) estarem incorretas --.1.produtores de distribuições por favor notem que isso é mau. Isso vem de vários programas como write.21. Erros nesse arquivo podem causar problemas.2.2. Memory tight no começo da inicialização Isso significa que você tem um kernel muito grande.Isso significa que mtools está tendo problemas em acessar o drive. Como atualizo/recompilo meu kernel? Questão 9.1.

unc. Diamond Stealth.xfree86.leia as instruções que vem com o XFree86. Questão 10.2. Isso não é difícil de fazer -. Por favor. Tente ler comp.note a seção de perguntas e respostas. porque ele depende da combinação exata de placa de vídeo e monitor que você tem. Você pode usar o programa xf86config para agilizar o trabalho.Config. Note que ConfigXF86 é obsoleto e não deve ser usado.windows.5. XFree96 3. O xterm que acompanha o XFree86 2.x a não ser que sejam específicos sobre Linux. Onde posso conseguir um XF86Config para meu sistema? Leia o Linux XFree86 HOWTO.? Suporte para placas TGUI9xxx e outras está sendo desenvolvido. onde o sistema guarda registros de quem está no sistema. não peça por arquivos XF86Config em comp.os.x.linux.os.1 e anteriores não entende corretamente o formato que o Linux usa para o arquivo /var/adm/utmp.linux. Questão 10. em /usr/X11R6/lib/X11/etc. O arquivo que você mais precisa olhar é provavelmente o README.x nem responda a tais pedidos. Por favor não envie mensagens sobre X Windows ou XFree86 para comp. O que faço para o X funcionar com a minha TGUI9440. finger etc. Leia o XFree86 HOWTO para informações sobre instalação.Você tambem pode instala-lo por conta propria. Se você quiser experimentar uma versão beta.. Portanto ele não interpreta todas as informações corretamente.. Questão 10.3. Não consigo fazer o X Windows funcionar Leia o XFree86 HOWTO . Você deverá fazer seu próprio arquivo XF86Config.edu e seus sites espelho. dê uma olhada em http://www.i386unix .1 conserta esse problema. com /pub/Linux/X11/Xfree86-* em sunsite. Logins pelo "xterm" aparecem de forma estranha em who. 120 .especificamente leia o FAQ daquele grupo. Questão 10.4.org.

unc.99pl14-alpha-n. você pode mudar o link simbólico /usr/bin/emacs para apontar para emacs-19.isso fará com que Linux saiba do estado em que o teclado realmente está.tgz do disco E6 do Slackware. Veja Diamond. como o ext2fs (a segunda versão do Sistema de Arquivos Extendido.org Questão 11. que não pode usar mais de 64Mb por partição. mas você pode fazê-las funcioná-las em sua máquina com algum trabalho. Meu teclado fica todo esquisito quando troco de VCs.2. o sistema de arquivos padrão do Linux). A solução é pressionar e soltar cada uma das teclas modificadoras (sem pressionar outras teclas junto) --. Você pode tanto atualizar seu GCC para pelo menos a versão 2. Obtenha mais informações em http://www.edu/pub/Linux/X11/.com/linux.3.Placas Diamond mais antigas não são suportadas. Algumas vezes Linux se perde quanto a quais teclas modificadoras (Shift. Emacs só faz core dump Você provavelmente possui uma versão do Emacs que foi compilado para funcionar com o X11. Este é um erro em kernels de versões anteriores a 0.) estão pressionadas ou não. Questão 11. você pode ignorar a mensagem. Se você estiver usando Slackware. Ele está no arquivo emac_nox. Questão 11.diamondmm. Questão 11. e acha que um ou outro estão pressionadas.5. ele precisa das bibliotecas X11 para funcionar. Placas mais recentes possuem suporte.html Mais informações sobre suporte a placas de vídeo no Hardware HOWTO ou para o caso do XFree86 em http://www. Este problema ocorre freqüentemente ao se sair do X Windows. Se você pretende usar o ext2fs.29-no-x11 (veja man ln). Control etc. Alt. GCC algumas vezes usa quantidades enormes de memória virtual e quebra Versões antigas do GCC tinham um erro que os fazia usar muita memória se você tentasse compilar um programa com uma tabela de dados estático nele. Essa limitação não existe em sistemas de arquivos mais avançados.FAQ em ftp://sunsite.4. ele pode ser 121 .xfree96.1. quando não estão. ou adicionar mais espaço de swap se necessário e simplesmente suportá-lo. no final ele irá funcionar. fdisk diz cannot use nnn sectors of this partition Originalmente o Linux só suportava o sistema de arquivos do Minix.

Veja as páginas de manual (digite man man se você não os conhece. Questão 12.questions. Freqüentemente haverá um arquivo README junto com o pacote dando instruções de uso e instalação. Tente man -k <assunto> : algumas vezes isso lista páginas de manual relevantes e úteis).unix. por favor envie e-mail para Ian Jackson em ijackson@gnu.os.answers na USENET ou veja news-answers/introduction no diretório acima.cheque o Introduction to *.mit. por exemplo. Cheque o HOWTO relevante para o assunto em questão. 122 . portanto quase tudo que você ler lá pode se aplicar a Linux.veja P2. Onde pego os HOWTOs e outra documentação?.edu ou Alfredo Kojima em kojima@inf. Esses são espelhos dos arquivos de FAQ rtfm em vários sites . Tente experimentar -. Verifique a documentação Info (digite Control-h i. se existe um. Certifique-se de que você não tem cópias velhas ou corrompidas do programas em questão. Veja os sites FTP.edu pode mandar esses arquivos para os que não tem acesso FTP). Você não acha que vale a pena gastar algum tempo seu lendo e seguindo estas instruções? Se você achar que alguma resposta está incompleta ou incorreta. Se possível.1.* que podem ser relevantes. pegue o novamente e reinstale-o -.linux. Se você é um novato no Unix leia o FAQ para comp.talvez você tenha cometido um engano da primeira vez.nota: isso não é só para o Emacs.edu em /pub/usenet/news. Muitas vezes ele contém informações importantes para todos usuários Linux.mit. Vocês ainda não responderão à minha pergunta. a documentação do GCC está lá também.answers (o mail-server@rtfm. Esses FAQs. Linux é um clone de Unix. mas você pode estar a ponto de fazer papel de bobo na frente de 50000 pessoas e gastar centenas de horas de seus tempos. Leia comp.1.ufrgs.announce. e aqueles para quaisquer grupos comp. Leia a documentação.unix. ou um documento sub-FAQ no estilo antigo apropriado.br Leia os livros apropriados do Linux Documentation Project . podem ser encontrados em rtfm.ai. Sei que ela é um pouco comprida. no Emacs) --.esse é a melhor forma de se conhecer Unix e Linux.evitado algumas vezes ao largar rapidamente as teclas Ctrl e Alt depois de se apertar a tecla de função do VC para que você está mudando. assim como todos os FAQs. Por favor leia toda esta resposta antes de postar.mit.

Uma transcrição de uma sessão exemplo é uma boa maneira de se fazer isso. Quais versões do kernel e biblioteca dinâmica você está usando. O que colocar em um pedido de ajuda. Muitos comandos padrão dizem suas versões ao serem invocados com a opção --version.x. Inclua o número da versão.windows. O conteúdo de quaisquer arquivos de configuração usados pelo programa em questão e quaisquer programas relacionados.4. 123 . Exatamente que efeitos você esperava e exatamente que efeitos você observou.Questões sobre X Windows gerais pertencem a comp. Mas leia o grupo antes (incluindo o FAQ).nos já sabemos disso! Guarde o espaço para o nome do programa. Debian etc. detalhes de qual hardware você está usando. A versão do kernel pode ser verificada com uname -a. Este conselho se aplica tanto para mensagens para grupos/listas de discussão pedindo ajuda quanto para email mandado para experts e companheiros usuários. e diga onde você o pegou. se conhecido. Você corre pouco risco de deixar sua mensagem comprida demais a não ser que inclua grandes pedaços de código fonte ou arquivos com uuencode. sumário do comportamento incomum etc.) e qual versão dessa distribuição.os. portanto não se preocupe em dar informações de mais.x. Por favor leia cuidadosamente o seguinte conselho sobre como escrever sua mensagem. um pedaço da mensagem de erro. 'Linux'. e o da biblioteca dinâmica com ls -l /lib/libc.* ou lista de discussões apropriada. Não coloque coisas como 'não funciona'. Use uma linha de Subject clara e detalhada. Leia antes a próxima questão: P12.os. incluindo: Com qual programa exatamente que você está tendo problemas. Certifique-se de dar detalhes completos do problema.so. Uma transcrição exata e completa do texto de quaisquer mensagens de erro mostradas. Slackware. antes de você postar! Somente depois de ter feito tudo isso e você ainda estiver encalhado você deve enviar sua mensagem para o grupo comp. Se parecer apropriado.i386unix. não em comp. Qual distribuição de Linux você está usando (MCC. Questão 12.2 O que colocar num pedido de ajuda. 'ajuda' ou 'pergunta' nele --.linux.linux. Ao segui-los você aumentará as chances de um expert e/ou companheiro usuário lendo sua mensagem tenha informações suficientes e motivação para responder.2.

Não faça simples concatenações das respostas que você recebeu --. Se você tiver um local de contato para a distribuição Linux que você está usando. portanto você não tem o direito de esperar uma resposta. comentários e correções serão muito bem vindas. o que irá seguidamente fazer com que ele não seja lido por leitores junto com o resto de uma discussão desinteressante. Coloque um parágrafo de sumário no topo de sua mensagem. Após alguns dias envie um sumário. já que o mapeamento dos números para nomes de funções varia de um kernel para outro. Contribuições que se referem à 124 . Sugestões de perguntas para este FAQ são aceitas em qualquer formato. Considere em submeter seu sumário para comp. Por favor. Finalmente. Comentários são bem-vindos Por favor envie seus comentários sobre este FAQ. Isso marca seu artigo como parte da discussão referida. Se você não fizer isso. Quero mandar e-mail a alguém sobre meu problema.sumarise. Questão 12. quaisquer contribuições. para transformar os números em algo mais significativo. Tente encontrar o autor ou desenvolvedor do programa ou componente que está lhe causando dificuldades.Se você estiver reportando uma mensagem `unable to handle kernel paging request'. use-o.3. lembre-se de que apesar do fato da maioria da comunidade Linux ser bastante prestativa e responder a perguntas por email. Se for postar a mensagem para grupos USENET.br. Questão 13.linux.announce. você estará pedindo ajuda a um voluntário não pago. Se você pode querer dizer em sua mensagem que você já leu este FAQ e os HOWTOs apropriados. No fim de sua mensagem. certifique-se de que sua mensagem não tem uma linha References inapropriada. Coloque tudo em seu email que você colocaria em uma mensagem pedindo por ajuda.1. mande-as para kojima@inf. Lembre-se de que você não deve postar mensagens enviadas particularmente a você sem a autorização do autor.ufrgs. peça por respostas por email particular e diga que você enviará um sumário.os. siga as instruções do README no código fonte do kernel. ninguém que ler sua mensagem poderá fazer isso por você. Colocar a palavra SUMÁRIO na linha de Subject de sua mensagem é também uma boa idéia.

que moderou o comp.ufrgs.linux. comp. . já que a numeração não é fixa. em que esta versão foi baseada.os.announce e comp. além de ser postado à Linux-BR periodicamente e estar disponível no servidor de listas da Linux-BR.br/~kojima/linux/pack/. que coordena os HOWTOs agora.br como para o autor da versão original.ai.mit.ai.gz. Formatos em que este FAQ é disponível A versão original em inglês deste documento é disponível em arquivos texto ASCII.uk/users/iwj10/linux-faq/index.ac.tar.ascii. ijackson@gnu. uma página HTML na World Wide Web.source.cl.announce.os.answers.org e em outros lugares. A versão HTML deste FAQ em inglês é disponível como http://www. PostScript e como mensagem do USENET news.linux. com ajuda e comentários de muitas outras pessoas. e a Marc-Michel Corsini.cam. ao invés dos números. Autores e agradecimentos A versão original do Linux FAQ. a Lars Wirzenius que modera comp. A versão USENET é postado regularmente para comp.answers.linux. 125 . As versões em ASCII. coordenava os HOWTOs e escreveu uma parte substancial deles.html e é espelhado em www.inf. Os arquivos gerados linux-faq.edu. Questão 13. documento Info do Emacs. A versão brasileira do FAQ (este que você está lendo) é disponível em ASCII puro e HTML.os. a Greg Hankins.ufrgs. Info do Emacs.answers. Agradecimentos especiais são devidos a Matt Welsh.os.versão original em inglês deste FAQ ou que podem ser úteis a outros usuários em geral (não só para os brasileiros) podem ser mandadas tanto para kojima@inf. HTML e a da USENET e um arquivo para o formatador de textos Lout (de onde a versão PostScript é produzido) são gerados automaticamente por um script Perl e um arquivo no Bizarre Format with No Name.ps um arquivo tar linux-faq.2. Você pode encontrar um arquivo contendo todas as versões e outro somente com a versão ASCII em http://www. que escreveu o Linux FAQ original. comp. contendo o arquivo fonte BFNN e os scripts de conversão em Perl está disponível nos diretórios docs dos sítios FTP.mit. foi compilada por Ian Jackson ijackson@gnu.li.edu .inf e . Ao se referir a alguma(s) pergunta(s) faça-a pelo cabeçalho da(s) pergunta(s).os.linux.announce.answers e news. Questão 13.3.linux.

a translation or a derivative work must be approved by me before distribution. These restrictions are here to protect the contributors. Marlon Borba. Churchill College.write to Ian Jackson.edu .mit. E por último. Linux Frequently Asked Questions with Answers is Copyright 1994. or the distribution is in machine-readable form (ie. por dar a nós o que escrever. copyright and permission notice) provided that either: the distribution is not commercial (commercial means any situation in which you benefit financially . Cambridge.br.4. a form intended to be easily processed by a computer). Designs and Patents Act. mas não menos importante. 126 .trfsinf@eu. in accordance with the Copyright. and claims the moral rights of paternity and integrity.ai. you use it at your own risk. obrigado a Linus Torvalds e os outros contribuidores do Linux.ansp.directly or indirectly such as by inclusion in a publication which carries commercial advertising). and I shall be happy to answer any questions about this copyright --. Esta versão brasileira do FAQ foi traduzida e extendida por Alfredo K. Email me .kojima@inf. Note that this restriction is not intended to prohibit charging for the service of printing or copying a document supplied by your customer. It may be reproduced and distributed in its entirety (including this authorship. 1988. Any distribution of a partial copy or extract.ufrgs. United Kingdom or email ijackson@gnu. 1995. Questão 13. numerosos demais para serem listados. Kojima. The information in it is not warranted to be correct.br.I'll probably be happy to oblige ! Exceptions to these rules may be granted. CB3 0DS.ai. Ian Jackson asserts the right to be identified as the author of this work. 1996 by Ian Jackson ijackson@gnu.edu.mit.Agradecimentos também para as muitas pessoas que mandaram seus valiosos comentários e sugestões. Copyright e outras informações legais Este é o copyright do documento em que este FAQ se baseia: Note that this document is provided as is. not to restrict you as educators and learners.

pelo mundo.y.x. apenas reparos de bugs são efetuados.3. A versão 1. o esquema a seguir foi implementado: Versões r. e cada uma mantém os direitos de copyright sobre o código que ele. ou ela. ele é considerado um "produto de qualidade". Versões r. Contudo. foram feitas numerosas versões novas. tem trabalhado conjuntamente para criar o Linux. se desejarem. são versões estáveis. sem nenhuma característica nova. quer não.y. O Linux segue o modelo de desenvolvimento aberto e. a cada nova versão liberada ao público. Assim da versão 2. sob a direção de Linus Torvalds. com o atual desenvolvimento do kernel sendo considerado "estável". por isso. x é trocado para um número par. mas sob a GNU Public License (veja apêndice). o autor original. não limite a distribuição do Linux. podem ser instáveis e falhar. desde que.Copyrights do Linux e Esquema de numeração das versões do Linux O Linux não é um software de domínio público. e novos bugs vem sendo descobertos e ajustados no decorrer do tempo. e estarão sendo colocadas novas característica o tempo todo.0. para dizer às pessoas se elas estão obtendo uma versão estável ou não. Ainda existem bugs no sistema (como em qualquer sistema operacional). enquanto o y é incrementado. onde x é um número impar. As pessoas podem cobrar pela cópia do Linux. são versões beta destinadas apenas a desenvolvedores. quer sim.0 do Linux foi liberada no dia 14 de março de 1994 e. e o desenvolvimento continua com uma nova versão (x impar). 127 . com isso.C . houve apenas reparo de bugs. e. tenham escrito.0.2 para a 2.x. Muitas pessoas. De tempos em tempos. onde x é um número par. depois disso. o código fonte do Linux pode permanecer livremente disponível.

D - Contrato de licença (em Inglês)

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.

128

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:

129

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, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial

130

distributing or modifying the Program or works based on it. agreement or otherwise) that contradict the conditions of this License. if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you. modify. since you have not signed it. nothing else grants you permission to modify or distribute the Program or its derivative works. You may not copy. kernel. Therefore. conditions are imposed on you (whether by court order. However. For example. in accord with Subsection b above. You are not responsible for enforcing compliance by third parties to this License. 7. the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler. However. as a special exception. plus the scripts used to control compilation and installation of the executable. unless that component itself accompanies the executable. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. then offering equivalent access to copy the source code from the same place counts as distribution of the source code. 131 . then as a consequence you may not distribute the Program at all. These actions are prohibited by law if you do not accept this License. complete source code means all the source code for all modules it contains. as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues). then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. you indicate your acceptance of this License to do so. parties who have received copies. 4. Each time you redistribute the Program (or any work based on the Program). For an executable work. If distribution of executable or object code is made by offering access to copy from a designated place. from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 6.distribution and only if you received the program in object code or executable form with such an offer. Any attempt otherwise to copy. by modifying or distributing the Program (or any work based on the Program). 5. sublicense. sublicense or distribute the Program is void. they do not excuse you from the conditions of this License. If. You are not required to accept this License. and will automatically terminate your rights under this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations. or distribute the Program except as expressly provided under this License. even though third parties are not compelled to copy the source along with the object code. However. modify. distribute or modify the Program subject to these terms and conditions. plus any associated interface definition files. and all its terms and conditions for copying. and so on) of the operating system on which the executable runs.) The source code for a work means the preferred form of the work for making modifications to it. the recipient automatically receives a license from the original licensor to copy. or rights.

INCLUDING. which is implemented by public license practices. write to the Free Software Foundation. If the Program does not specify a version number of this License.If any portion of this section is held invalid or unenforceable under any particular circumstance. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. EITHER EXPRESSED OR IMPLIED. TO THE EXTENT PERMITTED BY APPLICABLE LAW. this License incorporates the limitation as if written in the body of this License. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system. If the Program specifies a version number of this License which applies to it and "any later version". 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. For software which is copyrighted by the Free Software Foundation. Each version is given a distinguishing version number. we sometimes make exceptions for this. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE. NO WARRANTY 11. the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. this section has the sole purpose of protecting the integrity of the free software distribution system. In such case. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries. write to the author to ask for permission. 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. so that distribution is permitted only in or among countries not thus excluded. THE 132 . THERE IS NO WARRANTY FOR THE PROGRAM. 8. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different. 10. 9. Such new versions will be similar in spirit to the present version. you may choose any version ever published by the Free Software Foundation. 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. BUT NOT LIMITED TO. 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. but may differ in detail to address new problems or concerns. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time.

ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SPECIAL. END OF TERMS AND CONDITIONS 133 . 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). SHOULD THE PROGRAM PROVE DEFECTIVE. OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER. BE LIABLE TO YOU FOR DAMAGES. YOU ASSUME THE COST OF ALL NECESSARY SERVICING. EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. REPAIR OR CORRECTION. 12. INCLUDING ANY GENERAL.

unicamp.Home Page do Linux no Brasil http://www.edu : /pub/linux (EUA .br : /pub/linux (Brasil : São Paulo) Slackware ftp.gatech.if. site oficial do Linux http://www.ac.sun.br/linux-br/ .cc.cdrom. http://sunsite.ibp.html .ufrgs.com.inf.org .tu-muenchen.versatec.é um grupo de anúncios moderado.linux.Home Page do Linux em português http://www. http://www.zel.ime.br .br : /pub/mirror/sunsite. http://www.Pergunta mais frequentes do Linux em inglês.Home page da Linux Organization.diversos arquivos da internet.de : /pub/os/linux (Alemanha) ftp.ufsc.edu.unc.usp.Projeto Lucas .com .cl.rwth-aachen.org/linux-br/index.za : /pub/linux (África do Sul) ftp. ftp.edu/mdw/linux.br : /pub/diversos/linux (Brasil : Santa Catarina) Slackware cesar.html .ac.br. http://www.html .informações do Linux em espanhol.uk/users/wj10/linux-faq .de : /pub/comp/os/linux (Alemanha) ftp. Submissões a este grupo devem ser mandadas para 134 .informatik.de : /pub/linux (Alemanha) ftp.fer.iis.Tudo para linux em português/inglês site da USP.suncite.edu.announce . você deve lê-lo se pretende usar Linux.com : /pub/linux (EUA) ftp.sudeste: Suranet) ftp.cs.fr : /pub/linux (França) ftp.infor.au : /pub/linux (Austrália) ftp.informatik.tu-bs.unc.br . ftp.linux.if.html .freebsd.de : /pub/Linux (Alemanha) ftp.es/LuCAS .dfv. lcmi.openline.contém diversos softwares para Linux.hr : /pub/Linux (Croácia) linux.utfsm.linux.au : /pub/Linux (Austrália: Queensland) ftp.os.com.Perguntas frequentemente colocadas na linux-br (FAQ) http://www.br : /pub3/linux (Brasil : São Paulo) Slackware ftp.ibr.rwth-aachen.Bibliografia Servidores www http://www.edu/mdw/welcome.br : /pub/Linux/ (Brasil : Paraná) Slackware Lista de discussões (usernet newsgroup) comp.Página do Projeto de Documentação do Linux.cc.Site com tudo sobre Linux em Inglês Servidores de FTP ftp.usp.monash.ufpr.inf.cl : /pub/Linux (Chile) ftp.br/~kojima/linux/faq-linux.com.unc.edu/Linux além de outros em /pub/mirror com a distribuicao Debian.usp.dstc.

com metcalf@lcs. comp. Martir (US) David H.com mike@sojurn.linux.org ijacksão@cus.development.os.uk Daniel.edu (US) bsa@kf8nh.edu (US) ian@ucsd.wariat.misc.firefle . Allbere Ian Jacksão (UK) Rik Faith (US) Iar Mc Coghrie Stephem Harris DaniOQuilan (US) Fred N.ornl.os.edu te tso@athema.os. vain Kemper Mike Sangree (US) Jhon A.os.linux-announce@news.networking comp.system comp.lns.linux.apps.linux. Os outros grupos na hierarquia comp.com (US) dhs@gowworm. Assine este grupo também.os.cam.org (US) waltje@infomagic.Quinlan@linux.linux.* também são recomendados algums problemas comuns não respondidos neste FAQ podem estar nos newsgroups.os.os.gov.ac.linux.edu imurdo ck@debian. Niemi drew@coorado .setup comp.os.Contém todos os FAQs.linux.uk faith@cs.advocacy comp. Esses grupos são : comp.mit.mew.linux.x comp.unc.pa.uk (US) niemid@clarck.ed.mit. Selber Chris Netcalf (US) Theodo re Tsó (US) Ian Murdo ck (US) Stephem Tweedie David C.linux.linux.hardware comp.os.os.org (UK) sct@dcs.development.co.ac.edu (UK) sweh@spudde .linux.us jmartin@csc. comp. Endereço eletrônico de diversos colaboradores da Linux Organização Drew Eckhard (US) Brondo n S. HOWTOs e outros documentos importantes.net 135 .answers .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->