Você está na página 1de 229

ndice

Prefcio ....................................................................................................................................................................... xi I. Iniciando................................................................................................................................................................ xvi 1. Introduo. ........................................................................................................................................................ 1 1.1. Sinpse. ................................................................................................................................................ 1 1.2. Bem-vindo ao FreeBSD! . .................................................................................................................... 1 1.3. Sobre o projeto FreeBSD. .................................................................................................................... 4 2. Instalando FreeBSD . ........................................................................................................................................ 9 2.1. Sinpse. ................................................................................................................................................ 9 2.2. Tarefas de pr-instalao . .................................................................................................................... 9 2.3. Iniciando a instalao . ....................................................................................................................... 15 2.4. Introduo ao Sysinstall. .................................................................................................................... 25 2.5. Alocando espao em disco. ................................................................................................................ 30 2.6. Escolhendo o que instalar . ................................................................................................................. 42 2.7. Escolhendo a mdia de instalao . ..................................................................................................... 45 2.8. Efetivando a instalao . ..................................................................................................................... 47 2.9. Ps-Instalao . ................................................................................................................................... 48 2.10. Hardware Suportado . ....................................................................................................................... 89 2.11. Resoluo de problemas . ................................................................................................................. 89 2.12. Guia avanado de instalao. ........................................................................................................... 91 2.13. Preparando sua prpria mdia de instalao . ....................................................................................93 3. UNIX Bsico . ................................................................................................................................................. 98 3.1. Sinpse. .............................................................................................................................................. 98 3.2. Consoles virtuais e terminais . ............................................................................................................ 98 3.3. Permisses . ...................................................................................................................................... 101 3.4. Estrutura de Diretrios. .................................................................................................................... 103 3.5. Organizao de disco . ...................................................................................................................... 105 3.6. Montando e desmontando sistemas de arquivos. ..............................................................................112 3.7. Processos. ......................................................................................................................................... 115 3.8. Daemons, sinais e controle de processos . ........................................................................................ 117 3.9. Shells. ............................................................................................................................................... 119 3.10. Editores de Texto . .......................................................................................................................... 121 3.11. Dispositivos e Ns de Dispositivos. ............................................................................................... 121 3.12. Formatos de binrios. ..................................................................................................................... 122 3.13. Para mais informaes. .................................................................................................................. 124 4. Instalando aplicativos: Pacotes e Ports. ........................................................................................................ 126 4.1. Sinpse. ............................................................................................................................................ 126 4.2. Viso geral do processo de instalao de software . ..........................................................................126 4.3. Encontrando seu aplicativo . ............................................................................................................. 128 4.4. Usando o sistema de pacotes . .......................................................................................................... 128 4.5. Usando a coleo de ports . .............................................................................................................. 130 4.6. Atividades ps-instalao . ............................................................................................................... 138 4.7. Lidando com ports quebrados. ......................................................................................................... 139 5. O X Window System. ................................................................................................................................... 140 5.1. Sinopse. ............................................................................................................................................ 140 5.2. Compreendendo o X . ....................................................................................................................... 140

iv

5.3. Instalando o XFree86.................................................................................................................... 142 5.4. Congurao do XFree86................................................................................................................. 143 5.5. Usando fontes no XFree86 ............................................................................................................... 146 5.6. O gerenciador de exibio do X ....................................................................................................... 150 5.7. Ambientes para a rea de trabalho.................................................................................................... 153 II. Administrao do Sistema................................................................................................................................... 159 6. Congurao e Ajuste ................................................................................................................................... 160 6.1. Sinpse.............................................................................................................................................. 160 6.2. Congurao Inicial.......................................................................................................................... 160 6.3. Congurao Principal ..................................................................................................................... 161 6.4. Congurao de Aplicaes ............................................................................................................. 162 6.5. Inicializando Servios....................................................................................................................... 163 6.6. Congurando o Utilitrio cron ........................................................................................................ 164 6.7. Usando rc no FreeBSD 5.X .............................................................................................................. 165 6.8. Congurando Interfaces de Rede...................................................................................................... 167 6.9. Servidores Virtuais............................................................................................................................ 171 6.10. Arquivos de Congurao .............................................................................................................. 171 6.11. Ajustando com o sysctl ................................................................................................................... 175 6.12. Ajustando Discos ............................................................................................................................ 176 6.13. Ajustando Limites do Kernel.......................................................................................................... 180 6.14. Adicionando Espao de Swap ........................................................................................................ 182 6.15. Gerenciamento de Energia e Recursos ........................................................................................... 184 7. O processo de inicializao do FreeBSD ...................................................................................................... 186 7.1. Sinpse.............................................................................................................................................. 186 7.2. Problema na inicializao ................................................................................................................. 186 7.3. A MBR, e os estgios de inicializao Um, Dois, e Trs ................................................................. 187 7.4. Interao do Kernel durante o boot................................................................................................... 191 7.5. Dicas de congurao de dispositivos .............................................................................................. 191 7.6. Init: Inicializao do controle de processos...................................................................................... 192 7.7. Sequncia do Shutdown.................................................................................................................... 193 8. Usurios e Administrao Bsica de contas.................................................................................................. 195 8.1. Sinpse.............................................................................................................................................. 195 8.2. Introduo......................................................................................................................................... 195 8.3. O super usurio ................................................................................................................................. 196 8.4. Contas do sistema ............................................................................................................................. 197 8.5. Contas de usurios ............................................................................................................................ 197 8.6. Modicando contas........................................................................................................................... 197 8.7. Limitando usurios ........................................................................................................................... 203 8.8. Personalizando usurios.................................................................................................................... 205 8.9. Grupos............................................................................................................................................... 205 9. Congurando o kernel do FreeBSD ........................................................................................................... 207 9.1. Sinpse.............................................................................................................................................. 207 9.2. Porque compilar um kernel customizado?..................................................................................... 207 9.3. Compilando e instalando um kernel customizado ......................................................................... 208 9.4. O arquivo de congurao................................................................................................................ 210 9.5. Criando Dispositivos de Controle..................................................................................................... 224 9.6. Se algo der errado ............................................................................................................................. 225

Captulo 1. Introduo
Restruturado, reorganizado e parcialmente rescrito por Jim Mock.

1.1. Sinpse
Muito obrigado por seu interesse no FreeBSD! O captulo a seguir cobre o Projeto FreeBSD em vrios aspectos, como sua histria, objetivos, modelo de desenvolvimento e outros. Aps a leitura deste captulo, voc saber:

Como FreeBSD se compara a outros sistemas operacionais de computadores. A histria do projeto FreeBSD. Os objetivos do Projeto FreeBSD. A base do modelo open-source de desenvolvimento do FreeBSD. E claro: de onde o nome FreeBSD surgiu.

1.2. Bem-vindo ao FreeBSD!


FreeBSD um sistema operacional baseado no 4.4BSD-Lite para computadores Intel ( x86 ), DEC Alpha, e Sun UltraSPARC. Verses para outras arquiteturas tambm esto a caminho. Voc tambm pode ler sobre a histria do FreeBSD, ou a verso corrente. Se estiver interessando em contribuir com o projeto (cdigo, equipamento, contas diversas), veja o artigo Contribuindo com o FreeBSD (../../articles/contributing/index.html).

1.2.1. O que o FreeBSD pode fazer?


FreeBSD tem muitas caractersticas valiosas. Algumas destas so:

Multitarefa preemptiva com ajustes dinmicos de prioridade que garantem compartilhamento claro e racional do computador entre as aplicaes e usurios, mesmo sob a mais intensa demanda. Caracteristicas multi-usurio que permite vrias pessoas utilizarem um sistema FreeBSD de forma simultnea, para uma variedade de coisas. Isto implica, por exemplo, que os perifricos do sistema como impressoras e dispositivos de ta sero apropriadamente compartilhados entre todos usurios no sistema ou na rede, e que limites individuais possam ser denidos para usurios e grupos de usurios, protegendo recursos crticos do sistema de sobrecarga. Forte rede TCP/IP com suporte a padres industriais como SLIP, PPP, NFS, DHCP e NIS. Isto signica que sua estao FreeBSD pode interagir fcilmente com outros sistemas da mesma forma que pode agir como um servidor corporativo, oferecendo funes vitais como NFS (acesso remoto arquivos) e servios de correio eletrnico, ou ento colocando sua empresa na Internet com servios de WWW, FTP, roteamento e rewall (segurana). Proteo de memria garante que aplicaes (ou usurios) no interferiro entre s. A falha de uma aplicao no afetar outras de forma alguma. FreeBSD um sistema operacional 32-bit (64-bit em plataforma Alpha e UltraSPARC) e foi projetado como tal desde seu princpio.

Captulo 1. Introduo

O sistema de interface grca, X Window System (X11R6) padro industrial prov uma interface grca com o usurio (GUI) ao custo de uma placa VGA comum e um monitor, e ainda vem com cdigo fonte completo. Compatibilidade binria com quaisquer programas compilados para Linux, SCO, SVR4, BSDI and NetBSD. Milhares de aplicaes prontas para imediata utilizao (ready-to-run) esto disponveis a partir da coleo de ports e packages do FreeBSD. Por qu procurar na rede quando possvel encontrar tudo bem aqui? Milhares de aplicaes adicionais e de fcil portabilidade esto disponveis na Internet. FreeBSD tem cdigo fonte compatvel com a maioria dos sistemas UNIX comerciais mais populares, e devido a isto a maioria das aplicaes requerem pouca, ou nenhuma modicao para compilar corretamente. Memria virtual paginada por demanda e uma concepo eciente ( Merged VM/buffer cache ) que satisfaz a necessidade de recursos de aplicaes com grande apetite para memria, ao mesmo tempo que mantm resposta interativa aos outros usurios. Suporte SMP para mquinas com mltiplas CPUs. Conjunto completo de ferramentas de desenvolvimento em linguagem C, C++, Fortran, e Perl. Muitas linguagens adicionais para pesquisa e desenvolvimento avanado tambm esto disponveis na coleo de ports e packages. Cdigo fonte disponvel para todo o sistema signica que voc tem o nvel mais completo de controle sobre seu ambiente. Por qu manter-se preso solues proprietrias e merc do vendedor quando se pode ter um sistema verdadeiramente aberto? Extensa documentao online. E muito mais!

FreeBSD baseado a verso 4.4BSD-Lite do Grupo de Pesquisa em Sistemas Computacionais (CSRG) da Universidade da Califrnia, Berkeley, e carrega consigo a distinta tradio do desenvolvimento de sistemas BSD. Em adio ao aprimorado trabalho realizado pelo CSRG, o projeto FreeBSD acrescentou ainda muitos milhares de horas no aperfeioamento do sistema para mxima performance e conabilidade em situaes de demanda da vida real. Enquanto muitos dos gigantes comerciais se esforam no campo dos sistemas operacionais para PC am de oferecer tais funcionalidades com performance e conabilidade, o FreeBSD os oferece agora! As aplicaes para as quais o FreeBSD pode ser utilizado s esto limitadas por sua prpria imaginao. Do desenvolvimento de software automao indstrial, controle de inventrio correo remota da orientao de antenas de satlite; se pode ser feito com um produto UNIX comercial, muito provvel que possa ser feito com FreeBSD tambm! FreeBSD tambm se benecia de forma signicante de literalmente milhares de aplicaes de alta qualidade desenvolvidas por centros de pesquisa e universidades ao redor do mundo, usualmente disponveis baixo ou nenhum custo. Aplicaes comerciais tambm esto disponveis e surgindo em grande nmero a cada dia. Pelo fato do cdigo fonte para o FreeBSD estar geralmente disponvel, o sistema pode tambm ser customizado um grau incrvel para aplicaes ou projetos especiais, e de formas geralmente no viveis com sistemas operacionais dos principais vendedores comerciais. Aqui est apenas uma amostra das aplicaes onde o FreeBSD est sendo utilizado:

Servios Internet: A infra-estrutura robusta de rede TCP/IP criada no FreeBSD torna-o plataforma ideal para uma variedade de servios Internet tais como:

servidores FTP servidores Web ( padro ou seguro [SSL] ) Servidores de interligao de redes ( gateway ), rewall e NAT ( Substituio de IPs).

Captulo 1. Introduo

Servidores de Correio Eletrnico Grupo de notcias USENET ou sistemas de BBS E mais...

Com FreeBSD, voc pode fcilmente comear com um ambiente pequeno com um PC 386, de baixo custo, e atualizar todo o sistema para um Xeon quadri-processado com sistema de armazenamento RAID, de acordo com o crescimento de sua empresa.

Educao: Voc estudante de cincias computacionais ou algum campo relacionado engenharia ? No h melhor maneira para aprender sobre sistema operacionais, arquitetura de computadores ou redes do que colocando a mo na massa, a partir da base de experincia que o FreeBSD pode oferecer. Uma srie de aplicaes CAD grauitamente disponveis, pacotes de projeto e desenho grco e de matemtica tornam o sistema altamente til tambm para aqueles cujo interesse primrio em um computador realizar outras tarefas de forma prtica ! Pesquisa: Com cdigo fonte do sistema inteiro disponvel, o FreeBSD uma plataforma excelente para pesquisa em sistema operacionais bem como outros vrios ramos de cincias computacionais. A natureza livre do FreeBSD tambm possibilita que grupos remotos colaborem mtuamente entre s com idias ou desenvolvimento compartilhado sem a necessidade de se preocupar com acordos especiais de licenciamento ou limitaes do que pode ser discutido em um frum aberto. Rede: Precisa de um novo roteador ? Um novo servidor de nomes (DNS) ? Um rewall para manter outras pessoas fora da sua rede interna ? O FreeBSD pode fcilmente tornar aquele PC 386 ou 486 parado em um canto qualquer, em um avanado roteador com sosticada capacidade de ltragem de pacotes. Estao de trabalho grca: FreeBSD uma boa escolha para soluo de um terminal grco de baixo custo, seja utilizando o servidor XFree86 (disponvel livremente) ou um dos excelentes servidores comerciais oferecidos pela Xi Graphics (http://www.xig.com). Diferente de um terminal X, o FreeBSD possibilita que vrias aplicaes possam ser executadas localmente, se desejado, desta forma aliviando a carga de um servidor central. FreeBSD pode at mesmo ser inicializado sem depender da existncia de uma unidade de disco local (diskless), tornando estaes de trabalho ainda mais baratas e mais fceis de administrar. Desenvolvimento de Software: Um sistema FreeBSD bsico vem com um conjunto completo de ferramentas de desenvolvimento, incluindo o renomado compilador e depurador C/C++ GNU.

FreeBSD est disponvel tanto em cdigo fonte quando de forma binria em CDROM, DVD, e por meio de FTP annimo. Rera-se ao Apndice A para mais informaes sobre como obter o FreeBSD.

1.2.2. Quem utiliza FreeBSD?


FreeBSD utilizado para servir alguns dos maiores stios da Internet, incluindo:

Yahoo! (http://www.yahoo.com/) Apache (http://www.apache.org/) Blue Mountain Arts (http://www.bluemountain.com/) Pair Networks (http://www.pair.com/) Sony do Japo (http://www.sony.co.jp/) Netcraft (http://www.netcraft.com/) Weathernews (http://www.wni.com/)

Captulo 1. Introduo

Supervalu (http://www.supervalu.com/) TELEHOUSE America (http://www.telehouse.com/) Anti-Vrus Sophos (http://www.sophos.com/) JMA Wired (http://www.jmawired.com/)

e muito mais.

1.3. Sobre o projeto FreeBSD


A seo a seguir oferece algumas informaes bsicas sobre projeto, incluindo uma breve histria, seus objetivos e seu modelo de desenvolvimento.

1.3.1. Uma Breve Histria do FreeBSD


Contribuio de Jordan Hubbard. O projeto FreeBSD teve seu nascimento no incio de 1993, em parte como uma consequncia do conjunto de manuteno no-ocial do 386BSD (Unofcial 386BSD Patchkit) pelos seus 3 ltimos coordenadores : Nate Williams, Rod Grimes e eu. Nosso objetivo original era produzir um snapshot intermedirio do 386BSD, de forma a poder corrigir uma srie de problemas com este sistema, que o mecanismo de manuteno no era capaz de resolver. Alguns se lembraro do nome nome inicial do projeto que era 386BSD 0.5 ou 386BSD Interim em referncia a este fato. 386BSD era o sistema operacional de Bill Jolitz, que j estava naquele instante sofrendo quase um ano de negligncia. Como o mecanismo de manuteno patchkit se tornava mais e mais desconfortvel a cada dia que passava, fomos unnimes em decidir que algo tinha que ser feito e decidimos ajudar Bill oferecendo a ele este snapshot interim. Tais planos foram bruscamente interrompidos quando Bill Jollitz repentinamento decidiu retirar sua sano ao projeto sem nenhuma indicao clara do que deveria ser feito. No levou muito para decidirmos que o objetivo continuava a valer a pena, mesmo sem a ajuda de Bill, e ento adotamos o nome FreeBSD, sugerido por David Greenman. Nossos objetivos iniciais foram denidos depois de consultar os usurios recentes do sistema e, uma vez estando claro que o projeto estava na estrada para, talvez, tornar-se uma realidade, entrei em contato com a Walnut Creek CDROM, com o olho aberto possibilidade de aperfeioar os canais de distribuio do FreeBSD para as pessoas que no tinham acesso Internet. Walnut Creek CDROM no apenas aprovou a idia de distribuir o FreeBSD em CD, mas tambm foi mais longe, ao ponto de oferecer ao projeto uma mquina para trabalho dedicado e uma conexo rpida com a Internet. Sem esta conana, sem precedentes, da Walnut Creek CDROM no que era, naquele momento, um projeto completamente desconhecido, muito provvel que o FreeBSD no tivesse chegado to longe e to rpido ao ponto em que est hoje. A primeira distribuio em CDROM (e na Internet em geral) foi o FreeBSD 1.0, lanado em Dezembro de 1993. Era baseado na ta 4.3BSD-Lite (Net/2) da Universidade da Califrnia, Berkeley (U.C. Berkeley), com muitos componentes originados do 386BSD e da Fundao do Softare Livre ( Free Software Foundation). Foi um sucesso razovelmente grande para uma primeira apario, e ns continuamos o ciclo com uma verso altamente bem sucedida, o FreeBSD 1.1 release de Maio de 1994. Por volta desta poca, algumas nvens de tempestade inesperadas comearam a se formar no horizonte, conforme a Novell e U.C. Berkeley acertaram ao longo do processo penal entre ambas, a respeito da situao legal da ta contendo o Net/2 de Berkeley. Uma das condies do acordo eram as concesses da U.C. Berkeley que implicava

Captulo 1. Introduo que grandes trechos do Net/2 fossem cdigos impedidos e de propriedade da Novell, que havia por sua vez adquirido-os da AT&T algum tempo antes. O que Berkeley recebeu em retribuio foi a beno da Novell para o lanamento da verso 4.4BSD-Lite, que quando acontecesse, seria declarado como impedido e todos os usurios do Net/2 seriam fortemente encorajados a mudar de sistema para a nova verso. Isso incluiu o FreeBSD, ao projeto foi dado o prazo nal de Julho de 1994 para parar de distribuir seu produto baseado na verso Net/2. Sob tais termos de acordo, o projeto poderia lanar uma ltima verso antes do prazo em questo, o que originou o FreeBSD 1.1.5.1. O FreeBSD deniu ento a rdua tarefa de literalmente se reinventar partir de um sistema completamente novo e consideravelmente incompleto, o 4.4BSD-Lite. As verses Lite continham grandes blocos de cdigo a menos, removidos pelo CSRG de Berkeley (devido a vrias decises legais), cdigos necessrios para a construo de um sistema inicializvel e que podia ser utilizado em produo e o fato , que a converso do 4.4 para a plataforma Intel era altamente incompleta. O projeto levou at Novembro de 1994 para concluir esta transio, quando lanou a verso 2.0 do FreeBSD na rede mundial e em CDROM ( em Dezembro ). Apesar de um pouco bruta naquele instante, a verso teve um sucesso signicante, e foi seguida pelo FreeBSD 2.0.5, mais robusto e de mais fcil instalao, em Junho de 1995. Lanamos o FreeBSD 2.1.5 em Agosto de 1996, que foi bastante popular entre os provedores de internet (ISP) e as empresas a ponto de justicar a viabilidade de outra verso no ramo 2.1-STABLE. Esta verso foi o FreeBSD 2.1.7.1, lanado em Fevereiro de 1997, que marcou o trmino do desenvolvimento mainstream do 2.1-STABLE. Agora em manuteno, apenas aperfeioamentos de segurana e outras correes crticas so realizadas neste ramo (RELENG_2_1_0). O ramo 2.2 do FreeBSD foi iniciado a partir da srie parcial de desenvolvimento (-CURRENT) em Novembro de 1996, foi intitulado ramo RELENG_2_2, e a primeira verso completa (2.2.1) foi lanada em Abril de 1997. Verses posteriores ao longo do ramo 2.2 foram criadas no vero e outono de 1998, sendo a ltima delas (2.2.8) lanada em Novembro de 1998, marcando o incio do m do ramo 2.2. A rvore foi ramicada mais uma vez, em 20 de Janeiro de 1999, iniciando os ramos 4.0-CURRENT e 3.X-STABLE. A partir da 3.X-STBALE, a verso 3.1 foi lanada, em 15 de Fevereiro de 1999; a verso 3.2 foi lanada em 15 de Maio de 1999; a 3.3 em 16 de Setembro de 1999; a verso 3.4 em 20 de Dezembro de 1999, e a 3.5 em 24 de Junho de 2000, que foi complementada um pouco depois com uma pequena atualizao de segurana, o 3.5.1, que incorporava algumas correes de segurana de ltima hora para o Kerberos. Esta se tornou a verso nal para o ramo 3.X. Outro ramo foi iniciado em 13 de Maro de 2000, de forma emergencial na metade do ramo 4.X-STABLE, considerado agora o ramo -stable corrente. Posteriormente houveram vrias verses desta srie: 4.0-RELEASE foi apresentado ao mundo em Maro de 2000, e a verso mais recente, 5.4-RELEASE surgiu em May 2005. Existiro verses adicionais ao longo do ramo 4.X-STABLE (RELENG_4) ainda em 2003. A verso 5.0-RELEASE, muito aguardada, foi anunciada em 19 de Janeiro de 2003. O resultado culminante de aproximadamente trs anos de trabalho, esta verso colocou o FreeBSD no caminho do suporte avanado a multiprocessamento simtrico, suporte avanado a aplicaes multithread e apresentou ao pblico suporte s plataformas UltraSPARC e ia64. Esta verso foi seguida pela 5.1 em Junho de 2003. Alm de um nmero muito grande de novas funcionalidades, as verses 5.X do FreeBSD contem ainda uma srie de trechos em desenvolvimento em todas as arquiteturas de sistemas relacionadas. Por tal razo, as verses 5.X so consideradas verses de Nova Tecnologia, enquanto a srie 4.X atua como verses de Produo. No momento apropriado, a srie 5.X ser declarada estvel e o trabalho mais recente ser destinado ao prximo ramo de desenvolvimento, o 6.0-CURRENT. Por hora, projetos de desenvolvimento que requerem mais tempo continuam sendo realizados no ramo 5.X-CURRENT, e verses SNAPshot da srie em CDROM (e lgico, na rede) esto contnuamento sendo disponibilizados partir do servidor de snapshots (ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/) e apresentado como o trabalho em progresso.

Captulo 1. Introduo

1.3.2. Objetivos do Projeto FreeBSD


Contribuio de Jordan Hubbard. Os objetivos do Projeto FreeBSD so de oferecer software que pode ser utilizado para qualquer propsito, sem restries impeditivas. Muitos de ns investimos signicantemente no cdigo (e no projeto) e certamente no seria uma surpresa se de vez em quando recebessemos uma pequena compensao nanceira, mas denitivamente no insistimos nisso. Acreditamos que nossa primeira e principal misso oferecer cdigo para qualquer usurio, e para qualquer propsito, de forma que o cdigo em questo chegue o mais longe que puder e que traga os maiores benefcios que forem possveis. Este , acreditamos, um dos principais fundamentos do projeto e do Software Livre, e um dos quais ns apoiamos de forma entusiasmada. O cdigo em nossa rvore fonte sob a Licena Pblica Geral GNU (GPL) ou Licena Pblica Menos Geral GNU (LGPL) contm consideravelmente mais restries impeditivas, contudo, felizmente mais pelo lado de forar o acesso irrestrito ao cdigo do que o oposto tradicional. Devido s complexidades adicionais que podem envolver o uso comercial de software GPL, ns temos preferncia pelos programas lanados sob a licena de direito autoral BSD sempre que possvel, por ser uma licena consideravelmente mais exvel.

1.3.3. O Modelo de Desenvolvimento FreeBSD


Contribuio de Satoshi Asami. O desenvolvimento do FreeBSD um processo muito aberto e exvel, literalmente composto pela contribuio de centenas de pessoas ao redor do mundo, como pode ser visto em nossa lista de contribuidores (../../articles/contributors/article.html). A infraestrutura de desenvolvimento do FreeBSD permite que estas centenas de desenvolvedores colaborem mutuamente pela Internet. Estamos constantemente procura de novos desenvolvedores e novas idias, e aqueles dispostos a se tornarem mais envolvidos com o projeto precisam apenas nos contatar atravs da lista lista de discusses tcnicas FreeBSD (hackers) (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers). A lista lista de discusso dos anncios FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-announce) tambm est disponvel aos que querem car mais informados sobre as principais reas de trabalho do projeto FreeBSD. Informaes teis de se conhecer sobre o projeto FreeBSD e seu processo de desenvolvimento, seja trabalhando de forma independente ou em cooperao mtua: O repositrio CVS A rvore de fontes central do FreeBSD mantida pelo CVS (http://www.cvshome.org/) (Sistema de Verses Concorrentes), uma ferramenta de controle de cdigo fonte disponvel gratuitamente, e que vem junto com o FreeBSD. O repositrio CVS (http://www.FreeBSD.org/cgi/cvsweb.cgi) primrio est localizado em Santa Clara, Califrnia, nos EUA, onde ele replicado em vrias mquinas espelho espalhadas ao redor do mundo. A rvore CVS, que contm os ramos -CURRENT e -STABLE, podem ser completamente replicadas, de forma extremamente fcil, sua prpria mquina local. Rera-se seo Sincronizando seu cdigo fonte para obter mais informaes sobre isso. A lista de committers Os committers so as pessoas que tem acesso de escrita na rvore CVS, e tem autorizao para realizar modicaes diretas na rvore fonte do FreeBSD (o termo committer se origina no comando commit do cvs(1), que utilizado para incluir novas mudanas no repositrio CVS). Ou seja, os committers so os desenvolvedores do FreeBSD. A melhor maneira de submeter modicaes/contribuies para reviso dos

Captulo 1. Introduo committers utilizar o comando send-pr(1). Se algo estiver fora de conformidades com o sistema de send-pr(1), pode ser interessante entrar em contato com os desenvolvedores enviando uma mensagem de correio para a lista lista de discusso de FreeBSD committers. O Grupo Central (Core Team) do FreeBSD O FreeBSD core team seria equivalente ao corpo de diretores, se o Projeto FreeBSD fosse uma empresa. A tarefa primria do core team garantir que o projeto, de forma geral, esteja em boa forma e caminhando nas direes corretas, bem como o recrutamento de novos membros para o core team conforme outros vo se desligando do cargo. O core team atual foi eleito a partir de um grupo de desenvolvedores que se candidataram ao cargo, em Junho de 2002. Eleies para o core team acontecem a cada 2 anos. Alguns membros do core team tem ainda reas especcas de responsabilidade no projeto, o que signica que eles so responsveis por garantir que um trecho bastante relevante e grande do sistema funcionem como se espera. Para a lista completa dos desenvolvedores do FreeBSD e suas respectivas reas de responsabilidade, por gentileza, consulte a Lista de Contribuidores. (../../articles/contributors/article.html)
Nota: A maioria dos membros do core team so voluntrios no desenvolvimento do FreeBSD, e no se beneciam nanceiramente do projeto, de forma que desenvolvimento no pode ser confundido com suporte garantido por parte destes. A analogia com o corpo de diretores feita acima no muito precisa, melhor seria dizermos que estas so as pessoas que desistiram de suas vidas em favor do FreeBSD.

Contribuidores externos Por ltimo, mas denitivamente no em ltimo, o maior grupo de desenvolvedores so os prprios usurios do sistema, que oferecem retorno e correes de problemas ao projeto de maneira consideravelmente constante. A forma principal de se manter em sintonia com os trechos de desenvolvimento menos centralizados no FreeBSD, se inscrever na lista lista de discusses tcnicas FreeBSD (hackers) (http://lists.FreeBSD.org/mailman/listinfo/freebsd-hackers) onde tais assuntos so discutidos. Veja Apndice C para obter mais informaes sobre as inmeras listas de discusso do projeto FreeBSD. A Lista de contribuidores do FreeBSD (../../articles/contributors/article.html) grande e est em constante crescimento, ento por que voc no entra nessa lista hoje, contribuindo com alguma coisa para o projeto FreeBSD? Oferecer cdigo no a nica maneira de contribuir com o projeto; para uma lista mais completa do que precisa ser feito, por gentileza, rera-se ao stio WWW do Projeto FreeBSD (../../../../index.html). Em resumo, nosso modelo de desenvolvimento um conjunto de circulos concntricos. O modelo centralizado projetado com o objetivo de oferecer convenincia aos usurios do FreeBSD, que so agraciados com um modelo simples para acompanhar uma base centralizada de cdigos, e no para afastar contribuidores em potencial ! Nosso desejo apresentar um sistema operacional estvel com um amplo e coerente conjunto de programas aplicativos que os usurios podem instalar e utilizar de forma fcil. O modelo atual funciona muito bem na realizao deste objetivo. Tudo que pedimos aos que desejam se juntar a ns como desenvolvedores FreeBSD, um pouco da mesma dedicao que os membros atuais tem, pra prover o contnuo sucesso do projeto!

Captulo 1. Introduo

1.3.4. A Verso Atual do FreeBSD


FreeBSD um sistema cujos fontes foram inteiramente baseados no 4.4BSD-Lite, disponvel livremente para computadores baseados em Intel i386, i486, Pentium, Pentium Pro, Celeron, Pentium II, Pentium III, Pentium 4 (ou compatavel), Xeon, DEC Alpha e Sun UltraSPARC. O sistema baseado primariamente em programas do CSRG (Grupo de Pesquisa em Sistemas Computacionais) da U.C. Berkeley, com algumas melhorias incorporadas do NetBSD, OpenBSD, 386BSD e da Fundao do Software Livre (FSF). Desde o lanamento do FreeBSD 2.0 no nal de 1994, a performance, as funcionalidades, e a estabilidade do FreeBSD foram dramaticamente incrementados. A maior modicao foi a melhoria do sistema de memria virtual com a incluso do merged VM/le buffer cache que no apenas melhora a performance, mas tambm reduz pedaos perdidos de memria no FreeBSD, tornando a congurao mnima de 5 MB um requerimento mais aceitvel. Outras melhorias incluem suporte completo cliente e servidor NIS, suporte transaction TCP, discagem PPP por demanda, suporte DHCP integrado, um subsistema SCSI aperfeioado, suporte ISDN, suporte ATM, FDDI, adaptadores de rede Fast Ethernet e Gigabit Ethernet (1000 Mbit), suporte aperfeioado s adaptadoras Adaptec mais recentes, e muitos milhares de correes de problemas. Alm da distribuio base, o FreeBSD oferece ainda uma coleo de aplicaes ( ports ) composta de milhares de programas populares. No momento da preparao deste documento, haviam mais de 13,300 ports ! A lista de ports varia de servidores http (WWW) jogos, linguagens de programao, editores de texto e praticamente tudo o mais que se encaixe entre eles. A coleo de ports inteira requer aproximadamente 440 MB de espao para armazenamento, sendo todos ports identicados como deltas seus fontes originais. Isto torna o processo de atualizao dos ports considervelmente mais fcil para ns, e reduz muito a demanda por espao em disco, especialmente quando comparado verso 1.0 da Coleo de Ports. Para compilar uma aplicao basta entrar no diretrio do port que voc deseja instalar, digitar make install e deixar o sistema cuidar do resto. A distribuio original para cada aplicao obtida dinmicamente do CDROM ou de um stio FTP, portanto tudo que voc precisa ter espao em disco o bastante para compilar os programas desejados. Quase todos os programas tambm esto disponveis como pacotes pr-compilados, que podem ser instalados com um simples comando ( pkg_add) por aqueles que preferem no compilar suas prprias aplicaes partir dos fontes. Mais informaes sobre pacotes e sobre ports podem ser encontradas no Captulo 4. Uma srie de documentos adicionais que eventualmente voc pode jugar muito teis durante o processo de instalao e utilizao do FreeBSD podem ser encontrados tambm no diretrio /usr/share/doc em qualquer estao FreeBSD recente. Voc pode visualizar os manuais instalados localmente com qualquer navegador HTML, utilizando as seguintes URLs: O FreeBSD Handbook
/usr/share/doc/handbook/index.html

As FreeBSD FAQ
/usr/share/doc/faq/index.html

Voc ainda pode acessar as cpias mestre (e frequentemente mais atualizadas) em http://www.FreeBSD.org/ (../../../../index.html).

Captulo 2. Instalando FreeBSD


Restruturado, reorganizado e parcialmente rescrito por Jim Mock. O passeio atravs do sysinstall, imagens da tela, e cpia geral por Randy Pratt.

2.1. Sinpse
FreeBSD composto de um programa de fcil utilizao, em modo texto, chamado de sysinstall. Este o programa padro de instalao para o FreeBSD, apesar dos distribuidores terem liberdade para oferecer seu prprio programa de instalao, se desejado. Este captulo descreve a utilizao do sysinstall para realizar a instalao do FreeBSD. Aps a leitura deste captulo, voc saber:

Como criar os discos de instalao do FreeBSD. Como FreeBSD se refere e faz as subdivises dos discos rgidos. Como iniciar o sysinstall. As perguntas que o sysinstall far durante sua utilizao, o que cada uma signica, e como respond-las.

Antes de ler este captulo, voc aconselhado:

Ler a lista de hardware suportado que acompanha a verso do FreeBSD que voc est instalando, e vericar se os seus equipamentos so suportados.
Nota: Em geral, estas instrues de instalao so escritas para computadores de arquitetura i386 (compatveis PC ). Onde necessrio, sero listadas instrues especcas para outras plataformas (por exemplo, Alpha). Embora este guia seja mantido o mais atualizado o possvel, podero ser encontradas algumas pequenas diferenas entre a aplicao instaladora e o que apresentado neste documento. aconselhvel que este captulo seja utilizado como um guia geral ao invs de um rigoroso passo a passo de instalao.

2.2. Tarefas de pr-instalao


2.2.1. Inventrio de seu computador
Antes de instalar o FreeBSD, aconselhvel tentar levantar todas as informaes sobre os componentes presentes em seu computador. As rotinas de instalao do FreeBSD mostraro estes componentes (discos rgidos, placas de rede, dispositivos de CDROM, e vrios outros) com seus respectivos nmeros de modelo e fabricao. O FreeBSD tentar tambm determinar a congurao correta para estes dispositivos, o que inclui informaes sobre IRQ e utilizao de endereos de E/S. Devido aos caprichos de alguns equipamentos para PC, esse processo no sempre realizado com sucesso, e pode ser necessrio corrigir as denies do FreeBSD na sua congurao. Caso tenha um outro sistema operacional instalado, como Windows ou Linux, uma boa idia utilizar os recursos oferecidos por estes sistemas para saber como seu equipamento j est congurado. Caso no esteja certo das conguraes de alguma placa de expanso, pode ser possvel encontra-las impressas na prpria placa. Valores

Captulo 2. Instalando FreeBSD populares para endereos de interrupo (IRQ) so 3, 5 e 7, e o endereamento de E/S normalmente denido em nmeros hexadecimais, como 0x330. Recomendamos que voc imprima ou escreva estas informaes antes de iniciar o processo de instalao do FreeBSD. A utilizao de uma tabela, como abaixo, pode ajudar: Tabela 2-1. Modelo de Inventrio de Dispositivos Nome do dispositivo Primeiro disco rgido CDROM Segundo disco rgido Primeira controladora IDE Placa de rede Modem ... IRQ N/A N/A N/A 14 N/A N/A Endereo(s) Notas de E/S N/A N/A N/A 0x1f0 N/A N/A Intel 10/100 3Com 56K faxmodem, na COM1 Disco de 40 GB, marca Seagate, primeira IDE primria Primeira IDE secundria Disco de 20 GB, marca IBM, segunda IDE primria

2.2.2. Faa cpias de segurana de seus dados


Caso a estao onde voc instalar o FreeBSD contenha dados relevantes, garanta que voc tenha cpias de segurana (backup) destes dados, e que as cpias de segurana tenham sido testadas antes de iniciar a instalao do FreeBSD. A rotina de instalao do FreeBSD pedir conrmao antes de escrever quaisquer dados no seu disco, mas uma vez iniciado, este processo no pode ser desfeito.

2.2.3. Decida onde instalar o FreeBSD


Se voc deseja que o FreeBSD utilize todo o seu disco rgido, ento no h com o que se preocupar neste momento voc pode pular esta seo. Contudo, se voc precisa que o FreeBSD co-exista com outro sistema operacional, ento necessrio uma certa compreenso sobre como os dados so dispostos em disco, e como isso pode afetar voc. 2.2.3.1. Disposies de disco no i386 Um disco de PC pode ser dividido em partes separadas. Tais partes so chamadas de parties. A forma como o PC projetado possibilita que apenas quatro parties sejam suportadas por disco. Estas parties so chamadas de parties primrias. Como paliativo para esta limitao foi criado um novo tipo de parties, chamado de parties extendidas. Um disco pode conter apenas uma partio extendida. Parties especiais, chamadas de parties lgicas podem ser criadas dentro destas parties extendidas. Cada partio possui um identicador nico, chamado de partition ID, que um nmero utilizado para identicar o tipo de dado naquela partio. Parties FreeBSD tem o ID de identicao nmero 165 . De forma geral, cada sistema operacional utilizado identicar as parties de forma particular. Por exemplo, DOS e seus descendentes como Windows atribuem a cada partio primria e lgica uma letra de dispositivo, comeando a partir do C:.

10

Captulo 2. Instalando FreeBSD FreeBSD deve obrigatriamente ser instalado em uma partio primria. FreeBSD pode manter todos seus dados, incluindo qualquer arquivo que voc crie nesta nica partio. Contudo, se voc possuir mltiplos discos, voc pode criar uma partio FreeBSD em cada um deles, ou apenas em alguns. Quando instalar o FreeBSD, ao menos uma partio deve estar disponvel. Pode ser uma partio vazia, que voc preparou, ou ento pode ser uma partio j existente contendo dados que no so mais necessrios. Caso esteja utilizando todas as parties primrias de todos seus discos, ento ser necessrio liberar uma delas para o FreeBSD, utilizando as ferramentas pelo sistema operacional que voc utiliza (por exemplo, fdisk no DOS ou Windows). Se voc tem uma partio sobressalente, pode utiliza-la. Contudo, pode ser necessrio modicar primeiro uma ou mais das suas parties atuais. A instalao mnima do FreeBSD ocupa apenas 100 MB de espao em disco. Contudo, esta uma instalao extremamente mnima, no deixando quase espao algum para seus prprios arquivos. Um valor mnimo mais realista 250 MB sem ambiente grco, ou 350 MB (ou at mais) se deseja o ambiente grco. Se voc planeja instalar muitas aplicaes de terceiros tambm, ento ser necessrio mais espao. Voc pode utilizar alguma ferramenta comercial como PartitionMagic para redimensionar suas parties de forma a criar algum espao para o FreeBSD. O diretrio tools no CDROM contm dois programas gratutos que podem realizar esta tarefa, chamados de FIPS e PResizer. FIPS, PResizer, e PartitionMagic pode redimensionar parties FAT16 e FAT32 usadas do MS-DOS ao Windows ME. PartitionMagic a nica ferramenta capaz de redimensionar sistema de arquivos NTFS. Documentaes sobre ambas aplicaes esto disponveis no mesmo diretrio.
Ateno: O uso incorreto destas ferramentas podem apagar os dados em seu disco. Garanta que existam cpias de seguranas recentes e funcionais antes de utiliza-las.

Exemplo 2-1. Utilizando como est, uma partio j existente Suponha que voc tenha um computador com um nico disco rgido de 4 GB que j tem uma verso do Windows instalada, e voc separou separou o disco em dois dispositivos, o dispositivo C: e o D: cada qual com 2 GB de tamanho. Voc dispe de 1GB de dados no C: e 0.5 GB de dados no D:. Isto signica que seu disco tem duas parties, uma por letra de dispositivo. Voc pode copiar todos os dados atuais da D: na C: o que liberar a segunda partio, que estar pronta para o FreeBSD.

Exemplo 2-2. Redimensionando uma partio existente Suponha que voc tem um computador com um nico disco rgido de 4 GB que j tem uma verso do Windows instalada. Ao instalar o Windows voc criou uma nica partio, atribuindo ao seu dispositivo C: o tamanho de 4 G. Atualmente tem 1.5GB de espao em uso e voc deseja alocar 2 GB de espao para o FreeBSD. Para instalar o FreeBSD ser preciso: 1. Fazer cpia de segurana dos dados de seu Windows e reinstalar o Windows denindo uma partio de 2 GB de espao no momento da instalao,

11

Captulo 2. Instalando FreeBSD 2. Utilizar uma das ferramentas como o PartitionMagic , descrito anteriormente para redimensionar sua partio Windows.

2.2.3.2. Disposies de Disco no Alpha Ser necessrio um disco dedicado para o FreeBSD em um Alpha. No possvel compartilhar o disco com outro sistema operacional hoje. Dependendo da mquina Alpha especca que voc tem em mos, o disco pode ser SCSI ou IDE, com tanto que sua mquina seja capaz de inicializar por meio deste. Seguindo as convenes do manual da Digital / Compaq todas as entradas referentes ao SRM sero apresentadas em letras maisculas. O SRM no faz distino entre maisculas e minsculas. Para encontrar os nomes e tipos de discos disponveis na mquina, use o comando SHOW DEVICE na tela do console SRM:
>>>SHOW DEVICE dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W dva0.0.0.0.1 DVA0 ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 pqa0.0.0.4.0 PQA0 PCI EIDE pqb0.0.1.4.0 PQB0 PCI EIDE

0015

Este exemplo de uma Digital Personal Workstation modelo 433au e apresenta trs discos ligados na estao. O primeiro um CDROM chamado de DKA0 e os outros dois so discos rgidos, e so chamados DKC0 e DKC100 respectivamente. Discos cujos nomes esto dispostos no formato DKx so discos SCSI. Por exemplo, DKA100 se refere ao disco SCSI com ID SCSI nmero 1 no primeiro barramento SCSI (A), enquanto DKC300 se refere a um disco SCSI com ID SCSI nmero 3 no terceiro barramento SCSI (C). O dispositivo PKx se refere controladora SCSI. Como foi visto na sada do comando SHOW DEVICE, dispositivos de CDROM SCSI so tratados como disco rgido SCSI qualquer. Discos IDE tem nomes similares a DQx, enquanto PQx a controladora IDE associada.

2.2.4. Obtenha detalhes de congurao da interface de rede


Caso voc pretenda se conectar em rede como parte do processo de instalao de seu FreeBSD (por exemplo, caso a realizao seja feita a partir de um stio FTP ou servidor NFS), ento necessrio conhecer a congurao de sua rede. Voc ser indagado por estas informaes durante a instalao do FreeBSD, de forma que o sistema possa se conectar rede e concluir a instalao. 2.2.4.1. Conectando-se a uma rede Ethernet ou um modem DSL ou cabo. Se voc se conecta uma rede Ethernet, ou tem uma conexo Internet com uma placa de rede via cabo ou DSL, ento ser necessrio saber as seguintes informaes:

12

Captulo 2. Instalando FreeBSD 1. Endereo IP 2. Endereo IP do gateway padro 3. Nome da estao (hostname) 4. Endereo IP do servidor DNS 5. Mscara de subrede Caso no saiba tais informaes, pergunte ao seu administrador de sistemas ou provedor de servios. Eles podem dizer que tais informaes so atribudas automaticamente, usando DHCP. Se for o caso, anote isto.

2.2.4.2. Conectando-se por meio de um modem Se voc disca para um provedor de servios Internet ( ISP) utilizando um modem convencional, ainda possvel instalar o FreeBSD na internet, contudo isso demandar algum tempo a mais. Ser necessrio saber: 1. O nmero de telefone do seu ISP 2. A porta COM onde seu modem est ligado 3. Usurio e senha da conta no seu provedor

2.2.5. Verique a Errata do FreeBSD


Mesmo considerando que o projeto FreeBSD se esmera para garantir que cada verso do FreeBSD seja to estvel quanto for possvel, falhas ocasionalmente podem abalar este processo. Em situaes extremamente raras tais falhas podem afetar o processo de instalao do FreeBSD. Conforme estes problemas so descobertos e corrigidos, eles so anotados na Errata do FreeBSD (http://www.freebsd.org/releases/6.0R/errata.html), que pode ser encontrada no stio WWW do FreeBSD. Voc deve vericar esta errata antes de iniciar a instalao para saber se existem problemas com os quais voc deve car atento. Informaes sobre todas as verses, incluindo a errata para cada uma, podem ser encontradas na seo de informao de verses (../../../../releases/index.html) do stio WWW do FreeBSD (../../../../index.html).

2.2.6. Ontenha os arquivos de instalao do FreeBSD


O processo de instalao do FreeBSD pode instalar o sistema partir de arquivos armazenados nos seguintes locais: Mdia Local

Um CDROM ou DVD Uma partio DOS no mesmo computador Fita SCSI ou QIC Disquetes

Rede

13

Captulo 2. Instalando FreeBSD


Stio FTP atrs de um rewall, ou usando um proxy HTTP, se necessrio Servidor NFS Conexo paralela ou serial dedicada

Caso tenha adquirido FreeBSD em CD ou DVD, ento voc j tem tudo que precisa, e pode pular para a prxima seo (Preparando a mdia de inicializao (Boot)). Caso no tenha obtivo os arquivos de instalao do FreeBSD, voc pode se adiantar para Seo 2.13 que explica como preparar o FreeBSD para a instalao por qualquer das mdias acima citadas. Aps a leitura desta seo, volte a este ponto e leia Seo 2.2.7.

2.2.7. Preparando a mdia de inicializao (Boot )


O processo de instalao do FreeBSD comea ao iniciar o computador (dar boot) com o instalador do sistema ( no um programa para ser executado a partir de outro sistema operacional ). O computador normalmente inicializado a partir do sistema operacional que j est instalado em seu disco, mas tambm possvel congurar o sistema de modo a fazer uso de um disquete inicializvel. Os computadores mais recentes podem ser inicializados partir de um CD do FreeBSD no dispositivo de de CDROM.
Dica: Caso tenha o FreeBSD em CDROM ou DVD (indiferentemente se voc comprou o disco ou o fez manualmente), e seu computador permite a inicializao por estes dispositivos (normalmente a opo no BIOS chamada de Boot Order ou similar), ento voc pode pular esta seo. As imagens de CDROM e DVD do FreeBSD so inicializveis (bootveis) e podem ser utilizadas para instalar o FreeBSD sem qualquer outro procedimento especial.

Para criar disquetes de inicializao, siga os seguintes passos: 1. Adquira as imagens de disquetes de inicializao Os discos de inicializao esto disponveis a partir de sua mdia de instalao, no diretrio floppies/ e podem tambm ser baixadas partir do diretrio de imagens de disquetes (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/6.0-RELEASE/oppies/) para a aquitetura i386 e a partir do diretrio de imagens de disquetes (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/alpha/6.0-RELEASE/oppies/) para a aquitetura Alpha. As imagens de disquete tem a extenso .flp. O diretrio floppies/ tem uma srie de imagens distintas, e as que voc vai precisar usar dependem da verso do FreeBSD que voc pretende instalar, e em alguns casos, dos equipamentos onde voc ir realizar a instalao. Na maioria dos casos sero necessrias apenas duas imagens, kern.flp e mfsroot.flp. Alguns dispositivos de controle adicionais podero ser necessrios em alguns sistemas. Estes dispositivos esto disponveis na imagem drivers.flp. Verique o arquivo README.TXT no mesmo diretrio para obter as informaes mais atualizadas sobre estas imagens de disquetes.
Importante: O programa FTP que voc for utilizar deve estar ativo em modo binrio no momento de baixar as imagens de disquete da Internet. Alguns navegadores WWW conhecidamente utilizam modo texto text (ou ASCII ), o que se tornar claro quando perceber que no pode inicializar o sistema por meio destes discos.

14

Captulo 2. Instalando FreeBSD 2. Preparando os disquetes necessrio preparar um disquete por imagem que voc baixou da Internet. imperativo que tais discos estejam livres de defeitos. A melhor maneira de tirar isso a limpo formatando os discos. No cone em disquetes pr-formatados. O utilitrio de formatao do Windows no informar sobre a presena de blocos defeituosos no disquete, esta ferramenta apenas os marca como bad (defeituoso) e os ignora, portanto no cone nela tambm. aconselhado utilizar disquetes novos caso esta seja sua opo de instalao.
Importante: Ao instalar o FreeBSD, se o programa de instalao travar, congelar ou falhar, uma das primeiras coisas se suspeitar so os disquetes. Grave as imagens em um novo disquete e inicie o processo de instalao novamente.

3.

Gravando as imagens nos disquetes Os arquivos .flp no so arquivos comuns os quais basta copi-los para o disco. So imagens do contedo completo do disco. Isto signica que voc no pode apenas copiar os arquivos de um disco para outro. Ao invs disso necessrio utilizar ferramentas especcas para escrever as imagens diretamente no disco. Caso esteja criando os disquetes a partir de um computador que roda MS-DOS/Windows, disponibilizamos uma ferramenta que faz este servio, chamada de fdimage. Caso esteja utilizando as imagens de disquetes disponveis no CDROM, e seu dispositivo de CDROM tem a letra E: , basta executar este comando:
E:\> tools\fdimage floppies\kern.flp A:

Repita este comando para cada imagem .flp trocando o disquete a cada vez, e garantindo que cada um esteja sendo rotulado com o nome da imagem que acabou de ser utilizada. Ajuste a linha de comando conforme necessrio, dependendo onde as imagens .flp esto localizadas. Caso voc no disponha do CDROM, o programa fdimage pode ser baixado da Internet partir do diretrio tools (ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/) no stio FTP do FreeBSD. Caso esteja gravando os disquetes a partir de um sistema UNIX (como um outro sistema FreeBSD por exemplo) pode utilizar o comando dd(1) para gravar a imagem. No FreeBSD bastaria executar:
# dd if=kern.flp of=/dev/fd0

No FreeBSD, /dev/fd0 se refere ao primeiro dispositivo de disquete (o A:). /dev/fd1 seria o dispositivo B: e assim sucetivamente. Outras variantes UNIX podem ter nomes distintos para os dispositivos de disquetes, e ser necessrio vericar a documentao do sistema conforme for necessrio. Agora voc est pronto para iniciar a instalao do FreeBSD.

2.3. Iniciando a instalao


Importante: Por padro, o programa de instalao no far qualquer modicao em seus discos at que voc veja a seguinte mensagem:
Last Chance: Are you SURE you want continue the installation? If youre running this on a disk with data you wish to save then WE

15

Captulo 2. Instalando FreeBSD


STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents!

A instalao pode ser interrompida a qualquer instante, antes desta advertncia nal, sem modicar qualquer contedo em seu disco rgido. Se voc estiver em dvida sobre ter congurado algo incorretamente, pode simplesmente desligar o computador antes deste ponto, e dano algum ser causado.

2.3.1. Booting
2.3.1.1. Processo de inicializaao no i386 1. 2. Inicie com seu computador desligado. Ligue o computador. Durate sua inicializao ele mostrar uma opo para entrar no menu de congurao do sistema, ou o BIOS, normalmente conseguido ao utilizar teclas como F2, F10, Del, ou Alt+S. Utilize o conjunto de teclas que for indicado na tela. Em alguns casos o computador poder exibir uma tela grca ao iniciar. Normalmente basta pressionar Esc para eliminar a inagem grca e permitir que voc visualize as mensagens necessrias. Encontre as conguraes que controlam o dispositivo de inicializao do sistema. Normalmente esta opo intitulada Boot Order e costuma ser apresentada como uma lista de dispositivos como Floppy, CDROM, First Hard Disk, e assim por diante. Caso seja necessrio praparar disquetes de inicializao, garanta que a opo de disquetes seja selecionado. Caso esteja iniciando o sistema pelo CDROM garanta ento que esteja seja o dispositivo selecionado. Em caso de dvida consulte o manual do seu computador e/ou da placa-me. Faa a modicao, salve e saia do BIOS. O computador dever se reiniciar. 4. Caso tenha necessidade de preparar disquetes de inicializao como foi descrito em Seo 2.2.7, ento um deles ser o primeiro disco de inicializao; na verdade o disco contendo a imagem kern.flp. Insira este disco no seu dispositivo de disquetes. Caso esteja iniciando o sistema a partir do CDROM, ser necessrio ligar o computador e inserir o CDROM na primeira oportunidade. Caso o computador inicie normalmente e carrege o sistema operacional j instalado, ento alguma destas situaes esto ocorrendo: 1. Os discos no foram insedidos tempo durante o processo de inicializao. Mantenha-os inseridos e reinicie seu computador. 2. As modicaes anteriormente realizadas no BIOS no funcionaram corretamente. Refaa este passo at que a opo correta seja encontrada. 3. Seu BIOS em particular no suporte inicializao do sistema partir da mdia desejada. 5. O FreeBSD comear a ser iniciado. Caso esteja iniciando o sistema partir do CDROM voc ver algumas mensagens similares a estas (as informaes sobre a verso do sistema foram omitidas):
Verifying DMI Pool Data ........ Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(00)

3.

16

Captulo 2. Instalando FreeBSD


Uncompressing ... done

BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive C: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | | Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _

Caso esteja iniciando partir de disquetes, voc ver algumas mensagens similares a estas (as informaes sobre a verso do sistema foram omitidas):
Verifying DMI Pool Data ........ BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | Please insert MFS root floppy and press enter:

Siga as instrues acima, removendo o disco com a imagem kern.flp e inserindo o disco com a imagem mfsroot.flp, e depois aperte Enter. 6. Indiferente se o sistema foi iniciado por disquete ou CDROM, o processo de boot chegar a este ponto:
Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _

Espere dez segundos ou aperte Enter. Isto iniciar o menu de congurao do kernel.

2.3.1.2. Processo de inicializao no Alpha 1. 2. 3. Comece com seu sistema desligado. Ligue o computador e espere pela tela do monitor de inicializao. Caso tenha sido preciso fazer discos de inicializao, como descrito em Seo 2.2.7 ento um dos discos ser o primeiro disco de inicializao; na verdade o disco gerado a partir da imagem do kern.flp. Insira este disco no

17

Captulo 2. Instalando FreeBSD seu dispositivo de disquetes e digite o seguinte comando para carreg-lo (substituindo o nome do seu dispositivo de disco caso necessrio):
>>>BOOT DVA0 -FLAGS -FILE

Caso esteja iniciando partir do CDROM, insira o CDROM no dispositivo e digite o seguinte comando para iniciar a instalao (substituindo o nome apropriado para o dispositivo de CDROM, se necessrio):
>>>BOOT DKA0 -FLAGS -FILE

4.

O FreeBSD vai comear a ser iniciado. Caso esteja iniciando o sistema partir de um disquete, em dado momento ser apresentada a mensagem:
Please insert MFS root floppy and press enter:

Siga as instrues acima, removendo o disco com a imagem do kern.flp e inserindo o disco com a imagem do mfsroot.flp e aperte Enter. 5. Indiferente se o sistema foi iniciado por disquete ou CDROM, o processo de boot chegar a este ponto:
Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _

Espere dez segundos ou aperte Enter. Isto iniciar o menu de congurao do kernel.

2.3.2. Congurao do Kernel


Nota: partir da srie 5 do FreeBSD, o menu de congurap do kernel foi aposentado, em favor do novo mtodo device.hints(5). Para mais informaes sobre o device.hints(5) por gentileza visite Seo 7.5

O kernel o ncleo do sistema operacional. Ele o responsvel por inmeras funes fundamentais, incluindo acesso todos os dispositivos de controle que possam existir em seu sistema, como disco rgido, placas de rede, placas de som e outros. Todo equipamento suportado pelo kernel do FreeBSD tem um dispositivo associado ele. Cada dispositivo tem um nome de duas ou trs letras, como sa para o dispositivo de acesso sequencial SCSI, ou sio para o dispositivo de E/S serial (que gerencia portas COM). Quando o kernel carregado, cada dispositivo varre seu sistema para tentar identicar se o equipamento que ele controle existe na mquina. Caso exista, o dispositivo congura o equipamento e o torna disponvel para o kernel. Esta vericao normalmente chamada de device probing (identicao de dispositivos). Infelizmente nem sempre possvel realiza-la de forma segura. Alguns dispositivos de controle no coexistem de forma cordial e a identicao de um equipamento pode levar um outro um estado inconsistente de disponibilidade. Esta uma limitao bsica da concepo do PC. Muitos dispositivos mais antigos so chamados de dispositivos ISA, que operam de forma diferente dos dispositivos PCI, mais atuais. A especicao ISA obriga que algumas informaes sejam axadas placa, tipicamente linha de pedidos de interrupo (IRQ) e endereo de E/S que o equipamento utiliza. Estas informaes normalmente podem ser conguradas utilizando jumpers fsicos na placa, ou utilitrios baseados em DOS para este m especco. Isso sempre foi origem de problemas, porque no possvel ter dois dispositivos ISA que compartilhem a mesma IRQ ou endereo de memria.

18

Captulo 2. Instalando FreeBSD Os equipamentos mais novos seguem as especicaes PCI, que no necessitam destas informaes axadas, porque o equipamento supostamente deve cooperar com o BIOS que indica quais recursos o dispositivo deve utilizar. Caso tenha algum equipamento ISA no seu computador, o dispositivo de controle do FreeBSD para este dispositivo ter que ser congurado com a IRQ e o endereo de E/S de acordo com o denido no equipamento. por isso que fazer um inventrio de seus equipamentos (veja Seo 2.2.1) pode se tornar muito til. Infelizmente, as IRQs e endereos de memria padro utilizados por alguns dispositivos costumam entrar em conito. Isso se deve ao fato de alguns equipamentos ISA serem vendidos com conguraes conitantes por padro. O padro no dispositivo de controle do kernel do FreeBSD so deliberadamente denidos como espelho dos padres do fabricante, de forma que o maior nmero possivel de dispositivos funcionaro sem necessitar modicaes. Normalmente isso no um problema para o uso dirio do FreeBSD. Normalmente seu computador no ter dois dispositivos que conitam, pois se houver algum deles no ir funcionar (indiferente do sistema operacional que voc estiver usando). Normalmente o problema ocorre ao instalar o FreeBSD pela primeira vez, porque o kernel utilizado durante a instalao contm o maior nmero possvel de dispositivos, de forma que a instalao possa suportar um gande nmero de equipamentos distintos. Isso signica que alguns destes equipamentos podem ter conguraes conitantes. Os equipamentos so reconhecidos em uma ordem estrita, e se existir um dispositivo que for reconhecido depois, ento pode acontecer do mesmo no funcionar corretamente durante a instalao do FreeBSD. Por tal motivo, a primeira coisa que voc tem a possibilidade de fazer ao instalar o FreeBSD analisar a lista de dispositivos suportados pelo kernel, desabilitar ou habilita-los, caso voc no tenha equipamentos compatveis com aquele suporte, ou conrmar e modicar a congurao de recursos do mesmo, caso o padro esteja incorreto. Na verdade isso parece mais complicado do que na realidade . Figura 2-1 apresenta o primeiro menu de congurao do kernel. Recomendamos que sua escolha seja a opo de modo visual, a Start kernel conguration in full-screen visual mode, pois apresenta a interface mais fcil para novos usurios. Figura 2-1. Menu de Congurao do Kernel

A tela de congurao do kernel (Figura 2-2) dividida em quatro sees:

19

Captulo 2. Instalando FreeBSD 1. Uma lista agrupada de todos os dispositivos que esto atualmente denidos como ativos ( active, subdivididos em grupos como Storage e Network. Cada dispositivo apresentado com uma descrio, o nome do dispositivo e os endereos de IRQ e memria utilizados pelo mesmo. Ainda, se um dispositivo ativo conitar com outro tambm ativo, a expresso CONF apresentada prxima ao nome do dispositivo. A seo tambm mostra o nmero total de equipamentos conitantes cujo suporte est marcado como ativo. 2. Dispositivos marcados inativo permanecem no kernel, mas no tentaro reconhecer os equipamentos em questo quando o kernel carregar. Eles so divididos em grupos com o mesmo nome disposto na lista de dispositivos ativos. 3. Mais informaes sobre o dispositivo selecionado, incluindo IRQ e endereo de memria e E/S. 4. Informaes sobre as teclas de comando vlidas nesta tela. Figura 2-2. A interface visual do dispositivo de congurao do kernel

No se preocupe se houverem conitos listados, isso esperado uma vez que todos dispositivos esto habilitados, e como j foi explicado, algums tero as mesmas conguraes de recursos que outros. Agora voc deve utilizar a lista de dispositivos am de resolver os conitos pendentes. Resolvendo conitos de dispositivos 1. Aperte X. Este comando ir expandir completamente a lista de dispositivos de forma que voc possa visualiza-los. Ser preciso usar as teclas de setinhas para paginar atravs da lista de dispositivos ativos. Figura 2-3 apresenta o resultado de ter pressionado a tecla X.

20

Captulo 2. Instalando FreeBSD Figura 2-3. Lista de dispositivos expandida

2.

Desabilite todos os dispositivos de controle para equipamentos que voc no possui. Para desabilitar um dispositivo, selecione-o (car clareado) com as teclas de setinhas e aperte Del. O dispositivo ser movido para a lista de inativos, Inactive Drivers. Caso inadivertidamente voc remova o suporte de um dispositivo que necessrio, aperte Tab para alternar para o menu de dispositivos inativos, Inactive Drivers, selecione o controlador desabilitado e pressione Enter para coloca-lo de volta na lista de controladores ativos.
AtenoNo desabilite sc0. Ele controla o suporte unidade de sada padro, o monitor, e ele completamente necessrio, a no ser que voc esteja instalando o sistema por meio de um cabo serial.

AtenoApenas desabilite atkbd0 se estiver usando um teclado USB. Se tiver teclado tradicional ento mantenha atkbd0, o dispositivo de entrada padro.

3.

Se no existirem conitos listados, voc pode pular o prximo passo. Do contrrio os conitos restantes devem ser examinados. Se eles no tem indicao de um conito permitido - allowed conict - na rea de mensagem, o endereo de IRQ ou de memria devero ser modicados, ou a IRQ e endereo de hardware devero ser trocados. Para modicar a congurao do dispositivo pela IRQ e endereo de E/S do equipamento, selecione o tem em questo e aperte Enter. O cursor ir para a terceira seo da tela e voc pode modicar estes valores. Dever informar as informaes de recursos conseguidas quando o inventarrio dos equipamentos foi realizado. Pressione a tecla Q para terminar a edio da congurao do dispositivo e voltar para a lista de tens ativos. Se voc no tem a menor idia de que valores devem ser denidos, experimente usar -1. Alguns dispositivos de controle do FreeBSD podem, de forma segura, varrer os equipamentos em busca das conguraes corretas de cada dispositivo, e a opo -1 indica que ele deve faz-lo. O procedimento para modicar o endereo de acesso memria varia de dispositivo para dispositivo. Para alguns equipamentos pode ser necessro remover sicamente a placa e congurar os jumpers ou os alternadores

21

Captulo 2. Instalando FreeBSD DIP ( DIP switches). Outras placas oferecem um disquete DOS que contem programas para recongura-la. Em todos os casos voc deve se referir documentao que acompanha o equipamento. Obviamente isto implicar na reinicializao do seu computador, de forma que ser preciso voltar rotina de instalao do FreeBSD depois que esta placa tenha sido recongurada. 4. Quando todos conitos estiverem sanados, a tela estar similar a Figura 2-4. Figura 2-4. Congurao de dispositivos sem conitos

Como voc pode ter reparado, a lista de dispositivos ativos agora est bem menor, apenas com os tens para os equipamentos que realmente existem esto listados. Agora possvel salvar tais modicaes e ir para o prximo passo do processo de instalao. Aperte Q para sair da interface de congurao de dispositivos. A seguinte mensagem surgir:
Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)

Responda Y (SIM) para salvar os parmetros em memria (eles sero salvos em disco quando a instalao for concluda) e o reconhecimento dos equipamentos ser iniciado. Aps apresentar os resultados do reconhecimento em mensagens de texto preto e branco, o sysinstall ir iniciar e apresentar seu menu principal (Figura 2-5).

22

Captulo 2. Instalando FreeBSD Figura 2-5. Menu principal do Sysinstall

2.3.3. Revisando o resultado do reconhecimento de dispositivos


As ltimas centenas de linhas que foram apresentadas na tela so armazenadas e podem ser revisadas. Para revisar o buffer, aperte Scroll Lock. Esta tecla ativa o paginamento da tela. Voc pode utilizar as teclas de setinhas ou PageUp e PageDown para visualizar os resultados do processo de reconhecimento de dispositivos. Aperte Scroll Lock novamente para desativar o paginamento. Faa isso agora para revisar o texto que foi paginado para cima da tela quando o kernel estava sendo carregado e os dispositivos de controle sendo reconhecidos. Voc ver informaes textuais similares Figura 2-6, embora o contedo preciso ser diferente dependendo de quais dispositivos existirem no seu computador. Figura 2-6. Resultados tpicos do reconhecimento de dispositivos
avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0

23

Captulo 2. Instalando FreeBSD


ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0

Verique os resultados do reconhecimento cuidadosamente para garantir que o FreeBSD encontrou todos os dispositivos que voc esperava. Se algum equipamento no foi encontrando, ele no ser listado. Se o tem em questo precisou ter seus recursos de IRQ e endereo de memria congurados, verique se estes valores foram denidos corretamente. Caso seja necessrio modifcar as conguraes do reconhecimento de dispositivos, simples sair do sysinstall e recomear o processo de instalao. Esta tambm uma tima forma de se tornar mais familiar com o processo.

24

Captulo 2. Instalando FreeBSD Figura 2-7. Selecione a sada do Sysinstall

Utilize as teclas de setas para selecionar a opo Exit Install do menu principal de instalao. A seguinte mensagem ser exibida:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No

O programa de instalao ser reiniciado se o CDROM for mantido no leitor de CD e a opo [Yes] for selecionada. Se estiver iniciando o sistema por disquetes, ser necessrio retirar o disco do mfsroot.flp e troca-lo pelo
kern.flp antes da reinicializao.

2.4. Introduo ao Sysinstall


O utilitrio sysinstall o programa de instalao oferecido pelo Projeto FreeBSD. baseado em console e dividido em vrios menus e telas que podem ser utilizados para congurar e controlar o processo de instalao. O sistema de menu do sysinstall controlado pelas teclas de echas, Enter, Space, e outras teclas. Descrio detalhada destas teclas e o que elas fazem est disponvel nas informaes de utilizao do sysinstall . Para visualizar tais informaes, garanta que a opo Usage est marcada, no menu do programa, e que o tem [Select] est selecionado, como apresentados em Figura 2-8, depois aperte Enter. As instrues para utilizar esse sistema de menu sero apresentadas. Depois de revisa-las, aperte Enter para voltar ao menu principal.

25

Captulo 2. Instalando FreeBSD Figura 2-8. Selecionando a opo Usage do menu do Sysinstall

2.4.1. Selecionando o menu de documentao


No menu principal, selecione a opo Doc com as setas e aperte Enter. Figura 2-9. Selecionando o menu de documentao

Isso apresentar o menu de documentao.

26

Captulo 2. Instalando FreeBSD Figura 2-10. Menu de documentao do sysinstall

importante ler os documentos disponibilizados pelo menu em questo. Para visualizar algum dos documentos, selecione-o com as setas e aperte Enter. Quando terminar a leitura do documento, pressione Enter novamente para retornar ao menu de documentao. Para voltar ao menu principal de instalao, selecione Exit com as teclas de setas e pressione Enter.

2.4.2. Selecionando o menu de mapeamento do teclado


Para modicar o mapeamento de teclado, utilize as teclas de setinhas do menu e tecle Enter. Isso necessrio se o seu teclado no for padro ou for no-US. Figura 2-11. Menu principal do Sysinstall

O mapeamento distinto do teclado pode ser selecionado escolhendo o tem em questo no menu principal e pressionando Space. Apertar Space novamente remove a seleo deste tem. Quando terminado, escolha a opo

27

Captulo 2. Instalando FreeBSD [ OK ] utilizando as teclas de setinhas e aperte Enter. Uma lista parcial apresentada na representao desta tela. Selecionar [ Cancel ] apertando Tab forar a utilizao do mapeamento padro, e voltar ao menu principal de instalao. Figura 2-12. Menu de mapeamento do teclado do Sysinstall

2.4.3. Tela de opes de instalao


Selecione Options e aperte Enter. Figura 2-13. Menu principal do Sysinstall

28

Captulo 2. Instalando FreeBSD Figura 2-14. Opes do Sysinstall

Os valores padro normalmente so o bastante para a maioria dos usurios, e no tem a necessidade de serem modicados. O nome do release (release name) ir variar de acordo com a verso do sistema que est sendo instalada. A descrio do tem selecionado aparecer na base da tela, em cores azuis. Note que uma das opes Use Defaults que tem a funo de redenir todos os tens para seus valores padro. Aperte F1 para ler a tela de ajuda sobre as vrias opes. Ao apertar a tecla Q o foco volta ao menu principal de instalao.

2.4.4. Iniciando a instalao padro


A instalao padro (Standard) a opo recomendada aos usurios recm chegados ao ambiente UNIX ou FreeBSD. Utilize as teclas de setinhas para selecionar a opo Standard e ento aperte Enter para iniciar a instalao.

29

Captulo 2. Instalando FreeBSD Figura 2-15. Iniciando a instalao padro

2.5. Alocando espao em disco


A primeira tarefa alocar espao em disco para o FreeBSD e rotular este espao de forma que o sysinstall possa prepar-lo. Para fazer isso necessrio saber como o FreeBSD pretende encontrar as informaes em disco.

2.5.1. Numerao dos discos no BIOS


Antes de instalar e congurar o FreeBSD em seu sistema, existe um tem fundamental com o qual voc deve ter ateno, especialmente se possuir multiplos discos rgidos. Em um PC que utiliza um sistema operacional dependente do BIOS (BIOS-dependent OS) como MS-DOS ou Microsoft Windows, o BIOS capaz de abstrair a ordem normal dos discos, e o sistema operacional reconhece tal modicao. Isso permite que o usurio inicie o distema partir de um disco qualquer, ao invs do chamado primrio mestre. Isso especialmente conveniente para usurios que acreditam que a forma mais rpida e barata de manter o backup de um sistema comprando um segundo disco rgido idntico ao primeiro e realizar rotinas de copias do primeiro disco no segundo, utilizando os programas Ghost ou XCOPY. Dessa forma, se o primeiro dispositivo falhar ou for atacado por um vrus, ou mesmo se for danicado por defeito no sistema operacional, fcil recuperar o sistema simplesmente instruindo o BIOS para modicar a unidade de inicializao. como mudar os cabos do disco, mas sem ter que abrir o gabinente. Sistemas mais caros com controladoras SCSI costumam incluir extenses no BIOS que permitem que os discos SCSI sejam reordenados de forma similar para vrios discos. Usurios que tem costume de tirar vantagens destas caractersticas podem se surpreender ao perceber que o resultado no FreeBSD no como o esperado. FreeBSD no utiliza o BIOS dessa forma e simplesmente ignora o mapeamento lgico dos dispositivos no BIOS. Isso pode levar o usurio situaes perplexas especialmente quando a geometria dos discos exatamente igual e foram clonados de um para outro disco. Ao usar o FreeBSD, sempre restaure a numerao usual do BIOS antes de iniciar a instalao do sistema e mantenha-a desta forma. Se for necessrio alternar entre os discos, ento faa-o da forma difcil, abrindo o gabinete e

30

Captulo 2. Instalando FreeBSD modicando os jumpers e cabos.

Quadro LateralIlustrando as excepcionais aventuras dos arquivos de Bill e Fred: Bill resolve destruir outra mquina Wintel para montar outro servidor FreeBSD para o Fred. Bill congura um nico disco SCSI na unidade SCSI nmero zero, e instala FreeBSD nela. Fred passa a utilizar o sistema, mas depois de vrios dias nota que o disco SCSI antigo passa e reportar vrios erros lgicos e relato este fato ao Bill. Depois de vrios dias mais, Bill decide que hora de resolver a situao, ento ele consegue um disco SCSI idntico no armazm de discos na sala dos fundos. Uma varredura inicial de superfcie indica que o dispositivo funciona corretamente, ento Bill instala este disco SCSI na unidade nmero quatro e faz uma imagem cpia dos dados no disco da unidade zero para o disco na quatro. Agora o dispositivo est instalado e funcionando corretamente. Bill decide ento utilizar o disco e faz uso da opo no BIOS SCSI para re-ordenar os dispositivos de disco de forma que o sistema inicialize partir da unidade quatro. FreeBSD inicia e entra no ar de forma correta. Fred continua seu trabalho por vrios dias anco, e logo Bill e Fred decidem que hora de uma nova aventura -hora de atualizar para uma verso mais recente do FreeBSD. Bill retira a unidade zero SCSI e troca ela por um outro disco idntico, l do mesmo armazem. Bill reinstala o FreeBSD no novo disco na unidade zero utilizando os disquetes mgicos de FTP via Internet do Fred. A instalao termina corretamente. Fred utiliza a nova verso do FreeBSD por alguns dias e se certica que ela boa o bastante para colocar no departamento de engenharia. hora de copiar todo seu trabalho do sistema antigo. Fred monta a unidade SCSI quatro (a ltima cpia da verso anterior do FreeBSD). Fred quase desmaia ao constar que nenhum de seus to preciosos dados de trabalho est presente na unidade SCSI quatro. Onde os dados foram parar? Quando Bill fez uma cpia do disco SCSI original da unidade zero na unidade SCSI quatro, a unidade quatro se tornou o novo clone . Quando Bill re-ordenou o BIOS SCSI de forma que pudesse iniciar a partir da unidade quatro, ele estava apenas enganando a s mesmo. FreeBSD continuava rodando partir da unidade SCSI zero. Realizar esse tipo de modicao no BIOS faz com que todo o cdigo do carregador ( Loader) e do setor de inicizalicao seja iniciado do disco selecionado, mas quando o FreeBSD decola, a ordem das unidades ignorada e o FreeBSD reconhece a numerao fsica (original) dos discos. Nesta ilustrao o sistema continua sendo utilizado partir da unidade zero, e todos os dados do Fred continuavam l, e no na unidade SCSI nmero quatro. O fato de o sistema parecer estar sendo executado na unidade 4 era apenas artifcio da expectativas humanas. Felizmente, camos felizes de mencionar que nenhum byte sequer foi perdido ou danicado com isso. A unidade SCSI zero antiga foi realinhada, e todo o trabalho de Fred voltou s suas mos (e agora Bill sabe que ele pode contar alm de zero). Embora discos SCSI tenham sido utilizados nesta ilustrao, o conceito se aplica igualmente dispositivos IDE.

2.5.2. Criando parties com FDisk


Nota: Nenhuma alterao que seja realizada neste momento ser escrita em disco. Se voc acreditar que tenha cometido algum erro e deseja iniciar o processo novamente, pode utilizar o menu para sair do sysinstall e comear de novo, ou apertar U para utilizar a opo de desfazer ( Undo). Se voc car confuso e no estiver certo sobre como sair, lembre-se que voc pode sempre desligar seu computador.

31

Captulo 2. Instalando FreeBSD Aps selecionar a instalao padro do sysinstall voc ver esta mensagem:
Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ]

Aperte Enter como indicado. Voc ver uma lista de discos rgidos que o kernel encontrou quando foi carregado. Figura 2-16 apresenta um exemplo de sistema com dois discos IDE. Eles foram chamados de ad0 e ad2. Figura 2-16. Selecione o disco para o FDisk

Voc deve estar se perguntando por qu ad1 no listado aqui. Por qu ela foi pulada? Considere o que aconteceria se voc disposse de dois discos IDE, um como primrio na primeira controlada IDE, e um como primrio na segunda controladora IDE. Se o FreeBSD os numerasse conforme os encontrasse, como dispositivo ad0 e ad1, ento tudo funcionaria. Mas ento, se voc adicionasse um terceiro disco, como secundrio na primeira controladora IDE, seriam agora ad1, e o ad1 anterior seria chamado de ad2. Considerando que o nome dos dispositivos (como, por exemplo ad1s1a) so utilizados para identicar os sistemas de arquivos, repentinamente voc pode perceber que seus sistemas de arquivos no esto mais dispostos corretamente, e teria que modicar sua congurao do FreeBSD. Para resolver isso, o kernel pode ser congurado para nomear discos IDE com base em sua disposio fsica, e no na ordem em que eles so encontrados. Com este esquema, o disco primrio na segunda controladora IDE ser sempre o ad2, mesmo que no existam dispositivos ad0 ou ad1 .

32

Captulo 2. Instalando FreeBSD Esta a congurao padro no kernel do FreeBSD, que nesta tela apresenta ad0 e ad2. A estao de onde este screenshot foi tirado dispunha de dois discos IDE nos dois canais primrios de cada controladora IDE, e nenhum disco nos canais secundrios. Voc deve escolher o disco onde o FreeBSD deve ser instalado, e depois disso apertar [ OK ]. O FDisk ser iniciado, com uma interface similar esta apresentada na Figura 2-17. A tela do FDisk est dividida em trs sees. A primeira seo cobre as duas primeiras linhas da aplicao, e mostra os detalhes do disco atualmente selecionado, incluindo a nomenclautra FreeBSD para o nome, a geometria de disco e o tamanho total do mesmo. A segunda seo apresenta as parties que esto no disco, onde elas iniciam e terminam, qual seu tamanho, o nome que o FreeBSD atribui elas, e suas descries e sub-tipos. Este exemplo apresenta duas pequenas parties no utilizadas, que so artifcios do esquema de disposio de discos no PC. Tambm apresenta uma grande partio FAT, que quase sempre aparece como C: no MS-DOS / Windows e uma partio extendida, que pode conter outras letras de dispositivos para o MS-DOS / Windows. A terceira seo apresenta os comandos que so disponibilizados pelo FDisk. Figura 2-17. Parties tpicas do Fdisk antes de sua edio

O que voc for fazer agora depende de como voc pretende particionar seu disco. Se a inteno utilizar o FreeBSD no disco todo (o que ir apagar todos outros dados presentes no disco ao conrmar a continuidade do processo de instalao no sysinstall ) basta apertar a tecla A que signica utilizar o disco inteiro ( Use Entire Disk). As partie existentes sero apagadas e substituidas por uma pequena rea marcada como unused (mais uma vez, caracterstica das disposies do PC), e uma grande partio para o FreeBSD. Ao fazer isso, aconselhvel selecionar a nova partio FreeBSD com as setas, e apertar a tecla S para marcar a partio como inicializvel. A tela ter aparncia similar Figura 2-18. Note a opo A na coluna Flags, que indica que esta partio uma partio ativa ( active) e servir como dispositivo de inicializaao. Se a inteno apagar uma partio existente de forma a conseguir espao em disco para o FreeBSD, ento voc deve selecionar a partio e apertar D. Em seguida pode fazer uso da tecla C e responder qual o tamanho pretendido para a nova partio que voc pretende criar. Entre com o valor apropriado e aperte Enter. O valor padro aqui indica o tamanho mximo possvel para esta partio, que na realidade o maior bloco contguo de espaao no alocado, ou o tamanho do disco inteiro.

33

Captulo 2. Instalando FreeBSD Se j existe espao para o FreeBSD (por exemplo, se voc garantiu espao com alguma aplicao como o PartitionMagic) ento pode utilizar a tecla C para criar uma nova partio. Mais uma vez, ser necessrio informar o tamanho da nova partio ser criada. Figura 2-18. Partio FDisk utilizando todo o disco

Ao terminar, aperte Q. Suas modicaes sero salvas pelo sysinstall, mas por enquanto no sero efetivamente aplicadas em disco.

2.5.3. Instale um Gerenciador de Inicializao ( Boot Manager )


Agora voc tem a opo de instalar um gerenciador do processo de inicializao do sistema, ou um gerenciador de Boot como conhecido. indicado instalar o gerenciador de inicializao nativo do FreeBSD, se:

Voc tem mais de um disco, e instalou o FreeBSD em algum disco que no seja o primeiro. Voc instalou o FreeBSD em conjunto com outro sistema operacional, no mesmo disco, e deseja escolher em que momento o FreeBSD ou o outro sistema devem ser carregados.

Se o FreeBSD ser o nico sistema operacional nesta estao, instalado no primeiro disco rgido, o inicializador padro do FreeBSD (opo Standard) o recomendado. Escolha a opo None se a inteno for utilizar um outro gerenciador de inicializao no nativo, ou se deseja no modicar o setor mestre de inicializao do disco. Escolha sua opo e aperte Enter.

34

Captulo 2. Instalando FreeBSD Figura 2-19. Menu do Boot Manager do FreeBSD

A tela de ajuda oferecida ao pressionar F1, oferece algumas informaes sobre os problemas implcitos no compartilhamento de discos rgidos entre mltiplos sistemas operacionais.

2.5.4. Criando parties em outro disco


Se houver mais de um disco, o menu voltar tela de seleo de unidades de armazenamento aps a seleo do gerenciador de inicializao. Se a inteno for instalar FreeBSD em mais de um disco, ento pode selecionar o outro disco e repetir o processo de particionamento usando o FDisk.
Importante: Se estiver instalando o FreeBSD em um disco diferente do primeiro, ento o gerenciador de inicializao do FreeBSD deve ser instalado em ambos os discos.

35

Captulo 2. Instalando FreeBSD Figura 2-20. Sair da seleo de discos

A tecla Tab alterna entre as opes [ OK ] e [ Cancel ]. Aperte a tecla Tab uma nica vez para selecionar [ OK ] e depois aperte Enter para continuar a instalao.

2.5.5. Criando parties com o Disklabel


Agora voc deve criar subparties dentro de cada partio primria que voc acabou de criar. Lembre-se que cada partio identicada com letras de a h , e que as parties b, c e d tem signicados convencionais que devem ser notados aqui. Algumas aplicaes se beneciam de alguns esquemas particulares de particionamento, especialmente se voc est utilizando parties de tal disposio que utilize mais de um disco rbido. Contudo, para sua primeira instalao, voc no precisa se empenhar tanto na denio do particionamento do seu FreeBSD. mais importante instalar o FreeBSD e aprender a utiliza-lo. Voc pode sempre reinstalar o sistema e modicar o esquema de particonamento vrias vezes, at se tornar familiar o suciente com o sistema operacional e seu processo de instalao, para a sim passar a otimizar seu particionamento. O esquema atual apresenta quatro parties uma para o espao de swap, e trs para sistemas de arquivos. Tabela 2-2. Disposio de parties para o primeiro disco Partio
a

Sistema de arquivos
/

Tamanho 100 MB

Descrio Este o sistema de arquivos raiz. Todos os outros sistemas de arquivos sero montados em algum ponto abaixo deste. No necessrio armazenar muitos dados neste sistema de arquivos. Em uma instalao regular do FreeBSD, sero utilizados cerca de 40 MB de dados aqui. O espao restante para dados temporrios e tambm oferece espao para expanso se eventualmente verses futuras do FreeBSD precisarem de mais espao na /.

36

Captulo 2. Instalando FreeBSD Partio


b

Sistema de arquivos N/D

Tamanho 2-3 x RAM

Descrio O espao de swap do sistema mantido nesta partio. Escolher a quantidade correta de espao para swap uma questo um tanto quanto artstica. Uma boa regra base multiplicar entre duas e trs vezes o espao total de memria fsica (RAM) disponvel. recomendado que, se voc tem menos de 32 MB de memria, que dena ao menos 64 MB de swap . Se voc dispe de mais de um disco, pode colocar uma partio de swap em cada. FreeBSD vai utilizar ambas para swap, e o fato do acesso estar distribudo em mais de uma partio de troca, em discos distintos, a velocidade efetiva da ao de swap incrementada. Neste caso, calcule o espao total de swap necessrio e divida pela quantidade de discos disponveis ( digamos, 128 MB em dois discos), alocando a quantidade resultante em cada um, nesse exemplo, 64 MB de swap em cada disco. O diretrio /var contm arquivos que so constantemente acessados; arquivos de logs , e outros arquivos administrativos. A maioria destes arquivos so de escrita ou leitura intensivas no dia-a-dia da utilizao do FreeBSD. Adicionar tais arquivos a outro sistema de arquivos permite que o acesso a estes arquivos seja otimizado sem afetar outros arquivos e diretrios que no tem o mesmo padro de acesso. Todos seus outros arquivos sero armazenados tipicamente sob o /usr e seus subdiretrios.

/var

50 MB

/usr

Restante do disco

Se o FreeBSD for ser instalado em um servidor com mais de um disco ideal criar parties nos outros discos tambm. A forma mais bsica de faz-lo criar duas parties no mnimo nos discos auxiliares uma para a swap e uma para ao menos um sistema de arquivos. Tabela 2-3. Disposio de parties para discos subsequentes Partio
b

Sistema de arquivos N/D

Tamanho Ver descries

Descrio Como discutido, o espao de swap pode ser dividido em cada disco. Mesmo considerando que a partio a esteja livre, a conveno dita que as parties de troca (swap) devem car na partio b.

37

Captulo 2. Instalando FreeBSD Partio


e

Sistema de arquivos /diskn

Tamanho Restante do disk

Descrio O restante do disco utilizado por uma partio grande. Esta partio poderia ser a a, ao invs da partio e. Contudo, por conveno a partio a reservada ao sistema de arquivos raiz (/). Voc no tem obrigao de seguir este padro, mas o sysinstall o faz, de forma que seguir este padro torna sua instalao mais limpa. Voc pode escolher montar este sistema de arquivos em qualquer local; este exemplo sugere que eles sejam montados como os diretrios /disk n, onde n corresponde ao nmero que muda de acordo com a ordem de cada disco. Mas voc est livre para utilizar um outro esquema, se preferir.

Tendo denido a disposio de seu esquema de particionamento, voc pode cria-lo utilizando o sysinstall. Voc ver a seguinte mensagem:
Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and dont have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just dont care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ]

Aperte Enter para iniciar o editor de parties do FreeBSD, chamado Disklabel. Figura 2-21 apresenta o resultado da primeira execuo do Disklabel. A tela dividida em trs sees. As primeiras linhas mostra o nome do disco onde voc est trabalhando e a partio onde est o sistema de arquivos que ser criado (neste instante o Disklabel chama-o de Nome da Partio, ou Partition name, ao invs do nome da subpartio). A tela apresenta tambm a quantidade de espao livre disponvel na partio primria, ou seja o espao denido ao FreeBSD, mas que ainda no foi denido atribudo a nenhuma partio. O meio da tela apresenta as parties que foram criadas, o nome do sistema de arquivos em cada partio, seu tamanho e algumas opes sobre a criao do sistema de arquivos. A base da tela, na terceira imagem, apresenta as teclas de comandos que so validas no Disklabel.

38

Captulo 2. Instalando FreeBSD Figura 2-21. Editor Disklabel do Sysinstall

O Disklabel pode criar parties automaticamente e atribuir espao padro para cada uma. Experimente esta opo agora, pressionando a tecla A. Voc vai ver mensagens similares as que so apresentadas na Figura 2-22. Dependendo do tamanho do disco que voc tem disponvel, os valores padro vo variar para o tamanho apropriado. Mas isso no importa, anal voc no tem que aceitar o padro.
Nota: A partir do FreeBSD 4.5, o particionamento padro atribui uma partio dedicada ao diretrio /tmp ao invs de fazer parte do sistema de arquivos raiz (/). Entre outras justicativas, isso ajuda a evitar que a raiz seja lotada de arquivos temporrios.

Figura 2-22. Editor Disklabel do Sysinstall com padres automticos

Se sua escolha for no utilizar o particionamento padro, e voc pretende substitui-lo com sua propria denio, use as teclas indicativas para selecionar a primeira partio, aperte D para apaga-la. Repita isto para apagar todas as

39

Captulo 2. Instalando FreeBSD parties sugeridas. Para criar a primeira partio (a, montada como / raiz), garanta que a partio apropriada no topo da tela est selecionada e aperte C. Uma caixa de dilogos aparecer perguntando qual o tamanho desejado para a nova partio (como apresentado em Figura 2-23). Voc pode denir o nmero de blocos que deseja usar, ou um valor seguido por M para indicar megabytes, G para gigabytes, ou C para cilindros.
Nota: A partir do FreeBSD 5.X os usurios podem escolher o uso do UFS2 utilizando a opo Custom Newfs (Z), criar rtulos com Auto Defaults e modica-los com a opo Custom Newfs ou adicionar -O 2 durante a criao regular do sistema de arquivos. No se esquea de manter a opo -U para indicar o uso do SoftUpdates se voc zer uso da opo de customizao do newfs, Custom Newfs!

Figura 2-23. Liberando espao para a partio raiz

O tamanho padro apresentado criar uma partio que ocupa o restante do disco. Se estiver usando os tamanhos de parties descritos no exemplo, apague a denio existente utilizando Backspace e digite 64M, como apresentando na Figura 2-24. Em seguida aperte [ OK ].

40

Captulo 2. Instalando FreeBSD Figura 2-24. Editando o tamanho da partio raiz

Tendo escolhido o tamanho da partio, o instalador solicitar que voc informe se a partio vai conter um sistema de arquivos ou espao para swap. A caixa de dilogo a apresentada em Figura 2-25. A primeira partio ter um sistema de arquivos, ento marque o tem FS e aperte Enter. Figura 2-25. Escolhendo o tipo da partio raiz

Finalmente, por estar criando um sistema de arquivos, necessrio informar ao Disklabel onde o sistema de arquivos em questo deve ser montado. A caixa de dilogo apresentada na Figura 2-26. O ponto de montagem para a partio raiz /, portanto digite / e aperte Enter.

41

Captulo 2. Instalando FreeBSD Figura 2-26. Escolhendo o ponto de montagem raiz

A tela ser atualizada para apresentar as parties recm criadas. Este processo deve ser repetido para as outras parties. Quando for criar a partio swap o sistema no pedir o ponto de montagem da partio. Ao criar a partio nal, o /usr, voc pode manter o tamanho sugerido intacto, para utilizar o resto do disco. A tela nal do editor DiskLabel do FreeBSD ter aparncia similar a Figura 2-27, embora os valores escolhidos por voc podem estar diferentes. Aperte Q para terminar. Figura 2-27. Editor Disklabel do Sysinstall

42

Captulo 2. Instalando FreeBSD

2.6. Escolhendo o que instalar


2.6.1. Selecione o conjunto de distribuio
Decidir que conjunto de distribuio instalar depende muito da inteno de uso do sistema e da quantidade de espao em disco disponvel. As opes predenidas vo da menor instalao possvel instalar tudo que estiver disponvel. Usurios ainda no familiarizados com o ambiente UNIX ou FreeBSD costumam escolher entre esses dois extremos. Customizar o conjunto de instalao tipicamente uma tarefa para usurios mais experientes. Aperte F1 para obter mais informaes sobre cada conjunto de distribuio e seu contedo. Ao terminar a leitura do arquivo de ajuda, aperte Enter para voltar ao menu de seleo de distribuies. Se uma interface grca com o usurio for desejvel, as dsitribuies precedidas por um X devem ser escolhidas. A congurao do XFree86 e seleo de um desktop padro faz parte dos passos de ps-instalao do sistema. A verso padro do XFree86 que est instalada depende da verso do FreeBSD que voc est instalando. Em verses do FreeBSD anteriores 4.6 o XFree86 3.X o instalado. Para o FreeBSD 4.6 e posteriores, XFree86 4.X a srie instalada. Voc deve vericar se sua placa de vdeo suportada no stio WWW do XFree86 (http://www.xfree86.org/)e. Se a placa no for suportada pela verso padro que o FreeBSD instalar, voc deve desmarcar a distribuio em questo em favor de uma distribuio sem a instalao do X. Aps a instalao do sistema, instale e congure a verso apropriada do XFree86 usando a coleo de ports. Se a compilao de um novo kernel prevista, selecione uma opo que inclua o cdigo fonte. Para mais detalhes sobre os motivos pelos quais um kernel customizado deve ser compilado ou sobre como compilar um novo kernel, veja a Captulo 9. Obviamente o sistema mais verstil o que inclui tudo que estiver disponvel. Se tiver espao em disco adequado, selecione a opo All como apresentado em Figura 2-28 utilizando as teclas indicadoras e aperte Enter . Se existir preocupao sobre o espao em disco considere utilizar a opo que melhor se adequar sua situao. No perca tempo tentando encontrar o conjunto perfeito de aplicaes, tendo em vista que outras distribuies podem ser adicionadas aps a instalao. Figura 2-28. Escolha de distribuies

43

Captulo 2. Instalando FreeBSD

2.6.2. Instalando a Coleo de Ports


Aps escolher a distribuio desejada, apresentada a oportunidade de instalar a Coleo de Ports do FreeBSD. A coleo de ports uma maneira prtica e conveniente de instalar programas. A coleo de ports no contm os cdigos fontes necessrios para compilar os programas. Ao invs disto, uma coleo de arquivos automatiza o download, compilao e instalao e pacotes de programas de terceiros. O Captulo 4 discuste a utilizao da coleo de ports . O programa de instalao no verica se voc tem espao o bastante para instalar a coleo de ports. Selecione esta opo apenas se voc realmente tiver espao o bastante. Por volta do FreeBSD 6.0, A Coleo de Ports do FreeBSD requer at 440 MB de espao em disco. A cada nova verso do FreeBSD um valor maior pode seguramente ser assumido.
User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over 13,300 ported software packages, at a cost of around 440 MB of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The ports collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the ports collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No

Selecione [ Yes ] com as teclas indicativas para instalar a coleo de ports ou [ No ] para pular esta opo. Aperte Enter para continuar. O menu de seleo de distribuio aparecer novamente.

44

Captulo 2. Instalando FreeBSD Figura 2-29. Conrmar distribuies

Se estiver satisfeito com as opes, selecione a opo Exit com as setas, garanta que [ OK ] est destacado, e aperte Enter para continuar.

2.7. Escolhendo a mdia de instalao


Se a instalao estiver sendo realizada partir de CDROM ou DVD use as setas indicativas para destacar a opo Install from a FreeBSD CD/DVD. Garanta que a opo [ OK ] est marcada e aparte Enter para continuar com o processo de instalao. Para outros mtodos de instalao, selecione a opo apropriada e siga as instrues. Aperte F1 para visualizar a ajuda instantnea sobre as mdias de instalao. Aperte Enter para voltar ao menu de seleo de mdias.

45

Captulo 2. Instalando FreeBSD Figura 2-30. Escolha a mdia de instalao

Modos de instalao FTP: Existem trs modos de instalao FTP que voc pode escolher: FTP ativo, FTP passivo e FTP via proxy. FTP Ativo: Instalao partir de um servidor FTP Esta opo far toda transferncia FTP ser realizada em modo ativo. No funcionar atrs de um rewall , mas frequentemente funcionar com servidores FTP antigos, que no suportam modo passivo. Se sua conexo travar em modo passivo (o padro), tente modo ativo! FTP Passivo: Instalao partir de um servidor FTP atravs de um rewall

Essa opo instrui o sysinstall a utilizar modo Passivo para todas operaes FTP. Isso permite que o usurio passe atravs de rewall que no permite conexes entrantes em portas TCP randmicas. FTP atravs de proxy HTTP: Instalao partir de um servidor FTP atrvs de um proxy HTTP

Essa opo instrui o sysinstall utilizar um protocolo HTTP (como se fosse um navegador) para se conectar em um proxy e realizar operaes FTP. O proxy traduzir as solicitaes e as encaminhar ao servidor FTP. Isso permite que usurios passem por um rewall que no permite FTP, mas oferece um proxy HTTP. Neste caso necessrio especicar o proxy alm do servidor FTP. Para o servidor FTP normalmente basta denir o nome do servidor desejado como parte do nome de usurio, aps um caractr @. O servidor proxy simula o servidor real. Por exemplo, vamos assumir que voc deseja instalar o sistema partir de ftp.FreeBSD.org, usando o proxy FTP no servidor algum.exemplo.com, que escuta na porta 1024. Nesse caso, voc vai no menu de opes, dene o usurio FTP como sendo ftp@ftp.FreeBSD.org, e dene seu endereo de correio eletrnico como sendo a senha. Como mdia de instalao, especique FTP (ou FTP passivo, se o proxy o suportar), e a URL ftp://foo.example.com:1234/pub/FreeBSD. Partindo do princpio que /pub/FreeBSD em ftp.FreeBSD.org acessado via procurao (proxy), voc poder instalar o sistema partir daquela mquina (que ir acessar os arquivos de ftp.FreeBSD.org conforme seu processo de instalao os requisita).

46

Captulo 2. Instalando FreeBSD

2.8. Efetivando a instalao


Se desejado, a instalao pode continuar agora. Esta tambm a ltima chance que voc tem para abortar a instalao e prevenir qualquer modicao no disco rgido.
User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If youre running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No

Selecione [ Yes ] e aperte Enter para continuar. O tempo de instalao ir variar de acordo com o conjunto de distribuio escolhido, o tipo de mdia e a velocidade do computador. Haver uma srie de mensagens sendo apresentadas na tela indicando o estado do processo. A instalao estar terminada quando a seguinte mensagem for apresentada:
Message Congratulations! You now have FreeBSD installed on your system.

We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /stand/sysinstall . [ OK ] [ Press enter to continue ]

Aperte Enter para seguir para as conguraes de ps instalao. Selecionando [ No ] e apertando Enter ir abortar a instalao, de forma que modicao alguma ser realizada em seu sistema. A mensagem seguir aparecer:
Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ]

47

Captulo 2. Instalando FreeBSD Essa mensagem apresentada porque nada foi instalado. Apertar Enter far o programa voltar ao menu principal de instalao e sair do processo.

2.9. Ps-Instalao
Aps a instalao bem sucedida do sistema operacional, iniciada a congurao de uma srie de opes. Cada opo pode ser congurado revisitando as opes de congurao antes de iniciar o recm instalado sistema FreeBSD, ou com o sistema j instalado chamando o comando /stand/sysinstall e selecionando a guia Congure.

2.9.1. Congurao dos dispositivos de rede


Caso tenha congurado PPP para instalao FTP anteriormente, esta tela no estar disponvel, mas pode ser congurada posteriormente como ser descrito. Para obter informaes detalhadas sobre Redes Locais, e aobre como congurar o FreeBSD para agir como routeador/gateway, rera-se ao captulo de Advanced Networking.
User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? [ Yes ] No

Para congurar um dispositivo de rede, selecione a opo [ Yes ] e aperte Enter. Ou ento selecione [ No ] para continuar. Figura 2-31. Selecionando dispositivos de rede

Selecione a interface ser congurado com as teclas indicativas e aperte Enter.


User Confirmation Requested Do you want to try IPv6 configuration of the interface?

48

Captulo 2. Instalando FreeBSD


Yes [ No ]

Nesta rede local privada, o protocolo de endereamento de Internet atual (IPv4) suciente, e selecionar a opo [ No ] e apertar Enter satisfaz a necessidade. Caso esteja conectado uma rede IPv6 com um servidor RA, selecione a opo [ Yes ] e aperte Enter. Levar alguns segundos a busca por servidores RA.
User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ]

Caso DHCP (Protocolo de Congurao Dinmica de Estaes) no seja necessrio, selecione a opo [ No ] com as teclas indicativas e aperte Enter. Caso selecione [ Yes ] o programa dhclient ser executado, e se a busca pelo servidor DHCP tiver sucesso, a congurao da rede ser automaticamente preenchida. Rera-se Seo 19.10 para obter maiores informaes. A prxima tela de congurao da rede apresenta a congurao do dispositivo de rede em um sistema que far papel de servidor de ligao (gateway) em uma rede local. Figura 2-32. Ajustando congurao de rede para ed0

Utilize a tecla Tab para selecionar os campos de informaes e prencha os dados de forma apropriada: Host O nome completamente qualicado da estao, como por exemplo k6-2.example.com neste caso. Domnio O nome do domnio onde sua estao est localizada, como example.com neste caso.

49

Captulo 2. Instalando FreeBSD Gateway IPv4 Endereo IP da estao que encaminhar pacotes para um destino no local. necessrio preencher este campo se a mquina em questo for um cliente de rede. Mantenha este campo em branco se a prpria estao for o gateway para a Internet, partir de sua rede. O gateway IPv4 tambm chamado de gateway padro ou rota padro. Servidor de nomes Endereo IP de seu servidor DNS local. No h servidor de nomes nesta rede local, de forma que o endereo IP do servidor DNS do provedor (208.163.10.2) foi utilizado. Endereo IPv4 O endereo IP desta interface 192.168.0.1 Netmask O bloco de endereamento utilizado nesta rede um bloco de classe C ( 192.168.0.0 - 192.168.255.255). A mscara de rede padro para classe C (255.255.255.0). Opes extra para o ifcong Qualquer opo especca de uma interface de rede que possa ser denida com ifconfig pode ser adicionada aqui. Neste caso no havia nenhuma opo necessria. Use a tecla Tab para selecionar [ OK ] quando terminar, e aperte Enter.
User Confirmation Requested Would you like to Bring Up the ed0 interface right now? [ Yes ] No

Escolhendo [ Yes ] e apertando Enter a mquina estar colocada na rede e pronta para uso. Entretanto, esta opo s estar plenamente operacional aps um reboot.

2.9.2. Congurao do gateway


User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No

Se a mquina em questo for atuar como gateway para a rede local e encaminhar pacotes entre outras redes, escolha [ Yes ] e aperte Enter. Se a mquina for apenas um n da rede, escolha [ No ] e aperte Enter para continuar.

2.9.3. Congurao de Servios de Internet


User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ]

50

Captulo 2. Instalando FreeBSD Se selecionar [ No ] vrios servios populares como telnetd no sero habilitados. Isso signica que usurios remotos no podero acessar esta mquina via telnet. Os usurios locais continuaro podendo acessar estaes remotas via telnet. Estes servios podem ser habilitados aps a instalao, editando o arquivo /etc/inetd.conf com seu editor de texto favorito. Veja Seo 19.14.1 para obter mais informaes. Selecione [ Yes ] caso deseje congurar estes servios durante a instalao. Uma informao adicional ser apresentada:
User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No

Selecione [ Yes ] para continuar.


User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No

Ao escolher [ Yes ] voc poder adicionar servios que sero automaticamente iniciados, apagando os caracteres # ao incio de cada linha.

51

Captulo 2. Instalando FreeBSD Figura 2-33. Editando o arquivo inetd.conf

Aps adicionar os servios desejados, aperte Esc para visualizar um novo menu que permite sair do editor e salvar as modicaes.

2.9.4. FTP Annimo


User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ]

2.9.4.1. Negar FTP annimo Selecionar a opo padro, [ No ] e apertar Enter ainda permitir que usurios tenham contas autenticadas por senhas e utilizar FTP para acessar a estao.

2.9.4.2. Permitir FTP annimo Qualquer pessoa poder acessar a estao, se voc optar por permitir conexes FTP annimas. As implicaes de segurana devem ser consideradas antes de habilitar esta opo. Para mais informaes sobre segurana, veja Captulo 10. Para permitir FTP annimo, use as echas indicativas para selecionar [ Yes ] e aperte Enter. A tela seguinte (ou similar) ir apresentar:

52

Captulo 2. Instalando FreeBSD Figura 2-34. Congurao padro para FTP annimo

Apertar F1 apresentar a tela de ajuda:


This screen allows you to configure the anonymous FTP user. The following configuration values are editable: UID: The user ID you wish to assign to the anonymous FTP user. All files uploaded will be owned by this ID. Group: Which group you wish the anonymous FTP user to be in.

Comment: String describing this user in /etc/passwd

FTP Root Directory: Where files available for anonymous FTP will be kept. Upload subdirectory: Where files uploaded by anonymous FTP users will go.

O diretrio de FTP raiz ser colocado sob /var por padro. Caso voc ainda no tenha bastante experincia, para antecipar suas necessidades de utilizao do FTP, o diretrio /usr pode ser utilizado como base para o Diretrio Raiz de FTP, cando /usr/ftp. Quando estiver satisfeito com os valores, aperte Enter para continuar.
User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No

53

Captulo 2. Instalando FreeBSD Ao selecionar [ Yes ] e apertar Enter, um editor de texto ser automaticamente iniciado, permitindo que voc edite a mensagem de boas-vindas ao FTP. Figura 2-35. Editando a mensagem de boas-vindas do FTP

Este o editor de texto ee. Use as instrues para modicar a mensagem ou modique-a posteriormente com o editor de sua escolha. Preste ateno no nome/localizao do arquivo, na base da tela do editor de textos. Aperte Esc e um menu surgir com a opo padro denida como a) leave editor. Aperte Enter para sair e continuar, e aperte Enter novamente para salvar as alteraes, caso tenha feito alguma.

2.9.5. Sistema de arquivos de rede


O sistema de arquivos de rede (Network File System - NFS) permite compartilhar arquivos atravs de uma rede. Uma estao pode ser congurada como servidor, como cliente, ou ambos. Por gentileza, rera-se Seo 19.6 para obter mais informaes. 2.9.5.1. Servidor NFS
User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ]

Se no houver necessidades de um servidor de sistema de arquivos de rede, selecione [ No ] e aperte Enter. Caso [ Yes ] seja escolhido, uma mensagem ser apresentada, indicando que o arquivo exports deve ser criado.
Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ]

54

Captulo 2. Instalando FreeBSD Aperte Enter para continuar. Um editor de texto ser iniciado, permitindo a criao do arquivo exports bem como sua edio. Figura 2-36. Editando o arquivo exports

Utilize as instrues em questo para adiconar os sistemas de arquivos exportados no momento, ou posteriormente, com um editor de texto de sua escolha. Note a localizao /nome do arquivo na base da tela do editor de textos. Aperte Esc e um menu ir surgir na opo padro, a) leave editor. Aperte Enter para sair e continuar.

2.9.5.2. Cliente NFS O cliente NFS permite que sua estao acesse servidores NFS.
User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ]

Com as teclas de setas, escolha [ Yes ] ou [ No ] como preferir, e aperte Enter.

2.9.6. Perl de Segurana


Um Perl de Segurana ( security prole) um conjunto de opes de segurana que tem o objetivo de tentar atingir o ndice desejado de segurana e convenincia, iniciando e desligando certos programas e conguraes. Quanto maior o perl de segurana, menos programas sero iniciados por padro. Este um dos princpios bsicos de segurana: no execute nada a no ser o necessrio. Por gentileza, perceba que o perl de segurana no passa de uma congurao padro. Todos programas podem ser habilitados e desabilitados aps a instalao, bastando adicionar as linhas adequadas ao arquivo /etc/rc.conf. Para obter mais informaes, por gentileza rera-se pgina de manual rc.conf(5).

55

Captulo 2. Instalando FreeBSD A tabela a seguir descreve o que cada perl de segurana faz. As colunas so as escolhas para seus perfs, e as linhas so os programas ou funes que o perl habilita ou desabilita. Tabela 2-4. Perfs de segurana disponveis Extremo sendmail(8) sshd(8) portmap(8) Servidor NFS securelevel(8) NO NO NO NO SIM b Moderado SIM SIM TALVEZ a SIM NO

Notas: a. A opo habilitada apenas se a estao foi congurada como servidor ou cliente NFS anteriormente durante a instala
User Confirmation Requested Do you want to select a default security profile for this host (select No for "medium" security)? [ Yes ] No

Selecionar [ No ] e apertar Enter denir o nvel de segurana em mdio. Selecionar [ Yes ] e apertar Enter permitir a seleo de um perl de segurana diferente. Figura 2-37. Opes do Perl de Segurana

Aperte F1 para apresentar a ajuda. Aperte Enter para voltar ao menu de seleo. Utilize as teclas indicativas para escolher a opo mdia ( Medium) a no ser que esteja certo de outro nvel que atenda suas necessidades. Com o [ OK ] destacado, aperte Enter. Uma mensagem de conrmao apropriada ser apresentada, dependendo de que denio de segurana fora escolhida.
Message

56

Captulo 2. Instalando FreeBSD

Moderate security settings have been selected. Sendmail and SSHd have been enabled, securelevels are disabled, and NFS server setting have been left intact. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a standard set of out-of-box defaults to start with. To change any of these settings later, edit /etc/rc.conf [OK] Message Extreme security settings have been selected. Sendmail, SSHd, and NFS services have been disabled, and securelevels have been enabled. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a more secure set of out-of-box defaults to start with. To change any of these settings later, edit /etc/rc.conf [OK]

Aperte Enter para continuar com a congurao da ps-instalao.


AtenoO perl de segurana no Tiro e Queda! Mesmo se as denies extremas forem utilizadas, necessrio manter-se atualizado com os problemas de seguranas, lendo as listas de discusso (../handbook/eresources.html#ERESOURCES-MAIL) apropriadas, utilizando boas senhas e mailing geralmente aderindo boas prticas de segurana. A opo apenas dene um ndice de congurana conveniente j na instalao.

2.9.7. Conguraes do console do sistema


Existem vrias opes disponveis para a customizao do console do sistema.
User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No

Para visualizar e congurar tais opes, selecione [ Yes ] e aperte Enter.

57

Captulo 2. Instalando FreeBSD Figura 2-38. Opes de congurao do console do sistema

Uma das opes normalmente utilizadas a proteo de tela. Use as setas para selecionar Saver e aperte Enter. Figura 2-39. Opes da proteo de tela

Escolha o protetor de tela desejado usando as setas, e aperte Enter. O menu de congurao do console do sistema ir resurgir. O intervalo temporal padro 300 segundos. Para modica-lo selecione Saver novamente. No menu de opes do protetor de tela selecione Timeout e aperte Enter. Um menu ir surgir:

58

Captulo 2. Instalando FreeBSD Figura 2-40. Tempo para proteo de tela

O valor pode ser modicado, em seguida aperte [ OK ] e Enter para voltar ao menu de opes do protetor de tela. Figura 2-41. Saida da congurao do console do sistema

Selecione Exit e aperte Enter para continuar ao menude congurao de ps-instalao.

2.9.8. Denindo Zona Temporal (Time Zone)


Denir a zona temporal de sua estao possibilitar que ela corrija automaticamente seus horrios para os padres regionais, e realizar funes de horrio de forma apropriada. O exemplo apresentado para uma estao localizada na faixa de horrio do Leste dos Estados Unidos. Sua opo vai variar de acordo com sua localizao geogrca.
User Confirmation Requested

59

Captulo 2. Instalando FreeBSD


Would you like to set this machines time zone now? [ Yes ] No

Selecione [ Yes ] e aperte Enter para selecionar o fuso-horrio.


User Confirmation Requested Is this machines CMOS clock set to UTC? If it is set to local time or you dont know, please choose NO here! Yes [ No ]

Selecione [ Yes ] ou [ No ] de acordo com a forma como o relgio a sua mquina est congurado, e aperte Enter. Figura 2-42. Selecione sua regio

A regio apropriada selecionada usando as setas e apertando Enter.

60

Captulo 2. Instalando FreeBSD Figura 2-43. Selecione seu pas

Selecione o pas apropriado com as teclas de setas e aperte Enter. Figura 2-44. Selecione o Fuso-Horrio

A zona temporal apropriada pode ser selecionada com as teclas indicativas e apertando Enter.
Confirmation Does the abbreviation EDT look reasonable? [ Yes ] No

Conrme a abreviao para a zona temporal em questo se estiver correta. Aperte Enter para continuar com a congurao ps-instalao.

61

Captulo 2. Instalando FreeBSD

2.9.9. Compatibilidade Linux


User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No

Selecionando [ Yes ] e apertando Enter permitir a execuo de aplicaes Linux no FreeBSD. A instalao adicionar os pacotes apropriados para viabilizar a compatibilidade Linux. Se voc estiver instalando o sistema por FTP, a estao necessitar estar conectada Internet. As vezes um stio FTP remoto no ter todas distribuies como a compatibilidade binria Linux. Esta compatibilidade pode ser instalada posteriormente, se desejado.

2.9.10. Conguraes do Mouse


Esta opo permitir que o usurio copie e cole texto no console e aplicaes, com mouse de 3 botes. Se voc estiver utilizando um mouse de 2 botes, rera-se pgina de manual moused(8), aps a instalao, para obter detalhes sobre como emular o terceiro boto. Este exemplo aborda um mouse no-USB (como um mouse PS/2 ou serial - COM):
User Confirmation Requested Does this system have a non-USB mouse attached to it? [ Yes ] No

Selecione [ Yes ] para congurar um mouse no-USB ou [ No ] para um que seja USB, em seguida aperte Enter. Figura 2-45. Selecione o tipo do protocolo de mouse

Utilize as setas para escolher Type e aperte Enter.

62

Captulo 2. Instalando FreeBSD Figura 2-46. Denindo o protocolo do mouse

O mouse utilizado neste exemplo um PS/2, ento o padro, Auto bastante apropriado. Para modicar o protocolo utilize as setas para escolher outra opo. Garanta que [ OK ] est marcado e apertte Enter para sair deste menu. Figura 2-47. Congure a porta do mouse

Utilize as echinhas para escolher Port e aperte Enter.

63

Captulo 2. Instalando FreeBSD Figura 2-48. Denindo a porta do mouse

Este sistema possui um mouse PS/2, de forma que PS/2 a opo mais apropriada. Modique a porta com as setas e aperte Enter caso necessrio. Figura 2-49. Habilite o daemon do mouse

Por ltimo, use as setas e escolha Enable, em seguida aperte Enter para habilitar e testar o daemon do mouse.

64

Captulo 2. Instalando FreeBSD Figura 2-50. Teste o daemon do mouse

Movimente o mouse pela tela e verique se o cursor responde apropriadamente. Se estiver funcional, selecione Yes e tecle Enter. Do contrrio, o mouse no est corretamente congurado selecione No e tente utilizar outras opes de congurao. Selecione Exit com as setas e aperte Enter para voltar ao menu de congurao.

2.9.11. Congurando servios adicionais de rede


Congurar servios de rede pode ser uma tarefa rdua novos usurios, se eles carecem de conhecimento nessa rea. Rede, incluindo a Internet, crtico todo sistema operacional moderno, incluindo FreeBSD; resultado isso que bastante til entender as capacidades de rede do FreeBSD de forma extensa. Fazer esta congurao durante a instalao garantir que os usurios obtenham alguma compreenso dos vrios servios de rede que lhes esto disponiveis. Servios de rede so programas que aceitam entrada de dados de qualquer parte na rede. Todo esforo feito para garantir que estes programas no causaro situaes danosas ao sistema. Infelizmente, programadores no so perfeitos e em dado momento pode acontecer de existirem falhas nos servios de rede que sejam vulnerveis e que possibilitem que usurios mal intencionados faam coisas ruins. importante que voc habilite apenas os servios de rede que voc sabe que precisa. Se houver dvida, melhor no habilitar o servio at descobrir que precisa dele. sempre possvel habilitar o servio mais tarde, re-executando o sysinstall ou utilizando as funcionalidades disponveis no arquivo /etc/rc.conf . Ao selecionar a opo Networking um menu similar ao seguinte, ser apresentado:

65

Captulo 2. Instalando FreeBSD Figura 2-51. Congurao de alto-nvel da rede

A primeira opo, Interfaces, foi previamente coberta durante a seo de congurao dos dispositivos de rede; embora esta opo possa seguramente ser ignorada. Selecionar a opo AMD inicia o suporte ao utilitrio de montagem automtica do BSD. Normalmente esta opo usada em conjunto com o protocolo NFS (veja abaixo) para automatizar a montagem remota de sistema de arquivos. Nenhuma congurao especial necessria. O prximo da linha so as opes do AMD (AMD ags) Ao selecionar esta opo, um menu ir surgir pedindo para voc preencher informaes especcas sobre as opes AMD desejadas. O menu j contm algumas opes padro:
-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map

A opo -a dene a localizao padro de montagem, que denido aqui como sendo /.amd_mnt. A opo -l especica o arquivo de log padro; contudo, quando se dene syslogd, toda atividade de log ser atribuida esta aplicao. O diretrio /host utilizado para montar um sistema de arquivos exportado partir de uma estao remota, enquanto o diretrio /net usado para montar um sistema de arquivos exportado com base em um endereo IP. O arquivo /etc/amd.map dene as opes padro para as exportaes AMD. O FTP annimo permite conexes annimas um servidor FTP. Fique atento aos riscos de segurana envolvidos com esta opo. Outro menu ser apresentado para explicar os riscos de segurana e conguraes em questo. O menu de congurao Gateway denir a estao como um servidor de ligao, como previamente explicado. Esta opo pode ser utilizada para desabilitar a opo de gateway caso ela tenha sido habilitada acidentalmente durante o processo de instalao. A opo Inetd pode ser usada para congurar ou completamente desabilitar o daemon inetd(8) foi discutido anteriormente. A opo Mail utilizada para congurar o agente de transferncia de correio (MTA - Mail Transfer Agent) padro do sistema. Selecionar esta opo o levar ao seguinte menu:

66

Captulo 2. Instalando FreeBSD Figura 2-52. Selecione o MTA padro

Aqui voc pode escolher qual MTA instalar e denir como padro. Um MTA nada mais do que um servidor de correio que entrega mensagens usurios no sistema local e na Internet. Ao selecionar Sendmail o popular servidor Sendmail ser instalado, que o padro no FreeBSD. A opo Sendmail local dene que o Sendmail continuar sendo o MTA padro, mas ir desabilitar a funcionalidade de receber mensagens vindas da Internet. As outras opes aqui, Postx e Exim agem de forma similar ao Sendmail. Ambos entregam mensagens de correio eletrnico; contudo, alguns usurios os preferem como alternativas ao MTA Sendmail. Aps escolher um MTA ou escolher no iniciar nenhum, o menu de congurao da rede aparecer com a prxima opo, o cliente NFS. O cliente NFS congurar o sistema de forma que ele possa se comunicar com um servidor atravs de NFS. Um servidor NFS torna sistemas de arquivos disponveis outras estaes na rede atravs do protocolo NFS . Se a mquina que voc est trabalhando for uma mquina isolada, mantenha esta opo desativada. O sistema poder solicitar maiores conguraes mais tarde; veja Seo 19.6 para obter mais informaes sobre conguraes cliente e servieor. Abaixo desta opo est a opo de servidor NFS que permite que o sistema seja ajustado como tal. As informaes necessrias para iniciar as chamadas remotas de procedimentos, RPC, so adicionadas com esta opo. O RPC utilizado para coordenar as conexes entre estaes e programas. Na prxima linha est a opo Ntpdate que trata da sincronizao de hora. Ao seleciona-la, um menu como o seguinte ser apresentado:

67

Captulo 2. Instalando FreeBSD Figura 2-53. Congurao Ntpdate

Neste menu, selecione o servidor que for mais prximo de sua localizao. Um servidor mais prximo tornar a sincronia de horrios mais precisa, pois um servidor distante pode provocar latncia na conexo. A opo seguinte PCNFSD. Seleciona-la instalar o pacote net/pcnfsd partir da coleo de ports. uma aplicao til que oferece servios de autenticao NFS em sistemas que so incapazes de oferecer tais servios por si s, como o sistema operacional DOS da Microsoft. Agora ser necessrio paginar um pouco a tela para visualizar as outras opes: Figura 2-54. Congurao da rede em baixo nvel

Os utilitrios rpcbind(8), rpc.statd(8), e rpc.lockd(8) so todos utilizados para chamadas remotas de procedimento (RPC). O utilitrio rpcbind.8 gerencia a comunicao entre servidores e clientes NFS, e necessrio para que os servidores NFS operem de forma correta. O daemon rpc.statd interage com o rpc.statd em outra estao, para prover monitorao do estado da conexo. O estado relatado normalmente mantido no arquivo /var/db/statd.status. A opo nal aqui listada rpc.lockd que, ao ser selecionada, prov servio de

68

Captulo 2. Instalando FreeBSD restrio de acesso aos arquivos. Normalmente ele utilizado em conjunto com o rpc.statd para monitorar quais estaes esto requisitando acesso simultaneo aos arquivos e com que frequncia os requisita. Enquanto estas ltimas duas opes so sensacionais para depurao, no so necessrias para o correto funcionamento de clientes e servidores NFS . Um pouco mais abaixo na lista de opes, est o tem Routed, que na verdade no passa de um daemon de roteamento. O routed(8) gerencia tabela de roteamentos na rede, descobre roteadores multicast e distribui uma cpia de sua tabela de roteamento qualquer estao sicamente conectada rede, que tenha funo de gateway (veja as pginas de manual icmp(4) e udp(4)). Ao ser selecionada, um menu ser apresentado solicitando a localizao padro para o utilitrio. A localizao padro j est denida, e pode ser selecionada com a tecla Enter. Em seguida voc ver um outro menu, desta feita solicitando opes extras serem passadas ao routed. A opo padro -q e j deve estar disponvel na tela. Na linha seguinte est a opo Rwhod que inicia a aplicao rwhod(8) durante a inicializao do sistema. O utilitrio rwhod envia mensagens do sistema em broadcast para toda a rede, periodicamente, ou adquire tais informaes quando operando em modo consumidor . Mais informaes podem ser encontradas nas pginas de manual ruptime(1) e rwho(1). A prxima opo na lista o daemon sshd(8). Trata-se do servidor de terminal seguro do OpenSSH e altamente recomendvel em substituio aos tradicionais servidores telnet e FTP. O servidor sshd utilizado para estabelecer uma ligao segura entre uma estao e outra, por meio de conexes criptografadas. Finalmente, a opo de Extenses TCP. Ela habilita as extenses TCP denidas na RFC 1323 e RFC 1644. Em vrias estaes estas extenses podem aumentar a velocidade das conexes, mas em outras pode causar interrupo da conexo. Estas extenses no so recomendadas para servidores, mas podem trazer bons benefcios em estaes cliente. Agora que voc congurou os servios de rede, pode paginar at o tem mais alto e escolher a opo Exit e continuar para a prxima seo de congurao.

2.9.12. Congurao do servidor X


Para utilizar uma interface grca com o usurio, como o KDE, GNOME, ou vrios outros, o servidor X necessitar ser congurado.
Nota: Para utulizar o XFree86 como usurio no root ser necessrio ter o pacote x11/wrapper instalado. Ele instalado por padro partir do FreeBSD 4.7. Em verses anteriores ao 4.7, ele deve ser adicionado por meio do menu de seleo de pacotes.

Para ver se sua placa de vdeo suportada, verique o stio WWW do XFree86 (http://www.xfree86.org/).
User Confirmation Requested Would you like to configure your X server at this time? [ Yes ] No

Ateno necessrio conhecer as especicaes do seu monitor e informaes sobre sua placa de vdeo. Danos no equipamento podem eventualmente ocorrer caso as conguraes estejam incorretas. Caso voc no tenha estas informaes, selecione [ No ] e faa a congurao de vdeo depois que a instalao for concluda, quando tiver estas informaes em mos. Pode utilizar o /stand/sysinstall, selecionando a opo Congure

69

Captulo 2. Instalando FreeBSD


e depois disso, XFree86, para retornar este processo de congurao a qualquer momento depois do sistema instalado. Congurao imprpria do servidor X neste momento pode causar instabilidade na mquina. Normalmente aconselhvel congurar o servidor X uma vez que a instalao esteja terminada.

Caso tenha as informaes sobre o monitor e placa de rede, escolha [ Yes ] e aperte Enter para proceder congurao do servidor X. Figura 2-55. Menu de seleo do mtodo de congurao

Existem diversas formas de congurar o servidor X. Use as teclas indicativas e selecione um dos mtodos disponveis no sysinstall, e aperte Enter. Leia todas as instrues cuidadosamente. Os mtodos xf86cfg e xf86cfg -textmode podem fazer a tela car escura e demorar alguns poucos segundos para iniciar. Seja paciente. seguir ser apresentada uma ilustrao da ferramenta de congurao xf86cong. As opes de congurao que voc zer dependero do equipamento disponvel na sua mquina, de forma que suas escolhas certamente sero diferentes das apresentadas:
Message You have configured and been running the mouse daemon. Choose "/dev/sysmouse" as the mouse port and "SysMouse" or "MouseSystems" as the mouse protocol in the X configuration utility. [ OK ] [ Press enter to continue ]

Indica que a congurao prvia do daemon do mouse foi detectada. Aperte Enter para continuar. Ao iniciar o xf86cong, uma breve introduo ser apresentada:
This program will create a basic XF86Config file, based on menu selections you make.

70

Captulo 2. Instalando FreeBSD


The XF86Config file usually resides in /usr/X11R6/etc/X11 or /etc/X11. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card. SuperProbe may be able to help with this. Press enter to continue, or ctrl-c to abort.

Apertando Enter, a congurao do mouse ser iniciada. Garanta que as instrues sejam seguidas e use o tem Mouse Systems como protocolo de mouse e /dev/sysmouse como porta para o mesmo, se o seu dispositivo de mouse for PS/2 como no modelo ilustrado anteriormente.
First specify a mouse protocol type. 1. 2. 3. 4. 5. 6. 7. 8. 9. Choose one from the following list:

Microsoft compatible (2-button protocol) Mouse Systems (3-button protocol) & FreeBSD moused protocol Bus Mouse PS/2 Mouse Logitech Mouse (serial, old type, Logitech protocol) Logitech MouseMan (Microsoft compatible) MM Series MM HitTablet Microsoft IntelliMouse

If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type: mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port (see the ClearDTR/ClearRTS options). Enter a protocol number: 2 You have selected a Mouse Systems protocol mouse. If your mouse is normally in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options may cause it to switch to Mouse Systems mode when the server starts. Please answer the following question with either y or n. Do you want to enable ClearDTR and ClearRTS? n You have selected a three-button mouse protocol. It is recommended that you do not enable Emulate3Buttons, unless the third button doesnt work. Please answer the following question with either y or n. Do you want to enable Emulate3Buttons? y

71

Captulo 2. Instalando FreeBSD


Now give the full device name that the mouse is connected to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. On FreeBSD, the default is /dev/sysmouse. Mouse device: /dev/sysmouse

O teclado deve ser congurado no prximo tem. Um modelo genrico de 1001 teclas apresentado como modelo ilustrativo. Qualquer nome pode ser usado como variante, ou simplesmente aperte Enter para aceitar o valor padro.
Please select one of the following keyboard types that is the better description of your keyboard. If nothing really matches, choose 1 (Generic 101-key PC) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Generic 101-key PC Generic 102-key (Intl) PC Generic 104-key PC Generic 105-key (Intl) PC Dell 101-key PC Everex STEPnote Keytronic FlexPro Microsoft Natural Northgate OmniKey 101 Winbook Model XP5 Japanese 106-key PC-98xx Series Brazilian ABNT2 HP Internet Logitech iTouch Logitech Cordless Desktop Pro Logitech Internet Keyboard Logitech Internet Navigator Keyboard Compaq Internet Microsoft Natural Pro Genius Comfy KB-16M IBM Rapid Access IBM Rapid Access II Chicony Internet Keyboard Dell Internet Keyboard

Enter a number to choose the keyboard. 1

Please select the layout corresponding to your keyboard

1 2 3 4 5 6

U.S. English U.S. English w/ ISO9995-3 U.S. English w/ deadkeys Albanian Arabic Armenian

72

Captulo 2. Instalando FreeBSD


7 8 9 10 11 12 13 14 15 16 17 18 Azerbaidjani Belarusian Belgian Bengali Brazilian Bulgarian Burmese Canadian Croatian Czech Czech (qwerty) Danish

Enter a number to choose the country. Press enter for the next page 1

Please enter a variant name for us layout. for default variant us

Or just press enter

Please answer the following question with either y or n. Do you want to select additional XKB options (group switcher, group indicator, etc.)? n

Em seguida, vamos para a congurao do monitor. Jamais exceda as taxa de frequncia de seu equipamento. Danos podero ocorrer. Caso tenha alguma dvida, realize esta congurao depois que tiver estas informaes em mos.
Now we want to set the specifications of the monitor. The two critical parameters are the vertical refresh rate, which is the rate at which the whole screen is refreshed, and most importantly the horizontal sync rate, which is the rate at which scanlines are displayed. The valid range for horizontal sync and vertical sync should be documented in the manual of your monitor. If in doubt, check the monitor database /usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there. Press enter to continue, or ctrl-c to abort.

You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industrystandard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with a horizontal sync range that is beyond the capabilities of your monitor. If in doubt, choose a conservative setting.

73

Captulo 2. Instalando FreeBSD


hsync in kHz; monitor type with characteristic modes 31.5; Standard VGA, 640x480 @ 60 Hz 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600) 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz Enter your own horizontal sync range

1 2 3 4 5 6 7 8 9 10 11

Enter your choice (1-11): 6 You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industrystandard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather than 43 Hz). 1 2 3 4 5 50-70 50-90 50-100 40-150 Enter your own vertical sync range

Enter your choice: 2 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names. The strings are free-form, spaces are allowed. Enter an identifier for your monitor definition: Hitachi

A seleo de uma placa de rede partir de uma lista de equipamentos disponveis, a prxima opo. Se voc passar da sua placa na lista, continue e aperte Enter e a lista comecar desde o princpio novamente. Apenas um trecho da lista ser apresentada:
Now we must configure video card specific settings. At this point you can choose to make a selection out of a database of video card definitions. Because there can be variation in Ramdacs and clock generators even between cards of the same model, it is not sensible to blindly copy the settings (e.g. a Device section). For this reason, after you make a selection, you will still be asked about the components of the card, with the settings from the chosen database entry presented as a strong hint. The database entries include information about the chipset, what driver to run, the Ramdac and ClockChip, and comments that will be included in the Device section. However, a lot of definitions only hint about what driver to run (based on the chipset the card uses) and are untested. If you cant find your card in the database, theres nothing to worry about.

74

Captulo 2. Instalando FreeBSD


You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea (e.g. a GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of hardware as can be). Do you want to look at the card database? y

288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305

Matrox Millennium G200 8MB mgag200 Matrox Millennium G200 SD 16MB mgag200 Matrox Millennium G200 SD 4MB mgag200 Matrox Millennium G200 SD 8MB mgag200 Matrox Millennium G400 mgag400 Matrox Millennium II 16MB mga2164w Matrox Millennium II 4MB mga2164w Matrox Millennium II 8MB mga2164w Matrox Mystique mga1064sg Matrox Mystique G200 16MB mgag200 Matrox Mystique G200 4MB mgag200 Matrox Mystique G200 8MB mgag200 Matrox Productiva G100 4MB mgag100 Matrox Productiva G100 8MB mgag100 MediaGX mediagx MediaVision Proaxcel 128 ET6000 Mirage Z-128 ET6000 Miro CRYSTAL VRX Verite 1000

Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. 288 Your selected card definition: Identifier: Matrox Millennium G200 8MB Chipset: mgag200 Driver: mga Do NOT probe clocks or use any Clocks line. Press enter to continue, or ctrl-c to abort.

Now you must give information about your video card. This will be used for the "Device" section of your video card in XF86Config. You must indicate how much video memory you have. It is probably a good idea to use the same approximate amount as that detected by the server you intend to use. If you encounter problems that are due to the used server not supporting the amount memory you have (e.g. ATI Mach64 is limited to 1024K with the SVGA server), specify the maximum amount supported by the server.

75

Captulo 2. Instalando FreeBSD

How much video memory do you have on your video card: 1 2 3 4 5 6 256K 512K 1024K 2048K 4096K Other

Enter your choice: 6 Amount of video memory in Kbytes: 8192 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names (possibly from a card definition). Your card definition is Matrox Millennium G200 8MB. The strings are free-form, spaces are allowed. Enter an identifier for your video card definition:

Em seguida, os modos de vdeo so denidos para as resolues desejadas. Normalmente as variaes teis so 640x480, 800x600 e1024x768, mas todos dependem da placa de vdeo os suportar, bem o monitor, e principalmente, se for adequado ao conforto visual. Ao selecionar a escala de cores, escolha o modo mais alto que sua placa suportar.
For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "640x480" "800x600" "1024x768" "1280x1024" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 2 3 4 Change the modes for 8-bit (256 colors) Change the modes for 16-bit (32K/64K colors) Change the modes for 24-bit (24-bit color) The modes are OK, continue.

Enter your choice: 2 Select modes from the following list: 1 2 3 4 5 "640x400" "640x480" "800x600" "1024x768" "1280x1024"

76

Captulo 2. Instalando FreeBSD


6 7 8 9 a b c "320x200" "320x240" "400x300" "1152x864" "1600x1200" "1800x1400" "512x384"

Please type the digits corresponding to the modes that you want to select. For example, 432 selects "1024x768" "800x600" "640x480", with a default mode of 1024x768. Which modes? 432

You can have a virtual screen (desktop), which is screen area that is larger than the physical screen and which is panned by moving the mouse to the edge of the screen. If you dont want virtual desktop at a certain resolution, you cannot have modes listed that are larger. Each color depth can have a differently-sized virtual screen Please answer the following question with either y or n. Do you want a virtual screen that is larger than the physical screen?

For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "1024x768" "800x600" "640x480" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 2 3 4 Change the modes for 8-bit (256 colors) Change the modes for 16-bit (32K/64K colors) Change the modes for 24-bit (24-bit color) The modes are OK, continue.

Enter your choice: 4

Please specify which color depth you want to use by default: 1 2 3 4 5 1 bit (monochrome) 4 bits (16 colors) 8 bits (256 colors) 16 bits (65536 colors) 24 bits (16 million colors)

77

Captulo 2. Instalando FreeBSD

Enter a number to choose the default depth. 4

Finalmente, a congurao deve ser salva. Garanta que /etc/XF86Config a localizao padro na hora de salvar seu arquivo de congurao.
I am going to write the XF86Config file now. overwrite a previously configured one. Shall I write it to /etc/X11/XF86Config? y Make sure you dont accidently

Caso a congurao falhe, voc pode tentar congurar a interface grca novamente, selecionando [ Yes ] quando a seguinte mensagem surgir:
User Confirmation Requested The XFree86 configuration process seems to have failed. Would you like to try again? [ Yes ] No

Caso tenha diculdades com a congurao do XFree86, selecione [ No ] e aperte Enter e continue o processo de instalao. Aps a instalao, utilize o xf86cfg -textmode ou xf86config para acessar a lista de utilitrios para congurao em modo texto, lembrando que voc deve estar logado como usurio root. Existe um mtodo adicional de congurao do XFree86 descrito no Captulo 5. Se sua escolha for no congurar o XFree86 agora, o menu seguinte ser a seleo de pacotes. Por padro, o servidor grco pode ser interrompido a qualquer momento, com a sequncia de teclas Ctrl+Alt+Backspace. Se algo errado acontecer voc pode utilizar esta opo para evitar que seu equipamento seja danicado. As conguraes padro que permitem a alternncia entre motods de vdeo pode ser utilizada, com a sequncia de teclas Ctrl+Alt++ ou Ctrl+Alt+-. Aps a instalao, o monitor pode ser ajustado em sua altura, largura, ou centralizao, por meio do xvidtune depois que o XFree86 estiver instalado. Existem advertncias que so apresentadas com conguraes imprprias puderem danicar seu equipamento. Considere-as. No faa nada se tiver dvidas sobre a integridade de seu hardware. Ao invs disso, use os controles do monitor para ajustar a visualizao do X Window. Podem haver diferenas de tamanho no monitor ao alternar entre a interface grca e a interface de modo texto, mas isso ainda melhor do que causar danos seu equipamento. Leia a pgina de manual do xvidtune(1) antes de realizar qualquer ajuste. Aps a congurao com sucesso do XFree86 a prxima etapara ser a escolha de um gerenciador de janelas padro para seu desktop.

2.9.13. Escolha o Desktop X padro


Existe uma variedade de gerenciadores de janelas disponveis. Eles variam de ambientes extremamente bsicos ambientes completos de trabalho, com um leque enorme de aplicaes. Algumas opes necessitam de espao mnimo em disco, e pouca memria, enquanto outros com mais funcionalidades tem necessidade de mais recursos. A

78

Captulo 2. Instalando FreeBSD melhor maneira de denir qual se encaixa melhor com voc experimentar diferentes opes. Eles esto disponveis na coleo de ports ou como pacotes, e podem ser adicionados aps a instalao. Voc pode escolher entre um dos mais populares ambientes de trabalho e instalar/congurar como desktop padro. Com isso voc poder inicia-lo logo aps a instalao. Figura 2-56. Escolha o desktop padro

Use as teclas indicativas para selecionar o seu desktop preferido, e aperte Enter. A instalao do desktop escolhido ocorrer.

2.9.14. Instalao de pacotes


Pacotes so binrios pr-compilados, e so uma maneira conveniente de instalar aplicaes. A instalao de um pacote ser apresentada com o propsito de ilustrao. Pacotes adicionais podem ser adicionados tambm neste momento, se desejado. Aps a instalao, o /stand/sysinstall pode ser usado para a instalao de pacotes adicionais.
User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No

Selecionar [ Yes ] e apertar Enter o levar s telas de seleo de pacotes:

79

Captulo 2. Instalando FreeBSD Figura 2-57. Selecione a categoria do pacote

Apenas os pacotes disponveis na mdia de instalao em uso estaro disponveis para serem adicionados a qualquer momento. Todos pacotes disponveis sero apresentados sob a categoria All, que voc pode selecionar agora, ou ento selecione uma categoria particular. Selecione a opo desejado com as teclas indicativas e aperte Enter. Um menu ser apresentado, mostrando todos os pacotes disponveis para a categoria selecionada: Figura 2-58. Seleo de pacotes

O interpretador de comandos bash est selecionado neste exemplo. Selecione quantos pacotes desejar, bastando para tal marcar o tem em questo e apertar a tecla Space . Uma breve descrio de cada pacote aparecer na diagonal inferior esquerda da tela. A tecla Tab pode ser utilizada para alternar o cursor entre o ltimo pacote selecionado, a opo [ OK ] e a opo [ Cancel ].

80

Captulo 2. Instalando FreeBSD Quando terminar de marcar os pacotes para instalao, aperte Tab apenas uma vez para passar opo [ OK ] e aperte Enter para voltar ao menu de seleo de pacote. As teclas de setas esquerda e direita tambm serve para alternar entre [ OK ] e [ Cancel ]. Este mtodo pode ser utilizado para selecionar [ OK ] e em seguida apertar Enter para voltar ao menu de seleo de pacotes. Figura 2-59. Instalao de pacotes

Use a tecla Tab e as setas para selecionar [ Install ] e aperte Enter. Ser necessrio conrmar que voc deseja instalar os pacotes escolhidos: Figura 2-60. Conrmar instalao de pacotes

A instalao dos pacotes ser iniciada to logo [ OK ] seja selecionado e o Enter seja apertado. Mensagens de instalao sero apresentadas at que a mesma esteja terminada. Preste ateno se houverem mensagens de erro. A congurao nal continua assim que os pacotes forem instalados. Se voc no selecionou pacote algum, e deseja voltar congurao nal, selecione Install de qualquer forma.

81

Captulo 2. Instalando FreeBSD

2.9.15. Adicionar Usurios e Grupos


Voc deve adicionar ao menos um usurio durante a instalao, de forma que voc possa utilizar o sistema sem se logar como superusurio, root. A partio raiz normalmente pequena, e utilizar aplicaes como usurio root pode rapidamente consumir todo seu espao em disco. O problema maior que como superusurio voc pode danicar seu sistema sem querer, como comentado na mensagem a seguir:
User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No

Selecione [ Yes ] e aperte Enter para continuar com a adio de usurio. Figura 2-61. Escolha User

Escolha a opo User com as setas e aperte Enter.

82

Captulo 2. Instalando FreeBSD Figura 2-62. Adicionando informaes do usurio

As descries a seguir aparecero na base da tela, conforme os tens vo sendo selecionados com o Tab, de forma a auxiliar o usurio no momento de adicionar as informaes necessrias: Login ID O nome de login para o novo usurio (imperativo). UID Identicao numerica para o novo usurio (mantenha o campo em branco para denio automtica). Group O nome do grupo que o usurio far parte (mantenha o campo em branco para uma denio automtica). Password A senha para o novo usurio (dena este campo com cuidado!). Full name Nome completo do novo usurio (comentrio). Member groups Grupos auxiliares a que este usurio pertencer (ter os mesmos direitos denidos pra este grupo). Home directory Diretrio home (mantenha em branco para o padro). Login shell o interpretador de comandos do usurio (deixe em branco para usar o padro, por exemplo /bin/sh). O interpretador de comandos (shell)foi modicado de /bin/sh para /usr/local/bin/bash para usar o interpretador bash que foi previamente instalado como pacote. No tente usar um interpretador de comandos que

83

Captulo 2. Instalando FreeBSD ainda no existe no sistema ou voc no conseguir se logar. O interpretador de comando mais utilizado no mundo BSD o C shell, que pode ser compreendido como /bin/tcsh. O usurio tambm foi adicionado ao grupo wheel de forma que ele possa se tornar superusurio e assumir os privilgios do root. Quando estiver satisfeito, aperte [ OK ] e o menu de gerenciamento de usurio e grupo ser apresentado novamente: Figura 2-63. Sair do gerenciamento de usurio e grupo

Pode-se adicionar grupos neste momento, caso hajam necessidades especcas. De outra forma, isso pode ser feito atravs do /stand/sysinstall depois que a instalao estiver completa. Quando terminar de adicionar os usurios, selecione Exit com as setas e aperte Enter.

2.9.16. Dena a senha de root


Message Now you must set the system managers password. This is the password youll use to log in as "root". [ OK ] [ Press enter to continue ]

Aperte Enter para denir a senha de root. A senha dever ser digitada corretamente duas vezes. desnecessrio dizer, mas garanta que voc no esquecer sua senha.
Changing local password for root. New password : Retype new password :

A instalao continuar depois que a senha for denida corretamenta.

84

Captulo 2. Instalando FreeBSD

2.9.17. Saindo da instalao


Caso queira congurar algum dispositivo de rede adicional ou qualquer outra congurao, voc pode faze-lo agora ou aps a instalao, atravs do /stand/sysinstall.
User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ]

Selecione [ No ] com a tecla indicativa e aperte Enter para voltar ao menu principal de instalao. Figura 2-64. Sair da instalao

Escolha[X Exit Install] com as teclas indicativas e aperte Enter. Ser necessrio conrmar que deseja sair da instalao:
User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No

Escolha [ Yes ] e remova o disquete caso voc tenha usado-o como mdia de inicializao. O dispositivo de CDROM permanecer travado at que o sistema comece reinicializar. Depois o dispositivo de CDROM ser destravado e o disco poder ser retirado (seja rpido). O sistema ir reiniciar, preste ateno a qualquer mensagem de erro que possa aparecer.

2.9.18. Inicializao do FreeBSD


2.9.18.1. Inicializao do FreeBSD em i386 Se tudo correr bem, voc ver uma srie de mensagens na tela, e em dado momento chegar ao prompt de login.

85

Captulo 2. Instalando FreeBSD Voc pode acompanhar o contedo das mensagens apertando Scroll-Lock e usando as teclas PgUp e PgDn. Apertando Scroll-Lock a tela ser destravada e retornar prompt. A mensagem completa no ser apresentada (por limitao de buffer) mas pode ser acompanhada por linha de comando depois que voc se logar, digitando dmesgno terminal. Logue-se com o usurio e senha denidos durante a instalao do sistema ( rpratt, neste exemplo). Evite logar-se como root se no for necessrio. Mensagens tpicas de inicializao (informao sobre a verso do sistema que est sendo inicializada foi omitida):
Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered

86

Captulo 2. Instalando FreeBSD


chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000

87

Captulo 2. Instalando FreeBSD


Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password:

A gerao das chaves RSA e DSA podem levar algum tempo em estaes lentas. Isso acontece apenas na primeira inicializao de um sistema recm instalado. Inicializaes subsequentes sero mais rpidas. Se o servidor X foi congurado e um ambiente de trabalho padro foi denido, poder ser iniciado digitando startx na linha de comando.

2.9.18.2. Inicializao do FreeBSD em Alpha Uma vez terminados os procedimentos de instalao, ser possvel iniciar o FreeBSD ao digitar algo, no terminal SRM, algo como:
>>>BOOT DKC0

Isso instrui o sistema interno a iniciar um disco especco Para garantir que o FreeBSD seja inicializado automaticamente no futuro, utilize estes comandos:
>>> >>> >>> >>>

SET SET SET SET

BOOT_OSFLAGS A BOOT_FILE BOOTDEF_DEV DKC0 AUTO_ACTION BOOT

88

Captulo 2. Instalando FreeBSD As mensagens de inicializao sero similares (mas no idnticas) aquelas produzidas pelo processo de boot no FreeBSD em i386.

2.9.19. Desligando o FreeBSD


importante desligar o sistema operacional de forma apropriada. No desligue a energia simplesmente. Primeiro, se torne superusurio digitando su na linha de comando e entrando com a senha de root. Isso s funcionar se o usurio for membro do grupo wheel. Do contrrio, logue-se como root e use o comando shutdown -h now.
The operating system has halted. Please press any key to reboot.

seguro desligar o computador depois que o comando de encerramento for dado, e a mensagem Please press any key to reboot aparecer. Se alguma tecla for pressionada ao invs do boto de energia do computador, o sistema reiniciar. Ainda seria possvel utilizar a combinao de teclas Ctrl+Alt+Del para reiniciar o sistema; contudo isso no recomendado durante a operao normal do sistema.

2.10. Hardware Suportado


O FreeBSD atualmente roda em uma variedade de PCs com processadores x86 Intel, AMD, Cyrix ou NexGeon com uma grande variedade de barramentos ISA, VLB, EISA e PCI, bem como em uma srie de mquinas baseadas em processadores Compaq alpha. Ainda dispe de suporte diversas controladoras SCSI, IDE ou ESDI, placas PCMCIA, dispositivos USB e placas seriais. O FreeBSD suporta tambm o barramento de microcanal da IBM (MCA). Uma lista de equipamentos suportados acompanha o FreeBSD em cada verso, no documento Notas de Hardware do FreeBSD. Este documento normalmente pode ser encontrado no arquivo chamado HARDWARE.TXT, na raiz do CDROM do FreeBSD ou algum stio FTP, ou ainda no menu de documentao do sysinstall. O documento lista, para cada arquitetura, os equipamentos que so reconhecidamente suportadados em cada verso do FreeBSD. Copias da lista de equipamentos suportados para cada verso e arquitetura do sistema podem ainda ser encontradas na pgina de Informao sobre Verses (http://www.FreeBSD.org/releases/index.html) do stio WWW do FreeBSD.

2.11. Resoluo de problemas


A seo seguir cobre a resoluo bsica de de problemas durante a instalao do FreeBSD, como os problemas que normalmente os usurios reportam. Existem ainda algumas questes e respostas para as pessoas que desejam iniciar o FreeBSD em conjunto com MS-DOS.

2.11.1. O que fazer se algo der errado


Devido a vrias limitaes da arquitetura de PC, impossvel que o reconhecimento de dispositivos seja 100% convel, contudo, existem algumas coisas que podem ser feitas quando ela falhar. Verique o documento Notas de Hardware da sua verso do FreeBSD e garanta que seu equipamento suportado.

89

Captulo 2. Instalando FreeBSD Se seu equipamento for ocialmente suportado e ainda assim voc encontrar incoerncia em seu controle ou qualquer outro problema, resete seu computador, e quando a opo de congurao visual do kernel for dada, escolha-a. Isso permitir que voc dena informaes de seu equipamento para o sistema. O kernel no disco de inicializao congurado de forma a oferecer o maior suporte possvel a inmeros equipamentos, sempre com pr-denio de recursos no padro do fabricante, em termos de IRQs e endereos de E/S, bem como canais DMA. Se seu equipamento foi recongurado, ser necessrio utilizar o editor de conguraes para informar ao FreeBSD como os recursos sero controlados. ainda possvel identicar um dispositivo no presente que conita com algum equipamento que j reconhecido. Neste caso, a congurao dos drivers conitantes devem ser desabilitadas.
Nota: Alguns problemas de instalao podem ser evitados ou aliviados atualizando o firmware de vrios componentes de hardware, notvelmente na maioria dos casos, a placa me. O firmware da placa me tambm costuma ser chamado de BIOS e a maioria das placas-me ou fabricantes de computadores tem um stio WWW onde as informaes e arquivos para atualizaes podem ser encontradas. A maioria dos fabricantes aconselham fortemente que a atualizao da BIOS da placa me no seja realizada a no ser que exista um bom motivo, como a atualizao crtica de inmeros tens. O processo de atualizao pode dar errado, causando danos permanentes ao chip da BIOS.

AtenoNo desabilite qualquer dispositivo que venha a ser utilizado durante a instalao, como a sada padro (tela -- sc0). Se a instalao falhar de forma misteriosa depois que voc saiu do editor de congurao, voc provvelmente removeu ou modicou algo que no deveria. Reinicie o sistema e tente novamente.

No modo de congurao, voc pode:


Listar dispositivos de controles disponveis no kernel. Desabilitar dispositivos de controle para os equipamentos que no esto presentes em seu sistema. Modicar IRQs, DRQs e endereos de E/S utilizados pelo dispositivo de controle.

Depois de ajustar o kernel para que ele esteja de acordo com a congurao de seu equipamento, aperte Q para iniciar o sistema com as novas conguraes. Uma vez que a instalao esteja terminada, todas modicaes que foram feitas se tornaro permanentes, de forma que voc no tenha que refazer a congurao toda vez que for iniciar o sistema. Ainda muito provvel que voc deseje construir um kernel customizado.

2.11.2. Tratando parties MS-DOS j existentes


Muitos usurios costumam querer instalar o FreeBSD em um PC j habitado por sistemas operacionais baseados em Microsoft. Para tais situaes, FreeBSD acompanhado de um utilitrio chamado FIPS. Este utilitrio pode ser encontrado no diretrio tools no CD de instalao do sistema, ou baixado dos vrios servidores espelhos do FreeBSDs. O utilitrio FIPS permite que uma partio MS-DOS j existente seja redimensionada em duas partes, preservando a partio original e permitindo que o sistema seja instalado no segundo trecho livre da partio. Primeiro, voc tem que desfragmentar sua partio MS-DOS usando o Desfragmentador de Discos do Windows (v pelo Explorer, clique no seu disco rgido com o boto direito do mouse e escolha a opo de desfragementar seu disco), ou use o Norton Disk Tools. Agora o programa FIPS pode ser executado. Ele perguntar as informaes necessrias, basta

90

Captulo 2. Instalando FreeBSD seguir as instrues na tela. Depois voc pode reiniciar o computador e instalar FreeBSD na partio livre. Veja o menu de distribuies de instalao (Distributions) para um valor estimado de quanto espao em disco ser necessrio para o tipo de instalao que voc deseja. Existe ainda um produto muito bom da PowerQuest (http://www.powerquest.com (http://www.powerquest.com/)) chamado PartitionMagic. Esta aplicao muito mais funcional que o FIPS, e altamente recomendado se voc planeja adicionar/remover os sistemas com certa frequncia. Ele custa dinheiro, portanto se voc planeja instalar FreeBSD e mante-lo instalado, FIPS vai te atender muito bem.

2.11.3. Utilizando sistema de arquivos do MS-DOS e do Windows File Systems


No momento o FreeBSD no suporte sistema de arquivos comprimidos com a aplicao Double Space. Portanto o sistema de arquivos deve ser descomprimido antes que o FreeBSD possa acessa-lo. Isso pode ser feito com o Agente de Compresso localizado no men Iniciar> Programas > Ferramentas do sistema. FreeBSD suporta sistemas de arquivos MS-DOS. necessrio usar o comando mount_msdos(8) (que no FreeBSD 5.X se tornou o mount_msdosfs(8)) com os parmetros usuais. A utilizao mais comum deste comando :
# mount_msdos /dev/ad0s1 /mnt

Neste exemplo, o sistema de arquivos MS-DOS est localizado na primeira partio do disco rgido primrio. Sua situao pode ser distinta, verique a sada do comando dmesg, e do mount. Eles devem produzir informaes o bastante para te dar idia sobre a disposio do particionamento.
Nota: Sistemas de arquivos MS-DOS extendidos normalmente so mapeados depois das parties do FreeBSD. Em outras palavras, o nmero da partio podem ser maiores dos que os utilizados pelo FreeBSD. Por padro a primeira partio MS-DOS se for /dev/ad0s1 e a partio FreeBSD for /dev/ad0s2 a partio extendida MS-DOS ser /dev/ad0s3. Para alguns, isto pode ser confuso no incio.

Parties NTFS podem ser montados de forma similar, usando o comando mount_ntfs(8).

2.11.4. Perguntas e respostas para usurios de Alpha


Esta seo responde algumas perguntas normalmente realizadas sobre a instalao do FreeBSD em sistemas Alpha. 1. Posso iniciar o sistema partir do ARC ou do console da BIOS do Alpha? Noo. FreeBSD, assim como o Tru64 da Compaq e o VMS, s podem ser iniciados partir do console SRM. 2. Socorro, no tenho espao disponvel! Terei que apagar todos os meus dados antes? Infelizmente, sim. 3. Posso montar meu sistema de arquivos do Tru64 da Compaq ou do VMS? No, no no momento.

91

Captulo 2. Instalando FreeBSD

2.12. Guia avanado de instalao


Contribuio de Valentino Vaschetto. Essa seo descreve as formas de instalar o FreeBSD em casos excepcionais.

2.12.1. Instalando FreeBSD em um sistema sem monitor e sem teclado


Esse tipo de instalao chamada instalao decapitada ( headless install, em ingls) porque a estao onde voc quer instalar o FreeBSD no tem um monitor, ou nem sequer tem um dispositivo de sada VGA. Voc pergunta, como isso pode ser possvel? Usando um console serial. Um console serial basicamente utiliza uma outra mquina para a funo de tela principal e teclado de um sistema. Para isso, basta seguir os passos para criar um disquete de instalao, explicado no Seo 2.2.7. Para modicar estes disquetes e iniciar o sistema em um console serial, siga os seguintes passos: 1. Habilitando os disquetes de inicializao em um console serial Se voc iniciar o sistema a partir dos disquetes que voc acabou de criar, ele ir entrar no modo normal de instalao. Ns queremos que o FreeBSD seja iniciado em um console serial, para prosseguirmos com nossa instalao. Para isso, monte o disquete do kern.flp no seu FreeBSD usando o comando mount(8).
# mount /dev/fd0 /floppy

Agora que seu disquete est montado, entre no diretrio em questo:


# cd /floppy

aqui que voc deve congurar o disquete iniciar o processo de instalao por meio de um console serial. necessrio criar um arquivo chamado boot.config contendo a linha /boot/loader -h. Tudo que este comando faz passar uma opo ao processo de inicializao atravs do carregador do sistema, informando que ele deve carregar os componentes em questo, em um console serial.
# echo "/boot/loader -h" > boot.config

Agora que o disquete est corretamente congurado, basta desmontar o disquete usando o comando umount(8)
# cd / # umount /mnt

Agora voc pode retirar o disquete do dispositivo. 2. Conectando seu cabo de modem nulo (Null Modem Cable) Agora necessrio conectar um cabo de modem nulo entre as duas estaes. Conecte o cabo nas portas seriais das duas mquinas. Um cabo serial normal no funcionar aqui , necessrio um cabo de modem nulo, pois ele tem alguns os cruzados internamente. 3. Iniciando a instalao Agora hora de prosseguir com a instalao. Coloque o disquete gerado com a imagem kern.flp no dispositivo de disquetes da estao decapitada e ligue a mquina. 4. Conectando-se sua estao decapitada Agora voc deve se conectar mquina com o comando cu(1):
# cu -l /dev/cuaa0

92

Captulo 2. Instalando FreeBSD isso! Agora voc est conectado estao decapitada atravs de sua sesso cu. Ele pedir para que voc substitua o disco atual pelo mfsroot.flp, e depois disso possibilitar a seleo do tipo de terminal que deve ser utilizado. Escolhe o console colorido do FreeBSD e continue com sua instalao!

2.13. Preparando sua prpria mdia de instalao


Nota: Para evitar redundncias, a expresso disco do FreeBSD neste contexto, refere-se ao CDROM ou DVD do FreeBSD que voc adquiriu ou criou sozinho.

Pode haver algumas situaes onde ser preciso criar sua prpria mdia de instalao ou origem. Pode ser mdia fsica como ta, ou uma origem de onde o sysinstall possa acessar todos os arquivos, como um stio FTP local, ou uma partio MS-DOS. Por exemplo:

Voc tem inmeras mquinas conectadas sua rede local, e apenas um disco do FreeBSD. Voc pretende criar um stio FTP local com o contedo do disco do FreeBSD, e depois permitir que estas mquinas usem o stio FTP em questo ao invs de se conectarem na Internet. Voc tem um disco do FreeBSD, e o FreeBSD no reconhece seu dispositivo de CD/DVD, mas o MS-DOS/Windows reconhece. Voc quer copiar os arquivos de instalao do FreeBSD para uma partio DOS no mesmo computador e ento instalar o FreeBSD partir destes arquivos. O computador onde voc pretende instalar o FreeBSD no tem um dispositivo de CD/DVD nem est na rede, mas voc pode se conectar por cabo paralelo ou serial atravs de um Laplink, em um computador que tem esses dispositivos. Voc quer criar uma ta que pode ser utilizada para a instalao do FreeBSD.

2.13.1. Criando um CD de instalao


Como parte integrante de cada verso, o projeto FreeBSD disponibiliza duas imagens de CD (imagens ISO). Estas imagens podem ser gravadas para gerar o disco de instalao do FreeBSD. Se voc tem um gravador de CD e largura de banda suciente, esta a maneira mais fcil de instalar o FreeBSD. 1. Baixe a imagem ISO correta As imagens ISO de cada verso podem ser baixadas partir de
ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES- arquitetura/verso ou do servidor espelho mais prximo. Substitua as expresses arquitetura e verso com os valores apropriados.

Este diretrio normalmente ter as seguintes imagens: Tabela 2-5. Nomes e signicados das imagens ISO do FreeBSD Nome do arquivo
verso-mini.iso

Contedo Tudo que voc precisa para instalar o FreeBSD.

93

Captulo 2. Instalando FreeBSD Nome do arquivo


verso-disc1.iso

Contedo Tudo que voc precisa para instalar o FreeBSD, acrescido de quantos pacotes adicionais de terceiros couberem no disco. Um sistema de arquivos vivo (Live), que costuma ser usado em conjunto com a opo de recuperao (Repair) do sysinstall. Uma cpia da rvore CVS do FreeBSD, e quantos pacotes de terceiros couberem no disco.

verso-disc2.iso

Voc deve baixar uma das duas, ou a imagem mini ISO ou o disco um. No baixe ambos, anal a imagem do disco um contm tudo que o mini ISO oferece, e um pouco mais. Use o mini ISO se o seu acesso Internet barato. Ele permitir que voc instale o FreeBSD, e todos os pacotes de terceiros voc pode baixar e instalar usando o sistema de ports e packages (veja Captulo 4) conforme necessrio. Use a imagem do disco um, se voc pretende obter uma seleo razovel de pacotes de terceiros no mesmo disco. As imagens adicionais de disco so teis, mas no essenciais, especialmente se voc tiver acesso rpido Internet. 2. Grave os CDs Voc deve gravar as imagens de CD no disco. Se voc pretende fazer isso em outro sistema FreeBSD, veja as informaes em Seo 12.5 para obter mais informaes (em particular, Seo 12.5.3 e Seo 12.5.4). Se voc pretende faz-lo em outra plataforma, ento ser preciso usar os utilitrios existentes para controlar seu gravador de CD na plataforma em questo. As imagens disponveis esto no formato ISO padro, que a maioria das aplicaes para gravao de CD suportam.

2.13.2. Criando um stio FTP local com um disco do FreeBSD


Os discos do FreeBSD so dispostos da mesma forma como no stio FTP. Isso torna a criao de um stio FTP local muito fcil, para poder utiliza-lo em outras mquinas na sua rede ao instalar o FreeBSD. 1. No servidor FreeBSD onde o stio FTP car hospedado, garanta que o CDROM do FreeBSD est no dispositivo, e montado no ponto /cdrom.
# mount /cdrom

2.

Crie uma conta para FTP annimo no /etc/passwd. Para isso, edite o /etc/passwd com o comando vipw(8) e adicione esta linha:
ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent

3.

Garanta que o servio de FTP est habilitado no /etc/inetd.conf.

Qualquer pessoa com conectividade em rede para sua mquina poder escolher o tipo de mdia FTP e digitar
ftp://sua mquia depois de selecionar a opo Other no menu de stios FTP, durante a instalao.

94

Captulo 2. Instalando FreeBSD


AtenoEssa abordagem est OK para qualquer mquina na sua rede local, e que esteja protegida por seu firewall. Oferecer servios de FTP para outras estaes na Internet (e no apenas na sua rede local) expe seu computador ateno de usurios mal intencionados, ou apenas indesejados. Recomendamos fortemente que voc siga boas prticas de segurana para fazer isso.

2.13.3. Criando disquetes de instalao


Se voc tem que instalar o sistema a partir de um disquete (o que ns no aconselhamos), ou por questes de equipamentos no suportados ou simplesmente porque voc insiste em fazer as coisas da maneira difcil, primeiro voc deve preparar alguns disquetes para a instalao. No mnimo, voc vai precisar de quantos disquetes forem necessrios, de 1.44 MB ou 1.2 MB, para armazenar o diretrio bin (distribuio binria). Se voc estiver fazendo os disquetes partir do DOS, ento eles DEVEM estar formatados com o comando FORMAT do MS-DOS. Use o Explorer para formatar os discos (clique com o boto direito sobre o dispositivo A: e escolha Formatar. No cone em disquetes pr-formatados de fbrica. Formate-os novamente, apenas para garantir. Muitos problemas j foram relatados e descobriu-se depois que o motivo era apenas mdias formatadas de maneira imprpria, e por isso que estamos lembrando voc deste detalhe. Se voc estiver criando os disquetes em outra mquina, formatar ainda uma boa idia, contudo no ser necessrio colocar um sistema de arquivos DOS em cada disquete. Voc pode usar os comandos disklabel e newfs para denir UFS como sistema de arquivos, seguindo a sequncia de comandos (para um disquete de 3.5", 1.44 MB) ilustrada a seguir:
# fdformat -f 1440 fd0.1440 # disklabel -w -r fd0.1440 floppy3 # newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0

Nota: Use fd0.1200 e floppy5 para discos de 5.25", 1.2 MB.

Depois voc pode monta-los e escrever nos mesmos, como qualquer outro sistema de arquivos. Depois de ter formatado dos disquetes, ser necessrio copiar os arquivos para eles. Os arquivos de distribuio so divididos em blocos com tamnhos denidos convenientemente para que cinco deles caibam em um disquete convencional de 1.44 MB. Utilize todos seus disquetes, empacotando quantos arquivos couberem em cada um deles, at que voc tenha todas as distribuies desejveis em disquete, sempre da mesma forma. Cada distribuio deve estar em um subdiretrio do disquete, por exemplo: a:\bin\bin.aa, a:\bin\bin.ab, e assim por diante. Uma vez que voc tenha chegado tela de seleo de mdia durante o processo de instalao, escolha select Floppy e voc ser indagado sobre o restante.

2.13.4. Instalando a partir de uma partio MS-DOS


Para preparar uma instalao partir de uma partio MS-DOS, copie os arquivos da distribuio no diretrio chamado freebsd no diretrio raiz da partio. Por exemplo, c:\freebsd. A estrutura de directrio do CD ou do stio FTP devem ser parcialmente reproduzidas neste diretrio, ento sugerimos fortemente a utilizao do comando

95

Captulo 2. Instalando FreeBSD


xcopy do MS-DOS, se estiver fazendo a cpia partir do CD. Por exemplo, para preparar uma instalao mnima do

FreeBSD:
C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s

Assumindo que C: onde existe espao livre e E: onde seu CDROM est inserido. Se voc no tem um dispositivo de CD, voc pode baixar a distribuio partir de ftp.FreeBSD.org (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/6.0-RELEASE/). Cada distribuio est em seu prprio diretrio; por exemplo, a distribuio base pode ser encontrada no diretrio 6.0/base/ (ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/6.0-RELEASE/base/).
Nota: Nas verses 4.X do FreeBSD e anteriores, a distribuio base era chamada de bin. Ajuste os comandos e URLs apresentados acima de acordo com a verso que voc estiver utilizando.

Desejando instalar muitas distribuies a partir de uma partio MS-DOS ( e tendo espao livre para isso ), instale cada uma sob o diretrio c:\freebsd A distribuio BIN a nica necessria para uma instalao mnima.

2.13.5. Criando uma ta de instalao


Instalar o sistema partir de uma ta provvelmente o metodo mais fcil de todos, bem perto de uma instalao FTP ou por CDROM. O programa de instalao espera que os arquivos sejam simplesmente empacotados com o tar(1) e colocados na ta. Depois de obter todos os arquivos da distribuio que voc quer instalar, basta empacot-los com o tar(1) na ta:
# cd /freebsd/distdir # tar cvf /dev/rwt0 dist1 ...

dist2

Quando voc realizar a instalao, dever garantir que existe espao suciente para um diretrio temporrio (que voc poder escolher) que acomodar todo o contedo da ta que voc criou. Devido natureza no aleatria de acesso s tas, este mtodo de instalao requer um espao considervel para armazenamento temporrio. Voc deve prever a necessidade de tanto espao temporrio quanto a quantidade de dados gravados na ta.
Nota: Ao iniciar a instalao, a ta deve estar no dispositivo antes de iniciar o processo de boot partir do disquete. A varredura por dispositivos pode, do contrrio, falhar em procura-lo.

2.13.6. Antes de instalar via rede


Existem trs tipos de instalao por rede disponveis. Porta serial (PPP ou SLIP), porta paralela (PLIP (cabo laplink)), ou rede Ethernet (qualquer placa de rede padro, incluindo alguns dispositivos PCMCIA). O suporte SLIP um tanto primitivo e limitado primariamente redes cabeadas, como um cabo serial ligado entre um laptop e outro computador. O link deve ser cabeado, pois a instalao SLIP no momento no oferece recursos

96

Captulo 2. Instalando FreeBSD para discagem; este suporte oferecido com o utilitrio PPP, que deve ser utilizado com preferncia sobre SLIP sempre que possvel. Se voc estiver usando um modem, ento PPP certamente sua nica escolha. Garanta que voc tem as informaes do seu provedor de servios em mos, pois ser necessrio sab-las bem no incio do processo de instalao. Se voc usa PAP ou CHAP para se conectar ao seu ISP (em outras palavras, se voc se conecta ao ISP no Windows sem usar uma rotina), ento tudo que voc precisa fazer digitar o comando dial no terminal ppp. Do contrrio, ser necessrio saber como discar para seu ISP, usando ps comandos AT especcos para seu modem, pois o discador PPP prov um emulador de terminal bastante simples. Por gentileza, rera-se ao handbook do PPP em modo usurio e s entradas da FAQ (../faq/ppp.html) sobre PPP. Se voc tiver problemas, as mensagens de log podem ser direcionadas sua tela, utilizando os comandos set log local .... Se existir uma conexo cabeada para outra mquina FreeBSD (2.0-RELEASE ou posterior) disponvel, voc deve considerar tambm a instalao por meio de um cablo laplink na porta parabela. O trfego de dados em uma porta paralela muito maior do que normalmente possvel em uma linha serial (cerca de 50 kbytes/sec), resultando portando em uma instalao mais rpida. Finalmente, para a instalao por rede mais rpida possvel, uma placa de rede Ethernet sempre uma boa escolha! FreeBSD suporta a maioria das placas Ethernet disponveis para PC; uma tabela das placas suportados (e suas conguraes usuais) disponibilizada nas Notas de Hardware de cada verso do FreeBSD. Se voc estiver utilizando um dos cartes PCMCIA suportados, garanta tambm que ela est inserida antes que o laptop seja ligado! O FreeBSD no suporta, infelizmente, insero quente de cartes PCMCIA durante a instalao. Voc precisar tambm saber o seu endereo IP na rede, e o valor da mscara de rede para sua classe de endereamento, bem como o nome da sua estao. Se voc estiver instalando por meio de uma conexo PPP e no tem um endereo IP esttico, no tema, o endereo IP atribuido automaticamente pelo seu ISP. Seu administrador de sistemas pode informar que valores usar para uma congurao especca. Se voc for fazer referncia outras estaes por nome, e no por endereamento IP, ser necessrio saber o endereo de um servidor de nomes e tambm o endereo do seu gateway (se voc estiver utilizando PPP, o endereo IP da outra ponta do provedor). Se sua inteno instalar por FTP por meio de um proxy HTTP, ser necessrio saber o endereo do proxy. Se voc no faz idia da resposta para algumas ou a maioria destas questes, ento voc deveria conversar com seu administrador de sistemas ou seu ISP antes de tentar esse tipo de instalao. 2.13.6.1. Antes de instalar por NFS A instalao NFS trivial. Basta simplesmente copiar os arquivos da distribuio FreeBSD que voc deseja utilizar no servidor NFS e apontar a seleo da mdia NFS para este servidor. Se o servidor suporta exclusivamente acesso em portas privilegiadas (normalmente este o padro em estaes de trabalho Sun), ser necessrio denir esta opo no menu Options antes que a instalao possa prosseguir. Se sua placa de rede Ethernet de baixa qualidade e sofre com taxas de transferncia baixa, voc ainda pode desejar habilitar a opo apropriada neste mesmo menu. Para uma instalao NFS funcionar, o servidor deve suportar montagem de subdiretrios, por exemplo, se o diretrio de sua distribuio FreeBSD 6.0 ca localizado em: ziggy:/usr/archive/stuff/FreeBSD, ento o servidor ziggy dever permitir montagem direta do /usr/archive/stuff/FreeBSD, no apenas do /usr ou /usr/archive/stuff. No arquivo /etc/exports do FreeBSD, este controle feito por meio das opes -alldirs . Outros servidores NFS podem manter convenes distintas. Se voc estiver tendo problemas com permisses negadas (permission denied) no servidor, muito provvel que voc no tenha habilitado estas conguraes de forma apropriada.

97

Captulo 3. UNIX Bsico


Reescrito por Chris Shumway.

3.1. Sinpse
O captulo a seguir cobrir os comandos bsicos e funcionalidades do sistema operacional FreeBSD. A maioria deste material relevante qualquer sistema operacional baseado ou similar ao UNIX. Sinta-se livre para pular este captulo se voc for familiar com o contedo deste material. Se voc um novo usurio FreeBSD, ento denitivamente voc deve ler todo este captulo cuidadosamente. Aps a leitura deste captulo, voc saber:

Como usar os consoles virtuais do FreeBSD. Como as permisses UNIX funcionam. A disposio padro dos sistemas de arquivos no FreeBSD. Como montar e desmontar sistemas de arquivos. O que so daemons, processos e sinais. O que uma shell (interpretador de comandos) e como modicar seu ambiente padro de login. Como utilizar editores de texto bsicos. O que so dispositivos e ns de dispositivos. Que formato binrio usado no FreeBSD. Como ler as pginas de manual para obter mais informaes.

3.2. Consoles virtuais e terminais


O FreeBSD pode ser utilizado de vrias maneiras. Uma delas atravs de comandos digitados em um terminal de texto. Muito da exibilidade e do poder de um sistema operacional UNIX disponvel de imediato ao alcance de suas mos, quando se utiliza o FreeBSD desta maneira. Esta seo descreve o que so terminais e consoles e como utiliza-los no FreeBSD.

3.2.1. O Console
Se voc no congurou o FreeBSD para iniciar um ambiente grco automaticamente durante sua inicializao, o sistema ir apresentar a voc uma tela de login assim que for iniciado, logo depois que os scripts de inicializao forem executados. Voc ver algo similar a:
Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002

98

Captulo 3. UNIX Bsico


FreeBSD/i386 (pc3.example.org) (ttyv0) login:

A mensagem deve ser um pouco diferente em seu sistema, mas algo similar ser apresentado. As duas ltimas linhas so as que ns estamos especialmente interessandos no momento. Na penltima linha voc pode ler:
FreeBSD/i386 (pc3.example.org) (ttyv0)

Essa linha oferece algumas informaes sobre o sistema que acabou de ser iniciado. Voc est olhando para um console FreeBSD, rodando em arquitetura Intel x86 ou compatvel 1. O nome desta mquina (toda mquina UNIX tem um nome) pc3.example.org, e agora voc est analisando seu console de sistema o terminal ttyv0 . Finalmente, a ltima linha ser sempre:
login:

Este o local onde voc deve digitar seu nome de usurio (username) para logar-se no FreeBSD. A prxima seo descreve como faz-lo.

3.2.2. Logando-se no FreeBSD


FreeBSD um sistema multiusurio e de multiprocessamento. Esta a descrio formal normalmente dada a um sistema que pode ser usado por pessoas diferentes, que simultneamento executam uma srie de programas na mesma estao. Todo sistema multiusurio requer uma maneira para fazer distino entre um usurio e os outros. No FreeBSD (e todo sistema operacional similar ou baseado em UNIX) isso garantido com a obrigatoriedade de todo usurio logar-se ao sistema antes de poder executar qualquer programa. Todo usurio tem um nome nico (o username) e uma senha secreta pessoal (o password). O FreeBSD solicitar estas duas informaes para permitir que um usurio se logue ao sistema e execute qualquer programa. Assim que o FreeBSD iniciado e acaba de executar seus scripts de inicializao2, ser apresentada a voc uma tela que solicitar um usurio vlido:
login:

Para compreenso deste exemplo, vamos assumir que o seu nome de usurio john. Digite john na tela de login e aperte Enter. Em seguida ser apresentada a tela que solicita sua senha (o password):
login: john Password:

Digite agora a senha do usurio john e aperte Enter. A senha no apresentada! No necessrio se preocupar com isso agora. suciente dizer que o comportamento este por razes de segurana. Se voc digitou sua senha corretamente, voc deve ter se logado no FreeBSD e est pronto para testar todos os comandos disponveis. Voc deve ver a MOTD, a mensagem do dia, seguida do terminal de comandos (um caracter #, $, ou %). Isso indica que voc se logou com sucesso no FreeBSD.

99

Captulo 3. UNIX Bsico

3.2.3. Multiplos Consoles


legal utilizar um console para executar comandos UNIX, mas o FreeBSD pode executar vrios programas de uma vez. Ter apenas um console onde os comandos so digitados pode ser considerado um leve desperdcio, quando um sistema operacional como o FreeBSD pode rodar dezenas de programas ao mesmo tempo. a que os consoles virtuais podem se mostrar muito teis. O FreeBSD pode ser congurado para oferecer vrios consoles virtuais diferentes. Voc pode alternar de um para outro apertando um conjunto de teclas em seu teclado. Cada console tem seu prprio canal de sada, e o FreeBSD cuida de redirecionar as entradas do console para cada console virtual e monitor, e tambm a sada padro quando voc alterna de um para o prximo console virtual. Combinaes especiais de teclas foram reservada pelo FreeBSD para controlar a alternncia de consoles 3. Voc pode usar Alt-F1, Alt-F2, at Alt-F8 para alternar entre diferentes consoles virtuais no FreeBSD. Conforme voc estiver alternando entre um console e outro, o FreeBSD se responsabiliza por salvar e restaurar o contedo de de cada tela. O resultado uma iluso de mltiplas telas e teclados virtuais disponveis, de forma que voc possa digitar qualquer comando para o FreeBSD executar. Os programas que so iniciados por voc em um console virtual no param de ser executados quando o console no est visvel. Eles continuam a ser processados quando acontece alternncia de console virtual.

3.2.4. O arquivo /etc/ttys


A congurao padro do FreeBSD iniciar oito consoles virtuais. Contudo, esta congurao no imutvel e pode ser fcilmente customizada de forma a possibilitar que o sistema seja iniciado com mais ou menos consoles virtuais. O nmero e denies para os consoles virtuais esto conguradas no arquivo /etc/ttys. Voc pode usar o arquivo /etc/ttys para congurar consoles virtuais do FreeBSD. Cada linha descomentada neste arquivo (linhas que no comeam com o caracter #) contm ajustes para um nico terminal ou console virtual. A verso padro deste arquivo oferece com o FreeBSD nove consoles virtuais, e habilita oito deles. So as linhas que comeam com ttyv:
# name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

Para obter uma descrio detalhada do signicado de cada coluna deste arquivo e todas opes disponveis para os consoles virtuais, consulte a pgina de manual ttys(5).

100

Captulo 3. UNIX Bsico

3.2.5. Console de usurio em modo mono-usurio


Uma descrio detalhada sobre o que o modo mono-usurio pode ser encontrada em Seo 7.6.2. Vale a pena notar que existe apenas um console disponvel quando se est operando o sistema em modo mono-usurio. No existem consoles virtuais disponveis. As conguraes do console em modo mono-usurio tambm podem ser denidas no arquivo /etc/ttys. Olha na linha que comea com console:
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure

Nota: Como indicam os comentrios acima da linha console, voc pode editar esta linha e modicar a entrada secure para insecure. Se voc o zer, quando o FreeBSD iniciar em modo mono-usurio, ele continuar pedindo a senha do usurio root. Seja cuidadoso ao modicar esta opo para insecure. Se voc esquecer um dia a senha de root, entrar em modo mono-usurio vai ser um pouco complicado. Ainda possvel, mas ser um pouco difcil para os usurios ainda no muito confortveis com o processo de inicializao do FreeBSD e os programas envolvidos.

3.3. Permisses
FreeBSD, como decendente direto do UNIX BSD, se baseia em inmeros conceitos chaves do UNIX. O primeiro e mais citado, que o FreeBSD um sistema operacional multi-usurio. O sistema pode gerenciar inmeros usurios, todos trabalhando simultaneamente em tarefas completamente distintas. O sistema responsvel pelo compartilhamento, e gerencialmente apropriado de pedidos de acesso aos dispositivos de controle de equipamentos, perifricos, de memria, e tempo de processamento, de forma justa entre os usurios. Pelo fato do sistema poder suportar mltiplos usurios, tudo que o sistema gerencia composto de um conjunto de permisses que governam quem pode ler, escrever, e executar recursos. Estas permisses so armazenadas como trs octetos divididos em trs partes, uma para o dono do arquivo, uma para o grupo que o arquivo pertence, e uma para todos os outros usurios. Sua representao numrica funcionam assim: Valor 0 1 2 3 4 Permisses Sem leitura, sem escrita, sem execusso Sem leitura, sem escrita, com execusso Sem leitura, com escrita, sem execusso Sem leitura, com escrita, com execusso Com leitura, sem escrita, sem execusso Listagem de diretrio
----x -w-wx r--

101

Captulo 3. UNIX Bsico Valor 5 6 7 Permisses Com leitura, sem escrita, com execusso Com leitura, com escrita, sem execusso Com leitura, com escrita, com execusso Listagem de diretrio
r-x rwrwx

A opo -l pode ser usada junto ao ls(1) para visualizar listagem detalhada do diretrio incluindo uma coluna com informaes sobre as permisses de cada arquivo, para o dono, grupo, e outros. Por exemplo, a sada do comando ls -l em um diretrio qualquer, mostrar:
% ls -l

total 530 -rw-r--r--rw-r--r--rw-r--r-...

1 root wheel 1 root wheel 1 root wheel

512 Sep 5 12:31 myfile 512 Sep 5 12:31 otherfile 7680 Sep 5 12:31 email.txt

Aqui est a forma como a primeira coluna do ls -l dividida:


-rw-r--r--

O primeiro caracter (o mais esquerda) indica que se este um arquivo normal, se um diretrio, um dispositivo especial, um socket ou qualquer outro pseudo-dispositivo especial. Nesse caso, o - indica que trata-se de um arquivo regular. Os prximos trs caracteres, rw- neste exemplo, indicam as permisses para o dono do arquivo. Os prximos trs caracteres, r--, indicam as permisses para o grupo ao qual o arquivo pertence. Os trs caracteres nais, r--, indicam as permissoes para o resto do mundo. Um hfen indica que a permisso est desligada. No caso deste arquivo, o dono pode ler e escrever neste arquivo, o grupo pode ler o arquivo e o resto do mundo pode tambm apenas ler o arquivo. De acordo com a tabela acima, as permisses para o arquivo seriam 644, onde cada dgito representa as trs partes das permisses do arquivo. Isso muito bonito e legal, mas como o sistema controla as permisses nos dispositivos? FreeBSD na verdade trata a maioria dos dispositivos de hardware como arquivos onde os programas podem ler, abrir, e escrever dados, como se fosse qualquer outro arquivo. Estes arquivos de dispositivos so armazenados no diretrio /dev. Diretrios tambm so tratados como arquivos comuns. Eles tem permisses de leitura, escrita e execusso. O bit de execusso em um diretrio tem uma sutl diferena quando comparado a um arquivo. Quando um diretrio denido como executvel, signica que ele pode ser explorado, ou seja, que possvel entrar neste diretrio (cd). Tambm signica que dentro do diretrio, pode-se acessar arquivos cujos nomes so conhecidos (de acordo com as permisses dos prprios arquivos, claro). Em particular, para realizar a listagem de um diretrio, necessrio ter permisses de leitura no mesmo, enquanto para apagar um arquivo cujo nome j conhecido, necessrio ter permisses de escrita e execusso no diretrio onde est o arquivo. Existem outros bits de permisses, mas eles so utilizados em circustncias especiais como binrios como setuid e diretrios com opo sticky. Se voc deseja obter mais informaes sobre as permisses de arquivo e como deni-las, d uma olhada na pgina de manual do chmod(1).

102

Captulo 3. UNIX Bsico

3.3.1. Permisses simblicas


Contribuo deTom Rhodes. Permisses simblicas, as vezes se referem expresses de permisses, ou o uso de caracteres em substituio aos valores octais que atribuem permisses aos arquivos e diretrios. Expresses simblicas usam a sintaxe (quem) (ao) (permisses), onde os seguintes valores esto disponveis: Opo (quem) (quem) (quem) (quem) (ao) (ao) (ao) (permisses) (permisses) (permisses) (permisses) (permisses) Letra u g o a + = r w x t s Representao Usurio Grupo dono Outros Todos (o mundo) Adicionar permisses Remover permisses Denir permisses explicitamente Leitura Escrita Execusso Bit de sticky Dene UID ou GID

Estes valores so usados com o comando chmod(1) exatamente como da forma anterior, mas sem letras. Por exemplo, voc pode usar o seguinte comando para impedir que outros usurios deixem de acessar determinado ARQUIVO:
% chmod go= ARQUIVO

Pode-se fazer uso de uma lista separado por vrgula, quando se desejar que mais de uma modicao seja realizada no arquivo. Por exemplo, o comando seguir remove as permisses de escrita para o grupo e todo o mundo, no ARQUIVO, e ento adiciona permisses de execusso todos:
% chmod go-w,a+x FILE

3.4. Estrutura de Diretrios


Conhecer a hierarquia de diretrios do FreeBSD fundamental para se obter entendimento total do sistema. O conceito mais importante para se assimilar o conceito do diretrio raz, o /. Esse diretrio montado inicialmente no momento em que o sistema carregado, e ele contm o sistema base necessrio para preparar a entrada em modo de operao multi-usurio do sistema operacional. O diretrio raiz contm ainda pontos de montagem para cada outro sistema de arquivos que voc queira montar. Um ponto de montagem um diretrio onde sistemas de arquivos adicionais podem ser acoplados ao sistema de arquivos raz. Pontos de montagem padro incluem /usr, /var, /mnt, e /cdrom. Esses diretrios normalmente so encontrados como entradas dispostas no arquivo /etc/fstab. O /etc/fstab uma tabela com vrios sistemas de arquivos e pontos de montagem que o sistema usa como referncia. A maioria dos sistemas de arquivos no /etc/fstab so montados automaticamente no momento da inicializao, partir do script rc(8) a no ser que

103

Captulo 3. UNIX Bsico eles contenham a opo noauto denida. Consulte a pgina de manual do fstab(5) para obter mais informaes sobre o formato do arquivo /etc/fstab e seu contedo. Uma descrio completa da hierarquia do sistema de arquivos est disponvel na pgina de manual hier(7). Por hora, uma breve descrio dos diretrios mais comuns ser abordada: Diretrio
/ /bin/ /boot/

Descrio Diretrio raz do sistema de arquivo. Utilitrios do usurio, fundamentais para os ambientes de multi-usurio e mono-usurio. Arquivos e programas de congurao que so usados durante o processo de inicializao do sistema operacional. Arquuivos de congurao padro do sistema de inicializao, veja a pgina de manual loader.conf(5). Dispositivos de controle; veja intro(4). Arquivos e scripts de congurao do sistema. Arquivos de congurao padro do sistema; veja rc(8). Arquivos de congurao para os agentes de transferncia de correio, como o sendmail(8). Arquivos de congurao do named; veja named(8). Scripts que so executados diariamente, semanalmente e mensalmente por meio do cron(8); veja periodic(8). Arquivos de congurao do ppp; veja ppp(8). Diretrio vazio normalmente utilizado pelos administradores de sistemas como ponto de montagem temporrio. Sistema de arquivos de processos; veja procfs(5) e mount_procfs(8). Diretrio home da conta de usurio root. Utilitrios de programas e administrao, fundamentais para os ambientes de multi-usurio e mono-usurio. Programas usados no ambiente independente. Arquivos temporrios, normalmente um diretrio montado em memria por meio do mfs(8) ( o contedo do /tmp normalmente NO preservado durante uma reinicializao do sistema). A maioria dos utilitrios e aplicaes de usurios. Utilitrios comuns, ferramentas de programao e aplicaes. Arquivos C padro de incluso. Bibliotecas. Arquivos de dados de utilitrios variados.

/boot/defaults/ /dev/ /etc/ /etc/defaults/ /etc/mail/ /etc/namedb/ /etc/periodic/ /etc/ppp/ /mnt/

/proc/ /root/ /sbin/ /stand/ /tmp/

/usr/ /usr/bin/ /usr/include/ /usr/lib/ /usr/libdata/

104

Captulo 3. UNIX Bsico Diretrio


/usr/libexec/ /usr/local/

Descrio Daemons & utilitrios do sistema (executados por outros programas). Executveis locais, bibliotecas, etc. Tambm utilizado como destino padro para o sistema de Ports. Dentro de /usr/local, a disposio hierrquica geral denida pelo hier(7) como o denido pelo /usr. Exceto o diretrio de pginas de manuais que so diretamente dispostas sob /usr/local ao invs de serem sobre /usr/local/share, e a documentao das aplicaes de terceiros, que cam sob share/doc/port. Arquivo de destino dos objetos binrios especcos para cada arquitetura, constribudos partir da rvore /usr/src. A Coleo de Ports do FreeBSD (opcional). Daemons & utilitrios do sistema (executados por usurios). Arquivos independentes de arquitetura. Arquivos de fontes locais e/ou BSD. Executveis da distribuio do X11R6, bibliotecas, etc (opcional). Arquivos de log de mltiplos propsitos, arquivos temporrios, de transio, e arquivos de bobina (spool). Arquivos de logs variados do sistema. Arquivos de caixa de corrio dos usurios. Diretrios de spool de impresso e de correio. Arquivos temporrios que so mantidos entre reinicializaes do sistema. Mapas NIS.

/usr/obj/

/usr/ports /usr/sbin/ /usr/share/ /usr/src/ /usr/X11R6/ /var/ /var/log/ /var/mail/ /var/spool/ /var/tmp/ /var/yp

3.5. Organizao de disco


A menor unidade organizacional que o FreeBSD utiliza para denir os arquivos o nome de arquivo. Nome de arquivos so case-sensitive, ou seja fazem distino entre maisculas e minscilas, o que signica que readme.txt e README.TXT so dois arquivos distintos. FreeBSD no utiliza a extenso do arquivo ( .txt) para determinar se o arquivo um programa ou um documento, ou ainda qualquer outro tipo de dado. Arquivos so armazenados em diretrios. Um diretrio pode no conter arquivo algum, ou pode conter centenas de arquivos. Um diretrio pode ainda conter outros diretrios, permitindo que voc construa hierarquias inteiras de diretrios, uns dentro dos outros. Isso torna a organizao de seus dados muito mais fcil. Arquivos e diretrios so identicados por seu nome, seguido por uma barra dianteira, /, seguido de outros nomes de diretrios, conforme necessrio. Se voc tem o diretrio foo, e dentro dele o diretrio bar, que por sua vez contm o arquivo readme.txt, ento o nome completo, ou o path para este arquivo foo/bar/readme.txt.

105

Captulo 3. UNIX Bsico Diretrios e arquivos so armazenados em um sistema de arquivos. Cada sistema de arquivos contm exatamente um diretrio de nvel hierrquico interior, chamado de diretrio raz para o sistema de arquivos. Este diretrio raz pode conter outros diretrios. Certamente isso tudo similar qualquer outro sistema operacional que voc j usou. Existem algumas diferenas bsicas; por exemplo, DOS usa a barra invertida, \, para separar qualquer arquivo ou nome de diretrio, enquanto o Mac OS utiliza o :. O FreeBSD no utiliza letras de dispositivos ou qualquer outro tipo de nome para os dispositivos do sistema de arquivos. Voc jamais escreveria c:/foo/bar/readme.txt no FreeBSD. Ao invs disso, um sistema de arquivo denido como sistema de arquivos raz. O diretrio raz do sistema de arquivo raz o /. Todo outro sistema de arquivos montado (mounted) sob este sistema de arquivos. No importa quantos discos existam no seu sistema FreeBSD, cada diretrio apresentado como parte do disco. Suponha que voc tenha trs sistemas de arquivos, chamados A, B, e C. Cada sistema de arquivos tem seu prprio diretrio raz, que contm outros dois diretrios chamados A1, A2 (e da mesma forma B1, B2 e C1, C2). Assuma A como sistema de arquivos raz. Se voc usou o comando ls para visualizar o contedo deste diretrios, voc veria dois subdiretrios, A1 e A2. A rvore de diretrios caria assim:

Root /

A1/

A2/

Todo sistema de arquivos deve ser montado em um diretrio disposto em outro sistema de arquivos. Ento, suponha que voc tenha montado o sistema de arquivos B no diretrio A1. O diretrio raz do B substitui A1, e os diretrios em B se tornam apropriadamente disponveis:

106

Captulo 3. UNIX Bsico

Root /

A1/

A2/

B1/

B2/

Quaisquer arquivos que estejam nos diretrios B1 ou B2 podem ser acessados com o path /A1/B1 ou /A1/B2 conforme necessrio. Qualquer arquivo que estivesse no /A1 foi temporariamente escondido. Eles reaparecero se B for desmontado de A. Se B foi montado em A2 ento o diagrama ser parecido com:

Root /

A1/

A2/

B1/

B2/

e os paths seriam /A2/B1 e /A2/B2 respectivamente. Os sistemas de arquivos podem ser montados em sobreposio outros. Prosseguindo com o ltimo exemplo, o sistema de arquivo C poderia ser montado sobre o diretrio B1 no sistema de arquivos B, levando ao seguinte arranjo:

107

Captulo 3. UNIX Bsico

Root /

A1/

A2/

B1/

B2/

C1/

C2/

Ou C poderia ser montado diretamente no sistema de arquivos A, sob o diretrio A1:

Root /

A1/

A2/

C1/

C2/

B1/

B2/

Se voc tem familiaridade com o DOS, a teoria parecida, mas no idntica, ao comando join. Normalmente isso no algo com que voc tenha que se preocupar. Tipicamente basta criar os sistemas de arquivos ao instalar o FreeBSD e decidir onde monta-los, e depois nunca mais modica-los, a no ser que voc adicione um novo disco. completamente possvel ter um sistema de arquivos raz, e no criar mais nenhum. Existem alguns problemas com

108

Captulo 3. UNIX Bsico esta abordagem e uma grande desvantagem. Benefcios de sistemas de arquivos mltiplos

Sistemas de arquivos distintos podem ter opes de montagem distintas. Por exemplo, com planejamento cuidadoso, o sistema de arquivos raz pode ser montado como apenas-leitura, criando um ambiente onde ser impossvel apagar ou editar arquivos crticos inadivertidamente. Separando sistemas de arquivos que podem ser escritos por todos usurios, como o /home, de outros sistemas de arquivos, ainda permite que eles sejam montados com nosuid; esta opo previne que os bits suid/guid sejam atribudos em arquivos executveis, no tendo mais efeito no sistema de arquivos em questo, possvelmente complementando a segurana do ambiente. O FreeBSD otimiza a disposio dos arquivos de forma automtica, dependendo de como o sistema de arquivos est sendo usado. Portanto um sistema de arquivos que contm muitos arquivos pequenos que so freqentemente escritos tero regras de otimizao distintas daqueles sistemas de arquivos com poucos, mas grandes arquivos. Mantendo um nico sistema de arquivos enorme, esta otimizao se torna invivel. Os sistemas de arquivos do FreeBSD so muito robustos, mesmo em situaes de queda de energia. Contudo, uma interrupo de energia em um ponto crtico pode danicar parcialmente a estrutura do sistema de arquivos. Dividir os dados em mltiplos sistemas de arquivos aumenta a possibilitado do sistema no car indisponvel, tornando mais fcil a restaurao de cpias de segurana, caso necessrio.

Benefcios de um nico sistema de arquivos

Sistemas de arquivos tem tamanho xo. Se voc criar um sistema de arquivos ao instalar o FreeBSD e denir tamanho especco, posteriormente voc pode descobrir que tem a necessidade de uma partio maior. No uma tarefa fcil resolver isso, sem fazer cpias de segurana e recriar o sistema de arquivos com o novo tamanho e depois restaurar a cpia.
Importante: A partir do FreeBSD 4.4 o comando growfs(8) passou a ser parte do sistema, o que possibilita que o tamanho dos sistemas de arquivos sejam incrementados na hora, acabando com esta limitao.

Sistemas de arquivos so contidos em parties. Isso no signica a mesma coisa do que a forma de utilizao do termo partio anteriormente neste captulo, por causa da herana UNIX do FreeBSD. Cada partio identicada com uma letra que varia de a h. Cada partio possui um sistema de arquivos, o que signica que sistemas de arquivos normalmente so identicados ou por seu ponto de montagem na hierarquia do sistema de arquivos, ou pela letra disposta no nome de cada partio. O FreeBSD ainda usa espao de disco para o espao de troca, ou swap. Swap oferece caractersticas de memria virtual ao FreeBSD. Isso permite que seu computador se comporte como se tivesse mais memria disponvel do que na realidade tem. Quando o FreeBSD excede a memria disponvel ele move alguns trechos de dados que no esto sendo utilizados para o espao de troca, a swap, e move esses dados de volta pra memria (descarregando alguma outra coisa para liberar recursos) quando necessrio. Algumas parties mantm algumas convenes associadas. Partio
a b

Conveno Normalmente contm o sistema de arquivos raz Normalmente contm a partio de swap (troca)

109

Captulo 3. UNIX Bsico Partio


c

Conveno Normalmente tem o mesmo tamanho da partio inclusa. Isso permite que alguns utilitrios que precisam trabalhar na partio toda (por exemplo, um identicador de blocos defeituosos) funcionem corretamenta na partio c. Voc no vai criar um sistema de arquivos de verdade nesta partio. A partio d costumava ter um signicado especial associado com ela, contudo agora ele desfez. Hoje em dia algumas ferramentas podem continuar se comportando de forma estranha se indicarmos que ele trabalhe na partio d, de forma que o sysinstall no cria mais esta partio.

Cada partio que contm um sistema de arquivos armazenada em um tipo especial de partio que o FreeBSD chama de slice. Este termo utilizado pelo FreeBSD para fazer meno ao que, mais uma fez, costumava ser chamado de partio, e isso se deve base UNIX por trs do sistema FreeBSD. Estas parties (slices) so numeradas, iniciando do 1, at o 4. Nmero de parties seguem o nome do dispositivo adicionado de um prexo com o caractr s, comeando do 1. Portanto da0 s1 a primeira slice de um disco, mas possvel que existam parties lgicas dentro de cada partio fsica do tipo apropriado. Estas parties extendidas so numeradas partir do 5, de forma que ad0 s5 seja a primeira partio extendida do primeiro disco IDE. Estes dispositivos so utilizados por sistemas de arquivos que ocupam esse tipo de partio. Parties, dispositivos fsicos, perigosamente dedicados e outros dispositivos contm parties que costumam ser representadas como letras, comeando de a at h. Estas letras so atribudas ao nome dos dispositivos, de forma que da0 a indique a partio no primeiro dispositivo, que na realidade perigosamente dedicado. ad1s3 e a quinta partio na primeira slice do segundo dispositivo de disco IDE. Finalmente, cada disco no sistema esta identicado. Um nome de disco comea com um cdigo que indica o tipo do disco em questo, e em seguida um nmero, que indica que disco esse. Diferente das parties, a numerao dos discos inicia em 0. Informaes usuais que voc encontrar listados em Tabela 3-1. Ao se referir a uma partio, o FreeBSD requer que voc nomeie cada slice e disco que contenha a partio em questo, e que ao se referir slice voc tambm identique o nome do disco. Faa isso listado o nome do disco, s, o nmero da slice, e em seguida a letra da partio. Exemplos so apresentados em Exemplo 3-1. Exemplo 3-2 apresenta o modelo conceitual das disposies de disco, o que pode ajudar a tornar as coisas mais claras. Para instalar o FreeBSD, primeiro voc deve congurar os slices de disco, e depois criar as parties em cada slice destinada ao FreeBSD, e criar um sistema de arquivo (ou swap) em cada partio, e decidir onde o sistema de arquivos ser montado. Tabela 3-1. Cdigos de Dispositivos de Disco Cdigo
ad da acd cd fd

Signicado disco ATAPI (IDE) disco SCSI de acesso direto CDROM ATAPI (IDE) CDROM SCSI Disquete

110

Captulo 3. UNIX Bsico Exemplo 3-1. Modelo de disco, partio e nomes Nome
ad0s1a da1s2e

Signicado Primeira partio (a) na primeira fatia de disco (slice - s1) no primeiro disco IDE (ad0). Quinta partio (e) na segunda fatia de disco (slice - s2) no segundo disco SCSI (da1).

Exemplo 3-2. Modelo conceitual de um disco Esse diagrama apresenta a abordagem do FreeBSD para o primeiro disco IDE ligado ao sistema. Assuma que o disco tem tamanho de 4 GB e contm duas parties de 2 GB (parties DOS). A primeira slice contm um disco DOS, o C:, e a segunda slice contm a instalao do FreeBSD. Esta instalao FreeBSD de exemplo tem trs parties, e uma swap. As trs parties tero um sistema de arquivos cada. A partio a ser utilizada pelo sistema de arquivos raz, e ser utilizada pela hierarquia de diretrio /var, e f pela hierarquia de diretrio /usr.

111

Captulo 3. UNIX Bsico



  !"   #$ $%& ')(+*
,-/.


 

4"5)
)
" + 6 7$ 8$ 2$:9; !   #$ %3" 4 "5)
)
" =<  71 >$-?@A !   #$ %3< 4"5)
)
" + 6 7 8$ B$C9EDF"; !   #$ %3" 4EG
G
 H; 6 7$ $ 2$@9I71; !  $ #$ $%!3H JEKMLON?NPLQSRUT!VWX

$ 1 2
 0 !"   #$ $%3

4 5G
G
 -  F 6 "7$ !8  !   2$ "%!3"

3.6. Montando e desmontando sistemas de arquivos


O sistema de arquivos pode ser melhor assimilado se for visualizado como uma rvore, cuja raz /. /dev, /usr, e outros diretrios na raz, so os ramos da rvore, que podem ainda ter seus prprios ramos, como /usr/local, e assim por diante. Existem vrios motivos para armazenar alguns destes diretrios em sistemas de arquivos distintos. /var contm os diretrios log/, spool/, e vrios tipos de arquivos temporrios, e como tal, pode fcilmente encher. Encher o

112

Captulo 3. UNIX Bsico sistema de arquivos raz no uma boa idia, de forma que separar o /var do / sempre favorvel. Outra razo usual para manter certas rvores de diretrios em outros sistemas de arquivos que eles podem ser alojados em discos fsicos separados, ou em um disco virtual separado como pontos de montagem NFS ou dispositivos de CDROM.

3.6.1. O arquivo fstab


Durante o processo de inicializao, os sistemas de arquivos listados no /etc/fstab so automaticamente montados (a no ser que eles tenham a opo noauto denida). O arquivo /etc/fstab contm uma lista de linhas no seguinte formato:
device /mount-point fstype options dumpfreq passno

device

Um nome de dispositivo (que deve existir), conforme explicado em Seo 12.2.


mont-point

Um diretrio (que deve existir), onde o sistema de arquivos montado.


fstype

O tipo de sistema de arquivo que ser passado ao mount(8). O sistema de arquivos padro do FreeBSD ufs.
options

Pode ser rw para sistemas de arquivos com opes de leitura e escrita, ou ro para apenas leitura, seguidos de qualquer outra opo necessria. Uma opo bastante usual noauto para os sistemas de arquivos que normalmente no devem ser montados automaticamente pelo processo de inicializao. Outras opes so listadas na pgina de manual do mount(8).
dumpfreq

Essa opo utilizada pelo dump(8) para determinar que sistema de arquivos devem sofrer o processo de dump(8) (o dump(8) uma ferramenta para cpia de segurana). Se o campo no estiver presente, o valor zero assumido.
passno

Determina a ordem que os sistemas de arquivos devem ser vericados. Sistemas de arquivos cuja vericao pode ser omitida, devem ter seu passno denidos em zero. O sistema de arquivos raz (que deve ser vericado antes de todos os outros) deve ter seu passno denido como um, e os outros sistemas de arquivos podem ter esta opo denida com um valor maior. Se mais de um sistema de arquivos disporem do mesmo nmero, o fsck(8) tentar fazer as vericaes de forma paralela, se possvel.

3.6.2. O comando mount


O comando mount(8) a ferramenta usada para montar sistemas de arquivos. Em sua forma mais bsica, basta usar:

113

Captulo 3. UNIX Bsico


# mount dispositivo ponto de montagem

Existem inmeras opes, e esto todas dispostas na pgina de manual do mount(8), mas as mais comuns so:

Opes de montagem
-a

Monta todos os sistemas de arquivos listados no /etc/fstab. Exceto aqueles assinalados com a opo noauto, excludos pala opo -t, ou aqueles que j estiverem montados.
-d

Faz tudo, exceto a efetivao da chamada de sistema para a montagem. Essa opo muito til, em conjunto com a -v para descobrir o que o mount(8) est tentando fazer.
-f

Fora a montagem de um sistema de arquivos que no tem garantia de integridade (isso perigoso), ou fora a revogao dos direitos de escrita ao alterar o estado de montagem de um sistema de arquivos que esteja em modo somente leitura, para o modo leitura e escrita.
-r

Monta o sistema de arquivos como somente leitura. Essa opo idntica ao argumento rdonly na opo -o.
-t tipo de sistema de arquivos

Monta o sistema de arquivos em questo, como do tipo em atribudo, ou monta apenas sistemas de arquivos do tipo atribudo se for usado em conjunto com a opo -a. ufs o tipo padro de sistema de arquivos.
-u

Atualiza opes de montagem no sistema de arquivos.


-v

Torna-se verboso.
-w

Monta o sistema de arquivos como leitura e escrita. A opo -o pode utilizar uma lista de opes separadas por vrgula, das quais, as principais so: nodev No interpreta dispositivos especiais no sistema de arquivos em questo. Esta uma opo til para segurana. noexec No permite execusso de binrios neste sistema de arquivos. Tambm uma opo muito til para segurana.

114

Captulo 3. UNIX Bsico nosuid No interpreta opes de setuid ou setgid no sistema de arquivos. uma opo til para segurana.

3.6.3. O comando umount


O comando umount(8) recebe como parmetro o ponto de montagem, o dispositivo, a opo -a ou a opo -A. Todas estas maneiras podem ter tambm as opes -f para forar desmontagem, e -v para ser verboso. Esteja atento ao fato que a opo -f geralmente no uma boa idia. Desmontar os sistemas de arquivos forozamente pode causar dano aos dados do sistema de arquivos.
-a and -A so usadas para desmontar todos os sistemas de arquivos; este comportamento possivelmente modicado em conjunto com a opo -t. -A, contudo, no tenta desmontar o sistema de arquivos raz.

3.7. Processos
O FreeBSD um sistema operacional multi-tarefa. Isso signica que ele cria um ambiente onde os recursos computacionais so divididos de forma parecer que mais de um programa executado ao mesmo tempo. Cada processo sendo executado qualquer momento, chamado de um processo. Todo comando que voc executar, iniciar ao menos um novo processo, e existem vrios processos do sistema que esto sempre em execusso, mantendo a funcionalidade do ambiente como um todo. Cada processo identicado de forma nica com um nmero, que chamado de identicao do processo, ou process ID, ou ento a forma abreviada e mais comum, PID, e, assim como os arquivos, cada processo tambm tem um dono e grupo. As informaes sobre dono e grupo so utilizadas com o intito de determinar que arquivos e dispositivos o processo pode abrir, utilizando as permisses discutidas anteriormente. A maioria dos processos tem ainda um processo pai. O processo pai o processo que o iniciou. Por exemplo, quando voc digita um comando em uma shell, ento essa shell um processo, e todo comando executado outro processo. Todo comando executado desta forma ter sua shell como o processo pai. A nica excesso um processo especial chamado de init(8). O init sempre o primeiro processo do sistema, portanto seu PID sempre 1. O init executado automaticamente pelo kernel quando o FreeBSD iniciado. Dois comandos so particularmente teis para vericar os processos ativos no sistema, o ps(1) e o top(1). O comando ps usado para apresentar uma lista esttica dos processos sendo executados no momento, e pode apresentar seu PID, quanta memria o processo est utilizando, a linha de comando que o iniciou, e assim por diante. O comando top apresenta todos os processos em execusso, e atualiza a forma como os apresenta na tela a cada poucos segundos, de forma que voc possa acompanhar o que o computador est fazendo. Por padro o ps apenas apresenta os comandos que esto sendo executados por voc, e cuja propriedade tambm seja sua. Por exemplo:
% ps

PID 298 7078 37393 48630 48730 72210

TT p0 p0 p0 p0 p0 p0

STAT Ss S I S IW R+

TIME 0:01.10 2:40.88 0:03.11 2:50.89 0:00.00 0:00.00

COMMAND tcsh xemacs mdoc.xsl (xemacs-21.1.14) xemacs freebsd.dsl (xemacs-21.1.14) /usr/local/lib/netscape-linux/navigator-linux-4.77.bi (dns helper) (navigator-linux-) ps

115

Captulo 3. UNIX Bsico


390 7059 6688 10735 20256 262 270 280 284 285 p1 p2 p3 p4 p5 v0 v0 v0 v0 v0 Is Is+ IWs IWs IWs IWs IW+ IW+ IW S 0:01.14 1:36.18 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:38.45 tcsh /usr/local/bin/mutt -y tcsh tcsh tcsh -tcsh (tcsh) /bin/sh /usr/X11R6/bin/startx -- -bpp 16 xinit /home/nik/.xinitrc -- -bpp 16 /bin/sh /home/nik/.xinitrc /usr/X11R6/bin/sawfish

Como voc pode acompanhar neste exemplo, a sada do comando ps(1) organizada em vrias colunas. PID a identicao do processo discutida anteriormente. PIDs so atribuudos partir do 1, e vo at 99999, e reiniciam a contagem quando ultrapassa esse valor. A coluna TT posta em que terminal o programa esta sendo executado, e pode seguramente ser ignorado no momento. STAT apresenta o estado atual do programa, e, mais uma vez, vamos ignora-lo por hora. TIME indica a quantidade de tempo que o programa est em execusso na CPU em questo normalmente no o tempo total desde que o processo foi iniciado, e sim tempo de execusso, uma vez que vrios programas cam um bom tempo esperando que algo acontea para eles utilizarem tempo de processamento da CPU. Finalmente, COMMAND a linha de comando utilizada para executar o programa em questo. ps(1) suporta uma srie de opes distintas que modicam as informaes apresentadas. Um dos cunjuntos mais teis de opes auxww. a apresenta informaes sobre todos os processos em execusso, no apenas os de sua propriedade. u apresenta o nome do usurio que o dono do processo, bem como o uso de memria do mesmo. x apresenta informaes sobre processos daemon, e ww faz o ps(1) apresentar a linha de comando completa, ao invs de um trecho compactado para caber na tela. A sada do top(1) similar. Uma sesso modelo teria a seguinte aparncia:
% top

last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID 72257 7078 281 296 48630 175 7059 ... USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt

A sada est dividida em duas sees. O cabealho (as primeiras cinco linhas) apresenta o PID do ltimo processo executado, a mdia de carga do sistema (que mede o quanto o sistema est ocupado), e o tempo de atividade initerrupta do sistema (tempo desde a ltima inicializao - o uptime). As outras informaes do cabealho inidicam quantos processos (47 neste caso) esto ativos, quando de memria e swap foi utilizado, e quanto tempo o sistema est gastando em estados diferentes de uso da CPU. Abaixo est uma srie de colunas com informaes similares sada do ps(1). Como antes, voc pode ver o PID, o usurio, o tempo de CPU utilizado, e o comando executado. top(1) tambm mostra por padro a quantidade de

116

Captulo 3. UNIX Bsico memria utilizada pelo processo. Essa informao dividida em dois grupos, uma para o tamanho total de memria, e um para o tamanho residente tamanho total indica quanta memria a aplicao j precisou, e o tamanho residente a quantidade em uso no momento. Nesse exemplo voc pode ver que o Netscape precisou quase de 30 MB de RAM, mas no momento est usando apenas 9 MB. top(1) atualiza automaticamente as informaes a cada dois segundos, o que pode ser modicado com a opo s.

3.8. Daemons, sinais e controle de processos


Ao usar um editor, fcil controla-lo, indicar que ele deve carregar arquivos, e assim por diante. Voc pode faz-lo pois o editor oferece algumas opes para faz-lo, e por que o editor diretamente interligado a um terminal. Alguns programas no so projetados de forma a utilizar informaes contnuas do usurio, e assim ele se desconecta do terminal em sua primeira oportunidade. Por exemplo, um servidor HTTP passa o tempo todo respondendo requisies da rede, e normalmente ele no necessita interveno alguma do usurio. Programas que transportam mensagens de correio de um local para outro, so outro exemplo dessa classe de aplicaes. Chamamos estes programas de daemons. Daemons so personagens da mitologia Grega; no so bons, nem maus, eram apenas espritos assistentes que, na maior parte do tempo, realizavam tarefas teis para a humanidade. por isso que o mascote do BSD, h um bom tempo, aquele daemon simptico que usa tnis e carrega um tridente. Existe uma conveno para batizar os programas que normalmente so executados como daemon, que terminar o nome do programa com um d. BIND o Daemon de Nomes Internet de Berkeley, (Berkeley Internet Name Daemon - o programa que o executa, chamado named), O servidor WWW Apache chamado de httpd, o daemon de impresso em linha o lpd e assim sucetivamente. Esta uma conveno, e no uma regra de rpida assimilao; por exemplo, o daemon principal para a aplicao Sendmail chamado sendmail, e no maild, como voc poderia ter imaginado inicialmente. Algumas vezes ser necessrio se comunicar com um processo daemon. Essa comunicao chamada de sinais, e voc pode se comunicar com o daemon (ou qualquer outro processo em execusso) enviando-o um sinal. Existem uma srie de sinais diferentes que podem ser enviadosalguns dos quais tem um signicado especco, e outros so interpretados pela aplicao, e a documentao dessa aplicao indicar o que ela faz quando recebe este tipo de sinal. Voc s pode enviar um sinal para os processos que te pertencem. Se voc tentar enviar sinais para um processo que no seu, com kill(1) ou kill(2) ter permisso negada. A nica excesso o usurio root, que pode enviar sinais para os processos de todos. O FreeBSD em certos casos tambm enviar sinais s aplicaes. Se uma aplicao for mal escrita e tentar acessar endereos de memria que ele no deve, o FreeBSD envia o sinal de violao de segmento ao processo (Segmentation Violation), conhecido como SIGSEGV. Se alguma aplicao usou a chamada de sistema alarm(3) para solicitar que seja alertada depois de certo perodo de tempo, o sistema envia o sinal de alerta ( SIGALRM) ao processo, e assim por diante. Dois sinais podem ser usados para interromper um processo, SIGTERM e SIGKILL. SIGTERM uma maneira educada de matar um processo; o processo pode acatar o sinal, entender que voc deseja que ele deixe de ser executado, fechar qualquer arquivos de logs que ele tenha aberto, e geralmente terminar a tarefa que ele est realizando no momento, antes de deixar de executar. Em alguns casos um processo pode ignorar o SIGTERM se ele estiver no meio de uma tarefa que no pode ser interrompida.
SIGKILL no pode ser ignorado por qualquer processo. Este o sinal que diz ao processo, Eu no me importo com o que voc esteja fazendo, pare agora mesmo. Se voc enviar um SIGKILL a qualquer processo, o FreeBSD ir

interromper aquele processo4.

117

Captulo 3. UNIX Bsico Outros sinais que voc pode querer conhecer so SIGHUP, SIGUSR1, e SIGUSR2. Estes so sinais de propsitos gerais, e aplicaes distintas tero comportamento distintos ao receber estes sinais. Suponha que voc modicou o arquivo de congurao do seu servidor HTTPvoc deseja dizer ao daemon para ele reler essa congurao. Voc poderia parar e reiniciar o httpd, mas isso resultaria em uma breve interrupo do servio, o que pode no ser desejvel. A maioria dos daemons so escritos de forma que respondam a um SIGHUP com a releitura de seu arquivo de congurao. Ento, ao invs de matar e reiniciar o processo httpd voc enviaria o sinal SIGHUP ao processo. Por no existir uma forma padro de resposta estes sinais, cada daemon pode ter um comportamento diferente, de forma que voc deve ler a documentao para o programa em questo. Sinais so enviados utilizando o comando kill(1), como mostra o exemplo a seguir: Enviando sinal aos processos Esse exemplo mostra como enviar sinais ao inetd(8). O arquivo de congurao do inetd o /etc/inetd.conf, e o inetd ir reler sua congurao, quando receber o sinal SIGHUP. 1. Encontre o ID do processo que voc quer enviar o sinal. Faa isso com o ps(1) em conjunto com grep(1). O grep(1) usado para procurar por uma cadeia de caracteres na sada desejada. O comando executado como usurio normal, e o inetd(8) executado como root, ento as opes ax devem ser usadas com o ps(1).
% ps -ax | grep inetd

198

??

IWs

0:00.00 inetd -wW

Portando o PID do inetd(8) 198. Em alguns casos o comando grep inetd poder estar incluso tambm na sada desses comandos. Isso se deve maneira como o ps(1) procura na lista de processos em execusso. 2. Use kill(1) para enviar sinais. Pelo fato do inetd(8) estar sendo executado pelo root voc deve usar o su(1) antes, para se tornar root.
% su Password: # /bin/kill -s HUP 198

Como de costume com a maioria dos comandos UNIX, o kill(1) no apresentar qualquer mensagem se o resultado da ao for bem sucedido. Se voc enviou um processo que no seu, voc ver uma mensagem parecida com kill: PID : Operation not permitted. Se voc digitar o PID errneamente, ou voc vai enviar o sinal ao processo errado, o que pode ser bem ruim, ou, se voc tiver sorte, ter enviado o sinal a um processo que no est ativo, e ver algo como kill: PID : No such process.
Por que usar o /bin/kill?: Muitos interpretadores de comandos oferecem o comando kill embutido; ou seja, o interpretador enviar o sinal diretamente, ao invs de executar o /bin/kill. Isso pode ser muito til, mas interpretadores de comandos distintos podem ter sintaxe distinta. Ao invs de aprender a usar cada uma, bem mais fcil aprender usar o comando /bin/kill ... diretamente.

Enviar outros sinais muito parecido, basta substituir o TERM ou KILL na linha de comando, conforme for necessrio.
Importante: Matar processos aleatrios no sistema pode ser uma m idia. Em especial o processo cujo ID 1, o init(8), que bem particular. Enviar um /bin/kill -s KILL 1 uma forma singela de desligar seu sistema. Sempre verique duas vezes os argumentos do kill(1) antes de apertar Enter.

118

Captulo 3. UNIX Bsico

3.9. Shells
No FreeBSD, uma grande parte do trabalho do dia a dia feito por interface de linha de comando, chamada de interpretador de comandos, ou shell. A principal funo de uma shell receber comandos por um canal de entrada e execut-los. Uma srie de shells ainda possuem funes embutidas, o que ajuda a facilitar a realizao de tarefas do dia-a-dia, como gerenciamente de arquivos, edio de linha de comando, macros de comandos e variveis de ambiente. O FreeBSD vem com uma srie de interpretadores de comandos, como o sh, chamado de Bourne Shell, e tcsh, A C-shell melhorada. Muitos outros interpretadores de comandos esto disponveis na Coleo de Ports do FreeBSD, como o zsh e o bash. Que shell utilizar? Trata-se meramente de uma questo de gosto. Se voc um programador C, se sentir mais confortvel com um interpretador de comandos similar linguagem C, como o tcsh. Se voc teve suas origens no Linux, ou novo ao UNIX, tenta experimentar o bash. O ponto que cada interpretador de comandos possui propriedades nicas, que pode ou no funcionar corretamente em seu ambiente de trabalho, e tambm, outro ponto importante sua liberdade de escolha para decidir qual e quando interpretador utilizar. Uma das caractersticas mais comuns em interpretadores de comandos completar nome de arquivos. Ao digitar as primeiras letras de um comando ou de um arquivo, voc normalmente pode fazer com que a shell automaticamente complete o restante do comando ou arquivo, pressionando a tecla Tab no teclado. Aqui est um exemplo. Suponha que voc tenha dois arquivos chamados foobar e foo.bar. Voc quer apagar o foo.bar. Ento o que voc faria no teclado : rm fo[Tab].[Tab]. O interpretador de comandos apresentaria como resultado algo similar rm foo[BEEP].bar. O [BEEP] o sino do console, que indica que o interpretador de comandos no foi capaz de completar totalmente o nome do arquivo porque existe mais do que uma opes que coincide. Ambos, foobar e foo.bar comeam com fo, mas a shell pode completar o nome do arquivo at foo. Se neste momento voc digitar ., e pressionar Tab mais uma vez, a shell deve ser capaz de completar o restante do nome do arquivo para voc. Outra funcionalidade de um interpretador de comandos o uso de variveis de ambiente. Variveis de ambiente so duplas variveis de valores armazenados no espao de ambiente da shell. Esse espao de ambiente pode ser lido por qualquer programa chamado pelo intepretador, de forma que contenha uma srie de conguraes interpretadas pelo mesmo. Segue aqui uma lista de variveis de ambiente comuns, e seus respectivos signicados: Varivel
USER PATH DISPLAY SHELL TERM TERMCAP

Descrio Nome do usurio logado no momento. Lista de diretrios, divididos por vrgula, indincando onde deve-se procurar por binrios. Nome de rede do terminal grco do X11 onde o mesmo deve se conectar, caso esteja disponvel. O interpretador de comandos atual. Nome do terminal do usurio. usado para determinar as caractersticas do terminal. Entrada com a base de dados de cdigos de terminal, que realizam vrias funes do console.

119

Captulo 3. UNIX Bsico Varivel


OSTYPE MACHTYPE EDITOR PAGER MANPATH

Descrio A espcie do sistema operacional em questo, por exemplo, FreeBSD. A arquitetura de CPU onde o sistema est sendo executado. Editor de texto padro para o usurio. O paginador de texto padro para o usurio. Lista de diretrios separadaos por vrgulas que indicam onde as pginas de manuais devem ser buscadas.

Ajustar as variveis de ambiente tarefa que se difere de algumas formas entre as vrias shells disponveis. Por exemplo, nas shells baseadas na linguagem C, como o tcsh e o csh, voc usaria o setenv para justar as variveis de ambiente. Sobre um interpretador estilo Bourne shell como o prprio sh e o conhecido bash, voc usaria o export para denir a varivel de ambiente. Por exemplo, para denir ou modicar o valor da varivel de ambiente EDITOR, sob csh ou tcsh, para denir a varivel EDITOR com o valor /usr/local/bin/emacs, voc faria algo como:
% setenv EDITOR /usr/local/bin/emacs

Enquanto sob uma Bourne shell seria:


% export EDITOR="/usr/local/bin/emacs"

Ainda possvel fazer a maioria dos interpretadores expandirem a varivel, simplesmente adicionado o carcter $ na frente da prpria varivel. Por exemplo, echo $TERM imprimiria todo o contedo da varivel $TERM, por qu o interpretador interpreta a varivel $TERM como seu valor, e o passa para o echo. Os interpretadores de comandos cuidam ainda de uma srie de caracteres especiais, chamados de meta-caracteres, como representaes especiais de dados. O caracter mais comum o *, que representa qualquer conjunto de caracteres em um nome de arquivo. Os meta-caractres especiais podem ser usados como substituio de arquivos. Por exemplo, o comando echo * tem resultado similar sada de um ls pois o interpretador de comandos pega todos os arquivos que batem com * e os coloca na linha de comando de forma que o echo possa encherga-los. Para evitar que a shell interprete estes caracteres especiais, pode-se utiliza-los como excluso, inserindo uma barra invertinda (\) na frente deles. echo $TERM imprime em que terminal voc est, enquanto echo \$TERM imprime $TERM exatamente.

3.9.1. Modicando sua Shell


A forma mais fcil de modicar seu interpretador de comandos usar o comando chsh. Executar o chsh te colocar no editor denido na varivel de ambiente EDITOR; se esta varivel no estiver denida, voc ser colocado no vi. Modique a linha Shell: de acordo com suas necessidades. Voc pode ainda usar o chsh com a opo -s; assim voc pode ajustar sua shell sem entrar no editor. Por exemplo, se a inteno era modicar seu interpretador para usar o bash, o truque pode ser feito da seguinte forma:
% chsh -s /usr/local/bin/bash

Utilizar o chsh sem parmetros e editar a shell tambm funcionaria.

120

Captulo 3. UNIX Bsico


Nota: O interpretador de comandos que voc deseja utilizar deve estar listado no arquivo /etc/shells. Se voc instalou o interpretador partir da Coleo de Ports, isso j foi feito. Se voc instalou na mo, voc mesmo deve faze-lo. Por exemplo, se voc instalou o bash manualmente e o colocou no /usr/local/bin, voc vai querer fazer o seguinte:
# echo "/usr/local/bin/bash" >> /etc/shells

Em seguida, execute novamente o chsh.

3.10. Editores de Texto


Uma srie de conguraes no FreeBSD so feitas partir da edio de arquivos de texto. Por tal motivo, seria uma boa idia se tornar familiar com algum editor de texto. FreeBSD vem com alguns editores, como parte de seu sistema base, e muitos outros editores esto disponveis na coleo de ports. O editor mais simples e mais fcil para aprender, um editor chamado ee, que signica easy editor (editor fcil). Para iniciar o ee, basta digitar na linha de comando ee nomedoarquivo onde nomedoarquivo o nome do arquivo que deve ser editado. Por exemplo, para editar o /etc/rc.conf, digite ee /etc/rc.conf. Uma vez dentro do ee, todos os comandos para manipular as funes do editor esto listadas no topo da tela. O caracter ^ representa a tecla Ctrl do teclado, de forma que ^e implica na combinao de teclas Ctrl+e. Para sair do ee, aperte a tecla Esc, depois escolha leave editor (sair do editor). O editor ir perguntar se voc deseja salvar as modicaes no arquivo, caso ele tenha sido alterado. FreeBSD tambm oferece editores de texto mais poderosos, como o vi, como parte da base do sistema, enquanto outros editores como emacs e vim, esto disponvels na Coleo de Ports do FreeBSD. Estes editores oferecem muitas funcionalidades e so extramente poderosos, ao custo de serem um pouco mais difceis de aprender. Contudo se voc planeja editar muitos textos, aprender algum editor de texto mais poderoso como vim ou emacs economizar a voc mais tempo, longo prazo.

3.11. Dispositivos e Ns de Dispositivos


Um dispositivo um termo usado em sua maioria para fazer meno atividades relacionadas equipamentos fsicos no sistema, incluindo discos, impressoras, placas de vdeo e teclados. Quando o FreeBSD iniciado, a maioria dos dados que o sistema apresenta so referentes deteco de dispositivos. possvel reavaliar as mensagens de inicializao, analisando o arquivo /var/run/dmesg.boot. Por exemplo, o dispositivo acd0 o primeiro CDROM IDE disponvel, enquanto kbd0 representa o teclado. A maioria destes dispositivos em um sistema operacional UNIX devem ser acessados por intermdio de arquivos especiais, chamados ns de dispositivos, ou device nodes, que esto dispostos sob o diretrio /dev.

3.11.1. Criando Ns de Dispositivos


Ao adicionar um novo dispositivo em seu sistema, ou compilar suporte dispositivos adicionais, pode ser necessrio criar um ou mais ns de dispositivos para controlar os recm adicionados.

121

Captulo 3. UNIX Bsico 3.11.1.1. MAKEDEV Script Em sistemas sem DEVFS (isso diz respeito todas verses do FreeBSD antes da 5.0), ns de dispositivos so criados utilizando a rotina MAKEDEV(8) como apresentado seguir:
# cd /dev # sh MAKEDEV ad1

Este exemplo cria os ns de dispositivos apropriados para o segundo dispositivo IDE, quando o mesmo for instalado.

3.11.1.2. DEVFS (DEVice File System) O sistema de arquivo de dispositivos, ou simplesmente DEVFS, oferece acesso ao espao em kernel para os dados referentes aos nomes de dispositivos, no sistema de arquivos global. Ao invs de ter que criar e modicar os ns de dispositivos, DEVFS mantm este sistema de arquivos particular. Veja a pgina de manual do devfs(5) para obter mais informaes.
DEVFS utilizado por padro no FreeBSD 5.0 e posteriores.

3.12. Formatos de binrios


Para entender o motivo pelo qual o FreeBSD usa o formato ELF voc deve saber primeiro um pouco mais sobre os trs formados atualmente dominantes de arquivos executveis UNIX:

a.out(5) O mais antigo e clssico formato de objetos UNIX. Utiliza um cabealho curto e compacto com um nmero mgico (magic number) no incio do mesmo, que geralmente usado para caracterizar seu formato (veja a.out(5) para mais detalhes). Contm trs segmentos carregados: .text, .data e .bss, acrecidos de uma tabela de smbolos e uma tabela de conjunto caracteres.

COFF O formato de objetivos SVR3. Seu cabealho compreende uma tabela de sees, de forma que possvel ter mais sees do que apenas .text, .data e .bss.

ELF O sucessor direto do COFF, oferecendo mltiplas sees e valores possveis de 32-bit ou 64-bit. Uma grande desvantagem: ELF foi projetado assumindo-se que haveria possilvemente apenas uma ABI por arquitetura de sistema. Essa considerao contudo levemanete incorreta hoje em dia, e nem mesmo no mundo comercial do SYSV (onde existem ao penos trs ABIs: SVR4, Solaris e SCO) ela real. FreeBSD tenta amenizar este problema por meio de um utilitrio que reconhece um executvel ELF e obtm informaes sobre a ABI compilada neste. O utilitrio em questo o brandelf. Veja a pgina de manual do brandelf(1) para obter mais informaes.

FreeBSD vem do campo clssico e durate muito tempo usou o formato a.out(5), uma tecnologia utilizada e aprovada por muitos geraes de verses de sistemas BSD, at o ramo 3.X do FreeBSD. Apesar de ser possvel gerar binrios (e mesmo o kernel) no formato ELF bem antes do FreeBSD 3.X, o sistema inicialmente resistiu presso de mudar para o formato ELF como formato padro. Por qu? Bem, quando o pessoal do campo Linux fez sua

122

Captulo 3. UNIX Bsico dolorosa transio para ELF, os executveis a.out no podiam ser utilizados pois sua tabela de salto era consideradavelmente inexvel, e a construo de bibliotecas compartilhadas parecia ser complexa demais no novo formato, para os fabricantes e desenvolvedores em geral. Depois que algumas ferramentas ELF ofereceram solues ao problema de bibliotecas compartilhadas, o formato passou a ser visto como o caminho a ser seguido, os custos de migrao para este formato j eram ento aceitveis, e a transio foi feita. O mecanismo de bibliotecas compartilhadas do FreeBSD baseado com maior proximidade ao estilo de bibliotecas compartilhadas do SunOS da Sun, e como tal, muito fcil de ser utilizado. Ento, por que existem tantos formatos distintos? De volta ao sombrio, glido e distante passado, existiam apenas equipamentos simples de computao. Estes equipamentos simples, suportavam sistemas simples e pequenos. O formato a.out era completamente adequado s tarefas apresentadas pelos binrios nestes sistemas simplistas (como PDP-11). Conforme o UNIX passou a ser convertido com base nestes sistemas simples, mantiveram o formado a.out pois era suciente para as primeiras converses do UNIX, para arquiteturas como Motorola 68k, VAXen, etc. Depois algum engenheiro de hardware iluminado decidiu que ele poderia forar os programas a realizarem algumas tarefas mais simples, de forma que ele poderia retirar alguns tens de seu projeto de equipamento e permitir que o ncleo de sua CPU processasse de forma mais rpida. Mesmo tendo sido projetado para funcionar com este novo tipo de hardware (conhecido hoje em dia como RISC), o formato a.out no se encaixava funcionalmente para o novo equipamento, ento vrios formatos foram desenvolvidos para tentar garantir melhor performance deste novo equipamento, quando comparado ao que o limitado formato a.out poderia oferecer. Algumas coisas como COFF, ECOFF, e alguns outros formatos obscuros foram inventados e suas limitaes exploradas antes que as coisas pudessem se estabilizar no formato ELF. Em adio, o tamanho dos programas estavam se tornando grandes, e os discos (bem como memria fsica) continuavam relativamente pequenos, ento o conceito de bibliotecas compartilhadas nasceu. O sistema de memria virtual tambm se tornou mais sosticado. Enquanto cada um desses avanos foram feitos utilizando o formato a.out, sua usabilidade foi se tornando cada vez mais duvidosa, na proporo que novas caractersticas eram adicionadas. Em adio, as pessoas queriam poder carregar as coisas de forma dinmica, no momento de execusso do sistema, ou ento dispensar trechos de seus programas depois que o cdigo inicial tivesse sido executado, para economizar memria e espao de troca (swap) As linguagens se tornaram mais sosticadas, e as pessoas queriam que cdigos fossem carregados antes do programa principal de forma automtica. Uma srie de modicaes foram feitas no formato a.out para permitir que esse tipo de coisa pudesse acontecer, e basicamente tudo funcionou bem por um tempo. Em determinado momento, o a.out no podia mais contornar estes problemas sem sobrecarregar seu cdigo e aumentar sua complexidade. O formato ELF resolvia a maioria desses problemas, mas seria doloroso migrar de um sistema que, basicamente, funcionava. Ento o formato ELF teve que esperar at que fosse mais penoso continuar com o a.out, do que migrar para o ELF. Contudo, com o passar do tempo, as ferramentas de construo de onde o FreeBSD derivou suas prprias ferramentas de construo (o montador assembly e o carregador, especialmente) se envolveram em duas rvores paralelas. A rvore FreeBSD adicionou bibliotecas compartilhadas e corrigiu algumas falhas. O pessoal GNU que originalmente escreviam esses programas, rescreveram os mesmos de adicionaram suporte simples compilao cruzada, podendo adicionar formatos diferentes bel prazer, e assim por diante. Partindo do princpio que muitas pessoas desejavam criar compiladores cruzados para o FreeBSD, tiveram problemas pois os fontes antigos do FreeBSD faziam chamadas ao as e ld o que no possibilitava tal tarefa. A nova corrente de ferramentas GNU (binutils) suporta compilao cruzada, ELF, bibliotecas compartilhadas, extenses C++, etc. Alm disso, muitos fabricantes passaram a lanar binrios ELF, e era bom que o FreeBSD pudesse rod-los. ELF mais expressivo que a.out e oferece mais extensibilidade no sistema base. As ferramentas ELF so melhor mantidas, e oferecem suporte compilao cruzada, que importante para muita gente. O formato ELF pode ser um

123

Captulo 3. UNIX Bsico pouco mais lento do que a.out, mas tentar medir esta diferena bem difcil. Existem ainda vrios detalhes distintos entre ambos, em relao como eles mapeiam pginas, tratam cdigo de inicializao, carregamento das instrues, etc. Nenhum destes fatores so muito relevantes, mas so diferentes. Futuramente, o suporte a.out ser retirado do kernel GENERIC, e eventualmente removido do sistema quando a necessidade de executar programas a.out for passado.

3.13. Para mais informaes


3.13.1. Pginas de Manuais
A documentao mais compreensiva do FreeBSD em forma de pginas de manuais. Quase todo programa no sistema acompanhado com um breve manual de referncia que explica a operao bsica e os vrios argumentos do programa. Estes manuais podem ser visualizados com o comando man. A utlizao do comando man simples:
% man comando

comando o nome do comando sobre o qual voc deseja aprender. Por exemplo, para aprender sobre o comando ls,

digite:
% man ls

O manual online dividido em sees numeradas: 1. Comandos de usurio. 2. Chamadas de sistema e nmero de erros. 3. Funes de bibliotecas C. 4. Controladores de dispositivos. 5. Formato de arquivos. 6. Jogos e outras diverses. 7. Informaes gerais. 8. Comandos de manuteno e operao do sistema. 9. Desenvolvedores do kernel. Em alguns casos, o mesmo tpico pode aparecer em mais de uma seo do manual online. Por exemplo, se houver um comando chmod para o usurio, e se houver uma chamada de sistema denominada chmod(), voc pode informar ao comando man qual delas voc quer, especicando a seo:
% man 1 chmod

Esse comando apresentar a pgina de manual para o comando do usurio, chmod. Referncias para uma seo particular do manual online normalmente so apresentadas entre parnteses, nos documentos escritos, de forma que chmod(1) se refere ao comando de usurio para chmod, e chmod(2) se refere chamada de sistema. bem facil utilizar essa ferramenta, quando voc sabe o nome do comando sobre o qual quer obter mais informaes, mas e se voc no puder lembrar o nome do comando? Pode usar o man para procurar por palavras chaves nas descries do comando, usando opo -k:

124

Captulo 3. UNIX Bsico


% man -k mail

Com esse comando, uma lista de programas ser apresentada, contendo em sua descrio a expresso mail. Na verdade esse comando tem a mesma funcionalidade de se utilizar o comando apropos. Ento, voc est dando uma olhada em todos esses simpticos programas que voc encontrou sob /usr/bin mas no tem a menor idia do que quer que cada um deles faa? Simplesmente digite:
% cd /usr/bin % man -f *

ou
% cd /usr/bin % whatis *

que fazem a mesma coisa.

3.13.2. Arquivos de Informaes GNU


O FreeBSD inclui vrias aplicaes e utilitrios mantidos pela Fundao do Software Livre (FSF). Em complemento s pginas de manual, estes programas vem ainda com um documento hipertexto extenso, chamado arquivo info que pode ser visualizado com o comando info ou, se voc dispe do emacs instalado, o modo info do emacs tem essa funo. Para usar o comando info(1), simplesmente digite:
% info

Para uma breve introduo, digite h. Para uma rpida referncia aos comandos, digite ?.

Notas
1. isso que i386 signica. Note que mesmo se voc no estiver executando o FreeBSD em um processador Intel 386, esta informao ainda ser apresentada como i386. No trata-se do tipo de seu processador, mas sim a arquitetura do processador, que apresentada aqui. 2. Scripts de inicializao so programas executados automaticamente quando o FreeBSD iniciado. Sua principal funo congurar tudo que for necessrio para o resto do sistema funcionar, e iniciar todos os servios que voc congurou para serem executados em instncia de fundo, (em background realizado tarefas teis). 3. Uma descrio tcnica e considervelmente acurada de todos detalhes sobre o console FreeBSD e dispositivos de teclado pode ser encontrada nas pginas de manuais do syscons(4), atkbd(4), vidcontrol(1) e kbdcontrol(1). No vamos entrar nestes detalhes aqui, mas o leitor interessado pode sempre consultar as pginas de manual para obter explicaes mais detalhadas de como as coisas funcionam. 4. No completamente verdadeexistem algumas poucas tarefas que no podem ser interrompidas. Por exemplo, se o processo est tentando ler um arquivo que est em uma outra estao da rede, e essa outra estao no est mais disponvel por alguma razo (foi desligado, ou houve falha na rede), ento o processo denido como um processo que no pode ser interrompido. Eventualmente ele ir passar do tempo mximo de atividade permitida, tipicamente dois minutos (o timeout). To logo este perodo acontea, o processo morto.

125

Captulo 4. Instalando aplicativos: Pacotes e Ports


4.1. Sinpse
O FreeBSD tem como parte de seu pacote bsico uma vasta coleao de ferramentas de sistemas. possvel fazer muita coisa antes de ter que instalar aplicativos adicionais de terceiros para trabalhar de verdade. O FreeBSD disponibiliza duas tecnologias complementares para a instalao de aplicativos em seu sistema: A coleo de ports do FreeBSD, e pacotes binrios de software. Qualquer um dos dois sistemas pode ser utilizado para instalar as veres mais recentes das suas aplicaes preferidas a partir de uma mdia local ou ento direto da rede. Aps ler este capitulo voc ir conhecer:

Como instalar aplicativos a partir de pacotes binrios do software. Como compilar aplicativos a partir da coleo do Ports. Como remover aplicativos instalados prviamente atravs de packages ou ports. Como sobrescrever os valores padres utilizados pela coleo de ports. Como atualizar sua coleo de ports.

4.2. Viso geral do processo de instalao de software


Se voc j utilizou um sistema UNIX anteriormente, voc deve saber que o procedimento tipico para instalar um aplicativo parecido com isto: 1. 2. 3. 4. 5. Faa o download do software, o qual pode ser distribuido como cdigo fonte ou no formato binrio. Descompacte o arquivo de distribuio do software (tipicamente um tarball comprimido com compress(1), gzip(1), ou bzip2(1)). Localize a documentao (normalmente um arquivo chamado INSTALL ou README, ou ento um conjunto de arquivos no subdiretrio doc/ ) e descubra como instalar o software. Se o software for distribuido como cdigo fonte, compile-o. Isto pode envolver a edio de um arquivo Makefile , ou a execuo de um script chamado configure , alm de outras tarefas. Teste e instale o software.

E s isso se tudo correu como esperado. Agora se voc est instalando um aplicativo que no foi deliberamente portado para o FreeBSD, voc pode ter que fazer ajustes no cdigo fonte do mesmo para que ele compile corretamente. Se voc desejar, voc pode continuar instalando aplicativos no FreeBSD pelo mtodo tradicional. Contudo, o FreeBSD disponibiliza duas tecnologias que podem lhe economizar muito esforo: packages e ports. No momento, mais de 13,300 aplicativos j foram disponibilizados desta forma. Independente de qual seja o aplicativo, o pacote FreeBSD do mesmo consiste-se em um unico arquivo para download. O pacote contm cpias pr-compiladas de todos os comandos do aplicativo, bem como cpias dos

126

Captulo 4. Instalando aplicativos: Pacotes e Ports arquivos de congurao e/ou da documentao. O gerenciamento de um pacote FreeBSD realizado por uma srie de comandos especicos, tais como pkg_add(1), pkg_delete(1), pkg_info(1) entre outros. A instalao de um novo aplicativo pode ser realizada atravs da execuo de um unico comando. Um port FreeBSD para um aplicativo consiste-se em uma coleo de arquivos destinados a automatizar o processo de compilao da aplicao a partir do seu cdigo fonte. Lembre-se que existem diversos passos que voc teria que executar para compilar o programa manualmente ( baixar , descompactar, aplicar correes, compilar e instalar). Os arquivos de um port contm todas as informaes necessrias para possibilitar que o sistema automatize o processo para voc. Voc executa um conjunto de comandos simples e o cdigo fonte do aplicativo automaticamente baixado, descompactado, corrigido, compilado e instalado para voc. De fato, o sistema de ports pode ser utilizado para pacotes binrios do aplicativo, o qual pode ser manipulado mais tarde atravs do comando pkg_add, ou por qualquer outro comando de gerenciamento de pacotes, os quais iremos introduzir adiante. Ambos os sistemas de instalao cuidam da instalao das dependncias do aplicativo. Suponha que voc deseja instalar uma aplicao que depende de uma biblioteca especca para funcionar. Tanto o aplicativo quanto a biblioteca so disponibilizadas no FreeBSD como pacote e como ports. Se voc utilizar o comando pkg_add ou o sistema de ports para adicionar o aplicativo, ambos iro informar que a biblioteca necessria para o funcionamento do aplicativo no est instalada corretamente e iro instalar automaticamente a biblioteca antes de instalar o aplicativo. dado que ambas as tecnologias so muito similares, voc deve querer saber porque o FreeBSD se preocupa com as duas. Os sistemas de pacotes e ports possuem suas prprias virtudes, a que voc ir utilizar depender da sua preferncia pessoal. Benefcios do sistema de Pacotes

Um pacote tarball comprimido dos binrios do aplicativo normalmente menor que um tarball compactado contendo o cdigo fonte do mesmo aplicativo. Um pacote no requer nenhuma compilao adicional. Para os grandes aplicativos como por exemplo Mozilla, KDE, ou GNOME isto pode ser importante, particularmente se voc est utilizando uma mquina lenta. A instalao de um pacote no requer nenhum conhecimento do processo envolvido na compilao do software para o FreeBSD.

Benefcios do Sistema de ports

Um pacote compilado normalmente com opes conservadoras, pois ele tem que executar no maior numero de sistemas possivel. Ao instalar a partir do ports, voc pode ajustar as opes de compilao para (por exemplo) gerar um binrio especco para processadores Pentium IV ou para processadores Athlon. Alguns aplicativos possuem opes que so especicadas no ato da compilao que esto relacionadas ao que eles podem ou no fazer. Por exemplo, o Apache pode ser congurado no momento de sua compilao com uma grande variedade de opes. Ao compilar a partir do port voce no obrigado a aceitar as opes default, e pode deni-las de acordo com suas necessidades. Em alguns casos, iro existir multiplos pacotes de um mesmo aplicativo para especicar certas opes. Por exemplo, o aplicativo Ghostscript esta disponvel em dois pacotes, ghostscript e ghostscript-nox11, voc ir optar por um ou por outro dependendo se possui ou no um servidor X11 instalado. Esse tipo de ajuste no possvel de ser realizado com pacotes, mas se torna invivel se o aplicativo possuir mais de uma ou duas opes, em tempo de compilao, diferentes.

127

Captulo 4. Instalando aplicativos: Pacotes e Ports

As condies de licenciamento de alguns softwares proibem a distribuio de pacotes binrios. Eles tem que ser distribuidos como cdigo fonte. Algumas pessoas no conam em distribuies binrias. Tendo acesso ao cdigo fonte, voc mesmo pode (em teoria) inspecion-lo e procurar por problemas potenciais. Se voc possui correes customizadas, voc vai precisar do cdigo fonte para poder aplic-las. Muitos usuarios gostam de ter o cdigo a sua disposio, para estud-los, modic-los, copi-los (respeitando a licenca, claro) e assim por diante.

Para manter-se atualizado sobre a coleo de ports, inscreva-se nais listas lista de discusso sobre FreeBSD ports e o sistema de ports FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports) e lista de discusso dos bugs do ports em FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-bugs). O restante deste capitulo ir explicar como utilizar o sistema de packages e o de ports para instalar e gerenciar aplicativos de terceiros no FreeBSD.

4.3. Encontrando seu aplicativo


Antes que voc possa instalar todas as aplicaes de que necessita, voc precisa saber do que precisa, e tambm como a aplicao se chama. A lista de aplicativos disponiveis para FreeBSD cresce o tempo todo. Felizmente, existem diversas formas de procurar o que voc necessita:

O web site do projeto FreeBSD mantm uma lista atualizada de todos os aplicativos disponiveis e na qual voc pode executar buscas, em http://www.FreeBSD.org/ports/ (../../../../ports/index.html). O ports est dividido em categorias, e voc pode efetuar buscas pelo nome do aplicativo (se voc souber qual ), ou ento olhar todos os aplicativos disponiveis em uma categoria. Dan Langille mantm o stio web FreshPorts, em http://www.FreshPorts.org/. O FreshPorts rastreia as alteraes nas aplicaes na rvore do ports a medida que elas acontecem, permitindo que voc monitore um ou mais ports, enviando um email para voc quando eles forem atualizados. Se voc no sabe o nome da aplicao que deseja, consulte um stio no estilo do FreshMeat (http://www.freshmeat.net/) para procurar um aplicativo que lhe atenda, quando encontrar volte ao stio do FreeBSD e verique se o aplicativo j foi incorporado ao ports.

4.4. Usando o sistema de pacotes


Contributed by Chern Lee.

4.4.1. Instalando um pacote


Voc pode utilizar o utilitrio pkg_add(1) para instalar um pacote de software no FreeBSD a partir de um arquivo local ou a partir de um servidor na rede.

128

Captulo 4. Instalando aplicativos: Pacotes e Ports Exemplo 4-1. Baixando manualmente um pacote e instalando-o localmente
# ftp -a ftp2.FreeBSD.org

Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230230This machine is in Vienna, VA, USA, hosted by Verio. 230Questions? E-mail freebsd@vienna.verio.net. 230230230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/

250 CWD command successful.


ftp> get lsof-4.56.4.tgz

local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for lsof-4.56.4.tgz (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit # pkg_add lsof-4.56.4.tgz

Se voc no possui uma fonte local de pacotes (como por exemplo um conjunto de CD-ROMs do FreeBSD) ser mais facil utilizar a opo -r com o pkg_add(1). Esta opo far com que o utilitrio determine automaticamente o formato correto do objeto, a verso apropriada, bem como dir ao utilitrio para fazer o download e a instalao do aplicativo a partir de um servidor FTP.
# pkg_add -r lsof

O exemplo acima ir baixar o pacote correto e instal-lo sem nenhuma outra interveno do usurio. O pkg_add(1) utiliza o fetch(3) para baixar os arquivos, o qual considera variveis de ambiente incluindo FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Voc pode ter que ajustar uma ou mais delas caso esteja atrs de um rewall, ou ento ter que utilizar um proxy FTP/HTTP. Consulte fetch(3) para visualizar a lista completa. Observe que no exemplo acima lsof utilizado no lugar de lsof-4.56.4. Quando o recurso de busca remota utilizado, o numero de verso do pacote deve ser removido. O pkg_add(1) ir buscar automaticamente a ultima verso do aplicativo. Os pacotes so distribuidos no formato .tgz e .tbz, voc pode encontra-los em ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ou nos CDs de instalao do FreeBSD. Todos os CDs do conjunto de CDs de instalao do FreeBSD (e do PowerPack, etc) contm pacotes no diretrio /packages. O layout do diretrio packages similar ao encontrado na rvore /usr/ports. Cada categoria possui seu prprio diretrio, e cada pacote pode ser encontrado no diretrio All. A estrutura do diretrio do sistema de pacotes idntica ao layout do ports; eles trabalham em conjunto para formar o sistema de pacotes/ports.

129

Captulo 4. Instalando aplicativos: Pacotes e Ports

4.4.2. Gerenciando Pacotes


O pkg_info(1) um utilitrio que lista e descreve os vrios pacotes instalados.
# pkg_info

cvsup-16.1 docbook-1.2 ...

A general network file distribution system optimized for CV Meta-port for the different versions of the DocBook DTD

O pkg_version(1) um utilitrio que sumariza a verso de todos os pacotes instalados. Ele compara a verso do pacote instalado com a verso atual encontrada na rvore do ports.
# pkg_version

cvsup docbook ...

= =

Os smbolos na segunda coluna indicam a idade relativa da verso instadada e da verso disponivel na rvore local do ports. Symbol = < > Meaning A verso instalada do pacote idntica a verso disponvel na rvore local do ports. A verso instalada do pacote mais antiga que a verso disponivel na rvore local do ports. A verso instalada do pacote mais resente que a verso disponivel na rvore local do ports. (Provavelmente sua rvore do ports est desatualizada) O pacote instalado no foi localizado no indice do ports. (Isto pode ocorrer, por exemplo, se um aplicativo instalado for removido da rvore do ports ou ento foi renomeado). Existem mltiplas verses do pacote.

4.4.3. Deletando um pacote


Para remover um pacote prviamente instalado, utilize o utilitrio pkg_delete(1).
# pkg_delete xchat-1.7.1

4.4.4. Miscelnea
Todas as informaes dos pacotes so armazenadas no diretrio /var/db/pkg. A lista de arquivos instalados e a descrio de cada pacote pode ser encontrada nos arquivos destes diretrios.

130

Captulo 4. Instalando aplicativos: Pacotes e Ports

4.5. Usando a coleo de ports


A sesso abaixo fornecer as instrues bsicas sobre o uso da coleo de ports para instalar e remover programas do seu sistema.

4.5.1. Obtendo a coleo do ports


Antes que voc possa instalar um port, voc primeiro precisa obter a coleo de ports, a qual basicamente um conjunto de arquivos Makefiles, patches, e arquivos de descrio colocados sob /usr/ports Quando voc est instalando o FreeBSD, o Sysinstall pergunta se voc deseja instalar a rvore do ports, se voc respondeu no naquela ocasio, voc pode seguir as seguintes instrues para instalar a coleo de ports: Via Sysinstall Este mtodo envolve novamente a utilizao do sysinstall para instalar manualmente a coleo de ports. 1. Estando logado como o usurio root, execute o comando /stand/sysinstall como mostrado abaixo:
# /stand/sysinstall

2. 3. 4. 5. 6. 7. 8.

Utilize as setas direcionais de seu teclado e selecione a opo Congure, e pressioneEnter . Selecione a opo Distributions, e pressione Enter. Selecione a opo ports, e pressione a barra de espao para marc-la. Selecione a opo Exit, e pressione Enter. Agora voc deve escolher a mdia a partir da qual a coleo de ports ser instalada, como por exemplo CDROM, FTP, etc. Selecione a opo desejada e pressione Enter para iniciar a instalao. Selecione a opo Exit e pressione Enter para voltar a tela inicial. Pressione X para sair do sysinstall.

Um mtodo alternativo para obter e manter atualizada a coleo de ports atravs da utilizao do aplicativo CVSup . D uma olhada no arquivo de congurao do CVSup para o ports em /usr/share/examples/cvsup/ports-supfile. Consulte a sesso Utilizando o CVSup (Seo A.5) para maiores informaes sobre a utilizao do CVSup e deste arquivo. Via CVSup Este um guia rpido sobre como obter a coleo de ports atravs do uso do CVSup. Se voce deseja manter a sua rvore do ports atualizada, ou ento se desejar aprender mais sobre o CVSup, leia a sesso mencionada anteriormente. 1. 2. 3. 4. Instale o portnet/cvsup. Consulte a sesso Instalando o CVSup (Seo A.5.2) para maiores detalhes. Estando logado como o usurio root, copie o arquivo /usr/share/examples/cvsup/ports-supfile para um novo local, como por exemplo para o diretrio /root ou ento para o seu diretrio home. Abra o arquivo ports-supfile com o seu editor de textos preferido. Altere a entrada CHANGE_THIS.FreeBSD.org para o endereo vlido de um servidor CVSup perto de voc. Consulte a sesso Espelhos CVSup (Seo A.5.7) para visualizar a lista completa com todos os servidores disponiveis.

131

Captulo 4. Instalando aplicativos: Pacotes e Ports 5. Execute o comando cvsup:


# cvsup -g -L 2 /root/ports-supfile

6.

Ao executar este comando novamente no futuro, ele ir atualizar a sua rvore do ports, baixando todas as alteraes que ocorreram na coleo desde a ultima vez em que ele foi executado.

4.5.2. Instalando um aplicativo via Ports


A primeira coisa que precisa ser explicada a algum que est iniciando no uso do ports que na verdade um port composto por um conjunto de arquivos. Em poucas palavras, um port o conjunto mnimo de arquivos que diz ao sistema FreeBSD como compilar corretamente e como instalar um aplicativo. Cada port composto por:

Um arquivo Makefile. O Makefile contm vrias instrues que denem como o aplicativo deve ser compilado e onde ele deve ser instalado em seu sistema. Um arquivo distinfo. Este arquivo contem informaes sobre quais arquivos precisam ser obtidos para compilar o port e os seus respectivos checksums, os quais so utilizados para vericar se o o arquivo no foi corrompido durante o processo de transmisso, a vericao realizada atravs do utilitrio md5(1). Um diretrio chamado files. Este diretrio contm as correes necessrias para que o aplicativo possa ser compilado e instalado no FreeBSD. As correes so basicamente arquivos pequenos os quais especicam alteraes a serem aplicadas a determinados arquivos. So arquivos em formato texto plano, e basicamente dizem remova a linha 10 ou Altere a linha 26 para .... As correes so normalmente conhecidas como diffs, pois so gerados pelo utilitrio diff(1) Este diretrio tambm pode conter outros arquivos necessrios para a compilao do aplicativo.

Um arquivo pkg-descr. Este arquivo contm a descrio detalhada do aplicativo. Um arquivo pkg-plist. Este arquivo contm a lista de todos os arquivos que sero instalados pelo port. Ele tambm diz ao sistema de ports quais arquivos devem ser removidos durante a desinstalao do aplicativo.

Alguns ports possuem outros arquivos, como por exemplo pkg-message. O sistema de ports utiliza estes arquivos para lidar com sistuaes especiais. Se voc desejar maiores detalhes sobre estes arquivos, e sobre o sistema de ports em geral, consulte o FreeBSD Porters Handbook (../porters-handbook/index.html). Agora que voc tem bastante informao bsica para saber para que a coleo de ports utilizada, voc est pronto para instalar seu primeiro aplicativo pelo sistema de ports. Existem duas formas como isto pode ser feito, e cada uma delas est detalhada abaixo. No entanto antes de iniciarmos voc precisar escolher um aplicativo para instalar. Existem algumas formas de fazer isso, mas a maneira mais facil atravs da listagem de ports no web site do FreeBSD (../../../../ports/index.html). No site voc pode navegar pela rvore de ports ou ento utilizar-se do mecanismo de busca. Cada port possui uma descrio da nalidade do aplicativo a que ele se refere, a leitura destas descries vai ajud-lo na escolha de qual port instalar. Uma outra opo utilizar-se do utilitrio whereis(1). Simplesmente execute whereis arquivo , onde arquivo o programa que voc deseja instalar. Se ele for encontrado em seu sistema, voc ser informado da sua localizao, como mostrado abaixo:
# whereis lsof

lsof: /usr/ports/sysutils/lsof

132

Captulo 4. Instalando aplicativos: Pacotes e Ports A saida acima nos diz que o lsof (utilitrio de sistema) pode ser encontrado no diretrio /usr/ports/sysutils/lsof. Outra forma de procurar um port em particular atravs da utilizao do mecanismo interno de busca disponibilizado pelo sistema de ports. Para usar o recurso de busca, voc tem que estar dentro do diretrio /usr/ports. Uma vez dentro do diretrio, execute o comando make search name=nome_do_programa onde nome_do_programa o nome do aplicativo que vc est procurando. Por exemplo, se voc estiver procurando pelo lsof:
# cd /usr/ports # make search name=lsof

Port: Path: Info: Maint: Index: B-deps: R-deps:

lsof-4.56.4 /usr/ports/sysutils/lsof Lists information about open files (similar to fstat(1)) obrien@FreeBSD.org sysutils

A parte da sada na qual voc deve prestar um ateno especial a linha iniciada com Path:, uma vez que ela que diz onde encontrar o port. As outras informaes exibidas no so necessrias para a instalao do aplicativo pelo ports, e portanto no sero comentadas aqui. Para uma busca mais profunda voce pode utilizar make search key=string , onde string a palavra chave que deseja procurar. Esta busca ir varrer os nomes dos ports, os comentrios, as descries, as dependncias e pode pode ser utilizada para buscar um aplicativo que esteja relacionado a um assunto em particular caso voc no saiba o nome do aplicativo pelo qual voc est procurando. Em ambos os casos descritos acima, o argumento da busca case-insensitive. A busca por LSOF ir apresentar o mesmo resultado que uma busca por lsof .
Nota: Voce precisa estar logado como root para instalar um aplicativo pelo ports.

Agora que voc ja encontrou um aplicativo que gostaria de instalar, voc j est pronto para executar a instalao. O port inclui instrues sobre como compilar o cdigo fonte, porm no inclui o cdigo fonte propriamente dito. Voc pode obter o cdigo fonte a partir de um CDROM ou a partir da internet. O cdigo fonte distribuido da forma como o autor do software desejar, normalmente o formaro utilizado um tarball compactado com o utilitrio gzip, porm ele pode estar compactado com outro utilitrio ou mesmo estar descompactado. O cdigo fonte de um software, independente de como ele for distribuido, chamado de distle. Voce pode obter o distle a partir de um CDROM ou da internet. 4.5.2.1. Instalando um aplicativo atravs do ports via CDROM Os ISOs ociais distribuidos pelo projeto FreeBSD no incluem nenhum distle. Eles ocupariam muito espao, o qual melhor utilizado pelos pacotes pr-compilados. Os CDROMs da linha PowerPack incluem distiles, e voce pode comprar este conjunto de CDs em vendedores como a FreeBSD Mall (http://www.freebsdmall.com/). Esta seo assume que voc possui este conjunto de CDs. Insira o CDROM do FreeBSD no drive. Monte-o como /cdrom. Se voc utilizar um ponto de montagem diferente o processo de instalao no ir funcionar. Para iniciar, v para o diretrio do ports que voc deseja instalar:
# cd /usr/ports/sysutils/lsof

133

Captulo 4. Instalando aplicativos: Pacotes e Ports Uma vez dentro do diretrio lsof, voc ir ver o esqueleto do port. O prximo passo compilar, ou construir, o port. Isto realizado pela simples execuo do comando make. Ao executar o comando, voc ir visualizar uma saida semelhante a esta:
# make

>> lsof_4.57D.freebsd.tar.gz doesnt seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from file:/cdrom/ports/distfiles/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ...
#

Observe que aps completar o processo de compilao voc ir voltar para o prompt. O prximo passo instalar o port. Para instal-lo, basta adicionar a palavra install ao comando make, como mostrado abaixo:
# make install

===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges.
#

Uma vez que voc tenha retornado ao prompt, voc j deve ser capaz de executar a aplicao que acabou de instalar. Como o aplicativo lsof executa com privilgios altos, um aviso de segurana exibido. Durante o processo de compilao e de instalao, outros avisos podem ser exibidos.
Nota: Voce pode economizar um passo executando diretamente o comando make install, ao invs de executar o comando make seguido do comando make install como duas etapas separadas.

Nota: Alguns shells mantm um cache dos comandos disponveis nos diretrios listados na varivel de ambiente PATH, com o objetivo de agilizar o processo de busca para a execuo desdes comandos. Se voce estiver utilizando um destes shells, voc ter que executar o comando rehash logo aps a instalao do ports,

134

Captulo 4. Instalando aplicativos: Pacotes e Ports


antes que voce possa utilizar o aplicativo recm instalado. Esta operao necessria com todos os shells disponibilizados na base do sistema (como por exemplo o tcsh) e com alguns dos disponibilizados no ports (por exemplo, shells/zsh).

Nota: Por favor, esteja ciente de que a licena de alguns aplicativos no permite a incluso dos mesmos em um CDROM. Isto pode ocorrer devido a necessidade de se preencher algum formulrio antes de se fazer o download ou ento porque a redistribuio no permitida, ou por qualquer outra razo. Se voc deseja instalar um ports cujo distle no esteja presente no CDROM, voc ter que estar online para instal-lo (consulte a prxima seo).

4.5.2.2. Instalando um aplicativo atravs do ports via Internet Como na ltima seo, est seo assume que voc possui uma conexo internet funcional. Se voc no possuir, voc ter que executar a instalao apartir do CDROM, ou ento colocar manualmente uma cpia do distile do port desejado no diretrio /usr/ports/distfiles. A instalao de um port a partir da internet realizada de forma idntica a instalao a partir do CDROM, a nica diferena entre as duas que agora o distle ser obtido da internet ao invs de ser lido do CDROM. Os passos envolvidos so idnticos:
# make install

>> lsof_4.57D.freebsd.tar.gz doesnt seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 439860 bytes transferred in 18.0 seconds (23.90 kBps) ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE:

135

Captulo 4. Instalando aplicativos: Pacotes e Ports


This port has installed the following binaries which execute with increased privileges.
#

Como voce pode ver a nica diferena a linha que informa que o sistema esta baixando o distle. O sistema de ports utiliza o fetch(1) para baixar os arquivos, o qual considera vrias variveis de ambiente, incluindo FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Voc pode precisar denir uma ou mais delas caso esteja atrs de um rewall, ou mesmo fazer uso de um proxy FTP/HTTP, consulte fetch(3) para visualizar a lista de todas as variveis. Para os usurios que no podem car conectados o tempo todo, oferecido o comando make fetch como opo. Ao executar este comando na raiz da rvore do ports (/usr/ports), ele ir baixar todos os distiles necessrios para o uso do ports para voc. Este comando tambm funciona para as demais categorias do segundo nvel (por exemplo, /usr/ports/net). Observe que se um port depender de uma biblioteca ou de outros ports para funcionar, o comando acima no ir baixar os distiles destes ports. Se voc desejar que sejam baixadas todas as dependencias, substitua a opo fetch por fetch-recursive.
Nota: Voc pode compilar todos os ports de uma determinada categoria, ou mesmo todos os ports, executando o comando make na raiz da rvore do ports, exatamente como mencionado acima para o make fetch. Isto perigoso, pois alguns ports no podem co-existir no mesmo sistema. Em outros casos, alguns ports podem instalar 2 arquivos diferentes com o mesmo nome, um sobrescrevendo o arquivo do outro.

Em alguns casos raros, os usurios podem precisar obter os tarballs, a partir de um stio diferente do especicado no
MASTER_SITES (local de onde os distles so obtidos). Voce pode sobrescrever o valor da opo MASTER_SITES

com o seguinte comando:


# cd /usr/ports/directory # make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

No exemplo acima, ns alteramos a opo MASTER_SITES para ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.


Nota: Alguns ports permitem (ou mesmo precisam) que voc fornea algumas opes no momento da compilao, com o objetivo de habilitar ou desabilitar partes da aplicao que no so necessrias, opes de segurana e outras customizaes. Alguns ports onde ocorrem isso, e que vem a mente no momento so www/mozilla, security/gpgme, e mail/sylpheed-claws. Uma mensagem exibida quando este tipo de opes estiverem disponveis.

4.5.2.3. Sobrescrevendo o diretrio default do Ports Algumas vezes til (ou obrigatrio) utilizar diferentes distles e diretrios de ports. As variveis PORTSDIR e PREFIX podem sobrescrever os diretrios default. Por exemplo:
# make PORTSDIR=/usr/home/example/ports install

136

Captulo 4. Instalando aplicativos: Pacotes e Ports Ir compilar o port disponvel no diretrio /usr/home/example/ports e instalar tudo sob o diretrio
/usr/local.
# make PREFIX=/usr/home/example/local install

Ir compilar o port em /usr/ports e instalar tudo em /usr/home/example/local. E claro,


# make PORTSDIR=../ports PREFIX=../local install

Ir combinar os dois ( muito longo para escrever nesta pagina, mas j deu para voc ter uma idia geral de como isso funciona). Alternativamente, estas variveis podem fazer parte do seu ambiente. Leia o manual do seu shell para ver instrues de como fazer desta forma.

4.5.2.4. Lidando com o imake Alguns ports que fazem uso do imake (uma parte do Sistema X Windows) no fucionam bem com a varivel PREFIX, e iro insistir em instalar o aplicativo sob /usr/X11R6. De forma semelhante, alguns ports Perl ignoram a varivel PREFIX e se instalam sob a rvore do Perl. Fazer estes ports respeitarem a varivel PREFIX um trabalho difcil, seno impossvel.

4.5.3. Desinstalando um Ports


Agora que voc sabe como instalar um ports, voc provvelmente est se perguntando como remove-lo do sistema, apenas para o caso de voc instalar um e mais tarde descobrir que instalou o port errado. Ns iremos remover o nosso exemplo anterior (era o lsof caso no tenha prestado ateno). Assim como na instalao, voc primeiro deve entrar no diretrio do port, no nosso caso /usr/ports/sysutils/lsof. Depois que voc tiver entrado no diretrio, voc estar pronto para desinstalar o lsof. O que feito atravs do comando make deinstall:
# cd /usr/ports/sysutils/lsof # make deinstall

===>

Deinstalling for lsof-4.57

Simples assim, voc j removeu o lsof do seu sistema. Se voc desejar reinstal-lo, basta executar o comando make reinstall dentro do diretrio /usr/ports/sysutils/lsof. Os comandos make deinstall e make reinstall, no iro funcionar depois que voce executar o comando make clean. Se voce desejar desinstalar um ports depois de ter limpado o diretrio de trabalho, utilize o comando pkg_delete(1) como mostrado na Sesso sobre pacotes do Handbook.

4.5.4. Ports e espao em disco


Utilizar a coleo de ports pode denitivamente devorar espao do seu HD. Por esta razo voc precisa se lembrar de limpar o diretrio de trabalho utilizando o comando make clean. Ao execut-lo ele ir remover o diretrio work depois do port ter sido compilado e instalado. Voc tambm pode remover os arquivos tarballs do diretrio distfiles, alm de remover os aplicativos instalados quando eles no tiverem mais utilidade.

137

Captulo 4. Instalando aplicativos: Pacotes e Ports Alguns usurios preferem limitar as categorias do port, colocando uma entrada no arquivo refuse. Desta forma quando eles executam o CVSup, ele no ir baixar nenhum arquivo desta categoria.

4.5.5. Atualizando um aplicativo instalado via Ports


Manter um aplicativo atualizado pode ser uma tarefa tediosa. Pois para atualizar um aplicativo voc precisa ir ao diretrio do ports, compilar o port, desinstalar a verso antiga do port, instalar a nova verso e ento limpar o diretrio de trabalho aps a compilao. Imagine fazer isso para 5 aplicativos, entediante certo ? Este um dos grandes problemas com que um administrador de sistema tem que lidar, mas agora temos um utilitrio para fazer este trabalho para ns. Por exemplo o utilitrio sysutils/portupgrade ir fazer tudo para voc. Instale-o da mesma forma como faz com qualquer outro port, usando o comando make install clean. Agora crie o banco de dados com o comando pkgdb -F. Este comando ir ler a lista de ports instalados em seu sistema e ir criar um banco de dados com informaes dos mesmos no diretrio /var/db/pkg. Agora quando voc executar portupgrade -a, ele ir ler este banco de dados e o arquivo INDEX na raiz da rvore do ports. Em seguida o portupgrade ir iniciar o processo de download, compilao, backup, instalao e limpeza dos aplicativos que precisarem de atualizao. Existem outros utilitrios que fazem um trabalho semelhante, verique as demais opes no diretrio ports/sysutils.

4.6. Atividades ps-instalao


Depois de instalar um novo aplicativo voc normalmente ir querer ler a documentao instalada com ele, editar algum arquivo de congurao necessrio para o correto funcionamento do aplicativo, certicar-se de que o aplicativo ir iniciar automaticamente no prximo boot (se ele for um servidor) e assim por diante. Os passos exatos necessrios para congurar cada aplicativo so obviamente diferentes. No entando, se voc acabou de instalar um novo aplicativo e est se perguntando O que fazer agora ? , as dicas abaixo podem ajud-lo:

Utilize o comando pkg_info(1) para descobrir quais aplicativos esto instalados e onde eles esto instalados. Por exemplo, voc tiver instalado o aplicativo FooPackage verso 1.0.0, ento o comando
# pkg_info -L foopackage-1.0.0 | less

Ir exibir todos os arquivos instalados com o pacote. Preste ateno especial aos arquivos instalados no diretrio man/, pois eles so os manuais dos aplicativos que compoem o pacote, Tambm preste ateno aos arquivos instalados no diretrio etc/, pois so os arquivos de congurao, e por m preste ateno aos arquivos instalados no diretrio doc/, pois nele cam os documentos complementares sobre o aplicativo. Se voc no tem certeza de qual verso do aplicativo esta instalada, utilize um comando semelhante ao abaixo
# pkg_info | grep -i foopackage

Ir procurar todos os aplicativos instalados que possuem a palavra foopackage no nome. Substitua a palavra foopackage no seu comando de acordo com sua necessidade.

Uma vez que voc tiver identicado as paginas de manual instaladas com o seu aplicativo, utilize o comando man(1) para visualiz-las. De forma anloga, leia os arquivos de congurao instalados como exemplo, bem como qualquer outra documentao complementar que tenha sido disponibilizada.

138

Captulo 4. Instalando aplicativos: Pacotes e Ports

Se o aplicativo possuir um stio web, faa uma visita e verique se ele disponibiliza alguma documentao adicional, uma lista com as perguntas e repostas mais frequentes, e assim por diante. Se voc no tiver certeza do endereo do stio web do aplicativo, ele pode ser listado na saida do comando
# pkg_info foopackage-1.0.0

Verique se existe uma linha iniciada por WWW: , se ela estiver presente, voc ter descoberto o endereo do stioweb do aplicativo.

Os aplicativos que inicializam no boot (aplicativos servidores) iro instalar um script shell no diretrio
/usr/local/etc/rc.d. Voce deve vericar este script para ter certeza de que est correto, editando-o ou

renomeando-o se for necessrio. Consulte a sesso Iniciando Servios para maiores informaes.

4.7. Lidando com ports quebrados


Se voc encontrar um port que no est funcionando, existem algumas coisas que voc pode fazer, incluindo: 1. Conserte-o! O Porters Handbook (../porters-handbook/index.html) inclui informaes detalhadas sobre a infraestrutura do Ports, de forma que voc pode ocasionalmente corrigir um port quebrado ou ento submeter o seu prprio! 2. Reclamarpor email apenas! Primeiro envie um email para o responsvel pelo port. Execute make maintainer ou ento leia o arquivo Makefile para encontrar o endereo de email do responsvel pelo port. Lembre-se de incluir o nome e a verso do port (envie a linha $FreeBSD:, do arquivo Makefile) e a mensagem de erro no email que ir enviar. Se voc no obtiver uma resposta do responsvel, voce pode utilizar o send-pr(1) para enviar um relatrio de falha. 3. Pegue o pacote em um servidor de FTP prximo de voc. A coleo de pacotes master ca no servidor ftp.FreeBSD.org, no diretrio packages (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/), mas tenha certeza de vericar o seu mirror local antes! Esta abordagem muito garantida de que vai funcionar do que tentar compilar o aplicativo apartir do cdigo fonte, alm de ser muito mais rpida tambm. Utilize o utilitrio pkg_add(1) para instalar aplicativos no seu sistema.

139

Captulo 5. O X Window System


5.1. Sinopse
O FreeBSD usa XFree86 para prover aos usurios uma poderosa interface grca. XFree86 uma implementao de cdigo aberto do X Window System. Este captulo cobrir a instalao e congurao do XFree86 num sistema FreeBSD. Para mais informaes sobre o XFree86 e hardware de vdeo suportado, verique o stio XFree86 (http://www.XFree86.org/). Aps ler este captulo, voc saber:

Os vrios componentes do X Window System e como eles interagem. Como instalar e congurar o XFree86. Como instalar e utilizar diferentes gerenciadores de janelas. Como utilizar fontes TrueType no XFree86. Como preparar seu sistema para o uso de login grco (XDM).

Antes de ler este captulo, recomendvel:

Saber como instalar softwares adicionais de terceiros (Captulo 4).

5.2. Compreendendo o X
Usar o X pela primeira vez pode causar certo impacto em quem j est familiarizado com outros ambientes grcos, como o Microsoft Windows ou o Mac OS. No necessrio entender todos os detalhes dos vrios componentes do X e como eles interagem; entretanto, algum conhecimento bsico torna possvel tirar vantagens dos pontos positivos do X.

5.2.1. Por que X?


O X no o primeiro sistema de interface grca escrito para o UNIX, mas o mais popular. O grupo de desenvolvimento original do X j havia trabalhado em outro sistema de interface grca antes de escrever o X. O nome desse sistema era W (de Window). X apenas a prxima letra no alfabeto Romano. O X pode ser chamado de X, X Window System (Sistema de Janela X), X11, e outros termos. Chamar X11 de X Windows (n.t. note o s) pode ofender algumas pessoas; veja X(7) para mais dicas sobre isso.

5.2.2. O modelo Cliente/Servidor do X


O X foi concebido desde o incio com foco na rede, e adota um modelo cliente-servidor. No modelo do X, o servidor X executa em um computador que possui teclado, monitor e mouse conectados. O servidor responsvel por gerenciar o vdeo, tratar as entradas pelo teclado e mouse, e assim por diante. Cada aplicativo do X (como o XTerm, ou Netscape) um cliente. Um cliente envia mensagens para o servidor como Por favor, desenhe uma janela nestas coordenadas, e o servidor responde a mensagens como O usurio acabou de clicar o boto OK .

140

Captulo 5. O X Window System Se h apenas um computador envolvido, como em casa ou em um ambiente de escritrio pequeno, o servidor X e os clientes X estaro executando no mesmo computador. Entretanto, perfeitamente possvel executar o servidor X em um computador de mesa menos poderoso, e executar os aplicativos do X (os clientes), por assim dizer, naquela mquina poderosa e carssima que serve a todo o escritrio. Neste cenrio a comunicao entre o cliente X e o servidor se d na rede. Isto causa confuso a algumas pessoas, pois a terminologia do X exatamente contrria que eles esperam. O que se espera que o servidor X seja a mquina grande e poderosa do poro e o cliente X a mquina sobre suas mesas. Lembre-se que o servidor X a mquina com monitor e teclado, e os clientes X so os programas que exibem as janelas. No h nada no protocolo que force mquinas clientes e servidoras a estarem executando o mesmo sistema operacional ou ainda no mesmo tipo de computador. certamente possvel executar um servidor X no Microsoft Windows ou no Mac OS da Apple, e h vrias aplicaes gratuitas e comerciais disponveis que fazem exatamente isso. O servidor X que distribudo com o FreeBSD chamado XFree86, e est disponvel gratuitamente, sob uma licena muito similar licena do FreeBSD. H tambm servidores X comerciais disponveis para o FreeBSD.

5.2.3. O Gerenciador de Janela


A losoa de concepo do X muito semelhante losoa de concepo do UNIX, ferramentas, no polticas. Isso signica que o X no tenta dizer como a tarefa deve ser realizada. Ao invs disso, as ferramentas so fornecidas ao usurio, e sua responsabilidade decidir como vai usar essas ferramentas. Essa losoa se estende ao X quando o mesmo no dita com o qu as janelas devem parecer na exibio, como mov-las com o mouse, que atalho deve ser usado para mover-se entre as janelas (i.e., Alt+Tab, no caso do Microsoft Windows), a aparncia da barra de ttulos em cada janela, se elas devem ou no apresentar botes para fech-las e assim por diante. Ao invs disso, o X delega essa responsabilidade para um aplicativo chamado Gerenciador de Janela (do ingls Window Manager). H dzias de gerenciadores de janela disponveis para o X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawsh, twm, Window Maker, e outras. Cada um desses gerenciadores de janela prov diferentes visuais e sensaes; alguns deles suportam reas de trabalho virtuais; alguns permitem personalizar atalhos de teclado para gerenciar a rea de trabalho; outros tem um boto Iniciar ou dispositivo semelhante; outros so tematizveis, permitindo uma modicao completa do visual e sensao pela aplicao de um novo tema. Estes gerenciadores de janela e muitos outros, esto disponveis na categoria x11-wm da Coleo de Ports. Para completar, ambos ambientes de trabalho KDE e o GNOME tm seus prprios gerenciadores de janela integrados na rea de trabalho. Cada gerenciador de janela tambm possui um mecanismo de congurao diferente; alguns esperam que a congurao seja escrita manualmente, outros possuem GUI como ferramentas para a maior parte das tarefas de congurao; pelo menos um (sawsh) tem seu arquivo de conguraes escrito em um dialeto da linguagem Lisp.
Poltica do Foco: Outro recurso de responsabilidade do gerenciador de janela a poltica de foco do mouse. Todo sistema de enjanelamento precisa de parmetros para escolher uma janela que responda ao acionamento do teclado, e deve indicar visivelmente qual janela est ativa tambm. Uma poltica de foco bem familiar a chamada clique para focar. Este o modelo utilizado pelo Microsoft Windows, no qual uma janela se torna ativa aps receber um clique do mouse.

141

Captulo 5. O X Window System


O X no suporta nenhuma poltica de foco em particular. Ao invs disso, o gerenciador de janela controla qual tem o foco a qualquer tempo. Os diferentes gerenciadores de janela vo suportar mtodos de foco distintos. Todos suportam clique para focar e a maioria deles suporta vrios outros. As polticas de foco mais populares so: o foco segue o mouse A janela abaixo do ponteiro do mouse a janela que possui o foco. Esta no necessariamente a janela que est sobre todas as demais. O foco modicado ao apontar outra janela, no h necessidade de clicar nela. foco desleixado Esta poltica uma pequena extenso de o foco segue o mouse. Com o foco seguindo o mouse, se o mouse movido para a janela raiz (ou a rea de trabalho) ento nenhuma janela tem o foco, e o acionamento do teclado simplesmente perdido. Com o foco desleixado, o foco modicado apenas quando o cursor entra em uma nova janela, e no quando se sai da janela atual. clique para focar A janela ativa selecionada pelo clique do mouse. A janela pode ento ser elevada e aparecer na frente de todas as demais janelas. Todo acionamento do teclado ser agora direcionado para essa janela, mesmo se o cursor for movido para outra janela. Muitos gerenciadores de janela suportam outras polticas, bem como variaes nestas. Certique-se de consultar a documentao prpria do gerenciador de janela.

5.2.4. Widgets
A abordagem do X de prover ferramentas e no polticas se estende para os widgets vistos nas telas de cada aplicativo. Widget um termo para todos os tens da interface com o usurio que podem ser clicados ou manipulados de alguma forma; botes, check boxes, radio buttons, cones, listas, e outros. O Microsoft Windows chama estes de controles. O Microsoft Windows e o Mac OS da Apples tm uma poltica muito rgida para os widgets. Espera-se que os desenvolvedores de aplicaes compartilhem o mesmo visual e sensao em seus aplicativos. Com o X, no foi considerado sensato determinar um estilo grco particular, ou conjunto de widgets a aderir. Como resultado, no espere que as aplicaes do X tenham o mesmo visual e sensao. H vrios conjuntos de widgets populares e variaes, incluindo o conjunto original de widgets Athena do MIT, Motif (no qual o conjunto de widgets do Microsoft Windows foi modelado, todas as bordas chanfradas em trs tons de cinza), OpenLook, e outros. A maior parte das novas aplicaes para o X vo utilizar um conjunto de widgets de visual moderno, ou Qt, utilizado pelo KDE, ou GTK, utilizado pelo projeto GNOME. No que diz respeito a isso, h alguma convergncia no visual e sensao da rea de trabalho do UNIX, o que certamente torna tudo mais fcil para os novos usurios.

142

Captulo 5. O X Window System

5.3. Instalando o XFree86


Antes de instalar o XFree86, decida que verso executar. O XFree86 3.X um ramo de manuteno do desenvolvimento do XFree86. muito estvel e suporta um nmero bem grande de placas vdeo. Entretanto, nenhum recurso novo est sendo desenvolvido para o software. O XFree86 4.X uma reconcepo do sistema com diversos novos recursos como melhor suporte para fontes e anti-aliasing. Infelizmente esta nova arquitetura requer que os drivers de vdeo sejam reescritos, e algumas placas mais velhas que eram suportadas no 3.X no so ainda suportadas no 4.X. Como todo desenvolvimento novo e suporte para as placas de vdeo so feitos nesse ramo, o XFree86 4.X agora a verso padro do sistema de janela X no FreeBSD. O programa de instalao do FreeBSD oferece aos usurios a oportunidade de instalar e congurar o XFree86 4.X durante a instalao (detalhes na Seo 2.9.12). Para instalar e executar o XFree86 3.X, aguarde at que o FreeBSD mnimo seja instalado, e ento instale o XFree86. Por exemplo, para construir e instalar o XFree86 3.X da coleo de ports:
# cd /usr/ports/x11/XFree86 # make all install clean

Como alternativa, quaisquer verses do XFree86 podem ser instaladas diretamente dos binrios do FreeBSD fornecidos no stio XFree86 (http://www.XFree86.org/). Um pacote binrio a ser usado com a ferramenta pkg_add(1) tambm est disponvel para o XFree86 4.X. Quando o recurso de baixar da fonte remota do pkg_add(1) utilizado, o nmero da verso do pacote deve ser removido. O pkg_add(1) vai baixar automaticamente a verso mais recente do aplicativo. Logo para baixar e instalar o pacote do XFree86 4.X, s digitar:
# pkg_add -r XFree86

Voc tambm pode utilizar a coleo de ports para instalar o XFree86 4.X, para isso voc precisa apenas digitar os comandos a seguir:
# cd /usr/ports/x11/XFree86-4 # make install clean

Nota: Os exemplos acima vo instalar a distribuio completa do XFree86 incluindo os servidores, clientes, fontes etc. Pacotes individuais e ports para diferentes partes do XFree86 4.X tambm esto disponveis.

O restante deste captulo explicar como congurar o XFree86 e como instalar um ambiente produtivo na rea de trabalho.

5.4. Congurao do XFree86


Contribuio de Christopher Shumway.

5.4.1. Antes de comear


Antes de congurar o XFree86 4.X, necessrio conhecer as seguintes informaes sobre o sistema alvo:

As especicaes do monitor

143

Captulo 5. O X Window System


O chipset da placa de vdeo A quantidade de memria da placa de vdeo

As especicaes do monitor so usadas pelo XFree86 para determinar a resoluo e taxa de atualizao em que deve operar. Estas especicaes podem geralmente ser obtidas da documentao que vem com o monitor ou a partir do stio do fabricante. So necessrios dois intervalos numricos, a taxa de varredura horizontal e a taxa de sincronizao vertical. O chipset da placa de vdeo dene qual mdulo de driver o XFree86 usa para conversar com o hardware. Com a maioria dos chipsets isso pode ser determinado automaticamente, mas ainda til saber identic-lo caso a deteco automtica no funcione corretamente. A memria da placa de vdeo determina que resoluo e a profundidade das cores nas quais o sistema vai executar. importante que o usurio conhea isso para saber das limitaes do sistema.

5.4.2. Congurando o XFree86 4.X


A congurao do XFree86 4.X um processo de vrios passos. O primeiro passo construir um arquivo de congurao inicial com a opo -configure do XFree86. Como o super usurio, simplesmente execute:
# XFree86 -configure

Isso vai gerar o esqueleto do arquivo de congurao do XFree86 no diretrio /root chamado XF86Config.new (na verdade a pasta utilizada a registrada na varivel de ambiente $HOME e ela vai depender de como voc conseguiu os direitos de super usurio). O programa do XFree86 vai tentar investigar o hardware da placa de vdeo no sistema e vai escrever um arquivo de congurao que carregue os drivers adequados ao hardware detectado no sistema alvo. O prximo passo testar a congurao existente para vericar se o XFree86 pode trabalhar com o hardware do sistema alvo. Para fazer esta tarefa, o usurio precisa executar:
# XFree86 -xf86config XF86Config.new

Se a grade preto e cinza e um ponteiro de mouse do X aparecem, a congurao foi bem sucedida. Para sair do teste, basta pressionar simultaneamente Ctrl+Alt+Backspace.
Nota: Se o mouse no funcionar, certique-se que o dispositivo foi congurado. Consulte a Seo 2.9.10 no captulo de instalao do FreeBSD.

Em seguida, ajuste o arquivo de conguraes XF86Config.new a seu gosto. Abra o arquivo em um editor de texto como o emacs(1) ou ee(1). Primeiro, adicione as freqncias do monitor do seu sistema. Elas geralmente so expressas como taxas de sincronizao horizontal e vertical. Estes valores so adicionados ao arquivo XF86Config.new sob a seo "Monitor":
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection

144

Captulo 5. O X Window System As expresses HorizSync e VertRefresh podem no existir no arquivo de conguraes. Se for o caso, elas precisam ser adicionadas, com a taxa de sincronizao horizontal posicionada depois da expresso Horizsync e a taxa de sincronizao vertical aps a expresso VertRefresh. Conra no exemplo acima as taxas de um monitor j preenchidas. O X permite que recursos DPMS (Energy Star) sejam utilizados em monitores com suporte. O programa xset(1) controla os intervalos entre atividades e pode forar os modos de espera, suspenso e desligado. Se voc deseja habilitar os recursos de DPMS para o seu monitor, voc deve acrescentar a linha a seguir na seo Monitor:
Option "DPMS"

Enquanto o arquivo de conguraes XF86Config.new ainda estiver aberto no editor, selecione a resoluo padro do monitor e a profundidade das cores desejada. Isso est denido na seo "Screen":
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection

A expresso DefaultDepth descreve a profundidade de cores empregada por padro. Isso pode ser sobreposto com a opo da linha de comando -bpp existente para o XFree86(1). A expresso Modes descreve a resoluo utilizada para a profundidade de cores dada. Observe que apenas os modos do padro VESA so suportados pela denio do hardware grco do sistema alvo. No exemplo acima, a profundidade de cores padro de vinte e quatro bits por ponto. Nesta profundidade de cores, a resoluo aceita de mil e vinte e quatro pontos por setecentos e sessenta e oito pontos. Por m, salve o arquivo de conguraes e teste-o utilizando o modo de teste dado acima. Se tudo estiver bem, o arquivo de congurao precisa ser instalado em um local conhecido pelo XFree86(1), a m de encontr-lo. Este local tipicamente a pasta /etc/X11/XF86Config ou /usr/X11R6/etc/X11/XF86Config.
# cp XF86Config.new /etc/X11/XF86Config

Uma vez que o arquivo de congurao tenha sido colocado em um lugar conhecido, a congurao est completa. Para iniciar o XFree86 4.X com startx(1), instale o port x11/wrapper. O XFree86 4.X tambm pode ser executado via xdm(1).
Nota: Tambm existe uma ferramenta grca capaz de fazer a congurao, o xf86cfg(1), que vem na distribuio do XFree86 4.X Ela permite denir interativamente sua congurao pela escolha dos drivers e parmetros apropriados. Este programa pode ser utilizado no console tambm, basta utilizar o comando xf86cfg -textmode. Para mais detalhes, verique a pgina do manual xf86cfg(1).

145

Captulo 5. O X Window System

5.4.3. Tpicos de congurao avanados


5.4.3.1. Congurao dos Chipsets Grcos Intel i810 A congurao dos chipsets integrados da Intel i810 requerem que a interface de programao para o AGP e
agpgart do XFree86 seja instalada para controlar a placa. O driver agp(4) est no kernel GENERIC desde as releases 4.8-RELEASE e 5.0-RELEASE. Nas releases anteriores, voc deve adicionar as linhas a seguir: device agp

no arquivo de congurao do seu kernel e reconstruir um novo kernel. Ao invs disso, voc pode querer carregar o mdulo agp.ko do kernel automaticamente com o loader(8) durante o processo de inicializao. Para isso, basta adicionar esta linha ao /boot/loader.conf:
agp_load="YES"

A seguir, se estiver utilizando o FreeBSD 4.X ou posterior, um novo n para o dispositivo ( device node) precisa ser criado para a interface de programao. Para criar o n para o dispositivo AGP, execute o MAKEDEV(8) no diretrio /dev:
# cd /dev # sh MAKEDEV agpgart

Nota: O FreeBSD 5.X ou posterior vai utilizar o devfs(5) para alocar os ns dos dispositivos de modo transparente, logo, o passo do MAKEDEV(8) no necessrio.

Isso vai permitir a congurao do dispositivo como se faz com qualquer outra placa de vdeo. Observe que em sistemas sem o driver agp(4) compilado no kernel, tentar carregar o mdulo com o kldload(8) no vai funcionar. Este driver precisa estar no kernel durante o processo de inicializao, seja sendo compilado ou pelo uso do /boot/loader.conf. Se estiver utilizando o XFree86 4.1.0 (ou posterior) e mensagens sobre smbolos no resolvidos como fbPictureInit aparecerem, tente adicionar a linha a seguir aps Driver "i810" no arquivo de congurao do XFree86:
Option "NoDDC"

5.5. Usando fontes no XFree86


Com contribuies de Murray Stokely.

5.5.1. Fontes Type1


As fontes padro que so distribudas com o XFree86 esto aqum do ideal para aplicaes comuns de editorao eletrnica. Fontes grandes em apresentaes aparecem recortadas e com aparncia nada prossional, e fontes pequenas no Netscape so quase ininteligveis. Entretanto, h vrias fontes Type1 (PostScript) gratuitas e de alta qualidade disponveis, as quais podem ser usadas imediatamente com o XFree86, seja a verso 3.X ou a verso 4.X.

146

Captulo 5. O X Window System Por exemplo, a coleo de fontes URW (x11-fonts/urwfonts) inclui verses de alta qualidade de fontes type1 padro (Times Roman, Helvetica, Palatino e outras). A coleo Freefonts (x11-fonts/freefonts) inclui muitas outras fontes, mas a maioria delas so destinadas ao uso em softwares de manipulao de grcos como o Gimp, no sendo sucientemente completas para o uso como fontes de tela. Para completar, o XFree86 pode ser congurado para usar fontes TrueType com um mnimo de esforo: veja a seo sobre fontes TrueType adiante. Para instalar as colees de fontes Type1 acima da coleo de ports, execute os comandos a seguir:
# cd /usr/ports/x11-fonts/urwfonts # make install clean

E da mesma forma para o freefont e outras colees. Para dizer ao servidor X que estas fontes existem, adicione a linha apropriada ao arquivo XF86Config (em /etc/ para XFree86 verso 3, ou em /etc/X11/ para a verso 4), onde se l:
FontPath "/usr/X11R6/lib/X11/fonts/URW/"

Alternativamente, na linha de comandos da sesso X execute:


% xset fp+ /usr/X11R6/lib/X11/fonts/URW % xset fp rehash

Isso vai funcionar mas ser perdido quando a sesso do X for fechada, a menos que seja adicionada ao arquivo de inicializao (~/.xinitrc para uma sesso normal via startx, ou ~/.xsession quando o registro (login) for feito via um gerenciador de registro grco como o XDM). Uma terceira forma utilizar o novo arquivo XftConfig: consulte a seo sobre anti-aliasing.

5.5.2. Fontes TrueType


O XFree86 4.X tem suporte incorporado para a exibio produzida de fontes TrueType. H dois mdulos diferentes que podem permitir essa funcionalidade. O mdulo freetype utilizado neste exemplo por ser mais coerente com outros suportes para produo de fontes. Para habilitar o mdulo freetype basta acrescentar a linha a seguir seo Module do arquivo /etc/X11/XF86Config.
Load "freetype"

Para o XFree86 3.3.X, um servidor de fontes TrueType separado se faz necessrio. O Xfstt de uso comum para esta nalidade. Para instalar o Xfstt, basta instalar o port x11-servers/Xfstt. Crie uma pasta para as fontes TrueType (por exemplo, /usr/X11R6/lib/X11/fonts/TrueType) e copie todas as fontes TrueType nesta pasta. Tenha em mente que as fontes TrueType no podem ser importadas diretamente de um Macintosh; elas precisam estar no formato UNIX/DOS/Windows para que possam ser usadas pelo XFree86. Uma vez que os arquivos tenham sido copiados para esta pasta, use o ttmkfdir para criar um arquivo fonts.dir, de modo que o produtor de fontes do X saiba que estes novos arquivos foram instalados. O ttmkfdir est disponvel na Coleo de Ports do FreeBSD como x11-fonts/ttmkfdir.
# cd /usr/X11R6/lib/X11/fonts/TrueType # ttmkfdir > fonts.dir

Agora adicione a pasta TrueType no caminho para as fontes (o font path). Esta a mesma descrio utilizada anteriormente para as fontes Type1, isto , utilize

147

Captulo 5. O X Window System


% xset fp+ /usr/X11R6/lib/X11/fonts/TrueType % xset fp rehash

ou adicione uma linha FontPath ao arquivo XF86Config. Isso tudo. Agora o Netscape, o Gimp, o StarOfce, e todos os outros aplicativos do X devem estar reconhecendo as fontes TrueType instaladas. Fontes muito pequenas (como um texto em um vdeo de alta resoluo de uma pgina da internet) e fontes muito grandes (dentro do StarOfce) vo ter uma aparncia muito melhor agora.

5.5.3. Fontes com Anti-Alias


Atualizado para o XFree86 4.3 por Joe Marcus Clarke. O Anti-aliasing est disponvel no XFree86 desde a verso 4.0.2. Mesmo assim, congurar tais fontes era incmodo antes da introduo do XFree86 4.3.0. Da verso 4.3.0 em diante, todas as fontes em /usr/X11R6/lib/X11/fonts/ e em ~/.fonts/ so automaticamente disponibilizadas com anti-aliasing para os aplicativos prontos para o Xft. Nem todas as aplicaes so preparadas para usar o Xft ainda, mas muitas j contam com o suporte Xft. Exemplos de aplicaes que reconhecem o Xft incluem o Qt 2.3 e posteriores (conjunto de ferramentas feito para a rea de trabalho do KDE), Gtk+ 2.0 e posteriores (conjunto de ferramentas para a rea de trabalho do GNOME), e o Mozilla 1.2 e posteriores. Para distinguir que fontes so anti-aliased, ou congurar as propriedades do anti-aliasing, crie (ou edite, se j existir) o arquivo /usr/X11R6/etc/fonts/local.conf. Vrios recursos avanados do sistema de fontes Xft podem ser ajustadas atravs deste arquivo; esta seo descreve apenas algumas possibilidades simples. Para mais detalhes, por favor verique em fonts-conf(5). Este arquivo deve ser em formato XML. Preste bastante ateno caixa dos caracteres e assegure-se de ter fechado todos os rtulos (tags). O arquivo comea com o cabealho usual do XML seguido de uma denio DOCTYPE, e ento pelo rtulo <fontcong>:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>

Como citado anteriormente, toda fonte em /usr/X11R6/lib/X11/fonts/ bem como em ~/.fonts/ so automaticamente disponibilizadas para aplicaes prontas para o Xft. Se voc deseja acrescentar outra pasta que esteja fora dessas duas hierarquias, acrescente uma linha similar a apresentada abaixo ao arquivo /usr/X11R6/etc/fonts/local.conf:
<dir>/path/to/my/fonts</dir>

Aps acrescentar novas fontes, e especialmente novas pastas com fontes, voc deve executar o comando a seguir para reconstruir os caches de fonte:
# fc-cache -f

O anti-aliasing torna as bordas pouco ntidas, o que proporciona a textos pequenos maior legibilidade e remove escadinhas de textos grandes, mas pode causar fadiga visual se aplicado ao texto normal. Para excluir fontes com tamanho em pontos menor 14 do anti-aliasing, inclua estas linhas:
<match target="font">

148

Captulo 5. O X Window System


<test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>

O espaamento para fontes monoespaadas tambm pode ser inapropriado com o anti-aliasing. Isso parece ser uma questo presente no KDE, em particular. Uma correo possvel para isso forar o espaamento destas fontes para 100. Acrescente as seguintes linhas:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>

(isso apelidar todo nome comum para fontes xas como "mono"), e ento acrescente:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>

Certas fontes, como a Helvtica, podem apresentar problemas quando usadas com anti-alias. Geralmente isso se apresenta como uma fonte que parece cortada ao meio verticalmente. No pior caso, isso pode causar a parada na execuo de aplicativos como o Mozilla. Para evitar isso, considere acrescentar o seguinte ao arquivo local.conf:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>

149

Captulo 5. O X Window System Uma vez terminada a edio do local.conf assegure-se de colocar no nal do arquivo o rtulo </fontconfig>. No faz-lo far que suas modicaes sejam desprezadas. O conjunto padro de fontes que vem com o XFree86 no muito conveniente quando se trata de anti-alias. Um conjunto bem melhor de fontes padro pode ser encontrado no port x11-fonts/bitstream-vera. Esse port ir instalar um arquivo /usr/X11R6/etc/fonts/local.conf se ele no existir. Se o arquivo existir, o port var criar o arquivo /usr/X11R6/etc/fonts/local.conf-vera . Faa a fuso do contedo deste arquivo com o /usr/X11R6/etc/fonts/local.conf, e as fontes Bitstream automaticamente substituiro as fontes Serif, Sans Serif e Monospaced padro do XFree86. Por m, os usurios podem acrescentar suas prprias conguraes em seus arquivos .fonts.conf pessoais. Para fazer isso, cada usurio deve apenas criar o arquivo ~/.fonts.conf. Este arquivo precisa tambm estar no formato XML. Um ltimo ponto: com telas de LCD, amostragem de subpontos pode ser desejvel. Isso basicamente trata os componentes (horizontalmente separados) vermelho, verde e azul separadamente a m de melhorar a resoluo horizontal; os resultados podem ser espetaculares. Para permitir isso, acrescente a linha em algum lugar do arquivo local.conf:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>

Nota: Conforme o tipo de tela, o rgb pode precisar ser substitudo por bgr, vrgb ou vbgr: experimente e veja qual funciona melhor.

O anti-aliasing deve estar habilitado na prxima vez que o servidor X for iniciado. Entretanto, os programas precisam saber como tirar vantagem disso. No presente, o conjunto de ferramentas Qt o faz, logo todo o ambiente do KDE pode utilizar fontes com anti-alias (consulte a Seo 5.7.3.2 sobre o KDE para detalhes). O Gtk+ e o GNOME tambm podem ser adaptados ao anti-alias atravs do capplet Font (consulte a Seo 5.7.1.3 para mais detalhes). Por padro, o Mozilla 1.2 e posteriores vo usar o anti-alias automaticamente. Para desativar isso, reconstrua o Mozilla com o parmetro -DWITHOUT_XFT.

5.6. O gerenciador de exibio do X


Contribuies de Seth Kingsley.

5.6.1. Viso geral


O Gerenciador de Exibio do X (XDM; n.t. de X Display Manager) uma parte opcional do Sistema de Janela X que usado para gerenciar o login nas sesses. Isso til em vrios tipos de situaes, incluindo reas de trabalho

150

Captulo 5. O X Window System como Terminais X mnimos e grandes servidores de exibio para rede. Como o Sistema de Janela X independente de rede e protocolos, h uma grande variedade de conguraes possveis para a execuo de clientes e servidores X em mquinas diferentes e conectadas a rede. O XDM fornece uma interface grca que possibilita escolher o servidor de exibio no qual se quer conectar e a entrada de informaes de autorizao como o a combinao de login e senha. Pense no XDM como o provedor da mesma funcionalidade para o usurio proporcionada pelo utilitrio getty(8) (veja Seo 17.3.2 para detalhes). Isto , ele faz o login no sistema da tela a que se est conectado e ento executa um gerente de sesso a favor do usurio (geralmente um gerente de janela X). O XDM ento aguarda o trmino do programa, sinalizando que o usurio terminou e que deve ser feito seu log out da tela. Neste ponto, o XDM pode exibir a tela de login e exibir telas com opes para que o prximo usurio faa seu login.

5.6.2. Usando o XDM


O programa daemon do XDM est localizado na pasta /usr/X11R6/bin/xdm. Este programa pode ser executado em qualquer momento como root e vai iniciar o gerenciamento da tela do X na mquina local. Se for executar o XDM a cada vez que o computador inicializar (boot), um modo conveniente de faz-lo adicionar uma entrada no arquivo /etc/ttys. Para mais informaes sobre o uso e o formato deste arquivo, consulte Seo 17.3.2.1. H uma linha no arquivo /etc/ttys padro para executar o daemon do XDM em um terminal virtual:
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

Por padro esta entrada est desativada; para ativ-la modique o campo 5 de off para on e reinicie o init(8) usando as instrues em Seo 17.3.2.2. O primeiro campo, o nome do terminal a ser gerenciado por este programa, ttyv8. Isso signica que o XDM vai iniciar sua execuo no 9 terminal virtual.

5.6.3. Congurando o XDM


A pasta com a congurao do XDM est localizada em /usr/X11R6/lib/X11/xdm. Nesta pasta h vrios arquivos usados para modicar o comportamento e a aparncia do XDM. Tipicamente esses arquivos sero encontrados: Arquivo
Xaccess Xresources Xservers Xsession Xsetup_* xdm-config xdm-errors xdm-pid

Descrio Regulamento para autorizao de clientes. Valores padro para recursos do X. Lista de telas locais e remotas para gerenciar.
Script de sesso padro para logins. Script que executa aplicaes antes da interface de login.

Congurao global para todas as telas em execuo nesta mquina. Erros gerados pelo programa servidor. O ID do processo do XDM que est em execuo.

Nesta pasta tambm existem alguns scripts e programas utilizados para organizar a rea de trabalho quando o XDM est em execuo. O propsito de cada um desses arquivos ser brevemente descrito. A sintaxe exata e o uso de todos estes arquivos est descrito em xdm(1).

151

Captulo 5. O X Window System A congurao padro uma janela retangular simples para login com o nome do host (hostname) exibido no topo com uma fonte grande e os campos Login: e Password: em prontido logo abaixo. Esse um bom ponto de partida para trocar o visual e sensao das telas do XDM. 5.6.3.1. Xaccess O protocolo para a conexo com as telas do XDM chamado Protocolo de Conexo com o Gerente de Telas X (X Display Manager Connection Protocol, ou apenas XDMCP). Este arquivo contm o regulamento que controla as conexes via XDMCP vindas de mquinas remotas. Por padro, ela permite que qualquer cliente se conecte, mas isso irrelevante a menos que o xdm-config seja modicado para esperar por conexes remotas.

5.6.3.2. Xresources Este um arquivo de valores padro para aplicaes, para o selecionador de telas e para a tela de login. Este o lugar onde a aparncia do programa de login pode ser modicada. O formato idntico ao do arquivo de padres para aplicaes descrito na documentao do XFree86.

5.6.3.3. Xservers Esta a lista de telas remotas selecionveis das quais o selecionador de telas deve prover como escolhas possveis.

5.6.3.4. Xsession Este o script padro das sesses que o XDM executa aps o login de um usurio. Normalmente cada usurio ter um script para a sesso personalizado no ~/.xsession que predomina sobre esse script.

5.6.3.5. Xsetup_* Estes executaro automaticamente antes que o selecionador ou a interface de login sejam exibidas. H um script para cada tela em uso, cujo nome Xsetup_ seguido do nmero da tela local (por exemplo Xsetup_0). Tipicamente estes scripts executaro um ou mais programas no plano de fundo como o xconsole.

5.6.3.6. xdm-cong Este contm atributos na forma de padres de aplicaes que so aplicados para toda tela gerenciada por esta instalao.

5.6.3.7. xdm-errors Este contm as sadas geradas pelos servidores X os quais o XDM est tentando executar. Se uma tela a qual o XDM est tentando iniciar congela por alguma razo, este um bom lugar para procurar por mensagens de erro. Estas mensagens so tambm escritas no arquivo do usurio chamado ~/.xsession-errors sempre a cada sesso.

152

Captulo 5. O X Window System

5.6.4. Executando um Servidor de Telas em Rede


Para que outros clientes possam conectar-se ao servidor de telas, modique as regras de controle de acesso e ative a espera por conexes (um listener). Por padro estes so atribudos a valores conservadores. Para que o XDM aguarde conexes deve-se primeiro comentar uma linha no arquivo xdm-config:
! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0

que quer dizer: AVISO: no se deve esperar por conexes XDMCP ou requisies de um selecionador. Comente esta linha se voc quiser que os terminais X sejam gerenciados pelo xdm. Aps comentar a linha que segue o aviso, reinicie o XDM. Lembre-se que comentrios em arquivos de padres para aplicaes comeam com um caracter !, e no o # ao qual estamos acostumados. Controles mais rgidos para o acesso podem ser convenientes. Observe as entradas de exemplo no arquivo Xaccess, e consulte a pgina do manual xdm(1).

5.6.5. Substitutos para o XDM


Existem vrios programas que substituem o programa XDM padro. Um deles, o KDM (fornecido junto com o KDE) descrito adiante neste captulo. O KDM oferece vrios avanos visuais e oreios cosmticos, bem com as funes que permitem aos usurios escolher seu gerenciador de janela preferidos no momento do login.

5.7. Ambientes para a rea de trabalho


Contribuio de Valentino Vaschetto. Esta seo descreve os diferentes ambientes para a rea de trabalho disponveis para o X no FreeBSD. Um ambiente para a rea de trabalho pode signicar qualquer coisa desde um simples gerenciador de janelas a uma coleo completa de aplicativos, como o KDE ou o GNOME.

5.7.1. GNOME
5.7.1.1. Sobre o GNOME O GNOME um ambiente para a rea de trabalho amigvel que permite aos usurios usar e congurar facilmente seus computadores. O GNOME inclui um painel (para iniciar os aplicativos e para a exibio do estado), uma rea de trabalho (onde os dados e os aplicativos podem ser colocados), um conjunto de ferramentas e aplicativos padro, e um conjunto de convenes que facilitam a cooperao e a consistncia entre as aplicaes. Usurios de outros sistemas operacionais ou ambientes se sentiro em casa usando um poderoso ambiente dirigido por grcos provido pelo GNOME. Mais informaes sobre o GNOME no FreeBSD podem ser encontrados no stio da www FreeBSD GNOME Project (http://www.FreeBSD.org/gnome).

153

Captulo 5. O X Window System 5.7.1.2. Instalando o GNOME A forma mais fcil de instalar o GNOME atravs do menu Desktop Conguration, que signica congurao da rea de trabalho, durante o processo de instalao do FreeBSD como descrito em Seo 2.9.13 do Captulo 2. Ele tambm pode ser facilmente instalado de um pacote ou da coleo de ports: Para instalar o pacote do GNOME a partir da rede, basta entrar:
# pkg_add -r gnome2

Para construir o GNOME a partir dos fontes, utilize a rvore de ports:


# cd /usr/ports/x11/gnome2 # make install clean

Uma vez que o GNOME esteja instalado, o servidor X deve ser instrudo para iniciar o GNOME ao invs do gerenciador de janela padro. Se um .xinitrc personalizado estiver em uso, basta substituir a linha que inicia o gerenciador de janela atual para que, ao invs dele, inicie o /usr/X11R6/bin/gnome-session. Se nada de especial foi feito no arquivo de conguraes, ento suciente apenas entrar:
% echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrc

A seguir, entre com startx, e o ambiente da rea de trabalho GNOME vai ser iniciado.
Nota: Se um gerenciador de exibio, como o XDM, estiver sendo usado, isso no vai funcionar. Ao invs disso, crie um arquivo executvel .xsession contendo o mesmo comando. Para fazer isso, edite o arquivo e substitua o comando do gerenciador de janela existente por /usr/X11R6/bin/gnome-session:

% echo "#!/bin/sh" > ~/.xsession % echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession % chmod +x ~/.xsession

Outra opo congurar o gerenciador de exibio para que permita escolher o gerenciador de janela no momento do login; a seo Detalhes do KDE explica como fazer isso para o kdm, o gerenciador de exibio do KDE.

5.7.1.3. Fontes com anti-alias no GNOME A partir da verso 4.0.2, o XFree86 suporta anti-alias atravs de sua extenso RENDER. O Gtk+ 2.0 e posteriores (a caixa de ferramentas usada pelo GNOME) pode utilizar essa funcionalidade. A congurao do anti-alias est descrita na Seo 5.5.3. Ento, com software atual, anti-alias possvel dentro da rea de trabalho GNOME. Apenas v para Applications (aplicaes)Desktop Preferences (preferncias da rea de trabalho)Font (fonte), e escolha entre Best shapes (melhores formas), Best contrast (melhor contraste), ou Subpixel smoothing (LCDs) (suavizao de subpixel). Para uma aplicao Gtk+ que no parte da rea de trabalho GNOME, ajuste a varivel de ambiente GDK_USE_XFT para 1 antes de executar o programa.

154

Captulo 5. O X Window System

5.7.2. KDE
5.7.2.1. Sobre o KDE O KDE um ambiente da rea de trabalho contempornea fcil de usar. Algumas das coisas que o KDE oferece ao usurio so:

Uma rea de trabalho contempornea bonita Uma rea de trabalho que exibe transparncia de rede completa Um sistema de ajuda integrado que permite acesso conveniente e consistente para esclarecer o uso da rea de trabalho KDE e seus aplicativos Visual e sensaes consistentes de todos os aplicativos do KDE Menus e barras de ferramentas padronizados, teclas de atalho, esquemas de cores, etc. Internacionalizao: o KDE est disponvel em mais de 40 idiomas Congurao da rea de trabalho baseada em dilogos centralizados consistentemente Um grande nmero de aplicativos KDE teis

O KDE tem uma sute de aplicao para escritrios baseada na tecnologia KParts do KDE que consiste em uma planilha, uma aplicao para apresentaes, um organizador, um cliente de news e mais. O KDE tambm vem com um navegador da www chamado Konqueror, que representa um slido competidor para outros navegadores da www nos sistemas UNIX. Mais informaes sobre o KDE podem ser encontrados no stio da www KDE (http://www.kde.org/). Para informaes e recursos especcos do KDE para o FreeBSD, consulte o stio da www FreeBSD-KDE team (http://freebsd.kde.org/).

5.7.2.2. Instalando o KDE Tal como o GNOME ou qualquer outro ambiente para a rea de trabalho, a forma mais fcil de instalar o KDE atravs do menu Desktop Conguration (congurao da rea de trabalho) durante o processo de a instalao do FreeBSD como descrito na Seo 2.9.13 do Captulo 2. Mais uma vez, o software pode ser facilmente instalado de um pacote ou da coleo de ports: Para instalar o pacote do KDE a partir da rede, basta entrar:
# pkg_add -r kde

O pkg_add(1) vai automaticamente buscar a ltima verso da aplicao. Para construir o KDE a partir do cdigo fonte, use a rvore de ports:
# cd /usr/ports/x11/kde3 # make install clean

Aps ter instalado o KDE, o servidor X precisa ser instrudo em como lanar este aplicativo ao invs do gerenciador de janela padro. Isso pode ser feito editando o arquivo .xinitrc:
% echo "exec startkde" > ~/.xinitrc

Agora, sempre que o sistema de janela X for invocado com startx, o KDE ser a rea de trabalho.

155

Captulo 5. O X Window System Se um gerenciador de exibio como o xdm estiver sendo usado, a congurao um pouco diferente. Ao invs disso, edite o arquivo .xsession. Instrues para o kdm so descritas adiante neste captulo.

5.7.3. Mais detalhes sobre o KDE


Agora que o KDE est instalado no sistema, a maioria das coisas pode ser descoberta atravs das pginas de ajuda, ou apenas apontando e clicando em vrios menus. Os usurios do Windows ou Mac vo se sentir quase em casa. A melhor referncia para o KDE a sua documentao on-line. O KDE vem com seu prprio navegador da www, o Konqueror, dzias de aplicativos teis, e ampla documentao. O resto desta seo discute os tens tcnicos que so difceis de aprender pela explorao aleatria. 5.7.3.1. O gerenciador de exibio do KDE Um administrador de um sistema multiusurio pode desejar ter uma tela para login grca para saudar seus usurios. O xdm pode ser usado, como descrito anteriormente. Entretanto, o KDE inclui uma alternativa, o kdm, que concebido para aparentar melhor e incluir mais opes no momento do login. Em particular, os usurios podem escolher facilmente (em um menu) qual ambiente para a rea de trabalho ( KDE, GNOME, ou outra coisa) ser executado aps efetuar o login. Para comear, execute o painel de controle do KDE, kcontrol, como root. Geralmente considera-se inseguro executar todo o ambiente do X como root. Ao invs disso, execute o gerenciador de janela como um usurio normal, abra uma janela de terminal (como o xterm ou o konsole do KDE ), mude para root com su (o usurio deve estar no grupo wheel em /etc/group para isso), e ento digite kcontrol. Clique no cone da esquerda marcado como System (sistema), ento em Login manager (gerenciador de login). direita h vrias opes congurveis as quais o manual do KDE vai explicar em maiores detalhes. Clique em sessions (sesses) direita. Clique em New type (novo tipo) para acrescentar variados gerenciadores de janela e ambientes de rea de trabalho. Estes so apenas rtulos, de forma que eles podem representar KDE e GNOME ao invs de startkde ou gnome-session. Inclua um rtulo failsafe (modo de segurana). Experimente com outros menus tambm, eles so principalmente auto-explicativos. Quando terminar clique o boto Apply (aplicar) na parte de baixo, e saia da central de controle (control center). Para ter certeza que o kdm entende o que os rtulos (KDE, GNOME etc) signicam, edite os arquivos usados pelo xdm.
Nota: No KDE 2.2 isso foi modicado: o kdm agora usa seus prprios arquivos de congurao. Por favor, verique a documentao do KDE 2.2 para detalhes.

Em um terminal, como root, edite o arquivo /usr/X11R6/lib/X11/xdm/Xsession. H uma seo no meio como isso:

case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; esac

156

Captulo 5. O X Window System


esac

Poucas linhas precisam ser acrescentadas a esta seo. Assumindo que os rtulos utilizados foram KDE e GNOME, use o seguinte: (n.t. Aparentemente h um erro de caixa na inscrio kde)
case $# in 1) case $1 in kde) exec /usr/local/bin/startkde ;; GNOME) exec /usr/X11R6/bin/gnome-session ;; failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac

Para que o fundo da rea de trabalho no momento do login no KDE seja contemplado, as linhas a seguir precisam ser acrescentadas em /usr/X11R6/lib/X11/xdm/Xsetup_0:
/usr/local/bin/kdmdesktop

Agora, assegure-se de ter o kdm listado em /etc/ttys para ser iniciado na prxima inicializao. Para fazer isso, basta seguir as instrues da seo anterior em xdm e substituir as referncias anteriores ao programa /usr/X11R6/bin/xdm por /usr/local/bin/kdm.

5.7.3.2. Fontes com anti-alias A partir da verso 4.0.2, o XFree86 suporta anti-alias atravs de sua extenso RENDER, e desde a verso 2.3, o Qt (a caixa de ferramentas usada pelo KDE) pode utilizar essa funcionalidade. Essa congurao est descrita na Seo 5.5.3 sobre o anti-alias em fontes do X11. Ento, com software atualizado, possvel usar anti-alias em uma rea de trabalho KDE. Basta ir ao menu do KDE: v para Preferences (preferncias)Look and Feel (visual e sensao)Fonts (fontes), e clique na caixa de checagem Use Anti-Aliasing for Fonts and Icons (usar anti-alias para fontes e cones). Para uma aplicao Qt a qual no parte do KDE, a varivel de ambiente QT_XFT precisa ser ajustada para true antes de iniciar o programa.

5.7.4. XFce
5.7.4.1. Sobre o XFce O XFce um ambiente da rea de trabalho baseado na caixa de ferramentas GTK usado pelo GNOME, mas muito mais leve e indicado para quem quer uma rea de trabalho simples e eciente, e ainda fcil de usar e congurar. Visualmente, ela se parece muito com o CDE, encontrado em sistemas UNIX comerciais. Alguns recursos do XFce so:

157

Captulo 5. O X Window System


Uma rea de trabalho simples e fcil de lidar Totalmente congurvel via mouse, com arrastar e soltar (drag and drop), etc O painel principal muito similar ao CDE, com menus, applets e lanadores de aplicativos Gerenciador de janela integrado, gerenciador de arquivo, gerenciador de som, um mdulo de compatibilidade com o GNOME, e outras coisas Tematizvel (j que usa o GTK) Rpido, leve e eciente: ideal para mquinas mais antigas/lentas ou mquinas com limitaes de memria

Mais informaes sobre o XFce podem ser encontradas no stio da www XFce (http://www.xfce.org/).

5.7.4.2. Instalando o XFce Existe um pacote binrio do XFce (quando este texto foi escrito). Para instalar, basta entrar:
# pkg_add -r xfce

Alternativamente, para construir do cdigo fonte, use a coleo de ports:


# cd /usr/ports/x11-wm/xfce # make install clean

Agora, diga ao servidor X para lanar o XFce na prxima vez que o X for iniciado. Basta entrar com isso:
% echo "/usr/X11R6/bin/startxfce" > ~/.xinitrc

A prxima vez que o X for iniciado, o XFce vai ser a rea de trabalho. Como antes, se um gerenciador de exibio como o xdm estiver sendo usado, crie um .xsession, como descrito na seo sobre o GNOME, mas com o comando /usr/X11R6/bin/startxfce; ou congure o gerenciador de exibio para permitir a escolha da rea de trabalho no momento do login, como foi explicado na seo sobre o kdm.

158

II. Administrao do Sistema


Os captulos restantes do handbook, abordam todos os aspectos da adminstrao de um sistema FreeBSD. Cada captulo inicia descrevendo o que voc ir aprender como resultado da sua leitura, e tambm detalha o que esperado que voc conhea antes de iniciar a leitura. Estes captulos foram projetados para serem lidos quando voc precisar de informao. Voc no tem que l-los em nenhuma ordem particular, nem voc precisa ler todos antes de comear a utilizar o FreeBSD.

Captulo 6. Congurao e Ajuste


Escrito por Chern Lee. Baseado em um tutorial escrito por Mike Smith. Tambm baseado em tuning(7) escrito por Matt Dillon.

6.1. Sinpse
Um dos aspectos mais importantes do FreeBSD a congurao do sistema. A congurao correta ajudar a previnir dores de cabea durante atualizaes futuras. Este captulo explicar muito do processo de congurao do FreeBSD, incluindo alguns parmetros que podem ser congurados para ajustar um sistema FreeBSD. Aps ler este captulo, voc saber:

Como trabalhar ecientemente com sistemas de arquivos e parties de swap. Noes de congurao dos sistemas de inicializao rc.conf e /usr/local/etc/rc.d. Como congurar e testar uma placa de rede. Como congurar servidores virtuais em seus dispositivos de rede. Como usar os diversos arquivos de congurao em /etc. Como ajustar o FreeBSD usando as variveis do sysctl. Como ajustar a performance de disco e modicar limitaes do kernel.

Antes de ler este captulo, voc dever:


Compreender o bsico de UNIX e do FreeBSD (Captulo 3). Estar familiarizado em manter os fontes do FreeBSD atualizados (Captulo 21), e possuir noes de congurao/compilao do kernel. (Captulo 9).

6.2. Congurao Inicial


6.2.1. Estrutura de Particionamento
6.2.1.1. Parties Base Ao congurar sistemas de arquivo com disklabel(8) ou sysinstall(8), lembre-se que discos rgidos transferem dados mais rapidamente das trilhas mais externas para as internas. Desta forma, sistemas de arquivos menores e mais acessados devem estar mais prximos da parte de fora do disco, enquanto parties maiores como /usr devem estar mais prximas parte de dentro. uma boa idia criar parties nesta ordem: raz. swap, /var, /usr. O tamanho de /var reete na inteno de uso da mquina. /var usado para abrigar caixas de correio, arquivos de log e las de impresso. Caixas postais e arquivos de log podem crescer em tamanhos no esperados dependendo da quantidade de usurios e por quanto tempo os arquivos de log so mantidos. Muitos usurios nunca precisaro de um gigabyte, mas lembre-se que /var/tmp deve ser grande o bastante para abrigar pacotes.

160

Captulo 6. Congurao e Ajuste A partio /usr abriga a maioria dos arquivos necessrios ao sistema, a coleo ports(7) recomendada) e o cdigo fonte (opcional). Ambos so opcionais no momento da instalao. Pelo menos 2 gigabytes so recomendados para esta partio. Ao selecionar tamanhos de parties, tenha em mente os requisitos de tamanho. Ficar sem espao em uma partio enquanto outra pouco usada pode ser um pouco chato.
Nota: Alguns usurios perceberam que o dimensionador padro Auto-defaults do sysinstall(8) algumas vezes selecionam parties /var e / em tamanhos menores que o necessrio. Particione de maneira inteligente e generosa.

6.2.1.2. Partio de Swap Como regra geral, a partio de swap deve ser mais ou menos o dobro do tamanho da memria do sistema (RAM). Por exemplo, se uma mquina possui 128 megabytes de memria, o arquivo de swap deveria ser de 256 megabytes. Sistemas com pouca memria podem obter melhor performance com mais swap. Menos que 256 megabytes de memria no recomendado e uma expanso deve ser considerada. Os algoritmos de paginao da memria virtual (VM) so sintonizados para obter melhor desempenho quando a partio de swap pelo menos duas vezes o tamanho da memria. Congurar um swap muito pequeno pode levar inecincia no cdigo de procura de pgina da memria virtual e pode criar problemas se mais memria for acidionada. Em sistemas maiores com multiplos discos SCSI (ou multiplos discos IDE operando em controladoras diferentes), recomendado que o swap seja congurado em cada disco (para at quatro discos). As parties de swap devem ser aproximadamente do mesmo tamanho. O kernel pode manipular tamanhos arbitrrios mas estruturas de dados internas escalam at 4 vezes para a maior partio. Manter as parties de swap com aproximadamente o mesmo tamanho permitir ao kernel otimizar a distribuio do espao de swap pelas parties. No h problemas em ter grandes parties de swap, mesmo que o swap no seja muito usado. Isto pode facilitar a recuperao de dados de um programa antes de ser forado a reinicializar a mquina.

6.2.1.3. Porque Particionar? Muitos usurios pensam que uma partio grande e nica suciente mas, por vrias razes, isto seria uma m idia. Primeiro, cada partio possui caractersticas operacionais diferentes e separ-las permite ao sistema de arquivos uma sintonia de acordo. Por exemplo, as parties root e /usr recebem mais acessos de leitura, e pouca escrita. Enquanto que muita leitura e escrita pode ocorrer em /var e /var/tmp. Atravs de um particionamento adequado, a fragmentao introduzida em parties pequenas com muitos acessos de escrita no prejudicar as parties com mais acessos de leitura. Manter as parties com mais acesso de escrito mais prximas borda do disco proporcionar melhora na performance de I/O nas parties onde isto ocorre com mais freqncia. Enquanto a performance de I/O pode ser necessria em parties maiores, coloc-las mais na parte externa do disco no promover uma melhora de performance em relao mover o /var para a borda do disco. Finalmente, existem preocupaes com a segurana. Uma partio raz menor, mais pura, que tem mais acessos de leitura, tem uma chance maior de sobreviver um crash.

161

Captulo 6. Congurao e Ajuste

6.3. Congurao Principal


O local principal para informaes de congurao de sistema est dentro de /etc/rc.conf. Este arquivo contm uma grande quantidade de informaes de congurao, essencialmente usadas na inicializao do sistema. Seu nome implica diretamente nisto; a informao de congurao para os arquivos rc*. Um administrador deve inserir entradas no arquivo rc.conf para sobrepor as conguraes padro em /etc/defaults/rc.conf. Os arquivos padro no devem ser copiados para /etc - pois contm valores padres, no exemplos. Todas mudanas de sistema especicas devem ser feitas diretamente no arquivo rc.conf Uma variedade de estratgias podem ser aplicadas em aplicaes em cluster para separar conguraes globais de sistema das conguraes especcas com o intuito de diminuir a carga de administrao. O procedimento adotado o de colocar conguraes globais em outro arquivo, como /etc/rc.conf.site, e ento incluir este arquivo em /etc/rc.conf, que possuir apenas informaes especcas de sistema. Como o rc.conf lido pelo sh(1) simples fazer isto. Por exemplo:

rc.conf:
. rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1"

rc.conf.site:
defaultrouter="10.1.1.254" saver="daemon" blanktime="100"

O arquivo rc.conf.site pode ser distribudo para todos os sistemas usando-se rsync ou um programa similar, enquanto que o arquivo rc.conf permanece nico. Atualizar o sistema usando o sysinstall(8) ou make world no sobrescrever o arquivo rc.conf, assim a congurao de sistema no ser perdida.

6.4. Congurao de Aplicaes


Tipicamente, aplicaes instaladas possuem seus prprios arquivos de congurao, com sua prpria sintaxe, etc. importante que estes arquivos sejam mantidos separados do sistema base, para que eles possam ser facilmente localizados e gerenciados pelas ferramentas de gerenciamento de pacotes. Tipicamente, estes arquivos so instalados em /usr/local/etc. No caso em que uma aplicao possui um grande nmero de arquivos de congurao, um subdiretrio ser criado para abrig-los. Normalmente, quando um port ou pacote instalado, arquivos de congurao de exemplo tambm so instalados. Estes arquivos normalmente so identicados como tendo o suxo .default. Se no existirem arquivos de congurao para a aplicao, eles sero criados atravs da cpia dos arquivos .default. Por exemplo, considere o contedo do diretrio /usr/local/etc/apache:
-rw-r--r--rw-r--r--rw-r--r--rw-r--r-1 1 1 1 root root root root wheel wheel wheel wheel 2184 2184 9555 9555 May May May May 20 20 20 20 1998 1998 1998 1998 access.conf access.conf.default httpd.conf httpd.conf.default

162

Captulo 6. Congurao e Ajuste


-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r-1 1 1 1 1 1 root root root root root root wheel 12205 May 20 1998 magic wheel 12205 May 20 1998 magic.default wheel 2700 May 20 1998 mime.types wheel 2700 May 20 1998 mime.types.default wheel 7980 May 20 1998 srm.conf wheel 7933 May 20 1998 srm.conf.default

O tamanho dos arquivos mostram que apenas o arquivo srm.conf foi modicado. Uma atualizao posterior do port do Apache no sobrescrever este arquivo modicado.

6.5. Inicializando Servios


Hospedar vrios servios comum para um sistema. Eles podem ser inicializados de formas diferentes, cada um com suas vantagens. Aplicativos instalados atravs do port ou da coleo de pacotes frequentemente colocar um script em /usr/local/etc/rc.d, que ser invocado na inicializao do sistema com o argumento start, e no desligamento do sistema com o argumento stop. Esta a maneira recomendada de incializar servios globais de sistema que so executados sob o usurio root, ou que esperam ser inicializados como root. Estes scripts so registrados como parte da instalao do pacote, e sero removidos quando o pacote for removido. Um script genrico de inicializao em /usr/local/etc/rc.d seria parecido com:
#!/bin/sh echo -n FooBar case "$1" in start) /usr/local/bin/foobar ;; stop) kill -9 cat /var/run/foobar.pid ;; *) echo "Usage: basename $0 {start|stop}" >&2 exit 64 ;; esac exit 0

O script de inicializao do FreeBSD procurar em /usr/local/etc/rc.d por scripts que possuem a extenso .sh e so executveis pelo root. Estes scripts encontrados so chamados com o argumento start na inicializao, e stop no desligamento, para permitir que executem suas funes. Sendo assim, se voc desejar que o script de exemplo acima seja selecionado e executado no momento de incializao do sistema, voc deve grav-lo em um arquivo, como por exemplo FooBar.sh em /usr/local/etc/rc.d e ter certeza de que ele executvel. Voc pode fazer com que um script executador de comandos seja executvel com o chmod(1) como mostrado abaixo:
# chmod 755 FooBar.sh

163

Captulo 6. Congurao e Ajuste Alguns servios esperam ser invocados pelo inetd(8) quando uma conexo recebida em uma porta disponvel. comum para servidores de correio (POP e IMAP, etc). Estes servios so habilitados editando-se o arquivo /etc/inetd.conf. Veja inetd(8) para detalhes de como editar este arquivo. Alguns servios de sistema adicionais podem no possuir entradas no arquivo /etc/rc.conf. Estes servios so tracidionamente habilitados incluindo-se comandos no arquivo /etc/rc.local. Como no FreeBSD 3.1 no existe o arquivo /etc/rc.local; mas se for criado pelo administrador ele ser executado pelo sistema. Note que o arquivo rc.local geralmente considerado como um local de ltimo recurso; se existir um lugar melhor para inicializar o servio, coloque o script neste lugar melhor.
Nota: No coloque qualquer comando no arquivo /etc/rc.conf. Para inicializar daemons, ou executar qualquer comando durante a inicializao, coloque um script em /usr/local/etc/rc.d.

Tambm possvel usar o daemon cron(8) para inicializar servios de sistema. Este mtodo tem algumas vantagens, no para menos, pois o cron(8) executa estes processos sob o proprietrio do crontab, e os servios podem ser inicializados e mantidos por usurios no-root. Isto tira vantagem de uma caracterstica do cron(8): a especicao de tempo pode ser trocada por @reboot, que far com que o trabalho seja executado quando o cron(8) for inicializado logo aps a inicializao do sistema.

6.6. Congurando o Utilitrio cron


Contribuio de Tom Rhodes. Uma das ferramentas mais teis no FreeBSD o cron(8). O utilitrio cron roda em segundo plano e constantemente verica o arquivo /etc/crontab. Ele tambm verica o diretrio /var/cron/tabs na procura novos arquivos do tipo crontab. Estes arquivos crontab armazenam informaes especcas sobre funes que o cron designado a desempenhar em algumas ocasies. Vamos dar uma olhada no arquivo /etc/crontab:
# /etc/crontab - roots crontab for FreeBSD # # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour mday month wday who command # # */5 * * * * root /usr/libexec/atrun

Como muitos arquivos de congurao do FreeBSD, o caracter # representa um comentrio. Um comentrio pode ser colocado em um arquivo como um lembrete de como e porque uma ao desejada executada. Os

164

Captulo 6. Congurao e Ajuste comentrios no podem estar na mesma linha que o comando seno sero interpretados como parte do comando; eles devem estar em uma nova linha. Linhas em branco so ignoradas. Primeiramente, o ambiente deve ser denido. Os caracteres (=) so usados para denir qualquer congurao de ambiente, como neste exemplo que so usados para as opes SHELL, PATH, e HOME. Se a linha do shell for omitida, o cron usar o padro, que o sh. Se a varivel PATH for omitida, nenhum padro ser usado e o caminho para os arquivos dever ser absoluto. Se o HOME for omitido, o cron usar o diretrio base do usurio que o invocou. Esta linha dene um total de sete campos. Aqui so listados os valores minute, hour, mday, month, wday, who, e command. Estes so praticamente autoexplicativos. Minute o tempo em minutos em que o comando ser executado. Hours similar opo Minute, em horas. Month similar Minute e Hour, designando o ms. As opes mday vem de dia da semana. Todos estes campos devem ter valores numricos, e obedecer ao relgio do tipo 24h. O campo who especial, e existe apenas no arquivo /etc/crontab. Este arquivo especica sob que usurio o comando deve ser executado. Quando um usurio instala seu aquivo crontab, ele ou ela no ter esta opo. Finalmente, opes do comando so listadas. Este o ltimo campo, sendo assim, naturalmente deve designar o comando a ser executado. Esta ltima linha denir os valores discutidos acima. Note aqui que tempos a listagem */5, seguida por vrios caracteres *. Estes caracteres * signicam primeiro-ltimo, e podem ser interpretados como qualquer tempo. Ento, julgando por esta linha, ca claro que o comando atrun ser invocado pelo root a cada cinco minutos no importando o dia ou ms. Para mais informaes sobre o atrun, veja a pgina de manual atrun(8). Comandos podem ter qualquer nmero de parmetros passados eles mesmos; entretando, comandos que se extendem vrias linhas devem ser quebrados com o caracter contrabarra \. Esta a congurao bsica para todo arquivo crontab, embora exista algo diferente a respeito deste. O campo nmero seis, onde especicado o nome de usurio, que existe somente no arquivo /etc/crontab. Este arquivo deve ser omitido para arquivos crontab individuais de usurios.

6.6.1. Instalando a Crontab


Para instalar sua recm-escrita crontab, basta usar o utilitrio crontab. O uso mais comum :
# crontab arquivo-crontab

Existe tambm uma opo para listar os arquivos crontab instalados, basta passar a opo -l para o crontab e observar a sada do comando. Usurios que desejem comear seu prprio arquivo crontab do zero, sem usar um exemplo, podem usar crontab -e. Este comando invocar o editor com um arquivo vazio. Quando o arquivo for gravado ser automaticamente instalado pelo comando crontab.

6.7. Usando rc no FreeBSD 5.X


Contribuio de Tom Rhodes. O FreeBSD recentemente integrou o sistema de inicializao rc.d do NetBSD. Os usurios podem notar os arquivos no diretrio /etc/rc.d. Muitos destes arquivos so para servios bsicos que podem ser controlados com os parmetros start, stop, e restart. Por exemplo, o sshd(8) pode ser reinicializado com o seguinte comando:

165

Captulo 6. Congurao e Ajuste


# /etc/rc.d/sshd restart

Este procedimento similar para outros servios. Claro, servios que normalmente so inicializados como especicado em rc.conf(5). Por exemplo, habilitar o daemon Network Address Translation na inicializao basta adicionar a seguinte linha em /etc/rc.conf:
natd_enable="YES"

Se a linha natd_enable="NO" j existe, ento simplesmente mude a opo NO para YES. Os scripts rc automaticamente carregaro outros servios dependentes durante a prxima inicializao, como descrito abaixo. Uma vez que o sistema rc.d foi feito primariamente para iniciar/parar servios na ocasio de inicializao/desligamento do sistema; os parmetros start, stop e restart somente cumpriro suas funes se as variveis apropriadas estiverem conguradas no /etc/rc.conf. Por exemplo, o comando sshd restart acima s funcionar se sshd_enable estiver congurado para YES no /etc/rc.conf. Para iniciar (start), parar (stop) ou reiniciar (restart) um servio, independente das conguraes em /etc/rc.conf, os comandos devem ter o prexo force. Por exemplo, para reiniciar o sshd independente da congurao atual no /etc/rc.conf, execute o seguinte comando: :
# /etc/rc.d/sshd forcerestart

fcil vericar se um servio est habilitado no /etc/rc.conf, basta executar o script rc.d com o parmetro rcvar. Desta forma, o administrador pode vericar se o sshd est de fato habilitado no /etc/rc.conf:
# /etc/rc.d/sshd rcvar

# sshd $sshd_enable=YES

Nota: A segunda linha (# sshd) a sada do comando sshd; no um console root.

Para determinar se o servio est no ar, use o parmetro status. Por exemplo, para vercar se o sshd est no ar:
# /etc/rc.d/sshd status

sshd is running as pid 433.

Tambm possvel recarregar (reload) um servio. Este parmetro tentar enviar um sinal para um servio em particular, forando uma recarga dos arquivos de congurao. Em muitos casos isto signica enviar um sinal SIGHUP para o servio. A estrutura do rcNG no apenas usada para servios de rede, tambm contribui em grande parte para a inicializao do sistema. Por exemplo, considere o arquivo bgfsck. Quando este script for executado imprimir a seginte mensagem:
Starting background file system checks in 60 seconds.

Portanto, este arquivo usado para checagem do sistema de arquivos em segundo plano, que feita durante a inicializao. Muitos servios de sistema dependem de outros sevios para funcionar corretamente. Por exemplo, NIS e outros servios baseados em RPC podem falhar durante a inicializao at que o servio rpcbind (portmapper) tenha sido iniciado. Para resolver esta questo, informaes sobre dependncia e outros meta-dados esto includos no topo de

166

Captulo 6. Congurao e Ajuste cada script de inicializao. O programa rcorder(8) usado para analisar estes comentrios durante a inicializao do sistema para determinar a ordem na qual os servios de sistema devem ser invocados para satisfazer as dependncias. As seguintes palavras podem ser incluidas no topo de cada arquivo de script de inicializao:

PROVIDE: Especica os servios que este arquivo oferece. REQUIRE: Lista os servios que so necessrios para este servio. Este arquivo ser executado depois dos servios especicados. BEFORE: Lista os servios que dependem deste servio. Este servio ser executado antes dos servios especicados. KEYWORD: FreeBSD ou NetBSD. Isto usado para caractersticas dependentes de *BSD.

Usando este mtodo, um administrador pode controlar facilmente os servios de sistema sem o stress dos runlevels como em outros sistemas operacionais UNIX. Informaes adicionais sobre sistema rc no FreeBSD 5.X podem ser encontradas em rc(8) e rc.subr(8).

6.8. Congurando Interfaces de Rede


Contribuio de Marc Fonvieille. Nos dias de hoje difcil pensar em um computador sem conexo de rede. Adicionar e congurar uma placa de rede uma tarefa comum para qualquer administrador FreeBSD.

6.8.1. Encontrando o Driver Correto


Antes de comear, voc deve saber o modelo da placa que voc possui, o chip que ela usa, se PCI ou ISA. FreeBSD tem suporte uma grande variedade de plavas PCI e ISA. Verique a Lista de Compatibilidade de Hardware da sua verso e veja se a sua placa suportada. Uma vez que a placa possui suporte, voc precisa determinar o driver para ela. O arquivo /usr/src/sys/i386/conf/LINT te dar uma lista de drivers de placa de rede com alguma informao sobre os chipsets suportados. Se voc estiver com dvidas sobre qual driver o correto, leia a pgina de manual do driver. O manual te dar informaes sobre os dispositivos suportados e at sobre problemas que podem ocorrer. Se voc possui uma placa comum, provavelmente voc no precisar procurar tanto por um driver. Drivers para as placas de rede mais comuns esto presentes no arquivo de kernel GENERIC, ento sua placa deve aparecer durante a inicializao, tipo:
dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 000ff irq 15 at device 11.0 on pci0 dc0: Ethernet address: 00:a0:cc:da:da:da miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 000ff irq 11 at device 12.0 on pci0 dc1: Ethernet address: 00:a0:cc:da:da:db miibus1: <MII bus> on dc1 ukphy1: <Generic IEEE 802.3u media interface> on miibus1 ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

167

Captulo 6. Congurao e Ajuste Neste exemplo, note que duas placas usam o driver dc(4), que j est presente no sistema. Para usar a sua placa de rede voc precisa carregar o driver apropriado. Isto pode ser feito de duas maneiras. A mais fcil simplesmente carregar um mdulo de kernel para a sua placa com o kldload(8). Um mdulo no disponvel para todos os drivers de placa de rede (placas ISA que usam ed(4), por exemplo). Alternativamente, voc pode compilar estaticamente o suporte para a sua placa no kernel. Verique o arquivo /usr/src/sys/i386/conf/LINT e a pgina de manual do driver para saber o que adicionar ao seu arquivo de congurao do kernel. Para maiores informaes de como recompilar seu kernel por favor veja o Captulo 9. Se a sua placa foi detectada pelo seu kernel (GENERIC) durante a inicializao voc no precisa construir um novo kernel.

6.8.2. Congurando a Placa de Rede


Uma vez que o driver correto da placa de rede est carregado, a placa precisar ser congurada. Como muitas outras coisas, a placa de rede pode ter sido congurada durante a instalao pelo sysinstall. Para mostrar a congurao das placas de rede do seu sistema, entre com o seguinte comando:
% ifconfig

dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:a0:cc:da:da:da media: Ethernet autoselect (100baseTX <full-duplex>) status: active dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:a0:cc:da:da:db media: Ethernet 10baseT/UTP status: no carrier lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

Nota: Verses antigas do FreeBSD podem requerer o parmetro -a seguido de ifcong(8), para mais detalhes sobre a sintaxe correta do ifcong(8) por favor leia a pgina de manual. Note que tambm existem entradas referentes IPv6 (inet6 etc.) que foram omitidas neste exemplo.

Neste exemplo, os seguintes dispositivos foram mostrados:


dc0: dc1: lp0: lo0:

A primeira interface Ethernet A segunda interface Ethernet A interface de porta paralela O dispositivo loopback O dispositivo tunnel usado para ppp

tun0:

O FreeBSD usa o nome do driver seguido pela ordem na qual cada placa detectada na inicializao do kernel para dar nome placa. Por exemplo, sis2 pode ser a terceira placa de rede no sistema usando o driver sis(4).

168

Captulo 6. Congurao e Ajuste Neste exemplo, o dispositivo dc0 est no ar. Os indicadores chave so: 1. UP siginica que a placa est congurada e pronta para uso. 2. A placa tem um endereo Internet (inet) (neste caso 192.168.1.3). 3. Tem uma mscara de rede vlida (netmask; 0xffffff00 que o mesmo que 255.255.255.0). 4. Possui um endereo de broadcast vlido (neste caso, 192.168.1.255). 5. Possui um endereo MAC para a placa (ether) is 00:a0:cc:da:da:da 6. A seleo fsica de mdia est no modo automtico (media: Ethernet autoselect (100baseTX <full-duplex>)). Podemos ver que o dispositivo dc1 foi congurado para 10baseT/UTP. Para mais informaes a respeito de tipos de mdia para um determinado driver, por favor verique a respectiva pgina de manual. 7. O estado da conexo (status) active, ou seja, a conexo foi detectada. Para dc1, vemos status: no carrier. Isto normal quando o cabo no est conectado placa. Se a sada do ifcong(8) mostrou algo parecido com
dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ether 00:a0:cc:da:da:da

pode indicar que a placa no foi congurada. Para congurar sua placa, voc precisa de previlgios de root. A congurao da placa de rede pode ser feita a partir da linha de comando com o ifcong(8) mas voc vai precisar refazer a congurao aps cada inicializaao. O arquivo /etc/rc.conf o lugar para adicionar a congurao da placa de rede. Abra o arquivo /etc/rc.conf no seu editor preferido. Voc precisa adicionar uma linha para cada placa de rede presente no sistema, por exemplo, em nosso caso, adicionamos estas duas linhas:
ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"

Voc precisa substituir dc0, dc1, e assim sucessivamente, com nomes de dispositivos corretos para suas placas, e os endereos apropriados. Voc deve ler as pginas de manual do driver e ifcong(8) para mais detalhes a respeito das opes permitidas e tambm rc.conf(5) para mais informaes sobre a sintaxe em /etc/rc.conf. Se voc congurou a rede durante a instalao, algumas linhas de placa(s) de rede podem j estar presentes. Faa uma vericao dupla no arquivo /etc/rc.conf antes de adicionar qualquer linha. Voc tambm ter que editar o arquivo /etc/hosts para adicionar nomes e endereos IP das mquinas da Rede Local, se estes nomes ainda no estiverem l. Para mais informaes veja hosts(5) e /usr/share/examples/etc/hosts.

6.8.3. Testes e Resoluo de Problemas


Uma vez feitas as conguraes necessrias no /etc/rc.conf, voc deve reinicializar seu sistema. Isto far com que as mudanas em sua(s) placa(s) de rede sejam aplicadas, e verique se seu sistema reinicializa sem erros de congurao. Aps reinicializar o sistema, voc deve testar as interfaces de rede.

169

Captulo 6. Congurao e Ajuste 6.8.3.1. Testando a Placa Ethernet Para vericar se uma placa Ethernet foi congurada corretamente, voc precisa tentar duas coisas. Primeiro, execute o comando ping para a sua prpria interface, e ento faa o mesmo para outra mquina na sua Rede Local. Primeiro teste para a interface local:
% ping -c5 192.168.1.3

PING 192.168.1.3 (192.168.1.3): 56 data bytes 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076

ms ms ms ms ms

--- 192.168.1.3 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

Agora temos que usar o ping para outra mquina na Rede Local:
% ping -c5 192.168.1.2

PING 192.168.1.2 (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704

ms ms ms ms ms

--- 192.168.1.2 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

Voc tambm pode usar o nome da mquina ao invs de 192.168.1.2 se voc congurou o arquivo /etc/hosts.

6.8.3.2. Resoluo de Problemas Resoluo de problemas de congurao de hardware e software sempre doloroso, e uma dor que pode ser aliviada atravs da checagem de coisas simples antes de qualquer coisa. Seu cabo de rede est conectado? Voc congurou os servios de rede corretamente? Voc congurou o rewall corretamente? A placa de rede que voc est usando suportada pelo FreeBSD? Sempre verique as notas de hardware antes de enviar um relatrio de falha. Atualize sua verso do FreeBSD para a ltima verso STABLE. Verique os arquivos das listas de discusso, ou procure na Internet. Se a placa funcionar, e a performance estiver ruim, vale dar uma lida na pgina de manual tuning(7). Voc tambm pode vericar conguraes de rede incorretas, que podem provocar lentido nas conexes. Alguns usurios passam por problemas de um ou dois device timeouts, que normal em algumas placas. Se eles continuarem, ou comear a incomodar, voc pode querer ter certeza de que o dispositivo no est conitando com outro dispositivo. Faa uma vericao dupla das conexes de cabeamento. Talvez voc apenas precise de outra placa. Algumas vezes, os usurios percebem pequenos erros watchdog timeout. A primeira coisa a ser feita checar o cabo da conexo. Muitas placas requerem um slot PCI que suporte gerenciamento de barramento. Em algumas

170

Captulo 6. Congurao e Ajuste placas-me antigas, apenas um slot permite isso (geralmente o slot 0). Verique a documentao da placa de rede e da placa-me para saber se isto pode ser um problema. A mensagem No route to host acontece quando o sistema no capaz de rotear um pacote para a mquina de destino. Isto pode acontecer se nenhuma rota padro for especicada, ou se um cabo estiver desconectado. Verique a sada do comando netstat -rn e tenha certeza de que exista uma rota vlida para a mquina que voc est tentando alcanar. Se no existir, leia o Captulo 19. As mensagens de erro ping: sendto: Permission denied geralmente so provocadas por um rewall descongurado. Se o ipfw estiver habilitado no kernel mas no existirem regras denidas, ento a poltica padro de negar todo o trfego, at mesmo as requisies de ping! Leia a Seo 10.8 para maiores informaes. Algumas vezes a performance da placa ruim, ou abaixo do normal. Nestes casos melhor congurar o modo de seleo de mdia de autoselect para a velocidade correta. Enquanto isto pode funcionar para grande parte dos equipamentos, talvez no resolva o problema de todos. Novamente, verique toda a congurao de rede, e leia a pgina de manual tuning(7).

6.9. Servidores Virtuais


Um uso muito comum do FreeBSD a hospedagem virtual de servidores, onde um servidor parece ser muitos para a rede. Isto feito designando-se multiplos endereos de rede para uma nica interface. Uma interface de rede possui um endereo real, e pode possuir qualquer nmero de endereos de alias. Estes
aliases normalmente so adicionados atravs de entradas no arquivo /etc/rc.conf.

Uma entrada de alias para a interface fxp0 assim:


ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

Note que as entradas de alias devem comear com alias0 e continuar em ordem crescente, por (por exemplo, _alias1, _alias2, e assim sucessivamente). O processo de congurao se encerrar assim que faltar um nmero. O clculo das mscaras de alias importante, mas ainda bem que bem simples. Para uma interface qualquer, deve existir um endereo que represente corretamente a mscara de rede. Quaisquer outros endereos dentro desta rede devem ter a mscara de 1s. Por exemplo, considere o caso onde a interface fxp0 conectada duas redes, a rede 10.1.1.0 com a mscara 255.255.255.0 e rede 202.0.75.16 com a mscara 255.255.255.240. Queremos que o sistema responda de 10.1.1.1 10.1.1.5 e de 202.0.75.17 202.0.75.20. As seguintes entradas conguram a placa para este arranjo:
ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

171

Captulo 6. Congurao e Ajuste

6.10. Arquivos de Congurao


6.10.1. Estrutura do /etc
Existem vrios diretrios onde as informaes de congurao so mantidas. Incluindo:
/etc /etc/defaults /etc/mail /etc/ppp /etc/namedb

Informao genrica de congurao; aqui os dados so especcos do sistema. Verses padro dos arquivos de congurao do sistema. Congurao extra do sendmail(8), outros arquivos de congurao de Agentes de Transporde de Correio. Congurao para programas ppp de usurio e de kernel. Congurao padro dos dados do named(8). Normalmente o arquivo named.conf e arquivos de zona so armazenados aqui. Arquivos de congurao para aplicaes instaladas. Pode conter subdiretrios por aplicao.
Scripts de inicializao/parada para aplicaes

/usr/local/etc /usr/local/etc/rc.d /var/db

instaladas. Arquivos de banco de dados especcos de sistema gerados automaticamente, como base da dados de pacotes, a base de dados locate, e assim por diante.

6.10.2. Nomes de Servidores


6.10.2.1. /etc/resolv.conf O arquivo /etc/resolv.conf determina como o resolvedor do FreeBSD acessa o Sistema de Nome de Domnios da Internet (DNS). As entradas mais comuns no arquivo resolv.conf so:
nameserver

O endereo IP do servidor de nomes que o resolvedor deve pesquisar. Os servidores so na ordem em que esto listados num mximo de trs. Lista de pesquisa para a procura do nome de servidor. Normalmente determinado pelo domnio do servidor local. O nome do domnio local.

search

domain

Um resolv.conf tpico:
search example.com nameserver 147.11.1.11 nameserver 147.11.100.30

172

Captulo 6. Congurao e Ajuste


Nota: Apenas as opes search e domain devem ser usadas.

Se voc estiver usando geralmente o dhclient(8), ele reescreve o resolv.conf com a informao recebida do servidor DHCP.

6.10.2.2. /etc/hosts O arquivo /etc/hosts uma base em texto remanescente da velha Internet. Funciona em conjunto com o servidores DNS e NIS oferecendo mapeamento de nome para endereos IP. Computadores locais conectados Rede Local podem ser colocados aqui para propsitos simples de nomeamento ao invs de congurar um servidor named(8). Adicionalmente, o arquivo /etc/hosts pode ser usado para oferecer uma base local de nomes Internet, reduzindo a necessidade de pesquisa externa para nomes geralmente mais usados.
# $FreeBSD$ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # In the presence of the domain name service or NIS, this file may # not be consulted at all; see /etc/nsswitch.conf for the resolution order. # # ::1 localhost localhost.my.domain myname.my.domain 127.0.0.1 localhost localhost.my.domain myname.my.domain # # Imaginary network. #10.0.0.2 myname.my.domain myname #10.0.0.3 myfriend.my.domain myfriend # # According to RFC 1918, you can use the following IP networks for # private nets which will never be connected to the Internet: # # 10.0.0.0 10.255.255.255 # 172.16.0.0 172.31.255.255 # 192.168.0.0 192.168.255.255 # # In case you want to be able to connect to the Internet, you need # real official assigned numbers. PLEASE PLEASE PLEASE do not try # to invent your own network numbers but instead get one from your # network provider (if any) or from the Internet Registry (ftp to # rs.internic.net, directory /templates). #

O arquivo /etc/hosts possui o seguinte formato:


[Endereo Internet] [hostname oficial] [apelido1] [apelido2] ...

Por exemplo:
10.0.0.1 meuHostnameReal.exemplo.com meuHostnamereal foobar1 foobar2

173

Captulo 6. Congurao e Ajuste Consulte hosts(5) para mais informaes.

6.10.3. Congurao dos Arquivos de Log


6.10.3.1. syslog.conf
syslog.conf um arquivo de congurao para o programa syslogd(8). Indica que tipo de mensagens do syslog

so armazenadas nos arquivos de log.


# $FreeBSD$ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manual page. .err;kern.debug;auth.notice;mail.crit /dev/console * .notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages * security.* /var/log/security mail.info /var/log/maillog lpr.info /var/log/lpd-errs cron.* /var/log/cron root *.err root *.notice;news.err *.alert root *.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log #*.* /var/log/all.log # uncomment this to enable logging to a remote log host named loghost #*.* @loghost # uncomment these if youre running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !startslip /var/log/slip.log *.* !ppp /var/log/ppp.log *.*

Consulte a pgina de manual do syslog.conf(5) para mais informao.

6.10.3.2. newsyslog.conf
newsyslog.conf o arquivo de congurao para o newsyslog(8), um programa que normalmente agendado para ser executado pelo cron(8). O newsyslog(8) determina quando os arquivos de log necessitam ser arquivados ou reorganizados. arquivolog renomeado para arquivolog.0, arquivolog.0 renomeado para arquivolog.1,

174

Captulo 6. Congurao e Ajuste e assim sucessivamente. Alternativamente, os arquivos de log podem ser arquivados no formato gzip(1), fazendo com que sejam nomeados: arquivolog.0.gz, arquivolog.1.gz, e assim sucessivamente.
newsyslog.conf indica os arquivos de log a serem gerenciados, quantos devem ser mantidos, e quando devem ser

modicados. Arquivos de log podem ser rearranjados e/ou arquivados ao chegarem um determinado tamanho, ou em um perodo de tempo/data.
# configuration file for newsyslog # $FreeBSD$ # # filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] /var/log/cron 600 3 100 * Z /var/log/amd.log 644 7 100 * Z /var/log/kerberos.log 644 7 100 * Z /var/log/lpd-errs 644 7 100 * Z /var/log/maillog 644 7 @T00 Z * /var/log/sendmail.st 644 10 168 B * /var/log/messages 644 5 100 * Z /var/log/all.log 600 7 @T00 Z * /var/log/slip.log 600 3 100 * Z /var/log/ppp.log 600 3 100 * Z /var/log/security 600 10 100 * Z /var/log/wtmp 644 3 @01T05 B * /var/log/daily.log 640 7 @T00 Z * /var/log/weekly.log 640 5 1 $W6D0 Z /var/log/monthly.log 640 12 $M1D0 Z * /var/log/console.log 640 5 100 * Z

Consulte pgina de manual do newsyslog(8) para mais informao.

6.10.4. sysctl.conf
sysctl.conf se parece muito com o rc.conf. Os valores so ajustados no formato varivel=valor. Os valores especicados so congurados antes do sistema alcanar o modo multi usurio. Nem todas as variveis so ajustveis neste modo.

Um exemplo de sysctl.conf desligando a emisso de log de sinais de sadas fatais fazendo com que os programas Linux saibam que esto realmente sendo executados sob o FreeBSD.
kern.logsigexit=0 # Do not log fatal signal exits (e.g. compat.linux.osname=FreeBSD compat.linux.osrelease=4.3-STABLE sig 11)

6.11. Ajustando com o sysctl


O sysctl(8) uma interface que permite que voc faa mudanas em um sistema FreeBSD em tempo real. Isto inclui muitas opes avanadas da pilha TCP/IP e sistema de memria virtual que podem ser congurados atravs do sysctl(8).

175

Captulo 6. Congurao e Ajuste Na sua essncia, o sysctl(8) tem duas funes: ler e modicar conguraes do sistema. Para ver todas as variveis que podem ser lidas:
% sysctl -a

Para ler uma varivel em particular, por exemplo, kern.maxproc:


% sysctl kern.maxproc

kern.maxproc: 1044

Para congurar um valor em particular, use a sintaxe intuitiva varivel=valor


# sysctl kern.maxfiles=5000

kern.maxfiles: 2088 -> 5000

Conguraes de variveis do sysctl geralmente so strings, nmeros ou boleanos (sendo um boleano 1 para sim ou 0 para no).

6.11.1. sysctl(8) Apenas para Leitura


Contribuio de Tom Rhodes. Em alguns casos pode ser desejvel modicar valores sysctl(8) que possam apenas ser lidos. Enquanto isto no seja recomendvel, algumas vezes tambm pode ser inevitvel. Por exemplo, em alguns modelos de computadores portteis o dispositivo cardbus(4) no provar algumas faixas de memria, e causar falhas com erros parecidos com este:
cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12

Casos como este acima geralmente requerem a modicao de algumas conguraes padro do sysctl(8) que so apenas para leitura. Para mudar esta situao o usurio pode colocar OIDs de sysctl(8) em seu arquivo local /boot/loader.conf. Conguraes padro esto localizadas no arquivo /boot/defaults/loader.conf. Consertar o problema mencionado acima pode requerer que o usurio congure a opo
hw.pci.allow_unsupported_io_range=1 no arquivo mencionado anteriormente. Agora o cardbus(4)

funcionar adequadamente.

6.12. Ajustando Discos


6.12.1. Variveis Sysctl
6.12.1.1. vfs.vmiodirenable A varivel sysctl vfs.vmiodirenable pode ser congurada tanto para 0 (desligada) ou 1 (ligada); onde o padro 1. Esta varivel controla como os diretrios so cacheados pelo sistema. Muitos diretrios so pequenos, utilizando apenas um fragmento (tipicamente 1 K) no sistema de arquivos e menos no cache do buffer (tipicamente 512 bytes).

176

Captulo 6. Congurao e Ajuste Entretanto, ao operar em modo padro o cache do buffer ir cachear apenas um nmero xo de diretrio ainda que voc tenha uma grande quantidade de memria. Ligar este sysctl permite que o cache do buffer use o VM Page Cache para cachear os diretrios, fazendo com que toda memria disponvel possa ser usada para cachear diretrios. Entretanto, o mnimo de memria usada para cachear um diretrio o tamanho de uma pgina fsica (tipicamente 4 K) ao invs de 512 bytes. Recomendamos que esta varivel seja ligada se voc estiver usando servios que manipulem um grande nmero de arquivos. Servios como web caches, grandes sistemas de correio eletrnico, e sistemas de notcias. Ligar esta varivel geralmente no reduzir a performance, mesmo com a memria desperdiada, mas voc deve tentar para descobrir.

6.12.1.2. vfs.write_behind A varivel sysctl vfs.write_behind possui valor padro 1 (ligada). Isto diz para que o sistema de arquivos faa uma escrita completa assim que uma seqncia de clusters seja coletada, isto tipicamente ocorre numa escrita de grandes arquivos sequenciais. A idia evitar a saturao do cache do buffer com buffers sujos quando isto no beneciar a performance de E/S. Entretanto, isto pode paralizar processos, e sob algumas circunstncias voc pode querer desligar esta varivel.

6.12.1.3. vfs.hirunningspace A varivel sysctl vfs.hirunningspace determina a quantidade excedente de escrita de I/O que pode ser enleirada nos controladores de disco globais do sistema em qualquer ocasio. O padro normalmente suciente, mas em mquinas com muitos discos voc pode querer aumentar para quatro ou cinco megabytes. Note que congurar um valor alto (excedendo o ponto inicial do buffer de escrita do cache) pode levar a uma performance de clustering degradante. No congure esta varivel com um valor arbitrariamente alto! Valores altos de escrita podem adicionar latncia em leituras ocorridas simultaneamente. Existem outras variveis sysctl de cache de buffer e pgina VM. No recomendamos a modicao de seus valores. Assim como no FreeBSD 4.3, o sistema VM realiza um excelente trabalho ajustando-se automaticamente.

6.12.1.4. vm.swap_idle_enabled A varivel sysctl vm.swap_idle_enabled til em grandes sistemas multi-usurio onde voc tem muitos usurios entrando e saindo do sistema e muitos processos ociosos. Estes sistemas tendem a gerar uma presso considervel e contnua nas reservas de memria livre. Sintonizar esta caracterstica e ajustar a histeria de swapout (em segundos fora de uso) atravs de vm.swap_idle_threshold1 e vm.swap_idle_threshold2 permite que voc diminua mais rapidamente a prioridade das pginas de memria associadas processos ociosos do algoritmo padro de pageout. Isto d uma ajuda ao daemon de pageout. No ligue esta opo a menos que voc precise, pois a troca que voc est fazendo essencialmente memria de pr-pgina antes ao invs de tardia; consumindo mais swap e banda de disco. Em um sistema pequeno esta opo ter um efeito determinvel, mas em um sistema maior que j est fazendo uma paginao moderada esta opo permite ao sistema VM organizar os processos que entram e saem da memria mais facilmente.

6.12.1.5. hw.ata.wc O FreeBSD 4.3 ertou com o desligamento do cache de escrita IDE. Isto reduziu a largura de banda de escrita em discos IDE e foi considerado necessrio devido a srias questes de consistncia de dados introduzidas pelos fabricantes de discos rgidos. O problema que discos IDE mentem quando uma escrita completada. Com o cache

177

Captulo 6. Congurao e Ajuste de escrita de IDE ligado, estes discos no somente escrevem dados no disco fora de ordem, mas algumas vezes atrasar a escrita de alguns blocos indenidamente quando estiver sob grande carga. Um problema ou uma falha de energia pode causar corrupes srias no sistema de arquivos. O padro do FreeBSD foi modicado para ser seguro. Infelizmente, o resultado foi uma grande perda de performance, e voltamos a ligar o cache de escrita por padro. Voc pode checar o padro do seu sistema observando a varivel sysctl hw.ata.wc. Se o cache de escrita IDE estiver desligado, voc pode liga-lo de volta congurando a varivel de kernel de volta para 1. Isto deve ser feito pelo carregador de inicializao durante a inicializao. Tentar fazer isso depois da inicializao do kernel no surtir efeito. Para mais informaes veja ata(4).

6.12.1.6. SCSI_DELAY (kern.cam.scsi_delay) A congurao de kernel SCSI_DELAY pode ser usada para reduzir o tempo de inicializao. O padro um pouco alto e pode ser responsvel 15+ segundos de espera no processo de inicializao. Reduzir para 5 segundos funciona bem (especialmente para drives modernos). Verses mais novas do FreeBSD (5.0+) podem ajustar a varivel kern.cam.scsi_delay. As opes de congurao de kernel e ajuste de varivel aceitam valores em milisegundos e no em seconds.

6.12.2. Soft Updates


O programa tunefs(8) pode ser usado para fazer um ajuste no no sistema de arquivos. Este programa possui muitas opes, mas por enquanto vamos nos preocupar apenas em ligar e desligar o Soft Upatades da seguinte maneira:
# tunefs -n enable /sistemadearquivos # tunefs -n disable /sistemadearquivos

Um sistema de arquivos no pode ser modicado com o tunefs(8) enquanto estiver montado. Uma boa hora para habilitar o Soft Updates antes que qualquer partio seja montada, em modo mono-usurio.
Nota: Assim como no FreeBSD 4.5, possvel habilitar o Soft Updates no momento da criao do sistema de arquivos, atravs da opo -U do newfs(8).

O Soft Updates melhora drasticamente a performance do meta-dados, principalmente a criao e eliminao de arquivos, atravs do uso de um cache de memria. Recomendamos o uso do Soft Updates em todos os seus sistemas de arquivos. Existem dois pequenos problemas no seu uso, que voc deve estar ciente: Primeiro, o Soft Updates garante a consistncia no sistema de arquivos no caso de problemas, mas pode car alguns segundos (at mesmo minuto!) atualizando o disco fsico em segundo plano. Se seu sistema der problema voc pode perder mais dados do que da outra maneira. Segundo, o Soft Updates atrasa a liberao de blocos do sistema de arquivo. Se voc possui um sistema de arquivo (como a raz) que est praticamente lotado, fazer uma atualizao geral tipo make installworld, pode fazer com que o sistema de arquivos que sem espao e falhe a atualizao. 6.12.2.1. Mais detalhes sobre o Soft Updates Existe duas maneiras tradicionais de escrever meta-dados de sistemas de arquivos de volta para o disco. (Atualizao de meta-dados so atualizaes para dados que no sejam de contedo, como inodos ou diretrios.)

178

Captulo 6. Congurao e Ajuste Historicamente, o comportamento padro era o de escrever atualizaes de meta-dados sincronamente. Se um diretrio foi modicado, o sistema esperou at que a mudana fosse realmente feita no disco. Os buffers de dados de arquivo (contedo do arquivo) foram passados atravs do buffer de cache e guardados mais tarde em disco assincronamente. A vantagem desta implementao a segurana na operao. Se existir uma falha durante uma atualizao, os meta-dados sempre estaro em um estado consistente. Um arquivo criado de forma completa ou no de qualquer forma. Se os blocos de dados de um arquivo no encontrar seu caminho do cache de buffer no disco na hora do problema, o fsck(8) ser capaz de reconhecer e reparar o sistema de arquivos congurando o tamanho do arquivo para 0. Alm disso, a implementao clara e simples. A desvantagem que as mudanas de meta-dados so lentas. O comando rm -r, por exemplo, toca em todos os arquivos em um diretrio sequencialmente, mas cada mudana de diretrio (excluso de um arquivo) ser escrita sincronamente no disco. Isto inclui atualizaes no prprio diretrio, na tabela de inodo, e possvelmente nos blocos indiretamente alocados pelo arquivo. Consideraes similares so aplicveis no desenrolar de hierarquias grandes ( tar -x). O segundo caso o de atualizaes assncronas de meta-dados. Isto o padro para Linux/ext2fs e mount -o async para ufs nos *BSD. Todas as atualizaes de meta-dados so simplesmente passadas pelo cache de buffer tambm, eles sero misturados com as atualizaes de contedo de dados de arquivo. A vantagem desta implementao que no existe a necessidade de esperar at que cada atualizao de meta-dados tenha sido escrita em disco, uma vez que todas as operaes que causam grandes quantidades de atualizao de meta-dados trabalhem mais rpido que no caso sncrono. Alm disso, a implementao simples e limpa, possuindo um baixo risco de falhas na codicao. A desvantagem que no existe garantia para um estado consistente do sistema de arquivos. Se ocorrer uma falha durante uma operao que atualizou grandes quantidades de meta-dados (como uma falta de energia, ou algum pressionar o boto de reinicializao), o sistema de arquivos car em um estado imprevisvel. No existe uma oportunidade para examinar o estado do sistema de arquivos quando o sistema voltar para o ar novamente; os blocos de dados de um arquivo j podem ter sido escritos no disco enquanto as atualizaes na tabela de inodo, ou diretrio associado, ainda no foram. Na verdade impossvel implementar um fsck que seja capaz de limpar todo o caos resultante (pelo fato de que a informao necessria no est disponvel no disco). Se o sistema de arquivos foi danicado alm das possibilidades de reparao, a nica escolha utilizar o newfs(8) e restaurar um backup. A soluo normal para este problema foi a implementao de uma regio suja de logging, tambm conhecida como journaling, embora este termo no seja usado consistentemente e ocasionalmente aplicado outras formas de transao de logging. Atualizaes de meta-dados ainda so escritas sincronamente, mas apenas em uma pequena regio do disco. Posteriormente sero movidos para a localizao apropriada. Devido ao pequeno tamanho da rea de logging, a regio contgua do disco, no existem grandes distncias a serem percorridas pela cabea do disco, mesmo durante operaes pesadas, fazendo com que estas operaes sejam mais rpidas do que as atualizaes sncronas. Alm disso, a complexidade de implementao um tanto quanto limitada, fazendo com que o risco de existncia de falhas na codicao sejam menores. A desvantagem que todos os meta-dados so escritos duas vezes (uma vez na regio de logging e outra no local apropriado) causando perda de performance em condies normais. Por outro lado, no caso de pane, todas as operaes de meta-dados pendentes podem ser rapidamente desfeitas ou completadas da rea de logging depois que o sistema retornar ao ar novamente, resultando uma inicializao rpida de sistema de arquivos. Kirk McKusick, desenvolvedor do Berkeley FFS, resolveu este problema com o Soft Updates: todas as atualizaes de meta-dados pendentes so mantidas em memria e escritas no disco numa seqncia ordenada (ordered meta-data updates). Isto causa o seguinte efeito, no caso de operaes pesadas de meta-dados, atualizaes posteriores em um item pegam as primeiras que ainda esto em memria e no foram escritas no disco. Ento todas as operaes em, digamos, um diretrio, geralmente so feitas em memria antes que a atualizao seja escrita no disco (os blocos de dados so ordenado de acordo com seu posicionamento, assim no podem estar no disco antes de seus meta-dados). Se o sistema der pane, a conseqncia ser um log rewind: todas as operaes que no encontraram seu caminho para o disco parecem nunca ter ocorrido. Um estado consistente de sistema de arquivo

179

Captulo 6. Congurao e Ajuste mantido como se fosse de 30 a 60 segundos antes. O algoritmo utilizado garante que todos os recursos em uso sejam marcados com seus mapas de bits apropriados: blocos e inodos. Depois de uma pane, a nica alocao de erros de recursos que ocorre so os marcados como used que na verdade so free. O fsck(8) reconhece esta situao, e libera os recursos que no estejam em uso. seguro ignorar o estado sujo do sistema de arquivo aps uma pane forando mont-lo com mount -f. Para liberar recursos que podem estar ociosos, o fsck(8) necessita ser executado posteriormente. Esta a idia atrs do background fsck: no momento da inicializao do sistema, apenas um snapshot do sistema de arquivo gravada. O fsck pode ser executado depois. Todos os sistemas de arquivo podem ser montados sujos, para que a inicializao do sistema prossiga em modo multi-usurio. Ento o fsck em segundo plano ser agendado para ser executado em todos os sistemas de arquivo onde for necessrio, para liberar recursos que podem estar ociosos. (Sistemas de arquivos que no usam Soft Updates ainda necessitam do fsck em primeiro plano.) A vantagem que as operaes de meta-dados so quase to rpidas quando as atualizaes assncronas (mais rpidas do que com logging, que precisa escrever os meta-dados duas vezes). As desvantagem so a complexidade do cdigo (implicando em um alto rico de falhas de cdigo em uma rea extremamente sensvel no que diz respeito a perda de dados do usurio), e um alto consumo de memria. Alm disso existem algumas peculiaridades que temos que lidar. Depois de uma pane, o estado do sistema de arquivos parece estar algo como antigo. Em situaes onde a opo sncrona pode ter causado alguns arquivos de tamanho zero aps o fsck, estes arquivos no existem em um sistema de arquivo com Soft Update, pois nem os meta-dados e os contedos dos arquivos foram escritos no disco. O espao em disco no liberado at que as atualizaes tenham sido escritas no disco, que pode acontecer algum tempo depois de executar o comando rm. Isto pode causar problemas ao introduzir grandes quantidades de dados em um sistema de arquivo que no possui espao livre suciente para abrigar todos os arquivos duas vezes.

6.13. Ajustando Limites do Kernel


6.13.1. Limites de Arquivo/Processo
6.13.1.1. kern.maxfiles A varivel kern.maxfiles pode ter seu valor aumentado ou diminuido baseado nos requisitos do sistema. Esta varivel indica o nmero mximo de descritores de arquivos no seu sistema. Quando a tabela de descritores de arquivos est cheia, a mensagem file: table is full aparecer vrias vezes no buffer de mensagens do sistema, que pode ser visualizado atravs do comando dmesg. Cada arquivo aberto, socket, ou fo usa um descritor de arquivo. Um servidor de produo de larga escala pode facilmente requerer muitos milhares de descritores de arquivos, dependendo do tipo e do nmero de servios sendo executados concorrentemente. O valor padro da varivel kern.maxfile denido pela opo MAXUSERS no seu arquivo de congurao de kernel. kern.max.files cresce proporcionalmente ao valor de MAXUSERS. Ao compilar um kernel customizado, uma boa idia modicar esta congurao de acordo com o uso do seu sistema. A partir deste nmero, o kernel toma base para muitos limites pr-denidos. Embora uma mquina em produo no tenha 256 usurios conectados ao mesmo tempo, os recursos requeridos podem ser similares aos de um servidor de ponta.
Nota: Assim como no FreeBSD 4.5, congurar a opo MAXUSERS para 0 no seu arquivo de congurao de kernel faz com que um valor padro razovel seja congurado de acordo com a memria RAM presente no seu

180

Captulo 6. Congurao e Ajuste


sistema.

6.13.1.2. kern.ipc.somaxconn A varivel sysctl kern.ipc.somaxconn limita o tamanho da la de escuta para aceitao de novas conexes TCP. O valor padro de 128 tipicamente baixo para uma manipulao robusta de novas conexes em um ambiente de servidor web com alta carga. Para tais ambientes o aumento deste valor para 1024 ou mais recomendado. O servio de daemon pode por si s limitar o tamanho da la (por exemplo, sendmail(8), ou Apache) mas na maioria das vezes existir uma diretiva em seus arquivos de congurao para ajustar o tamanho da la. Filas de escuta grandes tambm podem fazer um bom trabalho evitando ataques de Negao de Servio (DoS).

6.13.2. Limites de Rede


A opo de congurao de kernel NMBCLUSTERS dita a quantidade de Mbufs de rede disponvel para o sistema. Um servidor com muito trfego e um nmero pequeno de Mbufs limitaro a habilidade do FreeBSD. Cada cluster representa aproximadamente 2 K de memria, ento um valor de 1024 representa 2 megabytes de memria de kernel reservada para buffers de rede. Um clculo simples pode ser feito para saber quantos so necessrios. Se voc possui um servidor web que chega a um mximo de 1000 conexes simultneas, e cada conexo consome 16 K de buffer de envio e 16 K de recepo, voc precisa de aproximadamente 32 MB de buffers de rede para cobrir seu servidor web. Uma boa regra geral multiplicar por 2, ento 2x32 MB / 2 KB = 64 MB / 2 kB = 32768. Recomendamos valores entre 4096 e 32768 para mquinas com grandes quantidades de memria. Sob nenhuma circunstncia voc deve especicar valores arbitrariamente altos para este parmetro, pois pode causar travamentos durante a inicializao. A opo -m do netstat(1) pode ser usada para observar o uso do cluster de rede.
kern.ipc.nmbclusters pode ser usado para ajustar isto no momento da inicializao. Somente verses antigas do FreeBSD iro requerer o uso da opo cong(8) de kernel NMBCLUSTERS.

Para servidores mais ocupados, que fazem uso extensivo da chamada de sistema sendle(2), pode ser necessrio aumentar o nmero de buffers sendle(2) atravs da opo de congurao de kernel NSFBUFS colocando seu valor no arquivo /boot/loader.conf (veja loader(8) para mais detalhes). Um indicador comum que indica que este parmetro precisa ser ajustado quando processos so vistos no estado sfbufa. A varivel sysctl kern.ipc.nsfbufs oferece uma viso apenas de leitura de como esta varivel est congurada no kernel . Este parmetro aumenta nominalmente com o kern.maxusers, entretanto pode ser necessrio ajustar de acordo com a necessidade.
Importante: Mesmo que o socket tenha sido marcado como no bloqueador, invocar o sendle(2) neste socket pode resultar em bloqueamento de chamadas no sendle(2) at que struct sf_bufs tenham sido disponibilizados.

6.13.2.1. net.inet.ip.portrange.* A varivel sysctl net.inet.ip.portrange.* controla a faixa de nmero de portas automaticamente ligadas a sockets TCP e UDP. Existem trs faixas: a baixa, a padro e a faixa alta. Muitos programas de rede usam a faixa padro, que controlada pela varivel net.inet.ip.portrange.first e net.inet.ip.portrange.last,

181

Captulo 6. Congurao e Ajuste que possuem valores padro 1024 e 5000, respectivamente. Faixas de porta padro so usadas para conexes que saem, e possvel car sem portas sob certas circunstncias. Isto ocorre de forma mais comum quando voc roda um servidor proxy que tem muita carga. A faixa de portas no um problema quando se executa servidores cujo papel principal receber conexes, como um servdor web normal, ou um servidor que possui um nmero limitado de conexes que saem, como um relay de correio. Para situaes onde voc pode car sem portas, recomendado que se aumente modestamente a varivel net.inet.ip.portrange.last. Um valor de 10000, 20000 ou 30000 deve ser suciente. Voc tambm deve considerar os efeitos colaterais que a mudana de faixa de portas pode causar em um rewall. Alguns rewalls podem bloquear grandes faixas de portas (geralmente portas de nmeros baixos) e esperar que os sistemas utilizem faixas de portas altas para conexes que saem por esta razo recomenda-se que a varivel net.inet.ip.portrange.first tenha seu valor diminuido.

6.13.2.2. TCP Bandwidth Delay Product A Limitao do Produto de Atraso de Banda TCP similar ao TCP/Vegas no NetBSD. Pode ser habilitado atravs da congurao da varivel sysctl net.inet.tcp.inflight_enable para o valor 1. O sistema tentar calcular o produto do atraso de banda para cada conexo e limitar a quantidade de dados enleirados para a rede para apenas a quantidade requerida, com o objetivo de otimizar a quantidade de dados entrando e saindo. Esta caracterstica til se voc est servindo dados atravs de modems, Gigabit Ethernet, ou at mesmo links WAN de alta velocidade (ou qualquer outro link com um alto produto de atraso de banda), especialmente se voc tambm est usando escalamento de janela ou possui uma grande janela de envio congurada. Se voc habilitar esta opo, voc deve ter certeza de congurar a varivel net.inet.tcp.inflight_debug para 0 (desabilitar depurao), e para produo congurar net.inet.tcp.inflight_min para pelo menos 6144 pode ser benco. Entretanto, note que congurar valores mnimos altos pode efetivamente desabilitar a limitao de banda dependendo do link. A caracterstica de limitao reduz a quantidade de dados construdos na roda intermediria e trocar as las de pacotes assim como reduzir a quantidade de dados construdos na interface de enleiramento da mquina local. Com poucos pacotes enleirados, conexes interativas, especialmente sob modems lentos, tambm sero capazes de operar com tempos reduzidos de Round Trip. Entretanto, note que esta caracterstica tem efeito apenas na transmisso de dados (envio de dados / lado do servidor). No tem efeito na recepo de dados (download) Ajustar o valor de net.inet.tcp.inflight_stab no recomendado. Este parmetro tem valor 20 como padro, representando 2 pacotes mximos adicionados ao clculo de janela de produto de atraso de banda. A janela adicional requerida para estabilizar o algoritmo e melhorar a resposta em condies de mudana, mas tambm pode resultar em tempos altos de ping em links lentos (ainda mais lentos do que voc teria sem o algoritmo inflight). Nestes casos, voc pode querer tentar reduzir este parmetro para 15, 10 ou 5; e talvez tenha que reduzir a varivel net.inet.tcp.inflight_min (por exemplo, para 3500) para obter o efeito desejado. Reduzir estes parmetros deve ser feito como um ltimo recurso somente.

6.14. Adicionando Espao de Swap


No importa o que voc planeje, algumas vezes o sistema no roda como voc espera. Se voc acha que precisa de mais espao de swap, simples adicionar. Voc tem trs maneiras de fazer isso: adicionar um novo disco, habilitar swap atravs de NFS, e criar um arquivo de swap em uma partio existente.

182

Captulo 6. Congurao e Ajuste

6.14.1. Swap em um Novo Disco Rgido


A melhor maneira de adicionar swap, claro, usar isto como desculpa para adicionar outro disco rgido. Voc pode sempre usar outro disco rgido anal de contas. Se voc puder fazer isto, releia a discusso espao de swap (congtuning-initial.html#SWAP-DESIGN) da seo do Handbook Congurao Inicial (congtuning-initial.html) para sugestes de quais os melhores meios para arrumar seu swap.

6.14.2. Swap atravs de NFS


Fazer swap atravs de NFS somente recomendado se voc no possui um disco local para fazer swap. lento e ineciente em verses do FreeBSD anteriores a 4.X. razoavelmente rpido na 4.0-RELEASE e superior. Mesmo com verses mais novas do FreeBSD, swap de NFS ser limitado pela largura de banda da rede colocando uma carga extra no servidor NFS.

6.14.3. Arquivos de Swap


Voc pode criar um arquivo de tamanho especco para utilizar como arquivo de swap. Em nosso exemplo usaremos um arquivo de 64MB chamado /usr/swap0 . Voc pode usar qualquer nome que desejar, claro. Exemplo 6-1. Criando um Arquivo de Swap no FreeBSD 4.X 1. Tenha certeza de que seu arquivo de congurao de kernel inclui o driver vnode. Ele no est nas verses recentes do arquivo GENERIC.
pseudo-device vn 1 #Vnode driver (turns a file into a device)

2. crie um vn-device:
# cd /dev # sh MAKEDEV vn0

3. crie um arquivo de swap (/usr/swap0):


# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

4. congure as permisses apropriadas em (/usr/swap0):


# chmod 0600 /usr/swap0

5. habilite o arquivo de swap em /etc/rc.conf:


swapfile="/usr/swap0" # Ajuste o nome do arquivo de swap desejado.

6. Reinicialize a mquina ou habilite o arquivo de swap imediatamente, digite:


# vnconfig -e /dev/vn0b /usr/swap0 swap

Exemplo 6-2. Criando um Arquivo de Swap no FreeBSD 5.X 1. Tenha certeza de que seu arquivo de congurao de kernel tenha o driver de memria (md(4)). Est no GENERIC por padro.
device md # Memory "disks"

2. crie um arquivo de swap (/usr/swap0):


# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

183

Captulo 6. Congurao e Ajuste 3. congure as permisses em (/usr/swap0):


# chmod 0600 /usr/swap0

4. habilite o arquivo de swap no /etc/rc.conf:


swapfile="/usr/swap0" # Ajuste o nome do arquivo de swap desejado.

5. Reinicialize a mquina ou habilite o arquivo de swap imediatamente, digite:


# mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0

6.15. Gerenciamento de Energia e Recursos


Escrito por Hiten Pandya e Tom Rhodes. muito importante utilizar os recursos de hardware de maneira eciente. Antes do ACPI ser introduzido, era muito difcil e inexfel para os sistemas operacionais gerenciar o uso de energia e propriedades trmicas de um sistema. O hardware era controlado por algum tipo de interface BIOS embarcada, ou Plug and Play BIOS (PNPBIOS), ou Gerenciamento de Energia Avanado (APM) e assim por diante. Gerenciamento de Energia e Recursos um dos componentes chave de um sistema operacional moderno. Por exemplo, voc pode querer que o sistema operacional monitore os limites do sistema (e possvelmente alertar voc) caso a temperatura do seu sistema aumente inesperadamente. Nesta seo do Handbook do FreeBSD ofereceremos informaes sobre ACPI. Daremos referncias de leituras mais completas no nal. Por favor, saiba que o ACPI est disponvel no FreeBSD 5.X e superiores como um mdulo padro de kernel. Para o FreeBSD 4.9, ACPI pode ser habilitado adicionando-se a linha device acpi ao arquivo de congurao do kernel e recompilando-se o sistema.

6.15.1. O que ACPI?


Congurao Avanada e Interface de Energia (ACPI) um padro escrito por um consrcio de fornecedores para oferecer um padro de interface para recursos de hardware e gerenciamento de energia. um elemento chave na Congurao direcionada ao Sistema e Gerenciamento de Energia, ex.: oferece mais controle e exibilidade para o sistema operacional (SO). Sistemas modernos, arrebentaram os limites das interfaces Plug and Play atuais (tais como APM, que usada no FreeBSD 4.X), antes da introduo do ACPI. ACPI o sucessor direto do APM (Gerenciamento Avanado de Energia).

6.15.2. Contratempos do Gerenciamento Avanado de Energia (APM)


O Gerenciamento Avanado de Energia (APM) facilita o controle do uso de energia de um sistema baseado em sua atividade. A BIOS APM oferecida pelo fornecedor (do sistema) e especca plataforma de hardware. Um driver APM no SO media o acesso ao Programa de Interface APM , que permite o gerenciamento de nveis de energia. Existem quatro problemas principais no APM. Primeiro, o gerenciamento de energia feito pela BIOS (especca do fornecedor), e o SO no tem nenhum conhecimento dela. Um exemplo disso quando o usurio congura valores de tempo ocioso para discos rgidos na BIOS APM que, quando excedidos, ela (BIOS) desliga o disco sem o consentimento do SO. Segundo, a lgica do APM embarcada na BIOS, e opera fora do escopo do SO. Isto signica que os usurios s podem consertar problemas em suas BIOS APM gravando uma nova ROM; que um procedimento extremamente perigoso, e se falhar, pode levar o sistema um estado irrecupervel. Terceiro, APM

184

Captulo 6. Congurao e Ajuste uma tecnologia especca do fornecedor, o que signica que existem muitas paridades (duplicao de esforos) e falhas encontradas nas BIOS destes fornecedores que podem no ser consertadas nas de outros fornecedores. ltima mas no menos importante, a BIOS APM no possui espao suciente para implementar uma poltica sosticada de energia, ou uma que possa se adaptar bem ao propsito da mquina. BIOS Plug and Play (PNPBIOS) era inconvel em muitas situaes. PNPBIOS uma tecnologia de 16 bits, assim o SO tem que emular 16 bits para fazer interface com os mtodos PNPBIOS. O driver APM do FreeBSD est documentado na pgina de manual do apm(4).

6.15.3. Congurando ACPI


O driver acpi.ko carregado por padro na inicializao pelo loader(8) e no deve ser compilado no kernel. A razo por trs disso que os mdulos so mais fceis de se trabalhar, digamos se trocar para outro acpi.ko sem que seja preciso recompilar o kernel. Isto tem a vantagem de facilitar os testes. Uma outra razo que inicializar o ACPI depois do sistema estar no ar no to til, e em alguns casos pode ser fatal. Na dvida, apenas desabilite o ACPI. Este driver no deve e no pode ser desabilitado pois o barramento do sistema o usa para vrias interaes de hardware. O ACPI pode ser desabilitado com o utilitrio acpiconf(8). Na verdade, a maior parte das interaes com o ACPI pode ser feita atravs do acpiconf(8). Basicamente isto signica que se qualquer coisa a respeito do ACPI estiver na sada do dmesg(8), ento provavelmente j estar rodando.
Nota: ACPI e APM no podem coexistir e devem ser usados separadamente. O ltimo a ser carregado ser nalizado se o driver tiver notcias que o outro est sendo executado.

Numa forma mais simples, o ACPI pode ser usado para colocar o sistema em modo de espera com a opo -s e 1-5 do acpiconf(8).
# halt -p

Outras opes esto disponveis. Conra a pgina de manual acpiconf(8) para mais informaes.

6.15.4. Depurando e Desabilitando o ACPI


Quase tudo no ACPI transparente, at que no funcione. Voc como usurio saber quando alguma coisa no funcionar de acordo. O driver acpi(4) suporta vrias opes de depurao, at possvel seletivamente desabilitar algumas partes do sistema ACPI. Para mais informaes a respeito de facildades de depurao leia a pgina de manual do acpi(4). Algumas vezes, por vrias razes, o mdulo acpi.ko deve ser descarregado. Isto s pode ser feito no momento da inicializao pelo loader(8). Voc pode digitar no prompt do loader(8) o comando unset acpi_load cada vez que voc inicializar o sistema, para interromper o carregamento automtico do driver acpi(4) adicione a seguinte linha no arquivo /boot/loader.conf:
exec="unset acpi_load"

O FreeBSD 5.1-RELEASE e superiores vem com um menu em tempo de inicializao que controla como o FreeBSD inicializado. Uma das opes propostas a de desligar o ACPI. Para desabilit-lo selecione 2. Boot FreeBSD with ACPI disabled no menu.

185

Captulo 7. O processo de inicializao do FreeBSD


7.1. Sinpse
O processo de inicializao e carregamento de um sistema operacional refere-se a um processo de inicializar, ou simplesmente carregar. O processo de inicializao do FreeBSD fornece uma grande exibilidade que acontece quando voc inicia o sistema, permitindo que voc selecione diferentes operaes no sistema instalado no computador, ou igualar diferentes verses do mesmo sistema operacional ou do kernel instalado. Este captulo detalha as opes de congurao que voc pode ajustar e personalizar o processo de inicializao do FreeBSD. Isto inclui tudo o que acontece desde que o kernel do FreeBSD foi inicializado, teste de dispositivos, e inicializao do init(8). Se voc no souber quando isso acontece, isto acontece quando a cor do texto muda de branco brilhante para cinza. Depois de ler este captulo, voc saber:

O que os componentes do sistema de inicializao do FreeBSD so, e como eles interagem. As opes que voc pode dar a componentes de inicializao do FreeBSD para controlar o processo de inicializao. O bsico do device.hints(5).
Somente x86: Este captulo descreve somente o processo de inicializao para FreeBSD rodando em sistemas Intel x86.

7.2. Problema na inicializao


Voltando a um computador inicializando o sistema operacional a atitude um dilema interessante. Por denio, o computador no sabe qualquer coisa antes que o sistema operacional esteja iniciando. Isto inclui rodar programas do disco. Assim se o computador no pode rodar um programa do disco sem o sistema operacional, e os programas do sistema operacional esto no disco, como o sistema operacional foi inicializado? Este problema paralelo esto no livro As aventuras de Baron Munchausen. O personagem despencou por um boeiro, e puxou a si mesmo pelos cadaros (bootstraps). Atualmente na computao, o termo bootstrap refere-se ao mecanismo utilizado para carregar o sistema operacional, que abreviado tornou-se o proceso de booting. No hardware x86 o Sistema Bsico de Entrada/Saida (BIOS) responsvel por carregar o sistema operacional. Para fazer isto, na BIOS aparece o disco rgido para o Master Boot Record (MBR), que deve ser alocado sobre um local especco do disco. A BIOS tem bastante mudanas que podem ser feitas para carregar e rodar a MBR, e assume que a MBR pode ento carregar a sada do resto das tarefas envolvidas na inicializao do sistema operacional. Se voc tiver somente um sistema operacional instalado no seu disco ento a MBR padro ser suciente. Esta MBR ir procurar pela primeira partio inicializvel no disco, e entao roda o cdigo nesta partio para carregar o restante do sistema operacional.

186

Captulo 7. O processo de inicializao do FreeBSD Se voc tiver instalado vrios sistemas operacionais em seus discos ento voc pode instalar uma MBR diferente, que possa mostrar uma lista de diferentes sistemas operacionais, e permitir a voc escolher um para carregar. FreeBSD vem com um MBR que pode ser instalado, e outros sistemas operacionais vendidos fornecem MBRs alternativos. O restante do sistema bootstrap do FreeBSD divido em trs estgios. O primeiro estgio executado pela MBR, que sabe apenas iniciar o computador em um estado especco e rodar o segundo estgio. O segundo estgio pode fazer mais um pedao em pouco tempo, depois roda o terceiro estgio. O terceiro estgio terminar a tarefa de carregar o sistema operacional. O trabalho dividido dentro destes trs estgios porque o padro do PC impe limites sobre o tamanho dos programas que podem ser rodados nos estgios um e dois. Acorrentar as tarefas permite que o FreeBSD fornea um carregador mais exvel. O kernel ento inicializado e comea a testar os dispositivos, e ento inicializa estes para o uso. Uma vez que o processo de inicializao do kernel terminado, o kernel passa o controle do processo para init(8), o qual se certica que os discos esto em um estado aproveitavel. init(8) comea ento a congurao a nvel-de-usurio que monta o sistema de arquivos, seta e levanta dispositivos de rede para comunicao com a mesma, e normalmente inicia todos os processos que so rodados sobre um sistema FreeBSD na inicializao.

7.3. A MBR, e os estgios de inicializao Um, Dois, e Trs


7.3.1. MBR, /boot/boot0
A MBR do FreeBSD localizada no /boot/boot0. Esta uma cpia do MBR, por que a real MBR deve car em uma parte especial do disco, fora da rea do FreeBSD.
boot0 muito simples, visto que o programa dentro da MBR pode ter no mximo 512 bytes. Se voc tiver instalado

na MBR o FreeBSD e instalado mltiplos sistemas operacionais em seu HD ento voc vera um menu similar a este na hora da inicializao: Exemplo 7-1. boot0 Screenshot
F1 F2 F3 F4 F5 DOS FreeBSD Linux ?? Drive 1

Default: F2

Outros sistemas operacionais, em particular Windows 95, tem conhecimento para sobrescrever suas prprias informaes em uma MBR j existente. Se isto acontecer a voc, ou voc queira substituir sua MBR existente com o FreeBSD MBR ento use o seguinte comando:
# fdisk -B -b /boot/boot0 device

Onde device o dispositivo que voc carrega, como ad0 para o primeiro disco IDE, ad2 para o primeiro disco IDE da segunda controladora IDE, da0 para o primeiro disco SCSI, e assim por diante. Se voc for um usurio Linux, contudo, e preferir que o LILO controle o processo de inicializao, voc pode editar o arquivo /etc/lilo.conf para FreeBSD, ou selecionar Leave The Master Boot Record Untouched durante o processo de instalao do FreeBSD. Se voc tiver instalado o gerenciador de boot do FreeBSD, voc pode

187

Captulo 7. O processo de inicializao do FreeBSD carregar dentro do Linux e modicar o LILO no arquivo de congurao /etc/lilo.conf e adicionar a seguinte opo:
other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD

o qual permitir a inicializao do FreeBSD e Linux via LILO. Em outro exemplo, ns usamos XY para determinar o nmero do drive e da partio. Se estiver usando um drive SCSI, voc ir querer mudar o /dev/hdXY para leitura algo similar a /dev/sdXY , novamente usando a sintaxe XY . O loader=/boot/chain.b pode ser omitido se voc tiver ambos os sistemas operacionais na mesma partio. Voc pode agora rodar /sbin/lilo -v para executar suas novas alteraes no sistema, este deve ser vericado com mensagens na tela.

7.3.2. Estgio Um, /boot/boot1, e Estgio Dois, /boot/boot2


Conceitualmente o primeiro e segundo estgios so parte do mesmo programa, sobre a mesma rea do disco. Devido o espao contido eles foram divididos em duas partes, mas voc deve instal-los juntos. Eles so encontrados no setor de inicializao, que onde boot0, ou alguns outros programas na MBR espera encontrar um programa para rodar e continuar o processo de inicializao. O arquivo no diretrio /boot so cpias dos arquivos reais, que so armazenados fora do sistema de arquivos do FreeBSD.
boot1 muito simples, este tambm pode somente ter o tamanho mximo de 512 bytes, e sabemos bastante sobre o disklabel do FreeBSD, que armazena informaes no slice, para procurar e executar o boot2. boot2 ligeiramente mais sosticado, e compreende bastante o sistema de arquivos do FreeBSD para procurar

arquivos nele, e pode fornecer uma relao simples para escolher o kernel ou o carregador para executar. Desde que o carregador muito mais sosticado, e fornece uma congurao fcil-de-usar agradvel de inicializao, boot2 usualmente executa-a, mas previamente isto era tarefa para executar diretamente no kernel. Exemplo 7-2. boot2 Screenshot
>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/kernel boot:

Se voc precisar sempre substituir a instalao boot1 e boot2 use disklabel(8).


# disklabel -B diskslice

Onde diskslice o disco e slice da sua inicializao, tal como ad0s1 para o primeiro HD sobre a IDE.
Modalidade Perigosamente DedicadaSe voc usar apenas o nome do disco, tal como ad0, no comando disklabel(8) voc ir criar um disco perigosamente dedicado, sem parties. Isto no devera ser o que voc quer fazer, assim que voc vericar o dobro do disklabel(8) depois voc dever pressionar Return.

188

Captulo 7. O processo de inicializao do FreeBSD

7.3.3. Estgio trs, /boot/loader


A inicializao e o estgio nal dos trs-estgios de bootstrap, localizado no sistema de arquivos, usualmente como /boot/loader. A inicializao usada como um mtodo amigvel para congurao, usando um jogo de comandos internos fcil-de-usar, voltado por um interpretador mais poderoso, com um jogo de comandos mais complexo. 7.3.3.1. Fluxo de programa do carregador Durante a initializao, o carregador sondar para um console e para discos, e gura de sada de que os discos so carregados. Isto setar variveis conformemente, e um interpretador iniciado onde os comandos do usurio podem ser passados de um script ou interativamente. Ento o carregador ir ler o /boot/loader.rc, que por padro l dentro de /boot/defaults/loader.conf que seta padres para variveis e l o /boot/loader.conf para as mudana destas variveis locais. loader.rc age ento sobre estas variveis, carregando qualquer mdulo e kernel que so selecionados. Finalmente, por padro, o carregador emite uma espera de 10 segundos para pressionar alguma tecla, e carregar o kernel se este no for interrompido. Se interrompido, ao usurio apresentado um alerta no prompt que de fcil uso para entender o comando setado, onde o usurio pode ajustar variveis, descarregar todos os mdulos, carregar mdulos, e eles nalmente carregar ou reiniciar.

7.3.3.2. Comandos Carregando e Compilando Estes so os comandos mais comuns usados no carregamento do sistema. Para uma completa discusso de todas avaliaes dos comandos, por favor veja loader(8). autoboot seconds O processo de carregamento do kernel no interrompido durante o tempo concedido, em segundos. Isto mostra uma contagem regrassiva, e o tempo padro concedido 10 segundos. boot [-options] [kernelname] Imediatamente o processo de carregamento do kernel, com as opes dadas, se existir, e com o nome do kernel dado, se for. boot-conf Ir atravs da mesma congurao automtica dos mdulos baseados em variveis como que acontece no boot. Isto somente faz sentido se voc primeiramente descarregar, e alterar algumas variveis, do kernel mais freqente. help [tpico] Mensagens de ajuda so lidas em /boot/loader.help. Se o tpico dado for index, ento a lista de tpicos disponveis dada. include filename . . . Processa o arquivo com o nome dado ao mesmo. O arquivo lido, e interpretado linha por linha. Um erro imediatamente para o comando de incluso.

189

Captulo 7. O processo de inicializao do FreeBSD load [-t type] filename Carrega o kernel, o mdulo do kernel, ou arquivo do tipo dado, com o nome dado. Todos argumentos depois do nome do arquivo so passados para o arquivo. ls [-l] [path] Mostra uma lista de arquivos dentro dos caminhos dados, ou o diretrio do root, se o caminho no especicado. Se -l, especicada o tamanho do arquivo ser mostrado tambm. lsdev [-v] Lista todos os dispositivos que pode ser possvel para carregar mdulos. Se -v for especicado, mais detalhes sero mostrados. lsmod [-v] Mostra mdulos carregados. Se -v for especicado, mais detalhes sero mostrados. more filename Mostra os arquivos especicados, com uma pausa em cada LINHA mostrada. reboot Imediatamente reiniciar o sistema. set variable set variable=value Seta as variveis do ambiente carregado. unload Remove todos mdulos carregados.

7.3.3.3. Exemplos de carregador Esto aqui alguns exemplos prticos do uso do carregador:

Para simplesmente carregar seu kernel usual, mas em modo mono-usurio:


boot -s

Para descarregar seu kernel e mdulos usuais, e ento carregar apenas seu kernel velho (ou outro):
unload load kernel.old

Voc pode usar o kernel.GENERIC para referir ao kernel genrico que vem no disco de instalao, ou kernel.old para consultar seu kernel previamente instalado (quando voc tiver atualizado ou congurado seu kernel, por exemplo).
Nota: Use o seguinte para carregar seus mdulos usuais com outro kernel:
unload set kernel="kernel.old " boot-conf

190

Captulo 7. O processo de inicializao do FreeBSD

Para carregar um script de congurao do kernel (um script automatizado qual faa as coisas que voc faria normalmente dentro do kernel na congurao do boot-time):
load -t userconfig_script /boot/kernel.conf

7.4. Interao do Kernel durante o boot


Uma vez que o kernel carregado pelo carregador loader (como usado) ou boot2 (passando o carregador), isto examina suas opo de inicializao, se existir, e ajusta seu comportamento como necessrio.

7.4.1. Opes de inicializao no Kernel


Esto aqui as opo de boot mais comuns:
-a

durante a inicializao o kernel, pede para o dispositivo para montar um arquivo de sistema do root.
-C

boot do CDROM.
-c

rode UserCong, o congurador do boot-time kernel


-s

boot em modo mono-usurio


-v

ser mais detalhado durante a inicializao do kernel


Nota: Existem outras opoes de boot, leia boot(8) para maiores informaes sobre elas.

7.5. Dicas de congurao de dispositivos


Contribudo por Tom Rhodes.
Nota: Esta uma caracterstica do FreeBSD 5.0 e posteriores que no existe em verses anteriores.

191

Captulo 7. O processo de inicializao do FreeBSD Durante a inicializao do sistema, o boot loader(8) ir ler o arquivo device.hints(5). Este arquivo armazena informaes de inicializao do kernel conhecidas como variveis, sobretudo referenciando as vezes device hints. Estas device hints so usadas pelos drivers do dispositivo para congurarao do dispositivo. Dicas de congurao de dispositivos podem tambm ser especicados no estgio 3 no prompt de inicializao. Variveis podem ser adicionadas usando comando set, removidas com o comando unset, e visualizadas com o comando show. Variveis setadas dentro do arquivo /boot/device.hints podem ser canceladas aqui tambm. Device hints incorporadas na inicializao no so permanentes e sero perdidas na prxima inicializao. Uma vez que o sistema carregado, o comando kenv(1) pode ser usado para obter todas as variveis. A sintaxe para o arquivo /boot/device.hints uma varivel por linha, usando a mistura padro # como marcadores do comentrio. Linhas so construidas como segue:
hint.driver.unit.keyword=" value"

A sintaxe para o estgio 3 do boot loader :


set hint.driver.unit.keyword=value

driver o nome do dispositivo, unit o nmero do driver do dispositivo, e keyword a sugesto keyword. O keyword pode consistir nas seguintes opes:
at:

especica o dispositivo para o qual anexado. especica o endereo de incio do I/O para ser usado.

port: irq: drq:

especica o nmero da interrupo requerida para ser usado. especica o nmero do canal DMA. especica o endereo fsico da memria ocupado pelo dispositivo. seta variaes de bits de opes para o dispositivos. setada para 1 o dispositivo desabilitado.

maddr: flags:

disabled: Se

Os drivers do dispositivo podem ou no aceitar (se requerido) mais hints no listadas aqui, recomendado que veja a pgina do manual deles. Para maiores informaes, consulte as pginas de manuais device.hints(5), kenv(1), loader.conf(5), e loader(8).

7.6. Init: Inicializao do controle de processos


Uma vez que o kernel termina a inicializao, isto passa para controle dos processos do usurio init(8), que localizado no /sbin/init, ou o caminho do programa especicado em init_path varivel dentro da inicializao.

7.6.1. Sequncia automtica da Reinicializao


A sequncia da reinicializao automtica certica-se que o sistema de arquivos disponveis sobre o sistema so consistentes. Se eles no so, fsck(8) e no podem reparar as inconsistncias, init(8) deixe o sistema em modo mono-usurio para que o administrador do sistema tome cuidado dos problemas diretamente.

192

Captulo 7. O processo de inicializao do FreeBSD

7.6.2. Modo Mono-usurio


Este modo pode ser acessado automaticamente na sequncia da reinicializao , ou pelo usurio na inicializao com a opo -s ou setando a varivel boot_single dentro do loader. Isto pode ser utilizado chamando shutdown(8) sem utilizar as opes de rebootar (-r) ou parar (-h), do modo multi-usurio . Se o console do sistema for setada para insecure em /etc/ttys, ento o sistema alerta para a senha de root antes de inicializar em modo mono-usurio. Exemplo 7-3. Um Console Insecure em /etc/ttys
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off insecure

Nota: Um console insecure signica que voc considera sua segurana fsica para a console ser insecure, e quer certicar que somente lguem que saiba a senha de root pode usar o modo mono-usurio, e isto no signica que voc pode rodar sua console insecurely. Assim, se voc quiser segurana, escolha insecure, no secure.

7.6.3. Modo Multi-Usurio


Se init(8) encontra seus arquivos de sistema em ordem, ou uma vez que o usurio terminou em modo mono-usurio, o sistema entra em modo multi-usurio, onde comea a congurao dos recursos do sistema. 7.6.3.1. Congurao de recursos (rc) O sistema de congurao de recurso l as conguraes padres do /etc/defaults/rc.conf, e o sistema especica detalhes do /etc/rc.conf, e ento procede a montagem do sistema de arquivos mencionados em /etc/fstab, iniciando os servios de rede, inicializando vrios daemons do sistema, e nalmente executando os scripts de inicializao de pacotes instalados localmente. A pgina do manual rc(8) uma boa referncia para a congurao de recursos do sistema, como so examinados os scripts.

7.7. Sequncia do Shutdown


Sob controle o shutdown, via shutdown(8), init(8) tentar rodar o script /etc/rc.shutdown, e ento proceder o envio de todos os processos de TERM, e subsequente do KILL tambm alguns que no terminarem oportunamente. Para desligar uma mquina FreeBSD sobre arquiteturas de sistemas que suportam gerenciamento de energia, simplesmente use o comando shutdown -p now para desligar imediatamente. Para apenas reinicializar o FreeBSD, use shutdown -r now. Voc precisa ser root ou um membro do grupo operator para rodar shutdown(8). Os

193

Captulo 7. O processo de inicializao do FreeBSD comandos halt(8) e reboot(8) podem at ser usados, consultando por favor seus manuais de referncia e shutdown(8) para maiores informaes.
Nota: Gerenciamento de energia requer suporte acpi(4) no kernel ou carregar algum mdulo para FreeBSD 5.X e suporte apm(4) para FreeBSD 4.X.

194

Captulo 8. Usurios e Administrao Bsica de contas


Contrio de Neil Blakey-Milner.

8.1. Sinpse
O FreeBSD permite que vrias pessoas usem o computador ao mesmo tempo. Obviamente, somente um daqueles usurios pode sentar-se na frente da tela e do teclado ao mesmo tempo. 1, mas qualquer nmero de usurios pode logar-se atravz de uma rede. Para usar o sistema, cada usurio deve ter uma conta. Depois de ler este captulo, voc ir saber:

A diferena entre vrias contas de usurios no sistema FreeBSD. Como adicionar uma conta de usurio. Como remover uma conta de usurio. Como alterar os detalhes de uma conta de usurio, como o nome completo do usurio, ou a shell preferida. Como ajustar os limites bsicos de cada conta, para controlar os recursos tais como memria e tempo de uso da CPU, que usurios e grupos de podem acessar. Como usar grupos para facilitar a administrao de contas.

Antes de ler este captulo, voc deve:

Entender o bsico de UNIX, e FreeBSD (Captulo 3).

8.2. Introduo
Todo o acesso ao sistema feito atravz das contas, e todos os processos so executados por usurios, dessa forma, administrao de contas e usurios so integralmente importantes em sistemas FreeBSD. Todas as contas em um sistema FreeBSD tem determinadas informaes associada mesma, de forma identica-la. Nome do usurio O nome do usurio ser digitado no terminal de login:. Os nomes de usurios devem ser unicos em um computador, no podendo haver dois usurios com o mesmo nome. H uma srie de regras para criar nomes vlidos de usurios, documentadas na passwd(5); voc normalmente poderiam ser utilizados nomes de usurios com oito caracteres todos minsculos. Senha Cada conta tem uma senha associada com ela. A Senha pode ser vazia, neste caso nenhuma senha ser solicitada para acessar o sistema. Isso normalmente uma idia muito ruim; todas as contas devem ter uma senha.

195

Captulo 8. Usurios e Administrao Bsica de contas ID do Usurio (UID) O UID um nmero que varia de 0 65536 usado para identicar de forma nica os usurios no sistema. Internamento, o FreeBSD usa o UID para identicar usurios qualquer comando do FreeBSD ser liberado para um usurio especco convertendo seu UID depois de utilizar o comando. Isso signica que voc pode ter contas com diferentes nomes de usurios mas com o mesmo UID. Ambos, para o FreeBSD so um s usurio. improvvel que voc tenha necessidade de fazer isso um dia. ID de Grupo (GID) O GID um nmero que varia de 0 65536, usado para identicar de forma nica o grupo primrio ao qual o usurio pertence. Os grupos so um mecanismo para controlar o acesso aos recursos baseados em GID ao invz de UID. Isto pode reduzir signicativamente o tamanho de arquivos de conguraes. Um usurio pode tambm pertencer a mais de um grupo. Classe de Login Classe de login so uma exteno para o mecanismo de grupos que fornecem exibilidade adicional para adaptar o sistema diferentes usurios. Tempo de alterao da senha Por padro o FreeBSD no fora os usurios a trocar as suas senhas periodicamente. Voc pode fazer isto para cada usurio, forando alguns ou todos usurios terem que mudar suas senhas aps um determinado perodo de tempo. Tempo de expirao da conta Por padro o FreeBSD no expira as contas. Se voc estiver criando uma conta que voc sabe que tem um tempo limitado de uso, por exemplo, em uma escola onde voc tem contas para os estudantes, voc pode especicar quando a conta deve expirar. Aps a expirao deste tempo o cliente no poder logar-se no sistema, embora diretrios e arquivos do usurio em questo, permanecero intocados. Nome completo dos usurios O nome nico do usurio identica a conta do mesmo, internamente, para o FreeBSD, mas no reete necessariamente o nome real do usurio. Esta informao pode, opcionalmente, ser associada com a conta. Diretrio Home O Diretrio Home o caminho completo para o diretrio do sistema em que o usurio logar. Uma conveno comum indica que todos diretrios home dos usurios devam car sob /home/usurio. O usurio armazenaria seus arquivos pessoais em seu diretrio home, e todos os diretrios que puder criar dentro deste. Shell do usurio A shell fornece o ambiente padro para o usurio interagir com o sistema. Existem muitos tipos distintos de shell, e os usurios experientes tero suas prprias preferncias, que podem ser reetidas junto aos ajustes de cada conta. Existem trs tipos de contas: o super usurio, usurios do sistema, e usurios. A conta super usurio, normalmente chamada de root, usada para administrar o sistema sem limitao de privilgios. Os usurios do sistema executam servios. Finalmente, contas de usurios so usadas por pessoas, que podero logar-se ao sistema, ler e-mail, e assim por diante.

196

Captulo 8. Usurios e Administrao Bsica de contas

8.3. O super usurio


A conta super usurio, normalmente chamada root, usada para congurar e facilitar a administrao do sistema, e no deve ser usada para tarefas cotidianas como envio e recebimento de e-mail, explorao geral do sistema, ou para programao. Isto porque o super usurio, ao contrrio dos usurios normais, podem operar sem limites, e o emprego errado dos privilgios de super usurio pode resultar em um espetacular desastre. As contas de usurios comuns so incapazes de destruir o sistema atravz de um erro, de forma que geralmente melhor usar um usurio normal quando possvel, a menos que voc necessite privilgios a mais. Voc deve sempre dobrar e triplicar a ateno com os comandos que voc emite com o super usurio, desde que um espao extra ou um caracter faltante podem signicar a perda irreparvel dos dados. Assim, a primeira coisa que voc deve fazer aps ter lido este captulo criar um usurio sem privilgios para voc mesmo para uso geral, se ainda no o tiver. Isto aplica-se igualmente se voc est utilizando o sistema em ambiente multi-usurios ou mono-usurio. Mais tarde neste captulo, ns discutiremos como criar usurios adicionais, e como alternar entre o usurio e o super usurio.

8.4. Contas do sistema


Contas de usurios do sistema so utilizadas para executar servios como DNS, correio, servidores web, e assim por diante. A razo para isso segurana, se todos os servios rodassem com os privilgios de super usurios, poderiam agir sem restries. Exemplos de usurios de sistema so daemon, operator, bind (para o Servio de Nomes de Domnio), e news. Frequentemente os administradores de sistemas criam a conta httpd para rodar um servidor de web.
nobody o usurio genrico sem privilgios do sistema de usurios. Entretanto, importante manter na sua mente que quanto mais servios usarem nobody, mais arquivos e processos iro associar-se a ele, sendo assim, este usurio

se tornar cada vez mais provilegiado, se muitos servios utilizarem este usurio como padro.

8.5. Contas de usurios


As contas de usurios so a primeira etapa para os usrios, pessoas reais, acessarem o sistema. Estas contas isolam o usurio e seu ambiente, impedindo que os mesmos daniquem o sistema ou prejudiquem outros usurios, e permite que customizem seu ambiente sem afetar outros. Cada pessoa que acessa seu sistema deve ter uma conta de usurio. Isto permite que voc procure quem est fazendo o que, e previna que pessoas alterem conguraes de outros usurios, leiam e-mails alheios, e assim por diante. Cada usurio pode ajustar seu prprio ambiente para acomodar-se ao sistema, para utiliza rum interpretador de comandos alternativo, editor padro distinto, atalhos de teclados e at mesmo utilizar outra lngua alm da padro.

8.6. Modicando contas


Existe uma variedade de comandos diferentes disponveis no ambiente UNIX para manipular contas de usurios. Os comandos mais comuns esto sumariados abaixo, seguidos por exemplos mais detalhados de seu uso.

197

Captulo 8. Usurios e Administrao Bsica de contas Comando adduser(8) rmuser(8) chpass(1) passwd(1) pw(8) Sumrio O comando recomendado para adicionar novos usurios. O comando recomendado para excluir usurios. Uma ferramenta exvel para alterar informaes de usurios. Um simples comando para alterar a senha do usurio Uma podereosa e exvel ferramenta para alterar todos os aspectos das contas de usurios.

8.6.1. adduser
adduser(8) um programa simples para adicionar novos usurios. Cria entradas nos arquivos passwd e group. Criar tambm um diretrio home para o usurio novo, copia os arquivos de congurao padro (dotles) de /usr/share/skel, e pode opcionalmente enviar ao usurio novo uma mensagem de boas vindas. No FreeBSD 5.0, o adduser(8) foi rescrito de rotinas em linguagem Perl para um shell script que trabalha em conjunto com o pw(8), assim seu uso ligeiramente diferente no FreeBSD 4.X e no FreeBSD 5.X. Para criar a congurao inicial, use adduser -s -config_create. 2 Em seguida, conguramos os padres do adduser(8), e criamos a nossa primeira conta de usurio, uma vez que utilizar a conta root para uso normal um pssimo hbito. Exemplo 8-1. Congurando adduser e adicionando um usurio no FreeBSD 4.X
# adduser -v

Use option -silent if you dont want to see all warnings and questions. Check /etc/shells Check /etc/master.passwd Check /etc/group Enter your default shell: csh date no sh tcsh zsh [sh]: zsh Your default shell is: zsh -> /usr/local/bin/zsh Enter your default HOME partition: [/home]: Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: Send message from file: /etc/adduser.message no [/etc/adduser.message]: no Do not send message Use passwords (y/n) [y]: y Write your changes to /etc/adduser.conf? (y/n) [n]: y Ok, lets go. Dont worry about mistakes. I will give you the chance later to correct any input. Enter username [a-z0-9_-]: jua Enter full name []: J. Usuario Aleatorio Enter shell csh date no sh tcsh zsh [zsh]: Enter home directory (full path) [/home/jua]: Uid [1001]: Enter login class: default []: Login group jua [jua]: Login group is jua. Invite jua into other groups: guest no

198

Captulo 8. Usurios e Administrao Bsica de contas


[no]: wheel Enter password []: Enter password again []: Name: jua Password: **** Fullname: J. Usuario Aleatorio Uid: 1001 Gid: 1001 (jua) Class: Groups: jua wheel HOME: /home/jua Shell: /usr/local/bin/zsh OK? (y/n) [y]: y Added user jua Copy files from /usr/share/skel to /home/ua Add another user? (y/n) [y]: n Goodbye!
#

Em resumo, ns mudamos a shell padro para zsh (uma shell adicional encontrada na coleo de ports), e desligamos o envio de um e-mail de boas vindas para o usurio adicionado. Ns salvamos as conguraes, criamos uma conta com o nome de jua, e certicamos que jua faz parte do grupo wheel (de modo que possa assumir os privilgios do usurio root com o comando su(1).)
Nota: A senha que voc digita no aparece, nem so mostrados asteriscos. Certique-se que voc no digitou dias vezes a senha errneamente.

Nota: Use o adduser(8) sem argumentos de agora em diante, e voc no ter que redenir as opes padro. Se o programa solicitar que os padres sejam modicados, saia dele, e tente a opo -s.

Exemplo 8-2. Adicionando um usurio em FreeBSD 5.X


# adduser

Username: jua Full name: J. Usuario Aleatorio Uid (Leave empty for default): Login group [jua]: Login group is jua. Invite jua into other groups? []: wheel Login class [default]: Shell (sh csh tcsh zsh nologin) [sh]: zsh Home directory [/home/jua]: Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]:

199

Captulo 8. Usurios e Administrao Bsica de contas


Username : jua Password : **** Full Name : J. Usuario Aleatorio Uid : 1001 Class : Groups : jia wheel Home : /home/jua Shell : /usr/local/bin/zsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (jua) to the user database. Add another user? (yes/no): no Goodbye!
#

8.6.2. rmuser
Voc pode utilizar o rmuser(8) para remover completamente um usurio do sistema. rmuser(8) executa as seguintes etapas: 1. 2. 3. 4. 5. 6. 7. 8. Remove as entradas crontab(1) do usurio (se houver alguma). Remove todos os trabalhos pendentes no at(1), que pertencem ao usurio. Mata todos os processos controlados pelo usurio. Remove o usurio do arquivo de senha local do sistema Remove o diretrio home do usurio (se este for de autoridade do usurio) Remove o arquivo de armazenamento de mensagens de correio eletrnico que pertence ao usurio, em /var/mail. Remove todos os arquivos de posse do usurio nas reas temporrias de gravao de arquivos, como /tmp. Finalmente, remove o nome do usurio de todos os grupos que ele pertence, em /etc/group.
Nota: Se um grupo se tornar vazio e o nome do grupo for o mesmo que o nome do usurio, o grupo ser removido; isto inclui os grupos originais que opcionalmente criado para cada usurio pelo adduser(8).

rmuser(8) no pode ser usado para remover contas de super usurios, pois isso aponta indcios de modicaes prejudiciais no sistema. Por padro, a aplicao funciona em modo interativo, e tenta conrmar que voc est certo do que est fazendo. Exemplo 8-3. rmuser Remoo interativa de contas
# rmuser jua

Matching password entry: jua:*:1001:1001::0:0:J. Usuario Aleatorio:/home/jru:/usr/local/bin/zsh Is this the entry you wish to remove? y

200

Captulo 8. Usurios e Administrao Bsica de contas


Remove users home directory (/home/jua)? y Updating password file, updating databases, done. Updating group file: trusted (removing group jua -- personal group is empty) done. Removing users incoming mail file /var/mail/jua: done. Removing files belonging to jua from /tmp: done. Removing files belonging to jua from /var/tmp: done. Removing files belonging to jua from /var/tmp/vi.recover: done.
#

8.6.3. chpass
O chpass(1) modica informaes da base de dados do usurio tais como senhas, interpretadores de comandos e informaes pessoais. Apenas administradores do sistema, como o super usurio, podem alterar informaes e senhas de outros usurios com chpass(1). Quando passado sem opes, com exceo de um usurio opcional, chpass(1) abrir um editor contendo as informaes do usurio. Quando o usurio sair do editor, a base de dados do usurio ser atualizada com as novas informaes.
Nota: No FreeBSD 5.X, voc ser questionado sobre a senha senha depois que sair do editor, caso voc no seja um super usurio.

Exemplo 8-4. Usando o chpass de forma interativa pelo super usurio


#Changing user database information for jua. Login: jua Password: * Uid [#]: 1001 Gid [# or name]: 1001 Change [month day year]: Expire [month day year]: Class: Home directory: /home/jua Shell: /usr/local/bin/zsh Full Name: J. Usuario Aleatorio Office Location: Office Phone: Home Phone: Other information:

O usurio normal pode alterar somente um subconjunto pequeno destas informaes, e somente para ele mesmo. Exemplo 8-5. Usando o chpass de forma interativa por um usurio normal
#Changing user database information for jua. Shell: /usr/local/bin/zsh Full Name: J. Usuario Aleatorio

201

Captulo 8. Usurios e Administrao Bsica de contas


Office Location: Office Phone: Home Phone: Other information:

Nota: chfn(1) e chsh(1) so sinnimos de chpass(1). So links simblicos para esta aplicao. Da mesma forma, ypchpass(1), ypchfn(1), e ypchsh(1) tambm o so. O suporte NIS automtico, de forma que especicar yp antes do comando torna-se dispensvel. Se isso parece confuso para voc, no se preocupe pois o assunto NIS ser abordado em Captulo 19.

8.6.4. passwd
O comando passwd(1) a maneira usual de modicar sua prpria senha, ou a senha de um outro usurio, caso voc tenha privilgios de administrador.
Nota: Os usurios comuns devem digitar sua senha original, antes de denir a nova senha, para impedir que uma pessoa desautorizada modique-a, quando o verdadeiro dono estiver ausente mas manteve o console aberto.

Exemplo 8-6. Alterando sua senha


% passwd

Changing local password for jua. Old password: New password: Retype new password: passwd: updating the database... passwd: done

Exemplo 8-7. Alterando a senha de outro usurio, tendo os privilgios do super usurio
# passwd jua

Changing local password for jua. New password: Retype new password: passwd: updating the database... passwd: done

Nota: O chpass(1), bem como yppasswd(1), tambm um link simblico para passwd(1), de forma que o NIS possa trabalhar com um ou outro comando.

202

Captulo 8. Usurios e Administrao Bsica de contas

8.6.5. pw
pw(8) um comando utilitrio cuja funo criar, remover, alterar e apresentar usurios e grupos. Ele funciona como um front end para os arquivos de usurios e grupos do sistema. O pw(8) tem um conjunto muito completo de opes e comandos que o torna apropriado para o uso em scripts shell, mas os usurios novos podem acha-lo mais complexo do que os outros comandos apresentados aqui.

8.7. Limitando usurios


A habilidade de limitar seus usurios no sistema pode fatalmente j ter vindo em sua mente. FreeBSD fornece diversas maneiras de um administrador limitar a quantidade de recursos do sistema que um indivduo pode usar. Estes limites so divididos em duas sees: quotas do disco, e outros limites de recursos. As quotas de disco limitam o uso do disco aos usurios, e fornecem uma maneira de vericar rapidamente esse uso sem calcul-lo todas as vezes. As quotas so discutidas em Seo 12.12. Os outros limites de recurso incluem maneiras de limitar a quantidade de uso do CPU, memria e outros recursos que um usurio pode consumir. Estes limites so denidos usando classes de sesso e discutidos aqui. As classes de login so denidas em /etc/login.conf. A semntica precisa est alm do escopo abordado nesta seo, mas descrita em detalhe na pgina de manual do login.conf(5). suciente dizer que cada usurio relacionado a uma classe de contas, a partir do incio de sua sesso ( default, por padro), e que cada classe dispe de um conjunto de recursos que so associados a ela. Uma denio de recurso por seo composta de um par de opes, no formato nome =valor, onde nome um valor previamente conhecido e valor um conjunto de caracteres arbitrrio processada de acordo com o nome. O ajuste das classe de login bem como cada um dos recursos que pode ser controlados, so detalhadamente descritos na pgina de manual do login.conf(5) Os limites de recurso so distintos de cada denio de login de uma sesso tradicional em dois pontos. Primeiro, para cada limite existe o limite suave (o atual) e o rduo. O limite suave pode ser denido pelo usurio ou pela aplicao, mas nunca poder ser maior que o limite rduo. O segundo, pode ser revogado pelo usurio e ter seu valor diminudo, mas nunca pode ser aumentado. Segundo ponto, a maioria destes limites contada por processo, e no pelo usurio como um todo. Note que, apesar destas diferenas entre a estrutura de recursos e limitaes por sesso, este exemplo limitado no ilustra realmente o uso efetivo das caractersitcas de limitao por classe de login. Dessa forma, seguem abaixo os limites mais comuns, normalmente utilizados em classes de utilizao de recursos (as outras opes podem ser encontradas na pgina de manual do login.conf(5)).
coredumpsize

Trata-se do limite de tamanho de um arquivo core gerado por um programa, por razes bvias, subordinado a outros limites no uso do disco (ex: filesize, ou quota de disco). No obstante, usado frequentemente como um mtodo menos severo de controlar o consumo do espao de disco: uma vez que usurios no geram os arquivos de core conta prpria, e logo, tambm no os deletam (por no saber que existem) congurar esta opo pode evitar que quem sem espao em disco, devido falha de alguma aplicao com grande demanda por memria por exemplo (ex: emacs).
cputime

203

Captulo 8. Usurios e Administrao Bsica de contas Indica a quantidade mxima de tempo do processador central que o processo de um usurio pode consumir. Os processos que desrespeitarem sero mortos pelo kernel.
Nota: Este um limite de tempo no processador central, no porcentagem do processador central como indicado do top(1) e ps(1). Limitao por porcentagem, no momento que este documento foi escrito, no possvel, e seria invivel limitar o fato de que um compilador pode facilmente consumir quase 100% de um processador por algum tempo.

filesize

o tamanho mximo de um arquivo que um usurio pode possuir. Ao contrrio da quota de disco, este limite imposto a arquivos individuais, e no a todo o conjunto de arquivos que o usurio possui.
maxproc

Este o nmero mximo de processos que um usurio executar simultneamente. Isto inclui processos e primeiro plano e segundo plano. Por razes bvias, este valor no pode ser maior do que o limite do sistema, especicado pela varivel sysctl(8) kern.maxproc. Note tambm que congurar este tem para um valor pequeno vai prejudicar a produtividade do usurio: frequentemente til logar-se em mltiplos terminais e executar processos. Algumas tarefas, tais como compilar um programa grande, tambm geram multiplos processos (ex: make(1), cc(1) e outros intermedirios).
memorylocked

Trata-se da quantidade mxima de memria que um processo pode solicitar que seja reservado - veja mlock(2). Alguns programas crticos do sistema, tais como amd(8), reservam esta memria em espao de troca (SWAP) no contribuindo com a degradao do sistema em tempo real.
memoryuse

Trata-se da quantidade mxima de memria que um processo pode consumir durante todo seu tempo de execusso. Inclui o uso da memria principal e a swap. No trata-se de controle total de restrio de consumo de memria, mas um bom comeo
openfiles

Trata-se da quantidade mxima de arquivos que um processo pode ter aberto. No FreeBSD, arquivos so usados tambm para representar sockets e canais IPC; portanto tenha cuidado para no ajustar este valor demasiadamente baixo. O limite aqui denido pela sysctl(8) kern.maxfiles.
sbsize

204

Captulo 8. Usurios e Administrao Bsica de contas Esta a quantidade mxima de memria a ser utilizada em rede, somatizados em quantos mbufs um usurio pode consumir. Foi originalmente criado em resposta a um velho ataque DoS que criava muitos sockets, mas pode usualmente ser usado para limitar a comunicao da rede.
stacksize

Trata-se do tamanho mximo que uma pilha de processos pode vir a ter. Sozinho, este valor no suciente para limitar a quantidade de memria que um programa pode usar, consequentemente, deve ser usado em conjunto com outros limites. Existem outros pontos que devem ser lembrados ao ajustar limites de recursos. A seguir sero apresentados alguns pontos gerais, sugestes, e comentrios variados.

Os processos que so iniciados no sistema pelo /etc/rc so atribudos classe de login daemon. Embora o /etc/login.conf que acompanha o sistema seja uma fonte boa de valores razoveis para a maioria dos limites, apenas voc, administrador, pode saber o que apropriado para o seu sistema. Ajustar um limite demasiadamente elevado pode abrir seu sistema at o abuso, enquanto o ajustar demasiadamente baixo pode colocar a produtividade em tenso. Os usurios do sistema de janela X (X11) devem provavelmente ter direito de utilizarem mais recursos que outros usurios. O X11 por si s usa poucos recursos, mas incentiva os usurios rodarem programas simultneos. Recorde que muitos limites se aplicam aos processos individuais, no usurio como um todo. Por exemplo, ajustar openfiles para 50 signica que cada processo que o usurio rodar, pode abrir at 50 arquivos. Assim, a quantidade bruta de arquivos que um usurio pode abrir o valor openfiles multiplicado pelo maxproc. Isto tambm se aplica ao consumo de memria.

Para mais informaes sobre limites de recursos e classes de login em geral, consulte por favor as pginas de manuais relevantes: cap_mkdb(1), getrlimit(2), login.conf(5).

8.8. Personalizando usurios


A localizao um ambiente ajustado pelo administrador ou pelo usurio do sistema para oferecer lnguas diferentes, conjunto de caracteres, data e padres de tempo diferentes, e assim por diante. Isto discutido no captulo sobre localizao.

8.9. Grupos
Um grupo simplesmente uma lista de usurios. Os grupos so identicados por nome e GID (ID de Grupo). No FreeBSD (e na maioria de outros sistemas UNIX), os dois fatores que o kernel usa para decidir se um processo est tem permisso para algo seu ID de usurio e a lista dos grupos que ele pertence. Diferente de um ID de usurio, um processo tem uma lista dos grupos associados ele. Voc eventualmente pode precisar consultar o ID de grupo de um usurio ou de um processo; na maioria das vezes seus direitos implicam apenas no primeiro grupo da lista. O nome do grupo para ser identicado no mapa de ID de grupos est em /etc/group. Trata-se de um arquivo de texto plano com quatro campos delimitadores. O primeiro campo o nome do grupo, o segundo a senha encriptada, o terceiro o ID de grupo, e o quarto a lista de membros daquele grupo, delimitado por vrgula. Pode seguramente

205

Captulo 8. Usurios e Administrao Bsica de contas ser editado na mo (supondo naturalmente, que voc no v cometer erros de sintaxe!). Para uma descrio mais completa da sintaxe, veja a pgina de manual group(5). Se voc no quiser editar manualmente o /etc/group, pode utilizar o comando pw(8) para adicionar e editar grupos. Por exemplo, para adicionar um grupo chamado timedois e em seguida conrmar que ele foi criado, voc pode usar: Exemplo 8-8. Adicionando um grupo por meio do pw(8)
# pw groupadd timedois # pw groupshow timedois

timedois:*:1100:

O nmero 1100 acima identica o ID do grupo timedois. Agora, timedois no tem nenhum membro, e portanto intil. Vamos modicar aquele usurio jua e coloca-lo no grupo timedois. Exemplo 8-9. Adicionando algum a um determinado grupo por meio do pw(8)
# pw groupmod timedois -M jua # pw groupshow timedois

timedois:*:1100:jua

A opo -M deve ser uma lista de usurios que sero membros do grupo em questo, delimitados por vrgula. Com base nas outras sees deste captulo, sabemos que o arquivo de senha tambm contm o grupo de cada usurio. Se o usurio zer parte apenas de um grupo, o valor identicado no campo em questo valido. Do contrrio o sistema inclui automaticamente o usurio lista de membro de cada grupo, e o grupo primrio no ser apresentado com o argumento groupshow do pw(8), ou qualquer ferramenta similar. Ou seja pw(8) manipula somente o arquivo /etc/group; nunca tentar ler tambm dados do /etc/passwd. Exemplo 8-10. Usando o id(1) para determinar grupos associados aos usurios
% id jua

uid=1001(jua) gid=1001(jua) groups=1001(jua), 1100(timedois)

Como pode-se notar, jua membro dos grupos jua e timedois. Para maiores informaes sobre o pw(8), consulte sua pgina de manual e para maiores informaes sobre o formato do /etc/group, consulte a pgina de manual group(5).

Notas
1. Bem, a no ser que voc conectar mltiplos terminais ao sistema, mas iremos abordar isso no Captulo 17. 2. A opo -s faz o adduser(8) por padro car em modo silencioso. Usaremos -v mais tarde quando quizermos modicar estes padres.

206

Captulo 9. Congurando o kernel do FreeBSD


Atualizado e reestruturado por Jim Mock. Contribuio original de Jake Hamby.

9.1. Sinpse
O kernel o corao do sistema FreeBSD. Ele responsvel por gerenciar a memria, reforar controles de segurana, pela rede, pelo accesso a disco, e muito mais. medida que mais e mais o FreeBSD torna-se dinmicamente congurvel, ocasionalmente faz-se necessrio congurar e recompilar seu kernel. Depois de ler este captulo, voc saber:

Porque voc poder precisar compilar um kernel customizado. Como escrever um arquivo de congurao do kernel, ou alterar um arquivo de congurao existente. Como usar o arquivo de congurao do kernel para criar e compilar um novo kernel. Como instalar o novo kernel. Como criar quaisquer entradas no /dev caso isso venha a ser necessrio. Como resolver problemas se algo der errado.

9.2. Porque compilar um kernel customizado?


Tradicionalmente, o FreeBSD teve o que foi chamado de kernel monoltico. Isto signica que o kernel era um grande programa, contendo uma lista xa de dispositivos suportados, e se voc quisesse alterar seu comportamento ento seria necessrio compilar um novo kernel, e ento reiniciar seu computador com ele. Hoje, o FreeBSD est movendo-se rapidamente para um modelo onde muitas das funcionalidades do kernel esto contidas em mdulos que so carregados e descarregados dinmicamente conforme eles so necessrios. Isto permite que o kernel imediatamente se adapte a um novo hardware tornando-o disponvel (tais como cartes PCMCIA para laptop), ou a novas funcionalidades serem inseridas no kernel que no eram necessrias quando o ele foi originalmente compilado. Isso conhecido como kernel modular. Coloquialmente eles so chamados KLDs. Apesar disto, ainda necessrio carregar algumas conguraes estticas no kernel. Em alguns casos isto est assim porque estas funcionalidades esto to amarradas ao kernel que elas no podem ser carregadas dinmicamente. Em outros casos, isto pode simplesmente estar assim porque ningum ainda conseguiu tempo para escrever um mdulo de carga dinmico do kernel para cada uma delas. Compilar um kernel personalizado um dos rituais mais importantes que cada usurio de UNIX deve enfrentar. Este processo, embora consuma tempo, trar muitos benefcios para o seu sistema FreeBSD. Diferentemente do kernel GENERIC, o qual necessita de suporte a uma abrangente lista de equipamentos, um kernel personalizado somente conter suporte para o hardware do seu PC. Isto tem inmeros benefcios, tais como:

Tempo de inicializao mais rpido. Visto que o kernel apenas testar o equipamento que voc tiver em seu sistema, o tempo de testes ao inicializar a mquina diminuir drasticamente.

207

Captulo 9. Congurando o kernel do FreeBSD

Menor uso da memria. Um kernel personalizado frequentemente utiliza menos memria que o kernel GENERIC, o que importante porque o kernel deve sempre estar presente na memria fsica. Por esta razo, um kernel personalizado especialmente til em um sistema com pouca quantidade de RAM. Suporte adicional de hardware. Um kernel personalizado permite a voc adicionar suporte a dispositivos, tais como placas de som, que no esto presentes no kernel GENERIC.

9.3. Compilando e instalando um kernel customizado


Primeiramente, deixe-nos apresentar rapidamente o diretrio de compilao do kernel. Todos os diretrios mencionados sero relativos ao diretrio principal, /usr/src/sys, que tambm poder ser acessado diretamente atravs de /sys. H um nmero de subdiretrios que representam partes diferentes do kernel, mas os mais importantes, para nossos objetivos, so arch/conf, onde voc editar sua congurao de kernel personalizado, e compile, que a rea de preparao onde seu kernel ir ser compilado. arch representa uma das arquiteturas suportadas pelo FreeBSD como i386, alpha, ou pc98 (uma ramo de desenvolvimento alternativo de hardware do PC, popular no Japo). Tudo que est dentro de um diretrio de uma arquitetura especca diz respeito somente a esta arquitetura; o resto do cdigo do FreeBSD comum para todas as plataformas s quais ele poder ser potencialmente convertido. Observe a organizao lgica da estrutura de diretrio, com cada dispositivo suportado, sistema de arquivos, e opes em seu prprio subdiretrio. As verses do FreeBSD 5.X e superiores tem suporte para sparc64, e algumas outras arquiteturas em desenvolvimento.
Nota: Se no existir o diretrio /usr/src/sys no seu sistema, ento o fonte do kernel no foi instalado. A maneira mais fcil para fazer isso rodando /stand/sysinstall como root, escolher Congure, Distributions, src, e ento sys. Se voc tiver alguma averso ao sysinstall e possuir acesso a um FreeBSD CDROM ociais, ento voc poder tambm instalar o fonte atravs da linha de comando:
# # # # mount /cdrom mkdir -p /usr/src/sys ln -s /usr/src/sys /sys cat /cdrom/src/ssys.[a-d]* | tar -xzvf -

Depois, v at o diretrio arch/conf e copie o arquivo de congurao GENERIC com o nome que voc quiser para o seu kernel. Por exemplo:
# cd /usr/src/sys/i386/conf # cp GENERIC MYKERNEL

Tradicionalmente, este nome tem todas letras em maisculas, se voc mantm mltiplas mquinas FreeBSD com diferentes hardware, uma boa idia nome-lo prexando o hostname da sua mquina. Para a nalidade deste exemplo, ser usado o nome MYKERNEL.
Dica: Guardar os arquivos de congurao do seu kernel diretamente abaixo do /usr/src pode ser uma m idia. Se voc tiver problemas poder ser tentado a apenas apagar o /usr/src e iniciar tudo novamente. Cinco segundos depois disto feito, voc poder perceber que removeu o seu arquivo de congurao de kernel personalizado. No edite diretamente o arquivo GENERIC, pois ele pode ser sobrescrito da prxima vez que voc for atualizar a rvore do cdigo fonte; suas modicaes do kernel sero perdidas. Voc pode querer manter em outro local seu arquivo de congurao do kernel, e ento criar um link simblico deste arquivo para o diretrio i386.

208

Captulo 9. Congurando o kernel do FreeBSD


Por exemplo:
# # # # cd /usr/src/sys/i386/conf mkdir /root/kernels cp GENERIC /root/kernels/MYKERNEL ln -s /root/kernels/MYKERNEL

Nota: Voc dever executar todos estes comandos sob a conta do root seno ocorrero erros de permisso negada.

Agora, edite o MYKERNEL com seu editor de texto favorito. Se voc for comear a congurar, provavelmente somente o vi esteja disponvel, o qual muito complexo para explicar aqui, mas coberto em muitos livros indicados na bibliograa. Entretanto, o FreeBSD oferece um editor mais fcil chamado ee que, se voc for um novato, deve ser o editor de sua escolha. Sinta-se livre para mudar as linhas de comentrios, principalmente para identicar sua congurao e as alteraes que diferenciam seu arquivo do GENERIC. Se voc tiver que compilar um kernel sobre SunOS ou qualquer outro Sistema Operacional BSD, muito destes arquivos sero muito familiar a voc. Se voc vier de outro sistema operacional tal como DOS, o arquivo de congurao GENERIC pode impressionar voc, sendo assim siga as descries do Arquivo de Congurao lentamente e com cuidado.
Nota: importante voc sempre vericar o arquivo /usr/src/UPDATING, antes de executar todas as etapas da atualizao, No caso voc pode sincronizar sua rvore de cdigo com o cdigo fonte do ltimo projeto do FreeBSD. Neste arquivo todas as importantes alteraes para atualiao do FreeBSD so digitadas. Ajuste sempre sua verso do cdigo fonte do FreeBSD de acordo com /usr/src/UPDATING, pois estas notas so mais precisas para novas informaes que o handbook.

Voc deve agora compilar o cdigo fonte do kernel. Esto aqui dois procedimentos que voc pode usar para isto, e qual voc usar, vai depender de como quer recompilar seu kernel, e a verso do FreeBSD que voc est rodando.

Se voc tiver instalado somente o cdigo fonte do kernel, use o procedimento 1. Se voc tiver rodando um FreeBSD verso anterior ao 4.0, e voc no tiver atualizazao para o 4.0 ou mais atual use o procedimento make world, procedimento 1. Se voc estiver recompilando um kernel novo sem atualizar o cdigo fonte (talvez para adicionar uma nova opo, tal como IPFIREWALL) voc teria que usar o outro procedimento. Se voc estiver recompilando o kernel como parte de um processo de um make world, use o procedimento 2.

Procedimento 1. Compilando um Kernel da Maneira Tradicional 1. Execute cong(8) para gerar o cdigo fonte do kernel.
# /usr/sbin/config MYKERNEL

2.

Mude o diretrio de congurao. Isto e mostrado aps rodar o comando acima mencionado.
# cd ../compile/MYKERNEL

209

Captulo 9. Congurando o kernel do FreeBSD Para FreeBSD anterior a 5.0, usa-se preferivelmente:
# cd ../../compile/MYKERNEL

3.

Compilando o kernel.
# make depend # make

4.

Instalando o novo kernel.


# make install

Procedimento 2. Compilando um Kernel da Nova maneira 1. Mude de diretrio para /usr/src.


# cd /usr/src

2.

Compilando o kernel.
# make buildkernel KERNCONF=MYKERNEL

3.

Instalando o novo kernel.


# make installkernel KERNCONF=MYKERNEL

Nota: No FreeBSD 4.2 e anteriores troque KERNCONF= por KERNEL=. Aps o 4.2-STABLE esta opo j foi atualizada, e antes de Fevereiro de 2001 o sistema no reconhece KERNCONF=.

Se voc no atualizou seu cdigo de alguma maneira (as formas possveis incluem CVSup, CTM, ou anoncvs), ento deve-se usar os comandos config, make depend, make, make install nesta sequncia. O novo kernel ser copiado para o diretrio do root como /kernel e o velho kernel ser movido para /kernel.old. Agora, desligue o sistema e reinicie-o, para carregar seu novo kernel. Caso algo saia errado, h algumas instrues para resolver problemas no nal deste captulo. interessante que voc leia a seo de como recuperar o sistema caso seu novo kernel no carregue.
Nota: No FreeBSD 5.0, o kernel instalados junto com os mdulos em /boot/kernel, e os kernel velhos so colocados em /boot/kernel.old. Outros arquivos relacionados ao processo de carregamento, tal como o carregamento do sistema por meio do loader(8) e suas conguraes so armazenadas tambm em /boot. Mdulos personalizados de terceiros normalmente so colocados em /boot/modules, embora os usurios devam estar cientes que manter os mdulos em sincronizao com o kernel compilado muito importante. Se os mdulos pretendidos no rodarem com o kernel compilado, isso pode resultar em instabilidade ou inconformidades no sistema.

Nota: Se voc adicionar qualquer dispositivo novo (tal como Placa de Som) e estiver rodando FreeBSD 4.X ou verses anteriores, pode ser necessrio adicionar algum dispositivo de controle em seu diretrio /dev antes que eles possam ser utilizados corretamente, Para mais informaes, d uma olhada na seo Criando dispositivos de controle posteriormente neste mesmo captulo.

210

Captulo 9. Congurando o kernel do FreeBSD

9.4. O arquivo de congurao


O formato geral do arquivo de congurao bastante simples. Cada linha contm uma palavra-chave e mais algum argumento. Para simplicar, a maioria das linhas contm somente um argumento. Qualquer coisa que segue um # considerado um comentrio e ignorado. As seguintes sees descrevem cada palavra-chave, geralmente na ordem que so listadas no GENERIC, embora algumas palavras-chaves relacionadas sejam agrupadas em uma nica seo (tal como rede) mesmo que sejam descartados durante todo o arquivo GENERIC. Uma lista completa de opes mais detalhadas, a explicao de cada um dos dispositivos presentes no arquivo de congurao do kernel, esto disponveis no arquivo LINT, localizado no mesmo diretrio do GENERIC. Se voc tiver na dvida a respeito da necessidade de uma linha, verique primeiro no LINT.
Nota: No FreeBSD 5.X e superiores o LINT no existe. Veja o arquivo NOTES para opes dependentes de arquitetura. Algumas opes, principalmente independentes da arquitetura, so armazenadas no arquivo /usr/src/sys/conf/NOTES. aconselhvel revisar as opes dispostas neste arquivo tambm.

A seguir um exemplo de arquivo de congurao GENERIC do kernel com vrios comentrios adicionais, onde eles forem necessrios, para esclarecimentos. Este exemplo deve se equivaler uma cpia que voc tem disponvel em /usr/src/sys/i386/conf/GENERIC. Para obter detalhes sobre todas as opes possveis do kernel, veja /usr/src/sys/i386/conf/LINT.
# # # # # # # # # # # # # # # # # # #

GENERIC -- Generic kernel configuration file for FreeBSD/i386 For more information on this file, please read the handbook section on Kernel Configuration Files: http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html The handbook is also available locally in /usr/share/doc/handbook if youve installed the doc distribution, otherwise always see the FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the latest information. An exhaustive list of options and more detailed explanations of the device lines is also present in the ../../conf/NOTES and NOTES files. If you are in doubt as to the purpose or necessity of a line, check first in NOTES. $FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $

Em seguida esto as palavra-chaves obrigatriamente necessrias em todos os kernels que voc for compilar:
machine i386

Est a arquitetura da mquina. Deve ser algum dos seguintes valores: i386, pc98, sparc64, alpha, ia64, amd64, or powerpc.
cpu cpu cpu I486_CPU I586_CPU I686_CPU

211

Captulo 9. Congurando o kernel do FreeBSD A opo acima especica o tipo da CPU em seu sistema. possvel manter mltiplas entradas desta denio, em casos onde no souber ao certo que classes de CPU devem ser suportadas em seu kernel, nesse caso, as opes escolhidas so I586_CPU ou I686_CPU), entretanto, para personalizar um kernel, melhor especicar apenas a CPU que voc dispe, quando esta puder ser prevista. Se voc estiver inseguro quanto classe da sua CPU, pode vericar o arquivo /var/run/dmesg.boot para vericar as mensagem do carregamento do sistema. O suporte I386_CPU ainda est disponvel no fonte do FreeBSD, mas esta opo agora desativada por padro em ambos -STABLE e -CURRENT. Isto signica que para instalar o FreeBSD com um processador de classe 386, voc ter que optar por uma das seguintes alternativas:

Instale uma verso mais antiga do FreeBSD e recompile o sistema como descrito na Seo 9.3. Compile as aplicaes em nvel de usurio e o kernel em outra mquina e instale-as no 386 em questo, usando os arquivos previamente compilados, armazenados em /usr/obj (para mais detalhes veja a Seo 21.5). Gere sua prpria verso do FreeBSD incluindo suporte a I386_CPU no kernel de instalao via CD-ROM.

A primeira destas opes provavelmente a mais fcil, mas voc necessitar de muito espao em disco em uma mquina de classe 386, o que pode ser difcil de encontrar.
ident GENERIC

Est a identicao do kernel. Voc pode mudar o nome do seu kernel para qualquer um, mas como exemplo da congurao do nosso kernel customizado, o MYKERNEL, voc deve acompanhar as instrues dos prximos exemplos. O nome que voc colocou no ident sero mostrados quando o kernel for carregado, de forma que a opo utilizada para dar um nome novo ao kernel, ou um nome diferente se voc quiser distinguir seu novo kernel do kernel atual (especialmente til quando quiser compilar um kernel experimental).
maxusers
n

A opo maxusers ajusta uma srie de tabelas importantes do sistema. Esta opo no deve ser utilizada de forma a se igualar ao nmero de usurios simultneos esperados em sua mquina. Desde o FreeBSD 4.5, o sistema ajusta automaticamente esta congurao, se seu valor for modicado para 01. No FreeBSD 5.X, maxusers denido por padro com o valor 0 quando for omitido. Se sua verso do FreeBSD for anterior ao 4.5, ou voc deve denir est varivel manualmente sempre, e o valor de maxusers deve ser no mnimo 4, especialmente se for usando o Sistema de Janelas X, ou compilando programas com frequncia. A razo que a tabela mais importante ajustada por meio do maxusers o nmero mximo de processos, que denido como 20 + 16 * maxusers, de forma que, se voc ajustar maxusers para o valor 1, podero existir no mximo 36 processos simultneos, incluindo ai os 18 processos que o sistema carrega na hora da inicializao, e os 15 que voc provavelmente ir criar quando iniciar o sistema de interface grca. Mesmo tarefas simples como a leitura de uma pgina de manual ser iniciada levantando nove processos para ltro, decompactao e visualizao do manual. Colocando maxusers em 64 permitir que voc tenha 1044 processos simultneos carregados, o que deve ser o suciente para a maioria de suas necessidades. Entretanto, se voc se deparar com o erro proc table is full ao tentar iniciar outro programa, ou se o sistema em questo tratar de um servidor com um grande nmero de usurios simultneos (digamos, como o ftp.FreeBSD.org por exemplo), possvel aumentar o valor da varivel maxusers e recompilar o kernel do sistema.
Nota: maxusersno limita o nmero de usurios que podem logar em sua mquina. Ele apenas dene o valor de vrias tabelas quantias razoveis considerando o nmero mximo de usurios e processos que voc provavelmente ter rodando em seu sistema. A opo que possibilita limitar o nmero de logins remotos simultneous e de terminais grcos pseudo-device pty 16.

212

Captulo 9. Congurando o kernel do FreeBSD

# Floating point support - no desabilite. device npx0 at nexus? port IO_NPX irq 13 npx0 a opo que disponibiliza suporte lgico ponto utuante em unidades matemticas do FreeBSD, que faz o papel de equipamento co-processador, ou simplesmente emulador matemtico lgico. Esta denio no opcional. # Pseudo devices - o nmero indica quantas unidades sero alocadas. pseudo-device loop # Network loopback

Trata-se do dispositivo genrico de comunicao TCP/IP interna - via loopback. Por exemplo, se voc zer uma conexo telnet ou FTP para localhost (ou seja, 127.0.0.1) a conexo voltar voc atravs deste pseudo-dispositivo. Este comportamento mandatrio. Todas as outras opes no decorrer do arquivo so consideravelmente optativas. Veja as notas em cada uma das opes abaixo, para obter mais informaes.
#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" #Default places to look for devices.

No FreeBSD 5.X e verses posteriores, o device.hints(5) usado para congurar algumas opes de dispositivos de controle. Por padro o loader(8) verica as opes em /boot/device.hints. Usando a opo hints estas denies podem ser estaticamente compiladas dentro do seu kernel, de forma que a necessidade de cirar o arquivo device.hints dentro de /boot seja suprimida.
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols

O processo normal de compilao do FreeBSD no inclui informaes sobre problemas com a compilao do kernel, e remove a maioria dos smbolos depois que o kernel instalado, para economizar algum espao em disco. Caso voc esteja fazendo testes com kernel na srie -CURRENT, ou alterando opes de desenvolvimento de seu prprio kernel FreeBSD, pode ser interessante descomentar esta linha. Isto ir habilitar o uso da opo -g que habilita a adio de informaes de depurao do programa, realizados pelo cong(8), caso voc esteja compilando seu kernel da maneira tradicional (veja a Seo 9.3 para obter mais informaes.).
options MATH_EMULATE #Support for x87 emulation

Esta linha permite que o kernel simule um co-processador matemtico se seu computador no tiver um disponvel (386 ou 486SX). Caso seu PC seja um 486DX, ou um 386 ou 486SX (com um chip 387 ou 487 separado), ou superior (Pentium, Pentium II, etc.), esta opo poder ser comentada.
Nota: As rotinas normais para emulao matemticas do co-processador que vem com o FreeBSD no so muito precisas. Se voc no dispe de um co-processador matemtico mas tem necessidade de uma emulao mais precisa, substituia a opo anterior por GPL_MATH_EMULATE, de forma a usar o suporte co-processamento matemtico GNU que no habilitado por padro em razo de questes legais da licena GPL. No FreeBSD 5.X, a emulao matemtica desabilitada por padro, em outras CPUs que no tem suporte a ponto utuante matemtico nativo, a emulao menos comum, e em muitos casos no so sequer suportados pelo kernel GENERIC sem que outras opes adicionais sejam includas.

options

INET

#InterNETworking

213

Captulo 9. Congurando o kernel do FreeBSD Suporte a Rede. Mantenha esta opo ainda que voc no planeje se conectar a uma rede. Muitos programas tem necessidade mnimas que necessitam de suporte rede, como o uso da interface de loopbacl (isto , conexes internas de rede), de forma que esta opo mandatria.
options INET6 #IPv6 communications protocols

Trata-se do protoclo de comunicao IPv6.


options options FFS #Berkeley Fast Filesystem FFS_ROOT #FFS usable as root device [keep this!]

Trata-se do sistema de arquivos essencial do FreeBSD. Mantenha esta opo se voc planeja controlar algum disco rgido.
Nota: partir do FreeBSD 5.X, FFS_ROOT no mais necessrio.

options

UFS_ACL

#Support for access control lists

Esta opo, est presente apenas no FreeBSD 5.X; ela habilita o suporte do kernel listas de controle de acesso. Seu uso requer as opes de atributos extendidos e UFS2, e os detalhes so descritos na Seo 10.13. ACLs so habilitadas por padro, e no devem ser desabilitadas no kernel se tiverem sido previamente utilizadas no sistema de arquivos, pois remover a lista de controle de acessos, modicando os atributos dos arquivos protegidos para valores imprevisveis.
options UFS_DIRHASH #Improve performance on big directories

Est opo inclui recursos para aumentar a velocidade de operaes de disco em diretrios grandes, ao custo de usar um pouco de memria adicional. Normalmente interessante usufruir desta opo em um grande servidor, ou em situaes onde haja grande demanda de interao com estaes de trabalho; remova esta opo quando estiver usando o FreeBSD em um pequeno sistema onde memria a prioritria e velocidade de acesso a disco menos importante, como um rewall.
options SOFTUPDATES #Enable FFS Soft Updates support

Esta opo habilita o mtodo Soft Updates no kernel, isto ir ajudar a aumentar a velocidade de escrita ao disco. Mesmo sendo habilitada no kernel, estes recursos ainda precisam ser atribudos cada partio de disco. Revise a sada do comando mount(8) para obter detalhes sobre que sistemas de arquivos esto com Soft Updates habilitados. Caso no esteja observando a opo, necessrio ativa-la usando o tunefs(8) (para sistemas de arquivos existentes) ou newfs(8) (para novo sistema de arquivos).
options options MFS #Memory Filesystem MD_ROOT #MD is a potential root device

Trata-se basicamente de um espao em memria mapeado para armazenamento rpido de arquivos temporrios, se voc tiver uma boa quantidade de memria real e virtual, pode forar a utilizao deste recurso em outros pontos tambm. Uma idia interessante montar como MFS o diretrio /tmp, se houver necessidade de muito desempenho nesta unidade. Neste caso, adicione por exemplo a seguinte linha no arquivo /etc/fstab:
/dev/ad1s2b /tmp mfs rw 0 0

214

Captulo 9. Congurando o kernel do FreeBSD Agora basta reiniciar seu sistema ou rodar o comando mount /tmp.
Nota: No FreeBSD 5.X, a opo md(4) usada com grande vantagem sobre MFS. Mais informaes sobre a congurao de sistemas de arquivo em memria, podem ser obtidas nos manuais mdcong(8) e mdmfs(8), e tambm na Seo 12.10. Consequentemente, a opo MFS no mais suportada na srie 5.X.

options options

NFS #Network Filesystem NFS_ROOT #NFS usable as root device, NFS required

Trata-se do sistema de arquivos de rede. A menos que voc no planeje montar parties UNIX sob rede TCP/IP, comente esta linha.
options MSDOSFS #MSDOS Filesystem

Trata-se do sistema de arquivos MS-DOS. Se voc no pretende montar parties formatadas em DOS, pode seguramente retirar esta opo. Se voc tiver necessidade de montar sistemas DOS posteriormente, o mdulo ser automaticamente carregado. O timo conjunto de programas mtools (disponvel na Coleo de Ports) permite que voc acesse disquetes DOS sem ter que mount-los e desmont-los (e no requer MSDOSFS).
options options CD9660 CD9660_ROOT #ISO 9660 Filesystem #CD-ROM usable as root, CD9660 required

O sistema de arquivos ISO 9660 utilizado em CDROMs. Pode ser interessante comentar esta opo se voc no tem um dispositivo ptico de leitura de CDROM, ou se tem a necessidade ocasional de montar CDs de dados (uma vez que o mdulo correspondendo pode ser carregado dinamicamente quando for necessrio montar um CD de dados). CDs de udio no necessitam deste suporte.
options PROCFS #Process filesystem

Trata-se do sistema de arquivo de processos. Este sistema de arquivo tem a funo de criar e montar o ambiente
/proc que permite o uso de programas como ps(1) para voc ter mais informaes sobre quais processos est rodando. No FreeBSD 5.X, o uso do PROCFS no mais necessrio por vrios motivos, visto que a maioria das ferramentas de monitoramento tem que ser adaptadas para rodar sobre PROCFS. Em adio, o kernel 5.X-CURRENT que usa PROCFS deve agora tambm incluir suporte para PSEUDOFS: options PSEUDOFS #Pseudo-filesystem framework

PSEUDOFS no est disponvel sob FreeBSD 4.X. Ao contrrio do FreeBSD 4.X, as novas instalaes do FreeBSD 5.X no montam, por padro, o sistema de arquivos de processos. options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]

Compatibilidade com BSD 4.3. Deixe isto descomentado, alguns programas agiro estranhamente se voc comentar isto.
options COMPAT_FREEBSD4 #Compatible with FreeBSD4

Esta opo necessria no FreeBSD 5.X i386 e Sistemas Alpha para suporte aplicativos compilados em outras verses do FreeBSD, que usa outro sistema de interfaces de chamadas. Recomenda-se que esta opo seja usada sobre todos i386 e sistemas Alpha que podem rodar outros aplicativos; plataformas que ganham suporte somente em 5.X, tal como ia64 e Sparc64, no tem esta necessidade.

215

Captulo 9. Congurando o kernel do FreeBSD


options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI

Isso faz com que o kernel pare por 15 segundos antes de procurar pelos dispositivos SCSI em seu sistema. Se voc dispor apenas de discos IDE, pode ignorar esta opo; em discos SCSI, pode ser interessante baixar at 5 segundos, para acelerar a inicializao. Naturalmente, se depois disso o FreeBSD tiver problemas para reconhecer algum dispositivo SCSI, suba este valor novamente.
options UCONSOLE #Allow users to grab the console

Permite que a console usada por aplicaes grcas sejam acessadas por outros usurios. Por exemplo, se voc criar um terminal xterm com xterm -C, tudo que estiver sendo feito pelo write(1), talk(1), e todas as outras mensagens que voc receber, assim como algumas mensagens de console emitidas pelo kernel, sero capturadas.
Nota: No FreeBSD 5.X, UCONSOLE no mais necessria.

options

USERCONFIG

#boot -c editor

Esta opo permite carregar e editar as conguraes do menu de inicializao.


options VISUAL_USERCONFIG #visual boot -c editor

Esta opo permite carregar e editar as conguraes do menu de inicializao em modo grco.
Nota: partir doFreeBSD 5.0, a opo USERCONFIG foi substituda pelo novo mtodo device.hints(5). Para maiores informaes sobre device.hints(5) por gentileza, visite a Seo 7.5.

options

KTRACE

#ktrace(1) support

Esta opo permite rastrear os processos do kernel, que so usados em rotinas de vericao e tratamento de erros.
options SYSVSHM #SYSV-style shared memory

Est opo fornece compartilhamento de memria no estilo System V . O uso mais comum deste, so as extenses XSHM do X, com muitos programas de grcos-intensivos que obtero automaticamente vantagens e acrscimo de velocidade. Se voc usa X, mantenha esta opo ativa.
options SYSVSEM #SYSV-style semaphores

Suporte semforos padro System V . Geralmente so pouco usados, e adicionam algumas centenas de bytes no tamanho total do kernel.
options SYSVMSG #SYSV-style message queues

Suporte mensagens interprocessos em padro System V . Mais uma vez, tambm requer poucas centenas de bytes no kernel.
Nota: O comando ipcs(1) listar algum processo que estiver fazendo uso de alguma funcionalidade padro System V.

216

Captulo 9. Congurando o kernel do FreeBSD


options options P1003_1B #Posix P1003_1B real-time extensions _KPOSIX_PRIORITY_SCHEDULING

Extenses em tempo real adicionadas em 1993 ao padro POSIX. Determinadas aplicaes da coleo do ports usam estes recursos (tal como StarOfce).
Nota: No FreeBSD 5.X, todas estas funcionalidades agora so fornecidos pela opo _KPOSIX_PRIORITY_SCHEDULING, e P1003_1B no mais necessria.

options ICMP_BANDLIM #Rate limit bad replies

Est opo permite limitar a quantidade de resposta de erros de ICMP. Normalmente esta opo auxilia a proteo do sistema contra ataques do tipo degao de servio por pacotes ICMP. recomendado manter esta opo.
Nota: No FreeBSD 5.X, esta caracterstica habilitada por padro e a opo ICMP_BANDLIM no mais necessria.

# To make an SMP kernel, the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O

Ambas opes acima so necessrias para suporte multiprocessamento simtrico (SMP).


device isa

Todos os PCs com FreeBSD suportam esta opo. Caso seu computador seja um IBM PS/2 (Arquitetura Micro Canal), o FreeBSD fornece um suporte um pouco limitado. Para maiores informaes sobre este, veja a opco MCA, em /usr/src/sys/i386/conf/LINT.
device eisa

Inclua esta opo caso sua placa-me seja EISA. Esta opo habilita a auto-deteco e suporte a congurao de todos os dispositivos sobre o barramento EISA.
device pci

Inclua este opo se sua placa-me suporta PCI. Esta opo habilita a auto-deteco e suporte a congurao demplacas PCI e os que estiverem em transio do barramento ISA para PCI.
device agp

Inclua esta opo se voc dispor de uma placa de AGP em seu sistema. Esta opo habilita suporte AGP e AGP GART em placas com estes recursos.
# Floppy device device device drives fdc0 at isa? port IO_FD1 irq 6 drq 2 fd0 at fdc0 drive 0 fd1 at fdc0 drive 1

Trata-se do controlador de disco exvel. fd0 o drive exvel A:, e fd1 o drive B:.

217

Captulo 9. Congurando o kernel do FreeBSD


device ata

Este driver suporta todos dispositivos ATA e de ATAPI. Voc necessitar somente uma linha com a entrada device ata para que o kernel detecte todos os dispositivos PCI ATA/ATAPI em uma mquina moderna.
device atadisk # ATA disk drives

Esta opo necessrio em conjunto com a device ata para dispositivos de controle de discos ATA.
device atapicd # ATAPI CDROM drives

Esta opo necessrio em conjunto com a device ata para dispositivos de de controle de drives de CD ATAPI.
device atapifd # ATAPI floppy drives

Esta opo necessrio em conjunto com a device ata para controle dispositivos de unidades de disquetes ATAPI.
device atapist # ATAPI tape drives

Esta opo necessrio em conjunto com a device ata para dispositivos de de controle de dispositivos de tas ATAPI.
options ATA_STATIC_ID #Static device numbering

Esta opo faz o controle esttico de nmero identicador ATA, no padro antigo, ou os nmeros de dispositivos que so alocados dinmicamente.
# ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15

usado em sistemas mais antigos, que no suportam padro PCI.


# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices device amd # AMD 53C974 (Teckram DC-390(T)) device dpt # DPT Smartcache - See LINT for options! device isp # Qlogic family device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) device device device device device adv0 at isa? adw bt0 at isa? aha0 at isa? aic0 at isa?

Controladoras SCSI. Caso alguma destas controladoras no estejam disponveis em seu sistema, comente a linha em questo. Caso voc tenha apenas discos IDE, todas opes aqui podem ser completamente removidas.
# SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks)

218

Captulo 9. Congurando o kernel do FreeBSD


device device device access) sa # Sequential Access (tape etc) cd # CD pass # Passthrough device (direct SCSI

Perifricos SCSI. Mais uma vez, se algum destes perifricos no estiverem disponveis em seu sistema, comente a linha em questo. Caso voc tenha apenas discos IDE, todas opes aqui podem ser completamente removidas.
# RAID controllers device ida # Compaq Smart RAID device amr # AMI MegaRAID device mlx # Mylex DAC960 family

Suporte controladoras RAID. Voc pode manter apenas suporte aos equipamentos que voc tem disponvel, removendo o suporte s controladoras RAID no disponveis.
# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD

O controlador de teclado (atkbdc) fornece recursos de controle operaes de E/S para o teclado AT e teclados e dispositivos de apontamento PS/2 (como mouse e canetas). Este dispositivo necessrio ao suporte de teclado (atkbd) bem como ao dispositivo de controle PS/2 (psm).
device atkbd0 at atkbdc? irq 1

O dispositivo de controle atkbd, em comjunto com o atkbdc, provm accesso ao teclado AT 84 ou teclados AT, modelos aprimorados e convencionais.
device psm0 at atkbdc? irq 12

Use este dispositivo caso seu mouse seja do tipo que requer conectores PS/2.
device vga0 at isa?

Dispositivo de controle de vdeo.


# splash screen/screen saver pseudo-device splash

Possibilita que seja adicionada uma tela de sobreposio (bitmap) na inicializao do sistema. Protetores de tela tambm exijem suporte a este dispositivo.
# syscons is the default console driver, resembling an SCO console device sc0 at isa? sc0 o dispositivo padro de controle do console do sistema, e se assenelha ao console de sistema SCO. A maioria dos terminais requerem este suporte mesmo terminais que fazem uso do mapeamento termcap, mas no deve ser relevante quando o dispositivo vt0 for utilizado, uma vez que este compatvel com o console VT220. Neste caso, ao se logar, basta denir a varivel de ambiente TERM como scoansi especialmente alguma aplicao que ocupe a tela inteira apresentar inconformidades no console. # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa?

219

Captulo 9. Congurando o kernel do FreeBSD


#options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std

Trata-se de um dispositivo de controle VT220 compatvel com o console, padres VT100/102. Esta opo aconselhada para computadores mveis que tenham problemas de compatibilidade com sc0. Ajuste tambm o valor da varivel TERM para vt100 ou vt220 logar-se no terminal. Este dispositivo pode ser usado para interconectar um grande nmero de diferentes mquinas em um ambiente de rede, onde termcap ou terminfo contenham entradas para o dispositivo sc0 vt100 deve estar virtualmente disponvel em todas estaes.
# Power management support (see LINT for more options) device apm0 at nexus? disable flags 0x20 # Advanced Power Management

Suporte Gerenciamento Avanado de Energia. Usado especialmente em laptops.


# PCCARD device device device (PCMCIA) support card pcic0 at isa? pcic1 at isa?

irq 10 port 0x3e0 iomem 0xd0000 irq 11 port 0x3e2 iomem 0xd4000 disable

Suporte PCMCIA. Especialmente til em laptop.


# Serial device device device device (COM) ports sio0 at isa? sio1 at isa? sio2 at isa? sio3 at isa?

port IO_COM1 port IO_COM2 disable port disable port

flags 0x10 irq 4 irq 3 IO_COM3 irq 5 IO_COM4 irq 9

Suporte portas de comunicao serial. Estes dispositivos so anlogamente referentes s portas COM1 at COM4, em ambientes MS-DOS/Windows.
Nota: Se voc tiver um modem interno na COM4 e uma porta serial na COM2, voc ter que mudar a IRQ do modem para 2 (pelas razes tcnicas IRQ2 = IRQ 9) de forma que o FreeBSD compreenda estas denies. Se voc tiver um carto serial de mltiplas interfaces seriais, verique a pgina de manual sio(4) para obter maiores informaes sobre os valores apropriados para esta linha de opo do kernel. Algunas placas vdeo (especialmente aquelas com chip baseado em S3) usam endereo de E/S no formato 0x*2e8, e como vrias placas seriais simplesmente ignoram qualquer possibilidade de convivncia com uma placa de vdeo destas, seu endereamento de E/S 16-bit costumam conitar com estes dispositivos, que querem operar na porta COM4 - normalmente indisponvel. Cada porta serial requer uma IRQ exclusiva (a no ser que voc esteja usando um carto multi-portas onde as interrupes compartilhadas so suportadas), sendo assim as IRQs padro para COM3 e COM4 no so habilitadas automaticamente.

# Parallel port device ppc0

at isa?

irq 7

Trata-se da porta paralela para a interface de barramento ISA.


device ppbus # Parallel port bus (required)

220

Captulo 9. Congurando o kernel do FreeBSD Suporta o barramento de porta paralela.


device lpt # Printer

Suporte porta paralela de impressoras.


Nota: Todos os trs acima so necessrios para habilitar suporte impressora paralela.

device

plip

# TCP/IP over parallel

Dispositivo de controle para a interface de rede via porta paralela.


device ppi # Parallel port interface device

Uma porta paralela de propsito geral (geek port) padro de E/S IEEE1284.
#device vpo # Requires scbus and da

Trata-se do suporte Zip Drive da Iomega. Requer ainda suporte scbus e da. Melhor performance garantida com portas em modo EPP 1.9.
# PCI Ethernet device de # device fxp # device tx # device vx # device wx # NICs. DEC/Intel DC21x4x (Tulip) Intel EtherExpress PRO/100B (82557, 82558) SMC 9432TX (83c170 EPIC) 3Com 3c590, 3c595 (Vortex) Intel Gigabit Ethernet Card (Wiseman)

Suporte uma srie de placas de rede PCI. Voc pode comentar ou remover os dispositivos que controlam placas de rede que voc no disponha em seu sistema.
# PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support

O suporte ao barramento MII necessrio para o correto funcionanento de uma srie de placas de rede PCI 10/100, especcamente as placas com transceivers MII-compatveis ou ento os que implementam a interface de controle em questo, operando como MII. Adicionar a opo device miibus prov suporte uma API de barramento MII genrica, e a todos os dispositivos de controle PHY, incluindo um genrico para PHYs no declarados no momento da negociao dos recursos.
device device device device device device device device device dc rl sf sis ste tl vr wb xl # # # # # # # # # DEC/Intel 21143 and various workalikes RealTek 8129/8139 Adaptec AIC-6915 (Starfire) Silicon Integrated Systems SiS 900/SiS 7016 Sundance ST201 (D-Link DFE-550TX) Texas Instruments ThunderLAN VIA Rhine, Rhine II Winbond W89C840F 3Com 3c90x (Boomerang, Cyclone)

Suporte placas de rede que usam o cdigo controlador do barramento MII.

221

Captulo 9. Congurando o kernel do FreeBSD


# ISA Ethernet NICs. device ed0 at isa? port 0x280 irq 10 iomem 0xd8000 device ex device ep # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really # exists only as a PCMCIA device, so there is no ISA attachment needed # and resources will always be dynamically assigned by the pccard code. device wi # Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will # work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP # mode (the factory default). If you set the switches on your ISA # card for a manually chosen I/O address and IRQ, you must specify # those parameters here. device an # The probe order of these is presently determined by i386/isa/isa_compat.c. device ie0 at isa? port 0x300 irq 10 iomem 0xd0000 device fe0 at isa? port 0x300 device le0 at isa? port 0x300 irq 5 iomem 0xd0000 device lnc0 at isa? port 0x280 irq 10 drq 0 device cs0 at isa? port 0x300 device sn0 at isa? port 0x300 irq 10 # requires PCCARD (PCMCIA) support to be activated #device xe0 at isa?

Tratam-se de dispositivos de controle de interfaces Ethernet padro ISA Ethernet drivers. Veja a lista de placas suportadas por cada um destes dispositivos em /usr/src/sys/i386/conf/LINT.
pseudo-device ether # Ethernet support

ether necessrio caso voc tenha alguma placa de rede disponvel. Este dispositivo inclui suporte ao cdigo

genrico do protocolo Ethernet.


pseudo-device sl 1 # Kernel SLIP

sl o suporte SLIP. Esta tecnologia foi quase completamente substituda pelo PPP, que mais fcil de congurar, mais exvel e melhor suporte conexo modem-a-modem, e mais mais poderoso. O valor na frente da entrada sl indica quantas sesses simultneas da conexees SLIP sero suportadas. pseudo-device ppp 1 # Kernel PPP

Trata-se do suporte PPP no kernel, usado especialmente para conexes discadas. H tambm uma outra verso do PPP implementada em nvel de usurio com o dispositivo tun e oferece mais exibilidade e caractersticas tais como exigem as conexes discadas. O valor de conexes aps a entrada ppp, dene a quantidade de conexes simultneas suportadas pelo PPP.
pseudo-device tun # Packet tunnel.

usada pelo programa que implementa o suporte PPP em nvel de usurio. O valor na frente da entrada tun indica o nmero de sesses simultneas suportadas pelo PPP. Veja a PPP deste livro para obter maiores informaes.
pseudo-device pty # Pseudo-ttys (telnet etc)

222

Captulo 9. Congurando o kernel do FreeBSD Trata-se de um pseudo-terminal que simula a interface de login no sistema. usado pelo telnet bem como por sees rlogin, xterm, e algumas outras aplicaes como Emacs. O valor aps a entrada pty indica o nmero de dispositivos pty que devem ser criados. Se voc tem a necessidade de mais de 16 sesses simultneas de xterm ou acessos remotos, pode aumentar este valor at o mximo de 256.
pseudo-device md # Memory disks

o pseudo-dispositivo para discos de memria.


pseudo-device gif

ou
pseudo-device gif 4 # IPv6 and IPv4 tunneling

Implementa tunelamento do protocolo IPv6 sobre IPv4, bem como tunelamento IPv4 sobre IPv4, e IPv6 sobre. partir do FreeBSD 4.4 o dispositivo gif pode ser criado por demanda, e a primeira entrada (sem o identicador numrico aps o gif) pode ser usada. Verses anteriores do FreeBSD requerem esta denio.
pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)

Este pseudo-dispositivo captura os pacotes que so emitidos e desva-os ao daemon da traduo IPv4/IPv6.
pseudo-device bpf # Berkeley packet filter

Trata-se do Filtro de Pacotes de Berkeley. Este pseudo-dispositivo permite que as interfaces da rede sejam colocadas em modo promscuo, capturando cada pacote que trafegar publicamente na rede. Estes pacotes podem ser capturados e salvos em disco ou examinados com o programa tcpdump(1).
Nota: A opo pseudo-device bpf usada tambm pelo dhclient(8) para obter o endereo IP do roteador padro (gateway) e assim por diante. Se voc usa DHCP, mantenha esta opo descomentada.

# Suporte USB #device uhci #device ohci #device usb #device ugen #device uhid #device ukbd #device ulpt #device umass #device ums # USB Ethernet, #device aue #device cue #device kue

# UHCI PCI->USB interface # OHCI PCI->USB interface # USB Bus (required) # Generic # Human Interface Devices # Keyboard # Printer # Disks/Mass storage - Requires scbus and da # Mouse requires mii # ADMtek USB ethernet # CATC USB ethernet # Kawasaki LSI USB ethernet

Estas opes adicionam suporte vrios dispositivos USB. Para obter mais informaes sobre cada dispositivo USB suportado pelo FreeBSD por gentileza, veja
/usr/src/sys/i386/conf/LINT.

223

Captulo 9. Congurando o kernel do FreeBSD

9.4.1. Grandes Conguraes de Memria (PAE)


Mquinas com grandes conguraes de memria tem a necessidade de que sejam acessados endereos de memria que superam o limite de 4 Gigabytes de espao no ambiente de usurio e do kernel (KVA). Devido esta limitao, a Intel adicionou suporte espao de endereamento fsico de 36-bit nos processadores no Pentium em sua linha de CPUs Pro e posteriores. A extenso de endereo fsico (PAE) possibilida que as CPUs Intel Pentium Pro e posteriores possam ter at 64 gigabytes de memria. O FreeBSD oferece suporte este recurso por meio da opo PAE na congurao do kernel, disponvel na srie 4.X partir da verso 4.9-RELEASE e no 5.X partir do 5.1-RELEASE. Devido limitaes da arquitetura de memria Intel, no possvel distinguir o que endereado acima ou abaixo dos 4 gibabytes. A memria alm dos 4GB meramente inclusa e mapeada ao pool de memria disponvel. Para habilitar suporte ao PAE, basta adicionar ao arquivo de congurao do kernel, a seguinte linha:
options PAE

Nota: O suporte PAE no FreeBSD limita-se processadores Intel IA-32. Deve-se tambm notar, que o suporte PAE no FreeBSD ainda no foi totalmente testado, e considerado de qualidade beta, quando comparado com outros recursos estveis do FreeBSD.

O suporte PAE no FreeBSD tem algumas limitaes:


Um mesmo processo no pode alocar mais do que 4 gigabytes do espao da VM. Mdulos KLD no podem ser carregados dentro em um kernel com PAE habilitado, devido a diferenas na estrutura da congurao do mdulo de kernel. Dispositivos de controle no usam o a interface bus_dma(9) podem causar corrompimento de dados em um kernel com PAE, portanto no so recomendados para uso em conjunto com PAE. Por esta razo um arquivo especco para congurao de um kernel com PAE est disponvel separadamente no FreeBSD 5.X, onde os dispositivos de controle conitante esto ausentes. Alguns valores ajustveis no kernel do sistema so baseados na quantidade de memria que foi congurada no kernel, estaticamente, no momento da compilao deste. Alguns destes valores podem ter necessidade de serem realocados devido natureza do suporte muita memria disponvel em sistemas com PAE. Um bom exemplo a MIB ajustvel via sysctl(8), kern.maxvnodes, que controla o nmero mximo de vnodes que podem ser alocados no kernel. recomendado que este e outros valores ajustveis sejam redenidos um valor rasovel, em sistemas com PAE. Pode ser necessrio aumentar o espao virtual de endereamento do kernel (KVA) ou diminuir a quantidade de recursos utilizados com maior demanda no kernel, objetivando evitar a exausto do KVA. A opo KVA_PAGES pode ser usada na congurao do kernel para aumentar o espao disponvel para o KVA.

Para mais dicas sobre performance e estabilidade, recomendado a leitura da pgina de manual tuning(7). A pgina de manual pae(4) contm informao recentes sobre o suporte PAE no FreeBSD.

224

Captulo 9. Congurando o kernel do FreeBSD

9.5. Criando Dispositivos de Controle


Nota: Se voc estiver usando o FreeBSD verso 5.0 ou posterior, pode seguramente pular esta seo. Estas verses usam o devfs(5) para criar os dispositivos de controle de forma completamente transparente para o usurio.

Quase todos dispositivo no kernel usam um dispositivo de controle que ca no diretrio /dev. O usurio normal visualiza estes dispositivos como arquivos regulares, mas na realidade so entradas especiais no kernel do sistema, que os programas usam para acessar os recursos do sistema. Existe uma rotina shell, o /dev/MAKEDEV, que executado quando voc instala o sistema operacional pela primeira vez; esta rotina cria quase todos os dispositivos de controle suportados no sistema. Entretanto, no cria todos, de forma que ao adicionar suporte para novos dispositivos, esta rotina deve ser usada para criar a entrada apropriada neste diretrio e acima dele. Veja um exemplo simples: Vamos supor que voc adicionou um CD-ROM IDE e requer que ele seja suportado pelo kernel. A linha no kernel deve ser a seguinte:
device acd0

Ou seja, a entrada acd0 deve estar disponvel no /dev, possivelmente seguida por uma letra, tal como c, ou precedido por uma letra r, que signica tratar-se de um dispositivo cr (raw). Existe contudo uma grande possibilidade destes arquivos no estarem presentes sob este diretrio, neste caso voc pode entrar no diretrio /dev:
# sh MAKEDEV acd0

Quando a rotina terminar de ser executada, devero existir as entradas acd0c e racd0c sob /dev. Para placas de som, o seguinte comando cria as entradas apropriadas:
# sh MAKEDEV snd0

Nota: Ao criar dispositivos de controle tais como Placas de Som, se outras pessoas tiverem acesso sua mquina, pode ser necessrio proteger os dispositivos contra acesso externo adicionando os arquivos no /etc/fbtab. Veja o manual do fbtab(5) para obter maiores informaes.

Siga este simples procedimento quando quizer adicionar dispositivos de controle outros equipamentos no
GENRICOS que no tiverem entradas apropriadas. Nota: Todas as controladoras SCSI usam a mesma entrada sob o /dev, de forma que estes no requerem que os dispositivos sejam manualmente criados. As placas de rede e SLIP/PPP no tem dispositivos de controle sob o /dev, de forma que voc no deve se preocupar tambm com estes equipamentos.

9.6. Se algo der errado


H 5 categorias de problemas que podem ocorrer ao compilar um kernel personalizado. Elas so:

225

Captulo 9. Congurando o kernel do FreeBSD Falhas na configurao: Se a rotina cong(8) falhar, provvel que voc tenha cometido um erro bastante simples. Felizmente, o cong(8) indicar o nmero da linha que est com problema, de forma que voc pode tranquilamente ir diretamente esta linha, com um editor de texto como o vi. Por exemplo, se voc encontrar o seguinte erro:
config: line 17: syntax error

Voc vai identicar o problema, usando o vi, com o comando 17G no modo de comandos do editor. Certique-se que o a opo em questo est corretamente congurada, comparando o kernel GENRICO com sua outra referncia de arquivo de kernel. Falha no make: Se o comando make falhar, indicao de que existem erros no seu arquivo de congurao do kernel, mas estes erros no so sucientemente claros para o cong(8) indeitifca-lo. Mas uma vez, d uma olhada em seu arquivo de congurao do kernel, e se no conseguir solucionar a questo, envie uma mensagem de correio eletrnico para lista de discusso FreeBSD de perguntas genricas (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions) com a congurao do seu kernel, de forma que o problema seja diagnosticado de forma rpida. Falha na instalao do kernel: Se o kernel estiver perfeitamente compilado, e no foi instalado corretamente (no caso do comando comando make install ou make installkernel ter falhado), a primeira prividncia a se tormar vericar se seu sistema no est sendo executado com nvel de segurana positivo ( securelevel 1 ou superior - veja init(8)). O processo de instalao do kernel tenta modifcar a regio de memria que armazena informaes sobre o kernel, e coloca esta memria em uma outra regio. Se o nvel de segurana for 1 ou superior, o acesso direto memria no permitido. A instalao do kernel precisar ser feita no nvel de segurana 0 ou inferior. O kernel no carrega: Se o kernel novo no carregar, ou falhar no momento de reconhecer os dispositivos instalados em seu sistema, no se apavore! Felizmente o FreeBSD tem um excelente mecanismo de recuperao de kernel incompatvel. Escolha o kernel que voc deseja carregar e inicie o FreeBSD com ele. Para fazer isso, quando o sistema de inicializao estiver na contagem regressiva de 10 segundos, aperte qualquer tecla, exceto a tecla Enter, use o comando unload e ento mande iniciar o kernel antigo, com o comando boot kernel.old , ou o nome de qualquer outro kernel que voc achar conveniente e que exista em seu FreeBSD. sempre boa idia manter um kernel convel (ou uma cpia dele) quando comear o processo de recompilao e instalao de um novo. Depois de carregar um kernel funcional, verique o arquivo de congurao do seu kernel customizado (o que falhou), corrija as possveis decincias e recompile-o. Um recurso muito til que pode ajudar, o fato do arquivo /var/log/messages gravar, entre outras coisas, todas as mensagens dos kernel at o momento em que este foi carregado com sucesso. O comando dmesg(8) imprimir sempre as ltimas mensagens atualmente geradas pelo kernel.
Nota: Se voc estiver tendo problemas para compilar um kernel, tome uma precauo, e mantenha um
GENERIC, ou qualquer outro kernel funcional, disponvel. Voc no pode conar sempre no kernel.old pois no caso de um segundo kernel problemtico ser instalado, o problemtico anterior ser o kernel.old,

sobrescrevendo o arquivo funcional. Lembre-se de corrigir o kernel e ter um novo kernel funcional o quanto antes, ou de mover o kernel de segurana para o nome original de kernel, pois comandos como o ps(1) podem no funcionar corretamente. O comando seguir destrava as opes de imutabilidade do kernel, e possibilita que ele seja renomeado ou sobreposto.

226

Captulo 9. Congurando o kernel do FreeBSD


# chflags noschg /kernel

Se voc encontrar qualquer problema relacionado esta etapa do procedimento de instalao, provvel que esteja usando o FreeBSD em nvel de segurana (securelevel(8)) maior que zero. Neste caso edite a linha kern_securelevel no arquivo /etc/rc.conf e ajuste seu valor para -1, depois reinicie o FreeBSD. Esta congurao pode ser feita antes do incio da congurao do novo kernel. Se voc quizer assegurar seu kernel e trava-lo em algum local, de forma que seu kernel funcional no possa ser modicado ou alterado, faa o seguinte:
# chflags schg /kernel

No FreeBSD 5.X, o kernel no instalado em uma regio da memria que no pode ser modicado, de forma que este problema especcamente, seja improvvel como causa das diculdades que voc est tendo.

O kernel funciona, mas o ps(1) no funciona mais: Se voc instalou uma verso do kernel diferente da verso dos uitilitrios do sistema, por exemplo, um kernel 4.X em um sistema 3.X, vrios comandos de estatsticas do sistema como ps(1) e vmstat(8) no no funcionaro mais. A biblioteca libkvm deve ser recompilada, bem como estes utilitrios todos. por essa razo que normalmente no uma boa idia usar um kernel de verso diferente de todo o resto do sistema operacional.

Notas
1. O algoritmo de ajuste automtico do maxuser dene o valor igual a quantidade de memria do sistema, respeitando o valor mnimo de 32, e o mximo de 384.

227

Você também pode gostar