Documente Academic
Documente Profesional
Documente Cultură
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.
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
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.
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.
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
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
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).
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.
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.
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
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.
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
Um CDROM ou DVD Uma partio DOS no mesmo computador Fita SCSI ou QIC Disquetes
Rede
13
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.
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.
15
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
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.
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
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
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
23
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
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.
25
Captulo 2. Instalando FreeBSD Figura 2-8. Selecionando a opo Usage do menu do Sysinstall
26
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.
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
28
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.
29
30
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.
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.
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
A tela de ajuda oferecida ao pressionar F1, oferece algumas informaes sobre os problemas implcitos no compartilhamento de discos rgidos entre mltiplos sistemas operacionais.
35
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.
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
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
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
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
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.
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!
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
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
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
43
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
Se estiver satisfeito com as opes, selecione a opo Exit com as setas, garanta que [ OK ] est destacado, e aperte Enter para continuar.
45
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
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.
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
48
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.
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.
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
Ao escolher [ Yes ] voc poder adicionar servios que sero automaticamente iniciados, apagando os caracteres # ao incio de cada linha.
51
Aps adicionar os servios desejados, aperte Esc para visualizar um novo menu que permite sair do editor e salvar as modicaes.
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
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.
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 ]
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
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]
57
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
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
59
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
60
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
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.
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
62
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
63
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
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.
65
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
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
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.
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
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
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
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
1 2 3 4 5 6
U.S. English U.S. English w/ ISO9995-3 U.S. English w/ deadkeys Albanian Arabic Armenian
72
Enter a number to choose the country. Press enter for the next page 1
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
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
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
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
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.
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
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.
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.
79
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
Selecione [ Yes ] e aperte Enter para continuar com a adio de usurio. Figura 2-61. Escolha User
82
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.
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 :
84
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.
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
87
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:
>>> >>> >>> >>>
88
Captulo 2. Instalando FreeBSD As mensagens de inicializao sero similares (mas no idnticas) aquelas produzidas pelo processo de boot no FreeBSD em i386.
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.
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.
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.
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.
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).
91
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!
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.
Este diretrio normalmente ter as seguintes imagens: Tabela 2-5. Nomes e signicados das imagens ISO do FreeBSD Nome do arquivo
verso-mini.iso
93
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.
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.
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
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.
95
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.
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.
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
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.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
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.
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
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
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
512 Sep 5 12:31 myfile 512 Sep 5 12:31 otherfile 7680 Sep 5 12:31 email.txt
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
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
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.
104
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
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
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
Root /
A1/
A2/
B1/
B2/
C1/
C2/
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.
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
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
!"
#$
$%& ')(+*
,-/.
4"5)
)
"+ 6 7$8$
2$:9; !
#$
%3" 4 "5)
)
"=< 71
>$-?@A !
#$
%3< 4"5)
)
"+ 6 78$
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"
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.
device
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.
113
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
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.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
TT p0 p0 p0 p0 p0 p0
STAT Ss S I S IW R+
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
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.
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
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
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
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
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.
120
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.
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.
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
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 *
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
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.
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.
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
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.
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.
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/
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
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
= =
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.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
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
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.
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
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
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
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
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 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.
===>
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.
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.
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
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.
139
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).
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.
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.
141
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
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.
As especicaes do monitor
143
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.
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
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"
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/"
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.
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
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.
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
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.
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.
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.
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
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.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
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
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.
Em um terminal, como root, edite o arquivo /usr/X11R6/lib/X11/xdm/Xsession. H uma seo no meio como isso:
156
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
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
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
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.
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).
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
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.
162
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.
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.
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.
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.
165
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
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
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).
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.
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.
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.
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).
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
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
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.
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
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). #
Por exemplo:
10.0.0.1 meuHostnameReal.exemplo.com meuHostnamereal foobar1 foobar2
173
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
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)
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
kern.maxproc: 1044
Conguraes de variveis do sysctl geralmente so strings, nmeros ou boleanos (sendo um boleano 1 para sim ou 0 para no).
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.
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.
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.
180
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).
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.
182
2. crie um vn-device:
# cd /dev # sh MAKEDEV vn0
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"
183
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).
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.
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
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.
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.
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.
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:
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
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 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
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
durante a inicializao o kernel, pede para o dispositivo para montar um arquivo de sistema do root.
-C
boot do CDROM.
-c
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"
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.
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).
192
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.
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
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.
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
se tornar cada vez mais provilegiado, se muitos servios utilizarem este usurio como padro.
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
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.
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
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
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.
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
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.
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
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.
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.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
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
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.
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
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.
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
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.
2.
Compilando o kernel.
# make buildkernel KERNCONF=MYKERNEL
3.
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
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
# 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 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
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
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 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
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.
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
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
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
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
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?
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
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
irq 10 port 0x3e0 iomem 0xd0000 irq 11 port 0x3e2 iomem 0xd4000 disable
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.
at isa?
irq 7
220
device
plip
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)
221
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
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
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
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.
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
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.
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
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