Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 The FreeBSD Documentation Project
Bem vindo ao FreeBSD! Este handbook aborda a instalação e o uso diário do FreeBSD 5.5-RELEASE e do FreeBSD 6.2-RELEASE. Este manual é um trabalho em andamento e é o resultado do trabalho de muitos indivíduos. Muitas sessões ainda não existem e algumas das que existem precisam ser atualizadas. Se você está interessado em ajudar com este projeto, envie um email para lista de discussão do projeto de documentação do FreeBSD. A ultima versão deste documento está sempre disponivel no web site do projeto FreeBSD. Ele também pode ser obtido em uma grande variedade de formatos e opções de compactação apartir do Servidor de FTP do projeto FreeBSD, ou em um dos numerosos sites espelhos. Se você preferir ter uma cópia impressa deste handbook, você pode comprar uma na FreeBSD Mall. Você também pode querer fazer uma busca no conteudo do handbook.
Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.
Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Importante: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FreeBSD is a registered trademark of the FreeBSD Foundation.
3Com and HomeConnect are registered trademarks of 3Com Corporation.
3ware and Escalade are registered trademarks of 3ware Inc.
ARM is a registered trademark of ARM Limited.
Adaptec is a registered trademark of Adaptec, Inc.
Adobe, Acrobat, Acrobat Reader, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries.
Corel and WordPerfect are trademarks or registered trademarks of Corel Corporation and/or its subsidiaries in Canada, the United States and/or other countries.
Sound Blaster is a trademark of Creative Technology Ltd. in the United States and/or other countries.
Heidelberg, Helvetica, Palatino, and Times Roman are either registered trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and other countries.
IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.
IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.
Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Intuit and Quicken are registered trademarks and/or registered service marks of Intuit Inc., or one of its subsidiaries, in the United States and other countries.
Linux is a registered trademark of Linus Torvalds.
LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or registered trademarks of LSI Logic Corp.
M-Systems and DiskOnChip are trademarks or registered trademarks of M-Systems Flash Disk Pioneers, Ltd.
Macromedia, Flash, and Shockwave are trademarks or registered trademarks of Macromedia, Inc. in the United States and/or other countries.
Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries.
Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries.
Oracle is a registered trademark of Oracle Corporation.
PowerQuest and PartitionMagic are registered trademarks of PowerQuest Corporation in the United States and/or other countries.
RealNetworks, RealPlayer, and RealAudio are the registered trademarks of RealNetworks, Inc.
Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries.
SAP, R/3, and mySAP are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world.
Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Symantec and Ghost are registered trademarks of Symantec Corporation in the United States and other countries.
MATLAB is a registered trademark of The MathWorks, Inc.
SpeedTouch is a trademark of Thomson.
U.S. Robotics and Sportster are registered trademarks of U.S. Robotics Corporation.
VMware is a trademark of VMware, Inc.
Waterloo Maple and Maple are trademarks or registered trademarks of Waterloo Maple Inc.
Mathematica is a registered trademark of Wolfram Research, Inc.
XFree86 is a trademark of The XFree86 Project, Inc.
Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the " or the ® symbol.
O recém chegado ao FreeBSD encontrará que a primeira seção deste livro guia o usuário com o processo da instalação de FreeBSD e introduz delicadamente os conceitos e as convenções do UNIX®. Trabalhar através desta seção requer pouco mais do que o desejo explorar, e a habilidade de acoplar novos conceitos como são introduzidos.
Uma vez que você viajou esta distância, a segunda, de longe a maior, seção do handbook é uma referência detalhada dos tópicos do interesse aos administradores de sistema do FreeBSD. Alguns destes capítulos podem recomendar que você faça alguma leitura prévia, e isto é anotado na sinópse no começo de cada capítulo.
Para uma lista de fontes adicionais de informação, veja por favor Apêndice B.
Esta segunda edição é a culminação de dois anos de trabalho dos membros dedicados do projeto de documentação do FreeBSD. As principais mudanças desta nova edição estão a seguir:
Um índice completo foi adicionado.
Todas as figuras ASCII foram substituídas por diagramas gráficos.
Uma sinopse padrão foi adicionada a cada capítulo para dar um rápido sumário de que informação o capítulo contém, e o que o leitor espera saber.
O conteúdo foi reorganizado logicamente em três partes: Começando a usar, Administração do Sistema, e Apêndices.
Capítulo 2 (Instalando o FreeBSD) foi completamente reescrito com muitos screenshots para fazê-lo muito mais fácil para novos usuários compreender o texto.
Capítulo 3 (UNIX básico) foi expandido para conter informações adicionais sobre processos, daemons e sinais.
Capítulo 4 (Instalando Aplicações) foi expandido para conter informações adicionais sobre o gerênciamento de pacote binário.
Capítulo 5 (O X Window System) foi completamente reescrito com uma ênfase em uso de modernas tecnologias desktop como o KDE e GNOME no XFree86" 4.X.
Capítulo 7 (O Processo de inicialização do FreeBSD) foi expandido.
Capítulo 12 (Armazenamento) foi escrito para ser dois capítulos separados em Discos e Backups. Nós sentimos que os tópicos são mais fáceis de se compreender quando apresentados como um único capítulo. Uma seção sobre RAID (ambos hardware e software) foi adicionado também.
Capítulo 17 (Comunicações Seriais) foi completamente reorganizada e atualizada para o FreeBSD 4.X/5.X.
Capítulo 18 (PPP e SLIP) foi substancialmente atuaçizado.
Muitas seções novas foram adicionadas ao Capítulo 19 (Rede avançada).
Capítulo 20 (Correio Eletrônico) foi expandido para incluir mais informações sobre configurando o sendmail.
Capítulo 22 (Compatibilidade Binária Linux) foi expandido para incluir informação sobre instalando o Oracle® e SAP® R/3®.
Os seguintes tópicos novos são cobertos nesta segunda edição:
Configuração e Ajuste (Capítulo 6).
Multimedia (Capítulo 16)
Este livro é dividido em três seções logicamente distintas. A primeira seção, Começando a usar, cobre a instalação e o uso básico do FreeBSD. Espera-se que o leitor seguirá estes capítulos em sequência, possivelmente saltando capítulos que cobrem tópicos familiares. A segunda seção, Administração do Sistema, cobre uma broad coleção dos assuntos que são do interesse para usuários mais avançados do FreeBSD. Cada seção começa com uma sinópse suscinta que descreve o que o capítulo cobre e que o leitor espera já saber. Isto é significa permitir ao leitor ocasionalmente pular capítulos para encontrar os de seus interesse. A terceira seção contém apêndices de informações referênciais.
Introduz o FreeBSD ao novo usuário. Descreve a história do Projeto FreeBSD, seus objetivos e modelo de desenvolvimento.
Caminha um usuário através do processo inteiro de instalação. Alguns tópicos avançados da instalação, como instalação através de um console serial, são cobertos também.
Cobre os comandos e as funcionalidades básicos do sistema operacionl FreeBSD. Se você for familiar com o Linux ou outro sabor do UNIX então você pode provavelmente saltar este capítulo.
Cobre a instalação de software de terceiros com ambas inovações do FreeBSD, a Coleção de Ports e pacotes binários padrão.
Descreve o sistema de janelas X em geral e o uso do XFree86 no FreeBSD em particular. Tambem descreve ambientes comuns de desktop comoKDE e GNOME.
Descreve os parâmetros disponíveis para os adminitradores de sistema ajustar um sistema FreeBSD para uma ótima performace. Descreve também os vários arquivos de configuração usados no FreeBSD e onde encontrá-los.
Descreve o processo de inicialização do FreeBSD e explica como controlar este processo com as opções de configuração.
Descreve a crição e manipulação de contas de usuários. Discute também limitações de recursos que podem ser ajustados nos usuários e em outras tarefas de gerenciamento de contas.
Explica porque você pode precisar configurar um novo kernel e fornece instruções detalhadas para configuração, construção, e instalação de um kernel customizado.
Descreve diferentes tipos de ferramentas disponíveis para ajudar a manter seu sistema FreeBSD seguro, incluíndo Kerberos, IPsec, OpenSSH, e firewalls de rede.
Descreve o gerenciamento de impressoras no FreeBSD, incluindo informação sobre páginas de banner, contas de impressão, e configuração inicial.
Descreve como gerenciar meios de armazenamento e sistema de arquivos com o FreeBSD. Iste inclui discos físicos, RAID arrays, mídia óptica e fita, discos de memória-backed, e sistema de arquivos de rede.
Descreve como usar o Vinum, um gerenciador logico de volume que fornece discos lógicos de dispositivos independentes, e software RAID-0, RAID-1 e RAID-5.
Descreve como usar o FreeBSD em outras línguas que não seja o Inglês. Cobre ambos sistemas e localização a nível de aplicações.
Lista algumas das aplicações comuns de desktop como navegadores web e suites de produtividade, e descreve como instalá-los no FreeBSD.
Mostra como configurar o suporte a playback de som e vídeo para seu sistema. Também descreve alguns exemplos de aplicações de áudio e vídeo.
Explica como conectar terminais e modems ao seu sistema FreeBSD para ambas conexões dial in e dial out.
Descreve como usar PPP, SLIP, ou PPP over Ethernet para conectar a sistemas remotos com o FreeBSD.
Descreve muitos tópicos de rede, incluindo compartilhamento em uma conexão de Internet com outros computadores em sua LAN, usando network filesystems, compartilhando informações de contas via NIS, configurando um servidor de nomes, e muito mais.
Explica os componentes diferentes de um servidor de email e entra em tópicos simples de configuração para o mais popular software de servidor de mail: o sendmail.
Explica as diferenças entre FreeBSD-STABLE, FreeBSD-CURRENT, e FreeBSD releases. Descreve que usuários beneficiarão seguindo um sistema de desenvolvimento e os esboços do processo.
Descreve as caracteristicas da compatibilidade com Linux do FreeBSD. Fornece também instruções de instalação detalhadas para muitas aplicações populares de Linux como Oracle, SAP R/3, and Mathematica®.
Lista fontes diferentes para obtenção da midia do FreeBSD em CDROM ou DVD tão bem como diferentes sites na Internet que permitem você obter e instalar o FreeBSD.
Este livro toca em muitos assuntos diferentes que pode deixar você com vontade de uma explicação mais detalhada. As listas bibliografias de muitos livros excelentes que são referenciados no texto.
Descreve muitos forums disponíveis para usuários do FreeBSD enviar perguntas e acoplam em conversações técnicas sobre o FreeBSD.
Listas das PGP fingerprints dos diversos Desenvolvedores do FreeBSD.
Para fornecer um texto consistente e fácil de ler, diversos convenções são seguidas durante todo o livro.
Uma fonte itálico é usada para nome de arquivos, URLs, texto enfatizado, e o primeiro uso de termos técnicos.
Mono espaçoUma fonte mono espaçadaé usada para mensagens de erro,
comandos, variáveis de ambiente, nomes de ports, hostnames, nome de usuários, nomes de
grupos, nomes de dispositivos, variavéis, e fragmentos de códigos.
Uma fonte bold é usada para aplicações, comandos, e teclas.
Teclas são apresentadas em bold para destacar-se de outros textos. Combinações de teclas, que significa serem digitadas simultaneamente são apresentadas com `+' entre as teclas, como:
Ctrl+Alt+Del
Significa que o usuÁrio deve digitar as teclas Ctrl, Alt,e Del ao mesmo tempo.
Teclas para ser digitados em sequência estarão separadas com virgulas, por exemplo:
Ctrl+X, Ctrl+S
Significaria que o usuário se espera digitar as teclas Ctrl e X simultaneamentes e então digite as teclas Ctrl e S simultaneamentes.
Exemplos que começam com E:\> indica um comando MS-DOS®. A menos que notado de outra maneira, estes comandos podem ser executados de uma janela de Prompt de comando em um moderno ambiente Microsoft® Windows®.
E:\> tools\fdimage floppies\kern.flp A:
Exemplos que começam com # indicam que o comando deve ser invocado como o superusuário no FreeBSD. Você pode logar como root para digitar o comando, ou logar como sua conta normal e usar su(1) para obter privilégios de superusuário.
# dd if=kern.flp of=/dev/fd0
Exemplos que começam com % indicam um comando que deve ser invocado de uma conta de usuário normal. A menos que notado de outra maneira, a sintaxe C-shell é usada para ajustar variáveis de ambiente e outros comandos shell.
% top
O livro que você está segurando representa os esforços de muitas centenas de pessoas em todo o mundo. Se enviaram reparos para erros de ortografia, ou submeteram capítulos completos, todas as contribuições foram úteis.
Diversas companhias suportaram o desenvolvimento deste documento pagando autores para trabalhar em tempo integral nele, pagando por publicação, etc. Em particular, a BSDi (adquirida subseqüentemente pela Wind River Systems) pagou membros do Projeto de Documentação para trabalhar em melhorias deste livro em tempo integral que conduziu à publicação da primeira edição impressa em Março de 2000 (ISBN 1-57176-241-8). A Wind River Systems então pagou diversos autores adicionais para fazer um número de melhorias a infraestrutura de saída para impressão e para adiconar capítulos adicionais ao texto. Este trabalho culminou na publicação da segunda edição impressa em Novembro de 2001 (ISBN 1-57176-303-1).
Esta parte do handbook é destinada aos usuários e administradores que são iniciantes no FreeBSD. Estes capítulos:
Introduzem você ao FreeBSD.
Guiam você através do processo de instalação.
Ensinam UNIX básico e os seus fundamentos.
Mostra como instalar de forma segura as aplicações de terceiros disponíveis para o FreeBSD.
Introduzem você ao X, o ambiente gráfico do UNIX, e detalha como configurar um ambiente desktop para que você se torne mais produtivo.
Nós tentamos manter o número de referências à informações a serem abordadas nas sessões futuras ao mínimo, de modo que você pudesse ler esta seção do manual do começo ao final, sem ter que ficar indo e voltando nas páginas.
Muito obrigado por seu interesse no FreeBSD! O capítulo a seguir cobre o Projeto FreeBSD em vários aspectos, como sua história, objetivos, modelo de desenvolvimento e outros.
Após a leitura deste capítulo, você saberá:
Como FreeBSD se compara a outros sistemas operacionais de computadores.
A história 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.
FreeBSD é um sistema operacional baseado no 4.4BSD-Lite para computadores Intel ( x86 ), DEC Alpha", e Sun UltraSPARC®. Versões para outras arquiteturas também estão a caminho. Você também pode ler sobre a história do FreeBSD, ou a versão corrente. Se estiver interessando em contribuir com o projeto (código, equipamento, contas diversas), veja o artigo Contribuindo com o FreeBSD.
FreeBSD tem muitas características valiosas. Algumas destas são:
Multitarefa preemptiva com ajustes dinâmicos de prioridade que garantem compartilhamento claro e racional do computador entre as aplicações e usuários, mesmo sob a mais intensa demanda.
Caracteristicas multi-usuário que permite várias pessoas utilizarem um sistema FreeBSD de forma simultânea, para uma variedade de coisas. Isto implica, por exemplo, que os periféricos do sistema como impressoras e dispositivos de fita serão apropriadamente compartilhados entre todos usuários no sistema ou na rede, e que limites individuais possam ser definidos para usuários e grupos de usuários, protegendo recursos críticos do sistema de sobrecarga.
Forte rede TCP/IP com suporte a padrões industriais como SLIP, PPP, NFS, DHCP e NIS. Isto significa que sua estação FreeBSD pode interagir fácilmente com outros sistemas da mesma forma que pode agir como um servidor corporativo, oferecendo funções vitais como NFS (acesso remoto à arquivos) e serviços de correio eletrônico, ou então colocando sua empresa na Internet com serviços de WWW, FTP, roteamento e firewall (segurança).
Proteção de memória garante que aplicaçòes (ou usuários) não interferirão entre sí. A falha de uma aplicação não 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 princípio.
O sistema de interface gráfica, X Window System (X11R6) padrão industrial provê uma interface gráfica com o usuário (GUI) ao custo de uma placa VGA comum e um monitor, e ainda vem com código fonte completo.
Compatibilidade binária com quaisquer programas compilados para Linux, SCO, SVR4, BSDI and NetBSD.
Milhares de aplicações prontas para imediata utilização (ready-to-run) estão disponíveis a partir da coleção de ports e packages do FreeBSD. Por quê procurar na rede quando é possível encontrar tudo bem aqui?
Milhares de aplicações adicionais e de fácil portabilidade estão disponíveis na Internet. FreeBSD tem código fonte compatível com a maioria dos sistemas UNIX comerciais mais populares, e devido a isto a maioria das aplicações requerem pouca, ou nenhuma modificação para compilar corretamente.
Memória virtual paginada por demanda e uma concepção eficiente ( Merged VM/buffer cache ) que satisfaz a necessidade de recursos de aplicações com grande apetite para memória, ao mesmo tempo que mantém resposta interativa aos outros usuários.
Suporte SMP para máquinas com múltiplas CPUs.
Conjunto completo de ferramentas de desenvolvimento em linguagem C, C++, Fortran, e Perl. Muitas linguagens adicionais para pesquisa e desenvolvimento avançado também estão disponíveis na coleção de ports e packages.
Código fonte disponível para todo o sistema significa que você tem o nível mais completo de controle sobre seu ambiente. Por quê manter-se preso à soluções proprietárias e à mercê do vendedor quando se pode ter um sistema verdadeiramente aberto?
Extensa documentação online.
E muito mais!
FreeBSD é baseado a versão 4.4BSD-Lite do Grupo de Pesquisa em Sistemas Computacionais (CSRG) da Universidade da Califórnia, Berkeley, e carrega consigo a distinta tradição do desenvolvimento de sistemas BSD. Em adição ao aprimorado trabalho realizado pelo CSRG, o projeto FreeBSD acrescentou ainda muitos milhares de horas no aperfeiçoamento do sistema para máxima performance e confiabilidade em situações de demanda da vida real. Enquanto muitos dos gigantes comerciais se esforçam no campo dos sistemas operacionais para PC afim de oferecer tais funcionalidades com performance e confiabilidade, o FreeBSD os oferece agora!
As aplicações para as quais o FreeBSD pode ser utilizado só estão limitadas por sua própria imaginação. Do desenvolvimento de software à automação indústrial, controle de inventário à correção remota da orientação de antenas de satélite; se pode ser feito com um produto UNIX comercial, é muito provável que possa ser feito com FreeBSD também! FreeBSD também se beneficia de forma significante de literalmente milhares de aplicações de alta qualidade desenvolvidas por centros de pesquisa e universidades ao redor do mundo, usualmente disponíveis à baixo ou nenhum custo. Aplicações comerciais também estão disponíveis e surgindo em grande número a cada dia.
Pelo fato do código fonte para o FreeBSD estar geralmente disponível, o sistema pode também ser customizado á um grau incrível para aplicações ou projetos especiais, e de formas geralmente não viáveis com sistemas operacionais dos principais vendedores comerciais. Aqui está apenas uma amostra das aplicações onde o FreeBSD está sendo utilizado:
Serviços Internet: A infra-estrutura robusta de rede TCP/IP criada no FreeBSD torna-o plataforma ideal para uma variedade de serviços Internet tais como:
servidores FTP
servidores Web ( padrão ou seguro [SSL] )
Servidores de interligação de redes ( gateway ), firewall e NAT ( Substituição de IPs).
Servidores de Correio Eletrônico
Grupo de notícias USENET ou sistemas de BBS
E mais...
Com FreeBSD, você pode fácilmente começar 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.
Educação: Você é estudante de ciências computacionais ou algum campo relacionado à engenharia ? Não há melhor maneira para aprender sobre sistema operacionais, arquitetura de computadores ou redes do que colocando a mão na massa, a partir da base de experiência que o FreeBSD pode oferecer. Uma série de aplicações CAD grauitamente disponíveis, pacotes de projeto e desenho gráfico e de matemática tornam o sistema altamente útil também para aqueles cujo interesse primário em um computador é realizar outras tarefas de forma prática !
Pesquisa: Com código fonte do sistema inteiro disponível, o FreeBSD é uma plataforma excelente para pesquisa em sistema operacionais bem como outros vários ramos de ciências computacionais. A natureza livre do FreeBSD também possibilita que grupos remotos colaborem mútuamente entre sí com idéias ou desenvolvimento compartilhado sem a necessidade de se preocupar com acordos especiais de licenciamento ou limitações do que pode ser discutido em um fórum aberto.
Rede: Precisa de um novo roteador ? Um novo servidor de nomes (DNS) ? Um firewall para manter outras pessoas fora da sua rede interna ? O FreeBSD pode fácilmente tornar aquele PC 386 ou 486 parado em um canto qualquer, em um avançado roteador com sofisticada capacidade de filtragem de pacotes.
Estação de trabalho gráfica: FreeBSD é uma boa escolha para solução de um terminal gráfico de baixo custo, seja utilizando o servidor XFree86 (disponível livremente) ou um dos excelentes servidores comerciais oferecidos pela Xi Graphics. Diferente de um terminal X, o FreeBSD possibilita que várias aplicações possam ser executadas localmente, se desejado, desta forma aliviando a carga de um servidor central. FreeBSD pode até mesmo ser inicializado sem depender da existência de uma unidade de disco local (diskless), tornando estações de trabalho ainda mais baratas e mais fáceis de administrar.
Desenvolvimento de Software: Um sistema FreeBSD básico vem com um conjunto completo de ferramentas de desenvolvimento, incluindo o renomado compilador e depurador C/C++ GNU.
FreeBSD está disponível tanto em código fonte quando de forma binária em CDROM, DVD, e por meio de FTP anônimo. Refira-se ao Apêndice A para mais informaçòes sobre como obter o FreeBSD.
FreeBSD é utilizado para servir alguns dos maiores sítios da Internet, incluindo:
e muito mais.
A seção a seguir oferece algumas informações básicas sobre projeto, incluindo uma breve história, seus objetivos e seu modelo de desenvolvimento.
O projeto FreeBSD teve seu nascimento no início de 1993, em parte como uma consequência do conjunto de manutenção não-oficial do 386BSD (Unofficial 386BSD Patchkit) pelos seus 3 últimos coordenadores : Nate Williams, Rod Grimes e eu.
Nosso objetivo original era produzir um snapshot intermediário do 386BSD, de forma a poder corrigir uma série de problemas com este sistema, que o mecanismo de manutenção não era capaz de resolver. Alguns se lembrarão do nome nome inicial do projeto que era 386BSD 0.5 ou 386BSD Interim em referência a este fato.
386BSD era o sistema operacional de Bill Jolitz, que já estava naquele instante sofrendo quase um ano de negligência. Como o mecanismo de manutenção patchkit se tornava mais e mais desconfortável a cada dia que passava, fomos unânimes em decidir que algo tinha que ser feito e decidimos ajudar Bill oferecendo a ele este snapshot interim. Tais planos foram bruscamente interrompidos quando Bill Jollitz repentinamento decidiu retirar sua sanção ao projeto sem nenhuma indicação clara do que deveria ser feito.
Não levou muito para decidirmos que o objetivo continuava a valer a pena, mesmo sem a ajuda de Bill, e então adotamos o nome FreeBSD, sugerido por David Greenman. Nossos objetivos iniciais foram definidos depois de consultar os usuários recentes do sistema e, uma vez estando claro que o projeto estava na estrada para, talvez, tornar-se uma realidade, entrei em contato com a Walnut Creek CDROM, com o olho aberto á possibilidade de aperfeiçoar os canais de distribuição do FreeBSD para as pessoas que não tinham acesso à Internet. Walnut Creek CDROM não apenas aprovou a idéia de distribuir o FreeBSD em CD, mas também foi mais longe, ao ponto de oferecer ao projeto uma máquina para trabalho dedicado e uma conexão rápida com a Internet. Sem esta confiança, sem precedentes, da Walnut Creek CDROM no que era, naquele momento, um projeto completamente desconhecido, é muito provável que o FreeBSD não tivesse chegado tão longe e tão rápido ao ponto em que está hoje.
A primeira distribuição em CDROM (e na Internet em geral) foi o FreeBSD 1.0, lançado em Dezembro de 1993. Era baseado na fita 4.3BSD-Lite (Net/2) da Universidade da Califórnia, Berkeley (U.C. Berkeley), com muitos componentes originados do 386BSD e da Fundação do Softare Livre (Free Software Foundation). Foi um sucesso razoávelmente grande para uma primeira aparição, e nós continuamos o ciclo com uma versão altamente bem sucedida, o FreeBSD 1.1 release de Maio de 1994.
Por volta desta época, algumas núvens de tempestade inesperadas começaram a se formar no horizonte, conforme a Novell e U.C. Berkeley acertaram ao longo do processo penal entre ambas, a respeito da situação legal da fita contendo o Net/2 de Berkeley. Uma das condições do acordo eram as concessões da U.C. Berkeley que implicava que grandes trechos do Net/2 fossem códigos impedidos e de propriedade da Novell, que havia por sua vez adquirido-os da AT&T algum tempo antes. O que Berkeley recebeu em retribuição foi a benção da Novell para o lançamento da versão 4.4BSD-Lite, que quando acontecesse, seria declarado como impedido e todos os usuários do Net/2 seriam fortemente encorajados a mudar de sistema para a nova versão. Isso incluiu o FreeBSD, ao projeto foi dado o prazo final de Julho de 1994 para parar de distribuir seu produto baseado na versão Net/2. Sob tais termos de acordo, o projeto poderia lançar uma última versão antes do prazo em questão, o que originou o FreeBSD 1.1.5.1.
O FreeBSD definiu então a árdua tarefa de literalmente se reinventar à partir de um sistema completamente novo e consideravelmente incompleto, o 4.4BSD-Lite. As versões Lite continham grandes blocos de código a menos, removidos pelo CSRG de Berkeley (devido a várias decisões legais), códigos necessários para a construção de um sistema inicializável e que podia ser utilizado em produção e o fato é, que a conversão do 4.4 para a plataforma Intel era altamente incompleta. O projeto levou até Novembro de 1994 para concluir esta transição, quando lançou a versão 2.0 do FreeBSD na rede mundial e em CDROM ( em Dezembro ). Apesar de um pouco bruta naquele instante, a versão teve um sucesso significante, e foi seguida pelo FreeBSD 2.0.5, mais robusto e de mais fácil instalação, em Junho de 1995.
Lançamos 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 justificar a viabilidade de outra versão no ramo 2.1-STABLE. Esta versão foi o FreeBSD 2.1.7.1, lançado em Fevereiro de 1997, que marcou o término do desenvolvimento mainstream do 2.1-STABLE. Agora em manutenção, apenas aperfeiçoamentos de segurança e outras correções críticas são realizadas neste ramo (RELENG_2_1_0).
O ramo 2.2 do FreeBSD foi iniciado a partir da série parcial de desenvolvimento (-CURRENT) em Novembro de 1996, foi intitulado ramo RELENG_2_2, e a primeira versão completa (2.2.1) foi lançada em Abril de 1997. Versões posteriores ao longo do ramo 2.2 foram criadas no verão e outono de 1998, sendo a última delas (2.2.8) lançada em Novembro de 1998, marcando o início do fim do ramo 2.2.
A árvore foi ramificada 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 versão 3.1 foi lançada, em 15 de Fevereiro de 1999; a versão 3.2 foi lançada em 15 de Maio de 1999; a 3.3 em 16 de Setembro de 1999; a versão 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 atualização de segurança, o 3.5.1, que incorporava algumas correções de segurança de última hora para o Kerberos. Esta se tornou a versão final para o ramo 3.X.
Outro ramo foi iniciado em 13 de Março de 2000, de forma emergencial na metade do ramo 4.X-STABLE, considerado agora o ramo -stable corrente. Posteriormente houveram várias versões desta série: 4.0-RELEASE foi apresentado ao mundo em Março de 2000, e a versão mais recente, 5.5-RELEASE surgiu em May 2006. Existirão versões adicionais ao longo do ramo 4.X-STABLE (RELENG_4) ainda em 2003.
A versão 5.0-RELEASE, muito aguardada, foi anunciada em 19 de Janeiro de 2003. O resultado culminante de aproximadamente três anos de trabalho, esta versão colocou o FreeBSD no caminho do suporte avançado a multiprocessamento simétrico, suporte avançado a aplicações multithread e apresentou ao público suporte às plataformas UltraSPARC e ia64. Esta versão foi seguida pela 5.1 em Junho de 2003. Além de um número muito grande de novas funcionalidades, as versões 5.X do FreeBSD contem ainda uma série de trechos em desenvolvimento em todas as arquiteturas de sistemas relacionadas. Por tal razão, as versões 5.X são consideradas versões de Nova Tecnologia, enquanto a série 4.X atua como versões de Produção. No momento apropriado, a série 5.X será declarada estável e o trabalho mais recente será destinado ao próximo 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 versões SNAPshot da série em CDROM (e lógico, na rede) estão contínuamento sendo disponibilizados à partir do servidor de snapshots e apresentado como o trabalho em progresso.
Os objetivos do Projeto FreeBSD são de oferecer software que pode ser utilizado para qualquer propósito, sem restrições impeditivas. Muitos de nós investimos significantemente no código (e no projeto) e certamente não seria uma surpresa se de vez em quando recebessemos uma pequena compensação financeira, mas definitivamente não insistimos nisso. Acreditamos que nossa primeira e principal missão é oferecer código para qualquer usuário, e para qualquer propósito, de forma que o código em questão chegue o mais longe que puder e que traga os maiores benefícios que forem possíveis. Este é, acreditamos, um dos principais fundamentos do projeto e do Software Livre, e um dos quais nós apoiamos de forma entusiasmada.
O código em nossa árvore fonte sob a Licença Pública Geral GNU (GPL) ou Licença Pública Menos Geral GNU (LGPL) contém consideravelmente mais restrições impeditivas, contudo, felizmente mais pelo lado de forçar o acesso irrestrito ao código do que o oposto tradicional. Devido às complexidades adicionais que podem envolver o uso comercial de software GPL, nós temos preferência pelos programas lançados sob a licença de direito autoral BSD sempre que possível, por ser uma licença consideravelmente mais flexível.
O desenvolvimento do FreeBSD é um processo muito aberto e flexível, literalmente composto pela contribuição de centenas de pessoas ao redor do mundo, como pode ser visto em nossa lista de contribuidores. A infraestrutura de desenvolvimento do FreeBSD permite que estas centenas de desenvolvedores colaborem mutuamente pela Internet. Estamos constantemente à procura de novos desenvolvedores e novas idéias, e aqueles dispostos a se tornarem mais envolvidos com o projeto precisam apenas nos contatar através da lista lista de discussões técnicas FreeBSD (hackers). A lista lista de discussão dos anúncios FreeBSD também está disponível aos que querem ficar mais informados sobre as principais áreas de trabalho do projeto FreeBSD.
Informações úteis de se conhecer sobre o projeto FreeBSD e seu processo de desenvolvimento, seja trabalhando de forma independente ou em cooperação mútua:
A árvore de fontes central do FreeBSD é mantida pelo CVS (Sistema de Versões Concorrentes), uma ferramenta de controle de código fonte disponível gratuitamente, e que vem junto com o FreeBSD. O repositório CVS primário está localizado em Santa Clara, Califórnia, nos EUA, onde ele é replicado em várias máquinas espelho espalhadas ao redor do mundo. A árvore CVS, que contém os ramos -CURRENT e -STABLE, podem ser completamente replicadas, de forma extremamente fácil, à sua própria máquina local. Refira-se à seção Sincronizando seu código fonte para obter mais informações sobre isso.
Os committers são as pessoas que tem acesso de escrita na árvore CVS, e tem autorização para realizar modificações diretas na árvore fonte do FreeBSD (o termo committer se origina no comando commit do cvs(1), que é utilizado para incluir novas mudanças no repositório CVS). Ou seja, os committers são os desenvolvedores do FreeBSD. A melhor maneira de submeter modificações/contribuições para revisão dos 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 discussão de FreeBSD committers.
O FreeBSD core team seria equivalente ao corpo de diretores, se o Projeto FreeBSD fosse uma empresa. A tarefa primária do core team é garantir que o projeto, de forma geral, esteja em boa forma e caminhando nas direções corretas, bem como o recrutamento de novos membros para o core team conforme outros vão 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. Eleições para o core team acontecem a cada 2 anos.
Alguns membros do core team tem ainda áreas específicas de responsabilidade no projeto, o que significa que eles são responsáveis 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.
Nota: A maioria dos membros do core team são voluntários no desenvolvimento do FreeBSD, e não se beneficiam financeiramente do projeto, de forma que desenvolvimento não pode ser confundido com suporte garantido por parte destes. A analogia com o corpo de diretores feita acima não é muito precisa, melhor seria dizermos que estas são as pessoas que desistiram de suas vidas em favor do FreeBSD.
Por último, mas definitivamente não em último, o maior grupo de desenvolvedores são os próprios usuários do sistema, que oferecem retorno e correções 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 discussões técnicas FreeBSD (hackers) onde tais assuntos são discutidos. Veja Apêndice C para obter mais informações sobre as inúmeras listas de discussão do projeto FreeBSD.
A Lista de contribuidores do FreeBSD é grande e está em constante crescimento, então por que você não entra nessa lista hoje, contribuindo com alguma coisa para o projeto FreeBSD?
Oferecer código não é a única maneira de contribuir com o projeto; para uma lista mais completa do que precisa ser feito, por gentileza, refira-se ao sítio WWW do Projeto FreeBSD.
Em resumo, nosso modelo de desenvolvimento é um conjunto de circulos concêntricos. O modelo centralizado é projetado com o objetivo de oferecer conveniência aos usuários do FreeBSD, que são agraciados com um modelo simples para acompanhar uma base centralizada de códigos, e não para afastar contribuidores em potencial ! Nosso desejo é apresentar um sistema operacional estável com um amplo e coerente conjunto de programas aplicativos que os usuários podem instalar e utilizar de forma fácil. O modelo atual funciona muito bem na realização deste objetivo.
Tudo que pedimos aos que desejam se juntar a nós como desenvolvedores FreeBSD, é um pouco da mesma dedicação que os membros atuais tem, pra prover o contínuo sucesso do projeto!
FreeBSD é um sistema cujos fontes foram inteiramente baseados no 4.4BSD-Lite, disponível livremente para computadores baseados em Intel i386", i486", Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium 4 (ou compatíavel), Xeon", DEC Alpha e Sun UltraSPARC. O sistema é baseado primariamente em programas do CSRG (Grupo de Pesquisa em Sistemas Computacionais) da U.C. Berkeley, com algumas melhorias incorporadas do NetBSD, OpenBSD, 386BSD e da Fundação do Software Livre (FSF).
Desde o lançamento do FreeBSD 2.0 no final de 1994, a performance, as funcionalidades, e a estabilidade do FreeBSD foram dramaticamente incrementados. A maior modificação foi a melhoria do sistema de memória virtual com a inclusão do merged VM/file buffer cache que não apenas melhora a performance, mas também reduz pedaços perdidos de memória no FreeBSD, tornando a configuração mínima de 5 MB um requerimento mais aceitável. Outras melhorias incluem suporte completo à cliente e servidor NIS, suporte à transaction TCP, discagem PPP por demanda, suporte DHCP integrado, um subsistema SCSI aperfeiçoado, suporte ISDN, suporte ATM, FDDI, adaptadores de rede Fast Ethernet e Gigabit Ethernet (1000 Mbit), suporte aperfeiçoado às adaptadoras Adaptec mais recentes, e muitos milhares de correções de problemas.
Além da distribuição base, o FreeBSD oferece ainda uma coleção de aplicações ( ports ) composta de milhares de programas populares. No momento da preparação deste documento, haviam mais de 16,000 ports ! A lista de ports varia de servidores http (WWW) à jogos, linguagens de programação, editores de texto e praticamente tudo o mais que se encaixe entre eles. A coleção de ports inteira requer aproximadamente 440 MB de espaço para armazenamento, sendo todos ports identificados como deltas à seus fontes originais. Isto torna o processo de atualização dos ports considerávelmente mais fácil para nós, e reduz muito a demanda por espaço em disco, especialmente quando comparado à versão 1.0 da Coleção de Ports. Para compilar uma aplicação basta entrar no diretório do port que você deseja instalar, digitar make install e deixar o sistema cuidar do resto. A distribuição original para cada aplicação é obtida dinâmicamente do CDROM ou de um sítio FTP, portanto tudo que você precisa é ter espaço em disco o bastante para compilar os programas desejados. Quase todos os programas também estão disponíveis como pacotes pré-compilados, que podem ser instalados com um simples comando (pkg_add) por aqueles que preferem não compilar suas próprias aplicaçòes à partir dos fontes. Mais informações sobre pacotes e sobre ports podem ser encontradas no Capítulo 4.
Uma série de documentos adicionais que eventualmente você pode jugar muito úteis durante o processo de instalação e utilização do FreeBSD podem ser encontrados também no diretório /usr/share/doc em qualquer estação FreeBSD recente. Você pode visualizar os manuais instalados localmente com qualquer navegador HTML, utilizando as seguintes URLs:
Você ainda pode acessar as cópias mestre (e frequentemente mais atualizadas) em http://www.FreeBSD.org/.
FreeBSD é composto de um programa de fácil utilização, em modo texto, chamado de sysinstall. Este é o programa padrão de instalação para o FreeBSD, apesar dos distribuidores terem liberdade para oferecer seu próprio programa de instalação, se desejado. Este capítulo descreve a utilização do sysinstall para realizar a instalação do FreeBSD.
Após a leitura deste capítulo, você saberá:
Como criar os discos de instalação do FreeBSD.
Como FreeBSD se refere e faz as subdivisões dos discos rígidos.
Como iniciar o sysinstall.
As perguntas que o sysinstall fará durante sua utilização, o que cada uma significa, e como respondê-las.
Antes de ler este capítulo, você é aconselhado:
Ler a lista de hardware suportado que acompanha a versão do FreeBSD que você está instalando, e verificar se os seus equipamentos são suportados.
Nota: Em geral, estas instruções de instalação são escritas para computadores de arquitetura i386 (compatíveis PC ). Onde necessário, serão listadas instruções específicas para outras plataformas (por exemplo, Alpha). Embora este guia seja mantido o mais atualizado o possível, poderão ser encontradas algumas pequenas diferenças entre a aplicação instaladora e o que é apresentado neste documento. É aconselhável que este capítulo seja utilizado como um guia geral ao invés de um rigoroso passo a passo de instalação.
Antes de instalar o FreeBSD, é aconselhável tentar levantar todas as informações sobre os componentes presentes em seu computador. As rotinas de instalação do FreeBSD mostrarão estes componentes (discos rígidos, placas de rede, dispositivos de CDROM, e vários outros) com seus respectivos números de modelo e fabricação. O FreeBSD tentará também determinar a configuração correta para estes dispositivos, o que inclui informações sobre IRQ e utilização de endereços de E/S. Devido aos caprichos de alguns equipamentos para PC, esse processo não é sempre realizado com sucesso, e pode ser necessário corrigir as definições do FreeBSD na sua configuração.
Caso tenha um outro sistema operacional instalado, como Windows ou Linux, é uma boa idéia utilizar os recursos oferecidos por estes sistemas para saber como seu equipamento já está configurado. Caso não esteja certo das configurações de alguma placa de expansão, pode ser possível encontra-las impressas na própria placa. Valores populares para endereços de interrupção (IRQ) são 3, 5 e 7, e o endereçamento de E/S normalmente é definido em números hexadecimais, como 0x330.
Recomendamos que você imprima ou escreva estas informações antes de iniciar o processo de instalação do FreeBSD. A utilização de uma tabela, como abaixo, pode ajudar:
Tabela 2-1. Modelo de Inventário de Dispositivos
| Nome do dispositivo | IRQ | Endereço(s) de E/S | Notas |
|---|---|---|---|
| Primeiro disco rígido | N/A | N/A | Disco de 40 GB, marca Seagate, primeira IDE primária |
| CDROM | N/A | N/A | Primeira IDE secundária |
| Segundo disco rígido | N/A | N/A | Disco de 20 GB, marca IBM, segunda IDE primária |
| Primeira controladora IDE | 14 | 0x1f0 | |
| Placa de rede | N/A | N/A | Intel® 10/100 |
| Modem | N/A | N/A | 3Com® 56K faxmodem, na COM1 |
| ... |
Caso a estação onde você instalará o FreeBSD contenha dados relevantes, garanta que você tenha cópias de segurança (backup) destes dados, e que as cópias de segurança tenham sido testadas antes de iniciar a instalação do FreeBSD. A rotina de instalação do FreeBSD pedirá confirmação antes de escrever quaisquer dados no seu disco, mas uma vez iniciado, este processo não pode ser desfeito.
Se você deseja que o FreeBSD utilize todo o seu disco rígido, então não há com o que se preocupar neste momento -- você pode pular esta seção.
Contudo, se você precisa que o FreeBSD co-exista com outro sistema operacional, então é necessário uma certa compreensão sobre como os dados são dispostos em disco, e como isso pode afetar você.
Um disco de PC pode ser dividido em partes separadas. Tais partes são chamadas de partições. A forma como o PC é projetado possibilita que apenas quatro partições sejam suportadas por disco. Estas partições são chamadas de partições primárias. Como paliativo para esta limitação foi criado um novo tipo de partições, chamado de partições extendidas. Um disco pode conter apenas uma partição extendida. Partições especiais, chamadas de partições lógicas podem ser criadas dentro destas partições extendidas.
Cada partição possui um identificador único, chamado de partition ID, que é um número utilizado para identificar o tipo de dado naquela partição. Partições FreeBSD tem o ID de identificação número 165 .
De forma geral, cada sistema operacional utilizado identificará as partições de forma particular. Por exemplo, DOS e seus descendentes como Windows atribuem a cada partição primária e lógica uma letra de dispositivo, começando a partir do C:.
FreeBSD deve obrigatóriamente ser instalado em uma partição primária. FreeBSD pode manter todos seus dados, incluindo qualquer arquivo que você crie nesta única partição. Contudo, se você possuir múltiplos discos, você pode criar uma partição FreeBSD em cada um deles, ou apenas em alguns. Quando instalar o FreeBSD, ao menos uma partição deve estar disponível. Pode ser uma partição vazia, que você preparou, ou então pode ser uma partição já existente contendo dados que não são mais necessários.
Caso esteja utilizando todas as partições primárias de todos seus discos, então será necessário 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 partição sobressalente, pode utiliza-la. Contudo, pode ser necessário modificar primeiro uma ou mais das suas partições atuais.
A instalação mínima do FreeBSD ocupa apenas 100 MB de espaço em disco. Contudo, esta é uma instalação extremamente mínima, não deixando quase espaço algum para seus próprios arquivos. Um valor mínimo mais realista é 250 MB sem ambiente gráfico, ou 350 MB (ou até mais) se deseja o ambiente gráfico. Se você planeja instalar muitas aplicações de terceiros também, então será necessário mais espaço.
Você pode utilizar alguma ferramenta comercial como PartitionMagic® para redimensionar suas partições de forma a criar algum espaço para o FreeBSD. O diretório tools no CDROM contém dois programas gratuítos que podem realizar esta tarefa, chamados de FIPS e PResizer. FIPS, PResizer, e PartitionMagic pode redimensionar partições FAT16 e FAT32 -- usadas do MS-DOS ao Windows ME. PartitionMagic é a única ferramenta capaz de redimensionar sistema de arquivos NTFS. Documentações sobre ambas aplicações estão disponíveis no mesmo diretório.
Atenção: O uso incorreto destas ferramentas podem apagar os dados em seu disco. Garanta que existam cópias de seguranças recentes e funcionais antes de utiliza-las.
Exemplo 2-1. Utilizando como está, uma partição já existente
Suponha que você tenha um computador com um único disco rígido de 4 GB que já tem uma versão 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ê dispõe de 1GB de dados no C: e 0.5 GB de dados no D:.
Isto significa que seu disco tem duas partições, uma por letra de dispositivo. Você pode copiar todos os dados atuais da D: na C: o que liberará a segunda partição, que estará pronta para o FreeBSD.
Exemplo 2-2. Redimensionando uma partição existente
Suponha que você tem um computador com um único disco rígido de 4 GB que já tem uma versão do Windows instalada. Ao instalar o Windows você criou uma única partição, atribuindo ao seu dispositivo C: o tamanho de 4 G. Atualmente tem 1.5GB de espaço em uso e você deseja alocar 2 GB de espaço para o FreeBSD.
Para instalar o FreeBSD será preciso:
Fazer cópia de segurança dos dados de seu Windows e reinstalar o Windows definindo uma partição de 2 GB de espaço no momento da instalação,
Utilizar uma das ferramentas como o PartitionMagic , descrito anteriormente para redimensionar sua partição Windows.
Será necessário um disco dedicado para o FreeBSD em um Alpha. Não é possível compartilhar o disco com outro sistema operacional hoje. Dependendo da máquina Alpha específica que você tem em mãos, o disco pode ser SCSI ou IDE, com tanto que sua máquina seja capaz de inicializar por meio deste.
Seguindo as convenções do manual da Digital / Compaq todas as entradas referentes ao SRM serão apresentadas em letras maiúsculas. O SRM não faz distinção entre maiúsculas e minúsculas.
Para encontrar os nomes e tipos de discos disponíveis na máquina, 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 0015 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
Este exemplo é de uma Digital Personal Workstation modelo 433au e apresenta três discos ligados na estação. O primeiro é um CDROM chamado de DKA0 e os outros dois são discos rígidos, e são chamados DKC0 e DKC100 respectivamente.
Discos cujos nomes estão dispostos no formato DKx são discos SCSI. Por exemplo, DKA100 se refere ao disco SCSI com ID SCSI número 1 no primeiro barramento SCSI (A), enquanto DKC300 se refere a um disco SCSI com ID SCSI número 3 no terceiro barramento SCSI (C). O dispositivo PKx se refere à controladora SCSI. Como foi visto na saída do comando SHOW DEVICE, dispositivos de CDROM SCSI são tratados como disco rígido SCSI qualquer.
Discos IDE tem nomes similares a DQx, enquanto PQx é a controladora IDE associada.
Caso você pretenda se conectar em rede como parte do processo de instalação de seu FreeBSD (por exemplo, caso a realização seja feita a partir de um sítio FTP ou servidor NFS), então é necessário conhecer a configuração de sua rede. Você será indagado por estas informações durante a instalação do FreeBSD, de forma que o sistema possa se conectar à rede e concluir a instalação.
Se você se conecta à uma rede Ethernet, ou tem uma conexão Internet com uma placa de rede via cabo ou DSL, então será necessário saber as seguintes informações:
Endereço IP
Endereço IP do gateway padrão
Nome da estação (hostname)
Endereço IP do servidor DNS
Máscara de subrede
Caso não saiba tais informações, pergunte ao seu administrador de sistemas ou provedor de serviços. Eles podem dizer que tais informações são atribuídas automaticamente, usando DHCP. Se for o caso, anote isto.
Se você disca para um provedor de serviços Internet ( ISP) utilizando um modem convencional, ainda é possível instalar o FreeBSD na internet, contudo isso demandará algum tempo a mais.
Será necessário saber:
O número de telefone do seu ISP
A porta COM onde seu modem está ligado
Usuário e senha da conta no seu provedor
Mesmo considerando que o projeto FreeBSD se esmera para garantir que cada versão do FreeBSD seja tão estável quanto for possível, falhas ocasionalmente podem abalar este processo. Em situações extremamente raras tais falhas podem afetar o processo de instalação do FreeBSD. Conforme estes problemas são descobertos e corrigidos, eles são anotados na Errata do FreeBSD, que pode ser encontrada no sítio WWW do FreeBSD. Você deve verificar esta errata antes de iniciar a instalação para saber se existem problemas com os quais você deve ficar atento.
Informações sobre todas as versões, incluindo a errata para cada uma, podem ser encontradas na seção de informação de versões do sítio WWW do FreeBSD.
O processo de instalação do FreeBSD pode instalar o sistema à partir de arquivos armazenados nos seguintes locais:
Mídia Local
Um CDROM ou DVD
Uma partição DOS no mesmo computador
Fita SCSI ou QIC
Disquetes
Rede
Sítio FTP atrás de um firewall, ou usando um proxy HTTP, se necessário
Servidor NFS
Conexão paralela ou serial dedicada
Caso tenha adquirido FreeBSD em CD ou DVD, então você já tem tudo que precisa, e pode pular para a próxima seção (Preparando a mídia de inicialização (Boot)).
Caso não tenha obtivo os arquivos de instalação do FreeBSD, você pode se adiantar para Seção 2.13 que explica como preparar o FreeBSD para a instalação por qualquer das mídias acima citadas. Após a leitura desta seção, volte a este ponto e leia Seção 2.2.7.
O processo de instalaçào do FreeBSD começa ao iniciar o computador (dar boot) com o instalador do sistema ( não é um programa para ser executado a partir de outro sistema operacional ). O computador normalmente é inicializado a partir do sistema operacional que já está instalado em seu disco, mas também é possível configurar o sistema de modo a fazer uso de um disquete inicializável. Os computadores mais recentes podem ser inicializados à partir de um CD do FreeBSD no dispositivo de de CDROM.
Dica: Caso tenha o FreeBSD em CDROM ou DVD (indiferentemente se você comprou o disco ou o fez manualmente), e seu computador permite a inicialização por estes dispositivos (normalmente a opção no BIOS chamada de Boot Order ou similar), então você pode pular esta seção. As imagens de CDROM e DVD do FreeBSD são inicializáveis (bootáveis) e podem ser utilizadas para instalar o FreeBSD sem qualquer outro procedimento especial.
Para criar disquetes de inicialização, siga os seguintes passos:
Adquira as imagens de disquetes de inicialização
Os discos de inicialização estão disponíveis a partir de sua mídia de instalação, no diretório floppies/ e podem também ser baixadas à partir do diretório de imagens de disquetes para a aquitetura i386 e a partir do diretório de imagens de disquetes para a aquitetura Alpha.
As imagens de disquete tem a extensão .flp. O diretório floppies/ tem uma série de imagens distintas, e as que você vai precisar usar dependem da versão do FreeBSD que você pretende instalar, e em alguns casos, dos equipamentos onde você irá realizar a instalação. Na maioria dos casos serão necessárias apenas duas imagens, kern.flp e mfsroot.flp. Alguns dispositivos de controle adicionais poderão ser necessários em alguns sistemas. Estes dispositivos estão disponíveis na imagem drivers.flp. Verifique o arquivo README.TXT no mesmo diretório para obter as informações mais atualizadas sobre estas imagens de disquetes.
Importante: O programa FTP que você for utilizar deve estar ativo em modo binário 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 não pode inicializar o sistema por meio destes discos.
Preparando os disquetes
É necessário 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. Não confie em disquetes pré-formatados. O utilitário de formatação do Windows não informará sobre a presença de blocos defeituosos no disquete, esta ferramenta apenas os marca como bad (defeituoso) e os ignora, portanto não confie nela também. É aconselhado utilizar disquetes novos caso esta seja sua opção de instalação.
Importante: Ao instalar o FreeBSD, se o programa de instalação travar, congelar ou falhar, uma das primeiras coisas à se suspeitar são os disquetes. Grave as imagens em um novo disquete e inicie o processo de instalação novamente.
Gravando as imagens nos disquetes
Os arquivos .flp não são arquivos comuns os quais basta copiá-los para o disco. São imagens do conteúdo completo do disco. Isto significa que você não pode apenas copiar os arquivos de um disco para outro. Ao invés disso é necessário utilizar ferramentas específicas 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 serviço, chamada de fdimage.
Caso esteja utilizando as imagens de disquetes disponíveis 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 necessário, dependendo onde as imagens .flp estão localizadas. Caso você não disponha do CDROM, o programa fdimage pode ser baixado da Internet à partir do diretório tools no sítio 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á necessário verificar a documentação do sistema conforme for necessário.
Agora você está pronto para iniciar a instalação do FreeBSD.
Importante: Por padrão, o programa de instalação não fará qualquer modificação em seus discos até que você veja a seguinte mensagem:
Last Chance: Are you SURE you want continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents!A instalação pode ser interrompida a qualquer instante, antes desta advertência final, sem modificar qualquer conteúdo em seu disco rígido. Se você estiver em dúvida sobre ter configurado algo incorretamente, pode simplesmente desligar o computador antes deste ponto, e dano algum será causado.
Inicie com seu computador desligado.
Ligue o computador. Durate sua inicialização ele mostrará uma opção para entrar no menu de configuração 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 gráfica ao iniciar. Normalmente basta pressionar Esc para eliminar a inagem gráfica e permitir que você visualize as mensagens necessárias.
Encontre as configurações que controlam o dispositivo de inicialização do sistema. Normalmente esta opção é intitulada Boot Order e costuma ser apresentada como uma lista de dispositivos como Floppy, CDROM, First Hard Disk, e assim por diante.
Caso seja necessário praparar disquetes de inicialização, garanta que a opção de disquetes seja selecionado. Caso esteja iniciando o sistema pelo CDROM garanta então que esteja seja o dispositivo selecionado. Em caso de dúvida consulte o manual do seu computador e/ou da placa-mãe.
Faça a modificação, salve e saia do BIOS. O computador deverá se reiniciar.
Caso tenha necessidade de preparar disquetes de inicializaçào como foi descrito em Seção 2.2.7, então um deles será o primeiro disco de inicialização; 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á necessário ligar o computador e inserir o CDROM na primeira oportunidade.
Caso o computador inicie normalmente e carrege o sistema operacional já instalado, então alguma destas situações estão ocorrendo:
Os discos não foram insedidos à tempo durante o processo de inicialização. Mantenha-os inseridos e reinicie seu computador.
As modificações anteriormente realizadas no BIOS não funcionaram corretamente. Refaça este passo até que a opção correta seja encontrada.
Seu BIOS em particular não suporte inicialização do sistema à partir da mídia desejada.
O FreeBSD começará a ser iniciado. Caso esteja iniciando o sistema à partir do CDROM você verá algumas mensagens similares a estas (as informações sobre a versão do sistema foram omitidas):
Verifying DMI Pool Data ........ Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(00) Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive C: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | | Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _
Caso esteja iniciando à partir de disquetes, você verá algumas mensagens similares a estas (as informações sobre a versão 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 instruções acima, removendo o disco com a imagem kern.flp e inserindo o disco com a imagem mfsroot.flp, e depois aperte Enter.
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 configuração do kernel.
Comece com seu sistema desligado.
Ligue o computador e espere pela tela do monitor de inicialização.
Caso tenha sido preciso fazer discos de inicialização, como descrito em Seção 2.2.7 então um dos discos será o primeiro disco de inicialização; na verdade o disco gerado a partir da imagem do kern.flp. Insira este disco no seu dispositivo de disquetes e digite o seguinte comando para carregá-lo (substituindo o nome do seu dispositivo de disco caso necessário):
>>>BOOT DVA0 -FLAGS '' -FILE ''
Caso esteja iniciando à partir do CDROM, insira o CDROM no dispositivo e digite o seguinte comando para iniciar a instalação (substituindo o nome apropriado para o dispositivo de CDROM, se necessário):
>>>BOOT DKA0 -FLAGS '' -FILE ''
O FreeBSD vai começar 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 instruçòes acima, removendo o disco com a imagem do kern.flp e inserindo o disco com a imagem do mfsroot.flp e aperte Enter.
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 configuração do kernel.
Nota: À partir da série 5 do FreeBSD, o menu de configuraçãp do kernel foi aposentado, em favor do novo método device.hints(5). Para mais informações sobre o device.hints(5) por gentileza visite Seção 7.5
O kernel é o núcleo do sistema operacional. Ele é o responsável por inúmeras funções fundamentais, incluindo acesso à todos os dispositivos de controle que possam existir em seu sistema, como disco rígido, 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 três 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 identificar se o equipamento que ele controle existe na máquina. Caso exista, o dispositivo configura o equipamento e o torna disponível para o kernel.
Esta verificação normalmente é chamada de device probing (identificação de dispositivos). Infelizmente nem sempre é possível realiza-la de forma segura. Alguns dispositivos de controle não coexistem de forma cordial e a identificação de um equipamento pode levar um outro à um estado inconsistente de disponibilidade. Esta é uma limitação básica da concepção do PC.
Muitos dispositivos mais antigos são chamados de dispositivos ISA, que operam de forma diferente dos dispositivos PCI, mais atuais. A especificação ISA obriga que algumas informações sejam afixadas à placa, tipicamente linha de pedidos de interrupção (IRQ) e endereço de E/S que o equipamento utiliza. Estas informações normalmente podem ser configuradas utilizando jumpers físicos na placa, ou utilitários baseados em DOS para este fim específico.
Isso sempre foi origem de problemas, porque não é possível ter dois dispositivos ISA que compartilhem a mesma IRQ ou endereço de memória.
Os equipamentos mais novos seguem as especificações PCI, que não necessitam destas informações afixadas, 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 configurado com a IRQ e o endereço de E/S de acordo com o definido no equipamento. É por isso que fazer um inventário de seus equipamentos (veja Seção 2.2.1) pode se tornar muito útil.
Infelizmente, as IRQs e endereços de memória padrão utilizados por alguns dispositivos costumam entrar em conflito. Isso se deve ao fato de alguns equipamentos ISA serem vendidos com configurações conflitantes por padrão. O padrão no dispositivo de controle do kernel do FreeBSD são deliberadamente definidos como espelho dos padrões do fabricante, de forma que o maior número possivel de dispositivos funcionarão sem necessitar modificações.
Normalmente isso não é um problema para o uso diário do FreeBSD. Normalmente seu computador não terá dois dispositivos que conflitam, pois se houver algum deles não 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 instalação contém o maior número possível de dispositivos, de forma que a instalação possa suportar um gande número de equipamentos distintos. Isso significa que alguns destes equipamentos podem ter configuraçòes conflitantes. Os equipamentos são reconhecidos em uma ordem estrita, e se existir um dispositivo que for reconhecido depois, então pode acontecer do mesmo não funcionar corretamente durante a instalação 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ê não tenha equipamentos compatíveis com aquele suporte, ou confirmar e modificar a configuração de recursos do mesmo, caso o padrão esteja incorreto.
Na verdade isso parece mais complicado do que na realidade é.
Figura 2-1 apresenta o primeiro menu de configuração do kernel. Recomendamos que sua escolha seja a opção de modo visual, a Start kernel configuration in full-screen visual mode, pois apresenta a interface mais fácil para novos usuários.
A tela de configuração do kernel (Figura 2-2) é dividida em quatro seções:
Uma lista agrupada de todos os dispositivos que estão atualmente definidos como ativos ( active, subdivididos em grupos como Storage e Network. Cada dispositivo é apresentado com uma descrição, o nome do dispositivo e os endereços de IRQ e memória utilizados pelo mesmo. Ainda, se um dispositivo ativo conflitar com outro também ativo, a expressão CONF é apresentada próxima ao nome do dispositivo. A seção também mostra o número total de equipamentos conflitantes cujo suporte está marcado como ativo.
Dispositivos marcados inativo permanecem no kernel, mas não tentarão reconhecer os equipamentos em questão quando o kernel carregar. Eles são divididos em grupos com o mesmo nome disposto na lista de dispositivos ativos.
Mais informações sobre o dispositivo selecionado, incluindo IRQ e endereço de memória e E/S.
Informações sobre as teclas de comando válidas nesta tela.
Não se preocupe se houverem conflitos listados, isso é esperado uma vez que todos dispositivos estão habilitados, e como já foi explicado, algums terão as mesmas configurações de recursos que outros.
Agora você deve utilizar a lista de dispositivos afim de resolver os conflitos pendentes.
Resolvendo conflitos de dispositivos
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 através da lista de dispositivos ativos.
Figura 2-3 apresenta o resultado de ter pressionado a tecla X.
Desabilite todos os dispositivos de controle para equipamentos que você não possui. Para desabilitar um dispositivo, selecione-o (ficará 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 é necessário, 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.
AtençãoNão desabilite sc0. Ele controla o suporte à unidade de saída padrão, o monitor, e ele é completamente necessário, a não ser que você esteja instalando o sistema por meio de um cabo serial.
AtençãoApenas desabilite atkbd0 se estiver usando um teclado USB. Se tiver teclado tradicional então mantenha atkbd0, o dispositivo de entrada padrão.
Se não existirem conflitos listados, você pode pular o próximo passo. Do contrário os conflitos restantes devem ser examinados. Se eles não tem indicação de um conflito permitido - allowed conflict - na área de mensagem, o endereço de IRQ ou de memória deverão ser modificados, ou a IRQ e endereço de hardware deverão ser trocados.
Para modificar a configuração do dispositivo pela IRQ e endereço de E/S do equipamento, selecione o ítem em questão e aperte Enter. O cursor irá para a terceira seção da tela e você pode modificar estes valores. Deverá informar as informações de recursos conseguidas quando o inventarário dos equipamentos foi realizado. Pressione a tecla Q para terminar a edição da configuração do dispositivo e voltar para a lista de ítens ativos.
Se você não tem a menor idéia de que valores devem ser definidos, experimente usar -1. Alguns dispositivos de controle do FreeBSD podem, de forma segura, varrer os equipamentos em busca das configurações corretas de cada dispositivo, e a opção -1 indica que ele deve fazê-lo.
O procedimento para modificar o endereço de acesso à memória varia de dispositivo para dispositivo. Para alguns equipamentos pode ser necessáro remover fisicamente a placa e configurar os jumpers ou os alternadores DIP ( DIP switches). Outras placas oferecem um disquete DOS que contem programas para reconfigura-la. Em todos os casos você deve se referir à documentação que acompanha o equipamento. Obviamente isto implicará na reinicialização do seu computador, de forma que será preciso voltar à rotina de instalação do FreeBSD depois que esta placa tenha sido reconfigurada.
Quando todos conflitos estiverem sanados, a tela estará similar a Figura 2-4.
Como você pode ter reparado, a lista de dispositivos ativos agora está bem menor, apenas com os ítens para os equipamentos que realmente existem estão listados.
Agora é possível salvar tais modificações e ir para o próximo passo do processo de instalação. Aperte Q para sair da interface de configuração de dispositivos. A seguinte mensagem surgirá:
Save these parameters before exiting? ([Y]es/[N]o/[C]ancel)
Responda Y (SIM) para salvar os parâmetros em memória (eles serão salvos em disco quando a instalação for concluída) e o reconhecimento dos equipamentos será iniciado. Após apresentar os resultados do reconhecimento em mensagens de texto preto e branco, o sysinstall irá iniciar e apresentará seu menu principal (Figura 2-5).
As últimas centenas de linhas que foram apresentadas na tela são armazenadas e podem ser revisadas.
Para revisar o buffer, aperte Scroll Lock. Esta tecla ativa o paginamento da tela. Você pode utilizar as teclas de setinhas ou PageUp e PageDown para visualizar os resultados do processo de reconhecimento de dispositivos. Aperte Scroll Lock novamente para desativar o paginamento.
Faça isso agora para revisar o texto que foi paginado para cima da tela quando o kernel estava sendo carregado e os dispositivos de controle sendo reconhecidos. Você verá informações textuais similares à Figura 2-6, embora o conteúdo preciso será diferente dependendo de quais dispositivos existirem no seu computador.
Figura 2-6. Resultados típicos do reconhecimento de dispositivos
avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0
Verifique os resultados do reconhecimento cuidadosamente para garantir que o FreeBSD encontrou todos os dispositivos que você esperava. Se algum equipamento não foi encontrando, ele não será listado. Se o ítem em questão precisou ter seus recursos de IRQ e endereço de memória configurados, verifique se estes valores foram definidos corretamente.
Caso seja necessário modifcar as configurações do reconhecimento de dispositivos, é simples sair do sysinstall e recomeçar o processo de instalação. Esta também é uma ótima forma de se tornar mais familiar com o processo.
Utilize as teclas de setas para selecionar a opção Exit Install do menu principal de instalação. 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 instalação será reiniciado se o CDROM for mantido no leitor de CD e a opção [Yes] for selecionada.
Se estiver iniciando o sistema por disquetes, será necessário retirar o disco do mfsroot.flp e troca-lo pelo kern.flp antes da reinicialização.
O utilitário sysinstall é o programa de instalação oferecido pelo Projeto FreeBSD. É baseado em console e é dividido em vários menus e telas que podem ser utilizados para configurar e controlar o processo de instalação.
O sistema de menu do sysinstall é controlado pelas teclas de flechas, Enter, Space, e outras teclas. Descrição detalhada destas teclas e o que elas fazem está disponível nas informações de utilização do sysinstall .
Para visualizar tais informações, garanta que a opção Usage está marcada, no menu do programa, e que o ítem [Select] está selecionado, como apresentados em Figura 2-8, depois aperte Enter.
As instruções para utilizar esse sistema de menu serão apresentadas. Depois de revisa-las, aperte Enter para voltar ao menu principal.
No menu principal, selecione a opção Doc com as setas e aperte Enter.
Isso apresentará o menu de documentação.
É importante ler os documentos disponibilizados pelo menu em questão.
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 documentação.
Para voltar ao menu principal de instalação, selecione Exit com as teclas de setas e pressione Enter.
Para modificar o mapeamento de teclado, utilize as teclas de setinhas do menu e tecle Enter. Isso é necessário se o seu teclado não for padrão ou for não-US.
O mapeamento distinto do teclado pode ser selecionado escolhendo o ítem em questão no menu principal e pressionando Space. Apertar Space novamente remove a seleção deste ítem. Quando terminado, escolha a opção [ OK ] utilizando as teclas de setinhas e aperte Enter.
Uma lista parcial é apresentada na representação desta tela. Selecionar [ Cancel ] apertando Tab forçará a utilização do mapeamento padrão, e voltará ao menu principal de instalação.
Selecione Options e aperte Enter.
Os valores padrão normalmente são o bastante para a maioria dos usuários, e não tem a necessidade de serem modificados. O nome do release (release name) irá variar de acordo com a versão do sistema que está sendo instalada.
A descrição do ítem selecionado aparecerá na base da tela, em cores azuis. Note que uma das opções é Use Defaults que tem a função de redefinir todos os ítens para seus valores padrão.
Aperte F1 para ler a tela de ajuda sobre as várias opções.
Ao apertar a tecla Q o foco volta ao menu principal de instalação.
A instalação padrão (Standard) é a opção recomendada aos usuários recém chegados ao ambiente UNIX ou FreeBSD. Utilize as teclas de setinhas para selecionar a opção Standard e então aperte Enter para iniciar a instalação.
A primeira tarefa é alocar espaço em disco para o FreeBSD e rotular este espaço de forma que o sysinstall possa prepará-lo. Para fazer isso é necessário saber como o FreeBSD pretende encontrar as informações em disco.
Antes de instalar e configurar o FreeBSD em seu sistema, existe um ítem fundamental com o qual você deve ter atenção, especialmente se possuir multiplos discos rígidos.
Em um PC que utiliza um sistema operacional dependente do BIOS (BIOS-dependent OS) como MS-DOS ou Microsoft Windows, o BIOS é capaz de abstrair a ordem normal dos discos, e o sistema operacional reconhece tal modificação. Isso permite que o usuário inicie o distema à partir de um disco qualquer, ao invés do chamado primário mestre. Isso é especialmente conveniente para usuários que acreditam que a forma mais rápida e barata de manter o backup de um sistema é comprando um segundo disco rígido idêntico ao primeiro e realizar rotinas de copias do primeiro disco no segundo, utilizando os programas Ghost® ou XCOPY. Dessa forma, se o primeiro dispositivo falhar ou for atacado por um vírus, ou mesmo se for danificado por defeito no sistema operacional, é fácil recuperar o sistema simplesmente instruindo o BIOS para modificar a unidade de inicialização. É como mudar os cabos do disco, mas sem ter que abrir o gabinente.
Sistemas mais caros com controladoras SCSI costumam incluir extensões no BIOS que permitem que os discos SCSI sejam reordenados de forma similar para vários discos.
Usuários que tem costume de tirar vantagens destas características podem se surpreender ao perceber que o resultado no FreeBSD não é como o esperado. FreeBSD não utiliza o BIOS dessa forma e simplesmente ignora o mapeamento lógico dos dispositivos no BIOS. Isso pode levar o usuário à situações perplexas especialmente quando a geometria dos discos é exatamente igual e foram clonados de um para outro disco.
Ao usar o FreeBSD, sempre restaure a numeração usual do BIOS antes de iniciar a instalação do sistema e mantenha-a desta forma. Se for necessário alternar entre os discos, então faça-o da forma difícil, abrindo o gabinete e modificando os jumpers e cabos.
Nota: Nenhuma alteração que seja realizada neste momento será escrita em disco. Se você acreditar que tenha cometido algum erro e deseja iniciar o processo novamente, pode utilizar o menu para sair do sysinstall e começar de novo, ou apertar U para utilizar a opção de desfazer ( Undo). Se você ficar confuso e não estiver certo sobre como sair, lembre-se que você pode sempre desligar seu computador.
Após selecionar a instalação padrão 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 rígidos 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.
Você deve estar se perguntando por quê ad1 não é listado aqui. Por quê ela foi pulada?
Considere o que aconteceria se você disposse de dois discos IDE, um como primário na primeira controlada IDE, e um como primário na segunda controladora IDE. Se o FreeBSD os numerasse conforme os encontrasse, como dispositivo ad0 e ad1, então tudo funcionaria.
Mas então, se você adicionasse um terceiro disco, como secundário 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) são utilizados para identificar os sistemas de arquivos, repentinamente você pode perceber que seus sistemas de arquivos não estão mais dispostos corretamente, e teria que modificar sua configuração do FreeBSD.
Para resolver isso, o kernel pode ser configurado para nomear discos IDE com base em sua disposição física, e não na ordem em que eles são encontrados. Com este esquema, o disco primário na segunda controladora IDE será sempre o ad2, mesmo que não existam dispositivos ad0 ou ad1 .
Esta é a configuração padrão no kernel do FreeBSD, que nesta tela apresenta ad0 e ad2. A estação de onde este screenshot foi tirado dispunha de dois discos IDE nos dois canais primários de cada controladora IDE, e nenhum disco nos canais secundários.
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 três seções.
A primeira seção cobre as duas primeiras linhas da aplicação, 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 seção apresenta as partições que estão no disco, onde elas iniciam e terminam, qual seu tamanho, o nome que o FreeBSD atribui à elas, e suas descrições e sub-tipos. Este exemplo apresenta duas pequenas partições não utilizadas, que são artifícios do esquema de disposição de discos no PC. Também apresenta uma grande partição FAT, que quase sempre aparece como C: no MS-DOS / Windows e uma partição extendida, que pode conter outras letras de dispositivos para o MS-DOS / Windows.
A terceira seção apresenta os comandos que são disponibilizados pelo FDisk.
O que você for fazer agora depende de como você pretende particionar seu disco.
Se a intenção é utilizar o FreeBSD no disco todo (o que irá apagar todos outros dados presentes no disco ao confirmar a continuidade do processo de instalação no sysinstall ) basta apertar a tecla A que significa utilizar o disco inteiro (Use Entire Disk). As partiçõe existentes serão apagadas e substituidas por uma pequena área marcada como unused (mais uma vez, característica das disposições do PC), e uma grande partição para o FreeBSD. Ao fazer isso, é aconselhável selecionar a nova partição FreeBSD com as setas, e apertar a tecla S para marcar a partição como inicializável. A tela terá aparência similar à Figura 2-18. Note a opção A na coluna Flags, que indica que esta partição é uma partição ativa ( active) e servirá como dispositivo de inicializaçao.
Se a intenção é apagar uma partição existente de forma a conseguir espaço em disco para o FreeBSD, então você deve selecionar a partição e apertar D. Em seguida pode fazer uso da tecla C e responder qual o tamanho pretendido para a nova partição que você pretende criar. Entre com o valor apropriado e aperte Enter. O valor padrão aqui indica o tamanho máximo possível para esta partição, que na realidade é o maior bloco contíguo de espaçao não alocado, ou o tamanho do disco inteiro.
Se já existe espaço para o FreeBSD (por exemplo, se você garantiu espaço com alguma aplicação como o PartitionMagic) então pode utilizar a tecla C para criar uma nova partição. Mais uma vez, será necessário informar o tamanho da nova partição à ser criada.
Ao terminar, aperte Q. Suas modificações serão salvas pelo sysinstall, mas por enquanto não serão efetivamente aplicadas em disco.
Agora você tem a opção de instalar um gerenciador do processo de inicialização do sistema, ou um gerenciador de Boot como é conhecido. É indicado instalar o gerenciador de inicialização nativo do FreeBSD, se:
Você tem mais de um disco, e instalou o FreeBSD em algum disco que não 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 estação, instalado no primeiro disco rígido, o inicializador padrão do FreeBSD (opção Standard) é o recomendado. Escolha a opção None se a intenção for utilizar um outro gerenciador de inicialização não nativo, ou se deseja não modificar o setor mestre de inicialização do disco.
Escolha sua opção e aperte Enter.
A tela de ajuda oferecida ao pressionar F1, oferece algumas informações sobre os problemas implícitos no compartilhamento de discos rígidos entre múltiplos sistemas operacionais.
Se houver mais de um disco, o menu voltará à tela de seleção de unidades de armazenamento após a seleção do gerenciador de inicialização. Se a intenção for instalar FreeBSD em mais de um disco, então pode selecionar o outro disco e repetir o processo de particionamento usando o FDisk.
Importante: Se estiver instalando o FreeBSD em um disco diferente do primeiro, então o gerenciador de inicialização do FreeBSD deve ser instalado em ambos os discos.
A tecla Tab alterna entre as opções [ OK ] e [ Cancel ].
Aperte a tecla Tab uma única vez para selecionar [ OK ] e depois aperte Enter para continuar a instalação.
Agora você deve criar subpartições dentro de cada partição primária que você acabou de criar. Lembre-se que cada partição é identificada com letras de a à h , e que as partições b, c e d tem significados convencionais que devem ser notados aqui.
Algumas aplicações se beneficiam de alguns esquemas particulares de particionamento, especialmente se você está utilizando partições de tal disposição que utilize mais de um disco ríbido. Contudo, para sua primeira instalação, você não precisa se empenhar tanto na definição do particionamento do seu FreeBSD. É mais importante instalar o FreeBSD e aprender a utiliza-lo. Você pode sempre reinstalar o sistema e modificar o esquema de particonamento várias vezes, até se tornar familiar o suficiente com o sistema operacional e seu processo de instalação, para aí sim passar a otimizar seu particionamento.
O esquema atual apresenta quatro partições -- uma para o espaço de swap, e três para sistemas de arquivos.
Tabela 2-2. Disposição de partições para o primeiro disco
| Partição | Sistema de arquivos | Tamanho | Descrição |
|---|---|---|---|
| a | / | 100 MB | Este é o sistema de arquivos raiz. Todos os outros sistemas de arquivos serão montados em algum ponto abaixo deste. Não é necessário armazenar muitos dados neste sistema de arquivos. Em uma instalação regular do FreeBSD, serão utilizados cerca de 40 MB de dados aqui. O espaço restante é para dados temporários e também oferece espaço para expansão se eventualmente versões futuras do FreeBSD precisarem de mais espaço na /. |
| b | N/D | 2-3 x RAM |
O espaço de swap do sistema é mantido nesta partição. Escolher a quantidade correta de espaço para swap é uma questão um tanto quanto artística. Uma boa regra base é multiplicar entre duas e três vezes o espaço total de memória física (RAM) disponível. É recomendado que, se você tem menos de 32 MB de memória, que defina ao menos 64 MB de swap . Se você dispõe de mais de um disco, pode colocar uma partição de swap em cada. FreeBSD vai utilizar ambas para swap, e o fato do acesso estar distribuído em mais de uma partição de troca, em discos distintos, a velocidade efetiva da ação de swap é incrementada. Neste caso, calcule o espaço total de swap necessário e divida pela quantidade de discos disponíveis ( digamos, 128 MB em dois discos), alocando a quantidade resultante em cada um, nesse exemplo, 64 MB de swap em cada disco. |
| e | /var | 50 MB | O diretório /var contém arquivos que são constantemente acessados; arquivos de logs , e outros arquivos administrativos. A maioria destes arquivos são de escrita ou leitura intensivas no dia-a-dia da utilização do FreeBSD. Adicionar tais arquivos a outro sistema de arquivos permite que o acesso a estes arquivos seja otimizado sem afetar outros arquivos e diretórios que não tem o mesmo padrão de acesso. |
| f | /usr | Restante do disco | Todos seus outros arquivos serão armazenados tipicamente sob o /usr e seus subdiretórios. |
Se o FreeBSD for ser instalado em um servidor com mais de um disco é ideal criar partições nos outros discos também. A forma mais básica de fazê-lo é criar duas partições no mínimo nos discos auxiliares uma para a swap e uma para ao menos um sistema de arquivos.
Tabela 2-3. Disposição de partições para discos subsequentes
| Partição | Sistema de arquivos | Tamanho | Descrição |
|---|---|---|---|
| b | N/D | Ver descrições | Como discutido, o espaço de swap pode ser dividido em cada disco. Mesmo considerando que a partição a esteja livre, a convenção dita que as partições de troca (swap) devem ficar na partição b. |
| e | /diskn | Restante do disk | O restante do disco é utilizado por uma partição grande. Esta partição poderia ser a a, ao invés da partição e. Contudo, por convenção a partição a é reservada ao sistema de arquivos raiz (/). Você não tem obrigação de seguir este padrão, mas o sysinstall o faz, de forma que seguir este padrão torna sua instalação mais limpa. Você pode escolher montar este sistema de arquivos em qualquer local; este exemplo sugere que eles sejam montados como os diretórios /disk n, onde n corresponde ao número que muda de acordo com a ordem de cada disco. Mas você está livre para utilizar um outro esquema, se preferir. |
Tendo definido a disposição 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 don't have any special requirements, simply
use the (A)uto command to allocate space automatically. If you have
more specific needs or just don't 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 partições do FreeBSD, chamado Disklabel.
Figura 2-21 apresenta o resultado da primeira execução do Disklabel. A tela é dividida em três seções.
As primeiras linhas mostra o nome do disco onde você está trabalhando e a partição onde está o sistema de arquivos que será criado (neste instante o Disklabel chama-o de Nome da Partição, ou Partition name, ao invés do nome da subpartição). A tela apresenta também a quantidade de espaço livre disponível na partição primária, ou seja o espaço definido ao FreeBSD, mas que ainda não foi definido atribuído a nenhuma partição.
O meio da tela apresenta as partições que foram criadas, o nome do sistema de arquivos em cada partição, seu tamanho e algumas opções sobre a criação do sistema de arquivos.
A base da tela, na terceira imagem, apresenta as teclas de comandos que são validas no Disklabel.
O Disklabel pode criar partições automaticamente e atribuir espaço padrão para cada uma. Experimente esta opção agora, pressionando a tecla A. Você vai ver mensagens similares as que são apresentadas na Figura 2-22. Dependendo do tamanho do disco que você tem disponível, os valores padrão vão variar para o tamanho apropriado. Mas isso não importa, afinal você não tem que aceitar o padrão.
Nota: A partir do FreeBSD 4.5, o particionamento padrão atribui uma partição dedicada ao diretório /tmp ao invés de fazer parte do sistema de arquivos raiz (/). Entre outras justificativas, isso ajuda a evitar que a raiz seja lotada de arquivos temporários.
Se sua escolha for não utilizar o particionamento padrão, e você pretende substitui-lo com sua propria definição, use as teclas indicativas para selecionar a primeira partição, aperte D para apaga-la. Repita isto para apagar todas as partições sugeridas.
Para criar a primeira partição (a, montada como / -- raiz), garanta que a partição apropriada no topo da tela está selecionada e aperte C. Uma caixa de diálogos aparecerá perguntando qual o tamanho desejado para a nova partição (como apresentado em Figura 2-23). Você pode definir o número 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 usuários podem escolher o uso do UFS2 utilizando a opção Custom Newfs (Z), criar rótulos com Auto Defaults e modifica-los com a opção Custom Newfs ou adicionar
-O 2durante a criação regular do sistema de arquivos. Não se esqueça de manter a opção-Upara indicar o uso do SoftUpdates se você fizer uso da opção de customização do newfs, Custom Newfs!
O tamanho padrão apresentado criará uma partição que ocupa o restante do disco. Se estiver usando os tamanhos de partições descritos no exemplo, apague a definição existente utilizando Backspace e digite 64M, como apresentando na Figura 2-24. Em seguida aperte [ OK ].
Tendo escolhido o tamanho da partição, o instalador solicitará que você informe se a partição vai conter um sistema de arquivos ou espaço para swap. A caixa de diálogo é a apresentada em Figura 2-25. A primeira partição terá um sistema de arquivos, então marque o ítem FS e aperte Enter.
Finalmente, por estar criando um sistema de arquivos, é necessário informar ao Disklabel onde o sistema de arquivos em questão deve ser montado. A caixa de diálogo é apresentada na Figura 2-26. O ponto de montagem para a partição raiz é /, portanto digite / e aperte Enter.
A tela será atualizada para apresentar as partições recém criadas. Este processo deve ser repetido para as outras partições. Quando for criar a partição swap o sistema não pedirá o ponto de montagem da partição. Ao criar a partição final, o /usr, você pode manter o tamanho sugerido intacto, para utilizar o resto do disco.
A tela final do editor DiskLabel do FreeBSD terá aparência similar a Figura 2-27, embora os valores escolhidos por você podem estar diferentes. Aperte Q para terminar.
Decidir que conjunto de distribuição instalar depende muito da intenção de uso do sistema e da quantidade de espaço em disco disponível. As opções predefinidas vão da menor instalação possível à instalar tudo que estiver disponível. Usuários ainda não familiarizados com o ambiente UNIX ou FreeBSD costumam escolher entre esses dois extremos. Customizar o conjunto de instalação tipicamente é uma tarefa para usuários mais experientes.
Aperte F1 para obter mais informações sobre cada conjunto de distribuição e seu conteúdo. Ao terminar a leitura do arquivo de ajuda, aperte Enter para voltar ao menu de seleção de distribuições.
Se uma interface gráfica com o usuário for desejável, as dsitribuições precedidas por um X devem ser escolhidas. A configuração do XFree86 e seleção de um desktop padrão faz parte dos passos de pós-instalação do sistema.
A versão padrão do XFree86 que está instalada depende da versão do FreeBSD que você está instalando. Em versões do FreeBSD anteriores à 4.6 o XFree86 3.X é o instalado. Para o FreeBSD 4.6 e posteriores, XFree86 4.X é a série instalada.
Você deve verificar se sua placa de vídeo é suportada no sítio WWW do XFree86 e. Se a placa não for suportada pela versão padrão que o FreeBSD instalará, você deve desmarcar a distribuição em questão em favor de uma distribuição sem a instalação do X. Após a instalação do sistema, instale e configure a versão apropriada do XFree86 usando a coleção de ports.
Se a compilação de um novo kernel é prevista, selecione uma opção que inclua o código fonte. Para mais detalhes sobre os motivos pelos quais um kernel customizado deve ser compilado ou sobre como compilar um novo kernel, veja a Capítulo 9.
Obviamente o sistema mais versátil é o que inclui tudo que estiver disponível. Se tiver espaço em disco adequado, selecione a opção All como apresentado em Figura 2-28 utilizando as teclas indicadoras e aperte Enter . Se existir preocupação sobre o espaço em disco considere utilizar a opção que melhor se adequar à sua situação. Não perca tempo tentando encontrar o conjunto perfeito de aplicações, tendo em vista que outras distribuições podem ser adicionadas após a instalação.
Após escolher a distribuição desejada, é apresentada a oportunidade de instalar a Coleção de Ports do FreeBSD. A coleção de ports é uma maneira prática e conveniente de instalar programas. A coleção de ports não contém os códigos fontes necessários para compilar os programas. Ao invés disto, uma coleção de arquivos automatiza o download, compilação e instalação e pacotes de programas de terceiros. O Capítulo 4 discuste a utilização da coleção de ports .
O programa de instalação não verifica se você tem espaço o bastante para instalar a coleção de ports. Selecione esta opção apenas se você realmente tiver espaço o bastante. Por volta do FreeBSD 6.2, A Coleção de Ports do FreeBSD requer até 440 MB de espaço em disco. A cada nova versão do FreeBSD um valor maior pode seguramente ser assumido.
User Confirmation Requested
Would you like to install the FreeBSD ports collection?
This will give you ready access to over 16,000 ported software packages,
at a cost of around 440 MB of disk space when "clean" and possibly much
more than that if a lot of the distribution tarballs are loaded
(unless you have the extra CDs from a FreeBSD CD/DVD distribution
available and can mount it on /cdrom, in which case this is far less
of a problem).
The ports collection is a very valuable resource and well worth having
on your /usr partition, so it is advisable to say Yes to this option.
For more information on the ports collection & the latest ports,
visit:
http://www.FreeBSD.org/ports
[ Yes ] No
Selecione [ Yes ] com as teclas indicativas para instalar a coleção de ports ou [ No ] para pular esta opção. Aperte Enter para continuar. O menu de seleção de distribuição aparecerá novamente.
Se estiver satisfeito com as opções, selecione a opção Exit com as setas, garanta que [ OK ] está destacado, e aperte Enter para continuar.
Se a instalação estiver sendo realizada à partir de CDROM ou DVD use as setas indicativas para destacar a opção Install from a FreeBSD CD/DVD. Garanta que a opção [ OK ] está marcada e aparte Enter para continuar com o processo de instalação.
Para outros métodos de instalação, selecione a opção apropriada e siga as instruções.
Aperte F1 para visualizar a ajuda instantânea sobre as mídias de instalação. Aperte Enter para voltar ao menu de seleção de mídias.
Modos de instalação FTP: Existem três modos de instalação FTP que você pode escolher: FTP ativo, FTP passivo e FTP via proxy.
- FTP Ativo: Instalação à partir de um servidor FTP
Esta opção fará toda transferência FTP ser realizada em modo ativo. Não funcionará atrás de um firewall, mas frequentemente funcionará com servidores FTP antigos, que não suportam modo passivo. Se sua conexão travar em modo passivo (o padrão), tente modo ativo!
- FTP Passivo: Instalação à partir de um servidor FTP através de um firewall
Essa opção instrui o sysinstall a utilizar modo Passivo para todas operações FTP. Isso permite que o usuário passe através de firewall que não permite conexões entrantes em portas TCP randômicas.
- FTP através de proxy HTTP: Instalação à partir de um servidor FTP atrvés de um proxy HTTP
Essa opção instrui o sysinstall à utilizar um protocolo HTTP (como se fosse um navegador) para se conectar em um proxy e realizar operações FTP. O proxy traduzirá as solicitações e as encaminhará ao servidor FTP. Isso permite que usuários passem por um firewall que não permite FTP, mas oferece um proxy HTTP. Neste caso é necessário especificar o proxy além do servidor FTP.
Para o servidor FTP normalmente basta definir o nome do servidor desejado como parte do nome de usuário, após um caractér @. 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 opções, define o usuário FTP como sendo ftp@ftp.FreeBSD.org, e define seu endereço de correio eletrônico como sendo a senha. Como mídia de instalação, especifique FTP (ou FTP passivo, se o proxy o suportar), e a URL ftp://foo.example.com:1234/pub/FreeBSD.
Partindo do princípio que /pub/FreeBSD em ftp.FreeBSD.org é acessado via procuração (proxy), você poderá instalar o sistema à partir daquela máquina (que irá acessar os arquivos de ftp.FreeBSD.org conforme seu processo de instalação os requisita).
Se desejado, a instalação pode continuar agora. Esta também é a última chance que você tem para abortar a instalação e prevenir qualquer modificação no disco rígido.
User Confirmation Requested
Last Chance! Are you SURE you want to continue the installation?
If you're running this on a disk with data you wish to save then WE
STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
We can take no responsibility for lost disk contents!
[ Yes ] No
Selecione [ Yes ] e aperte Enter para continuar.
O tempo de instalação irá variar de acordo com o conjunto de distribuição escolhido, o tipo de mídia e a velocidade do computador. Haverá uma série de mensagens sendo apresentadas na tela indicando o estado do processo.
A instalação 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 configurações de pós instalação.
Selecionando [ No ] e apertando Enter irá abortar a instalação, de forma que modificação 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 ]
Essa mensagem é apresentada porque nada foi instalado. Apertar Enter fará o programa voltar ao menu principal de instalação e sair do processo.
Após a instalação bem sucedida do sistema operacional, é iniciada a configuração de uma série de opções. Cada opção pode ser configurado revisitando as opções de configuração antes de iniciar o recém instalado sistema FreeBSD, ou com o sistema já instalado chamando o comando /stand/sysinstall e selecionando a guia Configure.
Caso tenha configurado PPP para instalação FTP anteriormente, esta tela não estará disponível, mas pode ser configurada posteriormente como será descrito.
Para obter informações detalhadas sobre Redes Locais, e aobre como configurar o FreeBSD para agir como routeador/gateway, refira-se ao capítulo de Advanced Networking.
User Confirmation Requested
Would you like to configure any Ethernet or SLIP/PPP network devices?
[ Yes ] No
Para configurar um dispositivo de rede, selecione a opção [ Yes ] e aperte Enter. Ou então selecione [ No ] para continuar.
Selecione a interface à ser configurado com as teclas indicativas e aperte Enter.
User Confirmation Requested
Do you want to try IPv6 configuration of the interface?
Yes [ No ]
Nesta rede local privada, o protocolo de endereçamento de Internet atual (IPv4) é suficiente, e selecionar a opção [ No ] e apertar Enter satisfaz a necessidade.
Caso esteja conectado à uma rede IPv6 com um servidor RA, selecione a opção [ 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 Configuração Dinâmica de Estações) não seja necessário, selecione a opção [ 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 configuração da rede será automaticamente preenchida. Refira-se à Seção 19.10 para obter maiores informações.
A próxima tela de configuração da rede apresenta a configuração do dispositivo de rede em um sistema que fará papel de servidor de ligação (gateway) em uma rede local.
Utilize a tecla Tab para selecionar os campos de informações e prencha os dados de forma apropriada:
O nome completamente qualificado da estação, como por exemplo k6-2.example.com neste caso.
O nome do domínio onde sua estação está localizada, como example.com neste caso.
Endereço IP da estação que encaminhará pacotes para um destino não local. É necessário preencher este campo se a máquina em questão for um cliente de rede. Mantenha este campo em branco se a própria estação for o gateway para a Internet, à partir de sua rede. O gateway IPv4 também é chamado de gateway padrão ou rota padrão.
Endereço IP de seu servidor DNS local. Não há servidor de nomes nesta rede local, de forma que o endereço IP do servidor DNS do provedor (208.163.10.2) foi utilizado.
O endereço IP desta interface é 192.168.0.1
O bloco de endereçamento utilizado nesta rede é um bloco de classe C (192.168.0.0 - 192.168.255.255). A máscara de rede padrão para classe C é (255.255.255.0).
Qualquer opção específica de uma interface de rede que possa ser definida com ifconfig pode ser adicionada aqui. Neste caso não havia nenhuma opção necessária.
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 máquina estará colocada na rede e pronta para uso. Entretanto, esta opção só estará plenamente operacional após um reboot.
User Confirmation Requested
Do you want this machine to function as a network gateway?
[ Yes ] No
Se a máquina em questão for atuar como gateway para a rede local e encaminhar pacotes entre outras redes, escolha [ Yes ] e aperte Enter. Se a máquina for apenas um nó da rede, escolha [ No ] e aperte Enter para continuar.
User Confirmation Requested
Do you want to configure inetd and the network services that it provides?
Yes [ No ]
Se selecionar [ No ] vários serviços populares como telnetd não serão habilitados. Isso significa que usuários remotos não poderão acessar esta máquina via telnet. Os usuários locais continuarão podendo acessar estações remotas via telnet.
Estes serviços podem ser habilitados após a instalação, editando o arquivo /etc/inetd.conf com seu editor de texto favorito. Veja Seção 19.14.1 para obter mais informações.
Selecione [ Yes ] caso deseje configurar estes serviços durante a instalação. Uma informação adicional será apresentada:
User Confirmation Requested
The Internet Super Server (inetd) allows a number of simple Internet
services to be enabled, including finger, ftp and telnetd. Enabling
these services may increase risk of security problems by increasing
the exposure of your system.
With this in mind, do you wish to enable inetd?
[ Yes ] No
Selecione [ Yes ] para continuar.
User Confirmation Requested
inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
which of its Internet services will be available. The default FreeBSD
inetd.conf(5) leaves all services disabled by default, so they must be
specifically enabled in the configuration file before they will
function, even once inetd(8) is enabled. Note that services for
IPv6 must be separately enabled from IPv4 services.
Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
use the current settings.
[ Yes ] No
Ao escolher [ Yes ] você poderá adicionar serviços que serão automaticamente iniciados, apagando os caracteres # ao início de cada linha.
Após adicionar os serviços desejados, aperte Esc para visualizar um novo menu que permite sair do editor e salvar as modificações.
User Confirmation Requested
Do you want to have anonymous FTP access to this machine?
Yes [ No ]
Selecionar a opção padrão, [ No ] e apertar Enter ainda permitirá que usuários tenham contas autenticadas por senhas e utilizar FTP para acessar a estação.
Qualquer pessoa poderá acessar a estação, se você optar por permitir conexões FTP anônimas. As implicações de segurança devem ser consideradas antes de habilitar esta opção. Para mais informações sobre segurança, veja Capítulo 10.
Para permitir FTP anônimo, use as flechas indicativas para selecionar [ Yes ] e aperte Enter. A tela seguinte (ou similar) irá apresentar:
Apertar F1 apresentará a tela de ajuda:
This screen allows you to configure the anonymous FTP user.
The following configuration values are editable:
UID: The user ID you wish to assign to the anonymous FTP user.
All files uploaded will be owned by this ID.
Group: Which group you wish the anonymous FTP user to be in.
Comment: String describing this user in /etc/passwd
FTP Root Directory:
Where files available for anonymous FTP will be kept.
Upload subdirectory:
Where files uploaded by anonymous FTP users will go.
O diretório de FTP raiz será colocado sob /var por padrão. Caso você ainda não tenha bastante experiência, para antecipar suas necessidades de utilização do FTP, o diretório /usr pode ser utilizado como base para o Diretório Raiz de FTP, ficando /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
Ao selecionar [ Yes ] e apertar Enter, um editor de texto será automaticamente iniciado, permitindo que você edite a mensagem de boas-vindas ao FTP.
Este é o editor de texto ee. Use as instruções para modificar a mensagem ou modifique-a posteriormente com o editor de sua escolha. Preste atenção no nome/localização do arquivo, na base da tela do editor de textos.
Aperte Esc e um menu surgirá com a opção padrão definida como a) leave editor. Aperte Enter para sair e continuar, e aperte Enter novamente para salvar as alterações, caso tenha feito alguma.
O sistema de arquivos de rede (Network File System - NFS) permite compartilhar arquivos através de uma rede. Uma estação pode ser configurada como servidor, como cliente, ou ambos. Por gentileza, refira-se à Seção 19.6 para obter mais informações.
User Confirmation Requested
Do you want to configure this machine as an NFS server?
Yes [ No ]
Se não 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 ]
Aperte Enter para continuar. Um editor de texto será iniciado, permitindo a criação do arquivo exports bem como sua edição.
Utilize as instruções em questão para adiconar os sistemas de arquivos exportados no momento, ou posteriormente, com um editor de texto de sua escolha. Note a localização /nome do arquivo na base da tela do editor de textos.
Aperte Esc e um menu irá surgir na opção padrão, a) leave editor. Aperte Enter para sair e continuar.
O cliente NFS permite que sua estação acesse servidores NFS.
User Confirmation Requested
Do you want to configure this machine as an NFS client?
Yes [ No ]
Com as teclas de setas, escolha [ Yes ] ou [ No ] como preferir, e aperte Enter.
Um Perfil de Segurança ( security profile) é um conjunto de opçòes de segurança que tem o objetivo de tentar atingir o índice desejado de segurança e conveniência, iniciando e desligando certos programas e configuraçòes. Quanto maior o perfil de segurança, menos programas serão iniciados por padrão. Este é um dos princípios básicos de segurança: não execute nada a não ser o necessário.
Por gentileza, perceba que o perfil de segurança não passa de uma configuração padrão. Todos programas podem ser habilitados e desabilitados após a instalação, bastando adicionar as linhas adequadas ao arquivo /etc/rc.conf. Para obter mais informações, por gentileza refira-se à página de manual rc.conf(5).
A tabela a seguir descreve o que cada perfil de segurança faz. As colunas são as escolhas para seus perfís, e as linhas são os programas ou funções que o perfil habilita ou desabilita.
Tabela 2-4. Perfís de segurança disponíveis
| Extremo | Moderado | |
|---|---|---|
| sendmail(8) | NÃO | SIM |
| sshd(8) | NÃO | SIM |
| portmap(8) | NÃO | TALVEZ [a] |
| Servidor NFS | NÃO | SIM |
| securelevel(8) | SIM [b] | NO |
| Notas: a. A opção é habilitada apenas se a estação foi configurada como servidor ou cliente NFS anteriormente durante a instalação. b. Se você escolher um perfim de segurança que define o nível de segurança (securelevel), em Alto (High) ou Extremo (Exreme) deve ficar atento às implicações. Por gentileza, leia a página de manual init(8) e preste atenção especial aos significados dos níveis de segurança, ou você terá alguns problemas posteriormente! |
||
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 definirá o nível de segurança em médio.
Selecionar [ Yes ] e apertar Enter permitirá a seleção de um perfil de segurança diferente.
Aperte F1 para apresentar a ajuda. Aperte Enter para voltar ao menu de seleção.
Utilize as teclas indicativas para escolher a opção média ( Medium) a não ser que esteja certo de outro nível que atenda suas necessidades. Com o [ OK ] destacado, aperte Enter.
Uma mensagem de confirmação apropriada será apresentada, dependendo de que definição de segurança fora escolhida.
Message
Moderate security settings have been selected.
Sendmail and SSHd have been enabled, securelevels are
disabled, and NFS server setting have been left intact.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a standard set of out-of-box defaults to start with.
To change any of these settings later, edit /etc/rc.conf
[OK]
Message
Extreme security settings have been selected.
Sendmail, SSHd, and NFS services have been disabled, and
securelevels have been enabled.
PLEASE NOTE that this still does not save you from having
to properly secure your system in other ways or exercise
due diligence in your administration, this simply picks
a more secure set of out-of-box defaults to start with.
To change any of these settings later, edit /etc/rc.conf
[OK]
Aperte Enter para continuar com a configuração da pós-instalação.
AtençãoO perfil de segurança não é Tiro e Queda! Mesmo se as definições extremas forem utilizadas, é necessário manter-se atualizado com os problemas de seguranças, lendo as listas de discussão apropriadas, utilizando boas senhas e mailing geralmente aderindo à boas práticas de segurança. A opção apenas define um índice de configurança conveniente já na instalação.
Existem várias opções disponíveis para a customização do console do sistema.
User Confirmation Requested
Would you like to customize your system console settings?
[ Yes ] No
Para visualizar e configurar tais opções, selecione [ Yes ] e aperte Enter.
Uma das opções normalmente utilizadas é a proteção de tela. Use as setas para selecionar Saver e aperte Enter.
Escolha o protetor de tela desejado usando as setas, e aperte Enter. O menu de configuração do console do sistema irá resurgir.
O intervalo temporal padrão é 300 segundos. Para modifica-lo selecione Saver novamente. No menu de opções do protetor de tela selecione Timeout e aperte Enter. Um menu irá surgir:
O valor pode ser modificado, em seguida aperte [ OK ] e Enter para voltar ao menu de opções do protetor de tela.
Selecione Exit e aperte Enter para continuar ao menude configuração de pós-instalação.
Definir a zona temporal de sua estação possibilitará que ela corrija automaticamente seus horários para os padrões regionais, e realizar funções de horário de forma apropriada.
O exemplo apresentado é para uma estação localizada na faixa de horário do Leste dos Estados Unidos. Sua opção vai variar de acordo com sua localização geográfica.
User Confirmation Requested
Would you like to set this machine's time zone now?
[ Yes ] No
Selecione [ Yes ] e aperte Enter para selecionar o fuso-horário.
User Confirmation Requested
Is this machine's CMOS clock set to UTC? If it is set to local time
or you don't know, please choose NO here!
Yes [ No ]
Selecione [ Yes ] ou [ No ] de acordo com a forma como o relógio a sua máquina está configurado, e aperte Enter.
A região apropriada é selecionada usando as setas e apertando Enter.
Selecione o país apropriado com as teclas de setas e aperte Enter.
A zona temporal apropriada pode ser selecionada com as teclas indicativas e apertando Enter.
Confirmation
Does the abbreviation 'EDT' look reasonable?
[ Yes ] No
Confirme a abreviação para a zona temporal em questão se estiver correta. Aperte Enter para continuar com a configuração pós-instalação.
User Confirmation Requested
Would you like to enable Linux binary compatibility?
[ Yes ] No
Selecionando [ Yes ] e apertando Enter permitirá a execução de aplicações Linux no FreeBSD. A instalação adicionará os pacotes apropriados para viabilizar a compatibilidade Linux.
Se você estiver instalando o sistema por FTP, a estação necessitará estar conectada à Internet. As vezes um sítio FTP remoto não terá todas distribuições como a compatibilidade binária Linux. Esta compatibilidade pode ser instalada posteriormente, se desejado.
Esta opção permitirá que o usuário copie e cole texto no console e aplicações, com mouse de 3 botões. Se você estiver utilizando um mouse de 2 botões, refira-se à página de manual moused(8), após a instalação, para obter detalhes sobre como emular o terceiro botão. Este exemplo aborda um mouse não-USB (como um mouse PS/2 ou serial - COM):
User Confirmation Requested
Does this system have a non-USB mouse attached to it?
[ Yes ] No
Selecione [ Yes ] para configurar um mouse não-USB ou [ No ] para um que seja USB, em seguida aperte Enter.
Utilize as setas para escolher Type e aperte Enter.
O mouse utilizado neste exemplo é um PS/2, então o padrão, Auto é bastante apropriado. Para modificar o protocolo utilize as setas para escolher outra opção. Garanta que [ OK ] está marcado e apertte Enter para sair deste menu.
Utilize as flechinhas para escolher Port e aperte Enter.
Este sistema possui um mouse PS/2, de forma que PS/2 é a opção mais apropriada. Modifique a porta com as setas e aperte Enter caso necessário.
Por último, use as setas e escolha Enable, em seguida aperte Enter para habilitar e testar o daemon do mouse.
Movimente o mouse pela tela e verifique se o cursor responde apropriadamente. Se estiver funcional, selecione Yes e tecle Enter. Do contrário, o mouse não está corretamente configurado -- selecione No e tente utilizar outras opções de configuração.
Selecione Exit com as setas e aperte Enter para voltar ao menu de configuração.
Configurar serviços de rede pode ser uma tarefa árdua à novos usuários, se eles carecem de conhecimento nessa área. Rede, incluindo a Internet, é crítico à todo sistema operacional moderno, incluindo FreeBSD; resultado isso é que é bastante útil entender as capacidades de rede do FreeBSD de forma extensa. Fazer esta configuração durante a instalação garantirá que os usuários obtenham alguma compreensão dos vários serviços de rede que lhes estão disponiveis.
Serviços de rede são programas que aceitam entrada de dados de qualquer parte na rede. Todo esforço é feito para garantir que estes programas não causarão situações danosas ao sistema. Infelizmente, programadores não são perfeitos e em dado momento pode acontecer de existirem falhas nos serviços de rede que sejam vulneráveis e que possibilitem que usuários mal intencionados façam coisas ruins. É importante que você habilite apenas os serviços de rede que você sabe que precisa. Se houver dúvida, é melhor não habilitar o serviço até descobrir que precisa dele. É sempre possível habilitar o serviço mais tarde, re-executando o sysinstall ou utilizando as funcionalidades disponíveis no arquivo /etc/rc.conf .
Ao selecionar a opção Networking um menu similar ao seguinte, será apresentado:
A primeira opção, Interfaces, foi previamente coberta durante a seção de configuração dos dispositivos de rede; embora esta opção possa seguramente ser ignorada.
Selecionar a opção AMD inicia o suporte ao utilitário de
montagem automática do BSD. Normalmente esta opção é
usada em conjunto com o protocolo NFS (veja abaixo)
para automatizar a montagem remota de sistema de arquivos. Nenhuma configuração especial
é necessária.
O próximo da linha são as opções do AMD (AMD flags) Ao selecionar esta opção, um menu irá surgir pedindo para você preencher informações específicas sobre as opções AMD desejadas. O menu já contém algumas opções padrão:
-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map
A opção -a define a localização padrão de montagem, que é definido aqui como sendo /.amd_mnt. A opção -l especifica o arquivo de log padrão; contudo, quando se define syslogd, toda atividade de log será atribuida à esta aplicação. O diretório /host é utilizado para montar um sistema de arquivos exportado à partir de uma estação remota, enquanto o diretório /net é usado para montar um sistema de arquivos exportado com base em um endereço IP. O arquivo /etc/amd.map define as opções padrão para as exportações AMD.
O FTP anônimo permite conexões anônimas à um servidor FTP. Fique atento aos riscos de segurança envolvidos com esta opção. Outro menu será apresentado para explicar os riscos de segurança e configurações em questão.
O menu de configuração Gateway definirá a estação como um
servidor de ligação, como previamente explicado. Esta opção pode ser utilizada para
desabilitar a opção de gateway caso ela tenha sido
habilitada acidentalmente durante o processo de instalação.
A opção Inetd pode ser usada para configurar ou
completamente desabilitar o daemon inetd(8) foi discutido
anteriormente.
A opção Mail é utilizada para configurar o agente de
transferência de correio (MTA - Mail Transfer Agent) padrão do sistema. Selecionar esta opção o
levará ao seguinte menu:
Aqui você pode escolher qual MTA instalar e definir como padrão. Um MTA nada mais é do que um servidor de correio que entrega mensagens à usuários no sistema local e na Internet.
Ao selecionar Sendmail o popular servidor Sendmail será instalado, que é o padrão no FreeBSD. A opção
Sendmail local define que o Sendmail continuará sendo o MTA
padrão, mas irá desabilitar a funcionalidade de receber mensagens vindas da Internet. As
outras opções aqui, Postfix e Exim
agem de forma similar ao Sendmail. Ambos entregam mensagens de
correio eletrônico; contudo, alguns usuários os preferem como alternativas ao
MTA Sendmail.
Após escolher um MTA ou escolher não iniciar nenhum, o menu de configuração da rede aparecerá com a próxima opção, o cliente NFS.
O cliente NFS configurará o sistema de forma que ele possa se comunicar com um servidor através de NFS. Um servidor NFS torna sistemas de arquivos disponíveis à outras estações na rede através do protocolo NFS . Se a máquina que você está trabalhando for uma máquina isolada, mantenha esta opção desativada. O sistema poderá solicitar maiores configurações mais tarde; veja Seção 19.6 para obter mais informaçòes sobre configurações cliente e servieor.
Abaixo desta opção está a opção de servidor NFS que permite que o sistema seja ajustado como tal. As informações necessárias para iniciar as chamadas remotas de procedimentos, RPC, são adicionadas com esta opção. O RPC é utilizado para coordenar as conexões entre estações e programas.
Na próxima linha está a opção Ntpdate que trata da
sincronização de hora. Ao seleciona-la, um menu como o seguinte será apresentado:
Neste menu, selecione o servidor que for mais próximo de sua localização. Um servidor mais próximo tornará a sincronia de horários mais precisa, pois um servidor distante pode provocar latência na conexão.
A opção seguinte é PCNFSD. Seleciona-la instalará o pacote net/pcnfsd à partir da coleção de ports. É uma aplicação útil que oferece serviços de autenticação NFS em sistemas que são incapazes de oferecer tais serviços por si só, como o sistema operacional DOS da Microsoft.
Agora será necessário paginar um pouco a tela para visualizar as outras opções:
Os utilitários rpcbind(8), rpc.statd(8), e rpc.lockd(8) são todos utilizados para chamadas remotas de procedimento (RPC). O utilitário rpcbind.8 gerencia a comunicação entre servidores e clientes NFS, e é necessário para que os servidores NFS operem de forma correta. O daemon rpc.statd interage com o rpc.statd em outra estação, para prover monitoração do estado da conexão. O estado relatado normalmente é mantido no arquivo /var/db/statd.status. A opção final aqui listada é rpc.lockd que, ao ser selecionada, provê serviço de restrição de acesso aos arquivos. Normalmente ele é utilizado em conjunto com o rpc.statd para monitorar quais estações estão requisitando acesso simultaneo aos arquivos e com que frequência os requisita. Enquanto estas últimas duas opções são sensacionais para depuração, não são necessárias para o correto funcionamento de clientes e servidores NFS .
Um pouco mais abaixo na lista de opções, está o ítem Routed, que na verdade não passa de um daemon de
roteamento. O routed(8) gerencia tabela de
roteamentos na rede, descobre roteadores multicast e distribui
uma cópia de sua tabela de roteamento à qualquer estação fisicamente conectada à rede,
que tenha função de gateway (veja as páginas de manual
icmp(4) e udp(4)). Ao ser selecionada,
um menu será apresentado solicitando a localização padrão para o utilitário. A
localização padrão já está definida, e pode ser selecionada com a tecla Enter. Em seguida você verá um outro menu, desta feita solicitando opções
extras à serem passadas ao routed. A opção padrão é -q e já deve estar disponível na tela.
Na linha seguinte está a opção Rwhod que inicia a
aplicação rwhod(8) durante a
inicialização do sistema. O utilitário rwhod envia mensagens do
sistema em broadcast para toda a rede, periodicamente, ou
adquire tais informações quando operando em modo consumidor . Mais informaçòes podem
ser encontradas nas páginas de manual ruptime(1) e rwho(1).
A próxima opção na lista é o daemon sshd(8). Trata-se do servidor de terminal seguro do OpenSSH e é altamente recomendável em substituição aos tradicionais servidores telnet e FTP. O servidor sshd é utilizado para estabelecer uma ligação segura entre uma estação e outra, por meio de conexões criptografadas.
Finalmente, a opção de Extensões TCP. Ela habilita as extensões TCP definidas na RFC 1323 e RFC 1644. Em várias estações estas extensões podem aumentar a velocidade das conexões, mas em outras pode causar interrupção da conexão. Estas extensões não são recomendadas para servidores, mas podem trazer bons benefícios em estações cliente.
Agora que você configurou os serviços de rede, pode paginar até o ítem mais alto e
escolher a opção Exit e continuar para a próxima seção de
configuração.
Para utilizar uma interface gráfica com o usuário, como o KDE, GNOME, ou vários outros, o servidor X necessitará ser configurado.
Nota: Para utulizar o XFree86 como usuário não root será necessário ter o pacote x11/wrapper instalado. Ele é instalado por padrão à partir do FreeBSD 4.7. Em versões anteriores ao 4.7, ele deve ser adicionado por meio do menu de seleção de pacotes.
Para ver se sua placa de vídeo é suportada, verifique o sítio WWW do XFree86.
User Confirmation Requested
Would you like to configure your X server at this time?
[ Yes ] No
AtençãoÉ necessário conhecer as especificações do seu monitor e informações sobre sua placa de vídeo. Danos no equipamento podem eventualmente ocorrer caso as configurações estejam incorretas. Caso você não tenha estas informaçòes, selecione [ No ] e faça a configuração de vídeo depois que a instalação for concluída, quando tiver estas informações em mãos. Pode utilizar o /stand/sysinstall, selecionando a opção Configure e depois disso, XFree86, para retornar à este processo de configuração a qualquer momento depois do sistema instalado. Configuraçào imprópria do servidor X neste momento pode causar instabilidade na máquina. Normalmente é aconselhável configurar o servidor X uma vez que a instalação esteja terminada.
Caso tenha as informações sobre o monitor e placa de rede, escolha [ Yes ] e aperte Enter para proceder à configuração do servidor X.
Existem diversas formas de configurar o servidor X. Use as teclas indicativas e selecione um dos métodos disponíveis no sysinstall, e aperte Enter. Leia todas as instruções cuidadosamente.
Os métodos xf86cfg e xf86cfg -textmode podem fazer a tela ficar escura e demorar alguns poucos segundos para iniciar. Seja paciente.
À seguir será apresentada uma ilustração da ferramenta de configuração xf86config. As opções de configuração que você fizer dependerão do equipamento disponível na sua máquina, de forma que suas escolhas certamente serão 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 configuração prévia do daemon do mouse foi detectada. Aperte Enter para continuar.
Ao iniciar o xf86config, uma breve introdução será apresentada:
This program will create a basic XF86Config file, based on menu selections you make. The XF86Config file usually resides in /usr/X11R6/etc/X11 or /etc/X11. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card. SuperProbe may be able to help with this. Press enter to continue, or ctrl-c to abort.
Apertando Enter, a configuração do mouse será iniciada. Garanta que as instruções 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. Choose one from the following list: 1. Microsoft compatible (2-button protocol) 2. Mouse Systems (3-button protocol) & FreeBSD moused protocol 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse (serial, old type, Logitech protocol) 6. Logitech MouseMan (Microsoft compatible) 7. MM Series 8. MM HitTablet 9. 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 doesn't work. Please answer the following question with either 'y' or 'n'. Do you want to enable Emulate3Buttons? y Now give the full device name that the mouse is connected to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. On FreeBSD, the default is /dev/sysmouse. Mouse device: /dev/sysmouse
O teclado deve ser configurado no próximo ítem. Um modelo genérico de 1001 teclas é apresentado como modelo ilustrativo. Qualquer nome pode ser usado como variante, ou simplesmente aperte Enter para aceitar o valor padrão.
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 Generic 101-key PC 2 Generic 102-key (Intl) PC 3 Generic 104-key PC 4 Generic 105-key (Intl) PC 5 Dell 101-key PC 6 Everex STEPnote 7 Keytronic FlexPro 8 Microsoft Natural 9 Northgate OmniKey 101 10 Winbook Model XP5 11 Japanese 106-key 12 PC-98xx Series 13 Brazilian ABNT2 14 HP Internet 15 Logitech iTouch 16 Logitech Cordless Desktop Pro 17 Logitech Internet Keyboard 18 Logitech Internet Navigator Keyboard 19 Compaq Internet 20 Microsoft Natural Pro 21 Genius Comfy KB-16M 22 IBM Rapid Access 23 IBM Rapid Access II 24 Chicony Internet Keyboard 25 Dell Internet Keyboard Enter a number to choose the keyboard. 1 Please select the layout corresponding to your keyboard 1 U.S. English 2 U.S. English w/ ISO9995-3 3 U.S. English w/ deadkeys 4 Albanian 5 Arabic 6 Armenian 7 Azerbaidjani 8 Belarusian 9 Belgian 10 Bengali 11 Brazilian 12 Bulgarian 13 Burmese 14 Canadian 15 Croatian 16 Czech 17 Czech (qwerty) 18 Danish Enter a number to choose the country. Press enter for the next page 1 Please enter a variant name for 'us' layout. Or just press enter for default variant us 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 configuração do monitor. Jamais exceda as taxa de frequência de seu equipamento. Danos poderão ocorrer. Caso tenha alguma dúvida, realize esta configuração depois que tiver estas informações em mãos.
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 industry-
standard 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.
hsync in kHz; monitor type with characteristic modes
1 31.5; Standard VGA, 640x480 @ 60 Hz
2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)
4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz
5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11 Enter your own horizontal sync range
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 industry-
standard 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 50-70
2 50-90
3 50-100
4 40-150
5 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 seleção de uma placa de rede à partir de uma lista de equipamentos disponíveis, é a próxima opção. Se você passar da sua placa na lista, continue e aperte Enter e a lista comecará desde o princípio 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 can't find your card in the database, there's nothing to worry about. You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea (e.g. a GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of hardware as can be). Do you want to look at the card database? y 288 Matrox Millennium G200 8MB mgag200 289 Matrox Millennium G200 SD 16MB mgag200 290 Matrox Millennium G200 SD 4MB mgag200 291 Matrox Millennium G200 SD 8MB mgag200 292 Matrox Millennium G400 mgag400 293 Matrox Millennium II 16MB mga2164w 294 Matrox Millennium II 4MB mga2164w 295 Matrox Millennium II 8MB mga2164w 296 Matrox Mystique mga1064sg 297 Matrox Mystique G200 16MB mgag200 298 Matrox Mystique G200 4MB mgag200 299 Matrox Mystique G200 8MB mgag200 300 Matrox Productiva G100 4MB mgag100 301 Matrox Productiva G100 8MB mgag100 302 MediaGX mediagx 303 MediaVision Proaxcel 128 ET6000 304 Mirage Z-128 ET6000 305 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. How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 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 vídeo são definidos para as resoluções desejadas. Normalmente as variaçòes úteis são 640x480, 800x600 e1024x768, mas todos dependem da placa de vídeo 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 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 2 Select modes from the following list: 1 "640x400" 2 "640x480" 3 "800x600" 4 "1024x768" 5 "1280x1024" 6 "320x200" 7 "320x240" 8 "400x300" 9 "1152x864" a "1600x1200" b "1800x1400" c "512x384" Please type the digits corresponding to the modes that you want to select. For example, 432 selects "1024x768" "800x600" "640x480", with a default mode of 1024x768. Which modes? 432 You can have a virtual screen (desktop), which is screen area that is larger than the physical screen and which is panned by moving the mouse to the edge of the screen. If you don't 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? n 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 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 4 Please specify which color depth you want to use by default: 1 1 bit (monochrome) 2 4 bits (16 colors) 3 8 bits (256 colors) 4 16 bits (65536 colors) 5 24 bits (16 million colors) Enter a number to choose the default depth. 4
Finalmente, a configuração deve ser salva. Garanta que /etc/XF86Config é a localização padrão na hora de salvar seu arquivo de configuração.
I am going to write the XF86Config file now. Make sure you don't accidently overwrite a previously configured one. Shall I write it to /etc/X11/XF86Config? y
Caso a configuração falhe, você pode tentar configurar a interface gráfica 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 dificuldades com a configuração do XFree86, selecione [ No ] e aperte Enter e continue o processo de instalação. Após a instalação, utilize o xf86cfg -textmode ou xf86config para acessar a lista de utilitários para configuração em modo texto, lembrando que você deve estar logado como usuário root. Existe um método adicional de configuração do XFree86 descrito no Capítulo 5. Se sua escolha for não configurar o XFree86 agora, o menu seguinte será a seleção de pacotes.
Por padrão, o servidor gráfico pode ser interrompido a qualquer momento, com a sequência de teclas Ctrl+Alt+Backspace. Se algo errado acontecer você pode utilizar esta opção para evitar que seu equipamento seja danificado.
As configuraçòes padrão que permitem a alternância entre motods de vídeo pode ser utilizada, com a sequência de teclas Ctrl+Alt++ ou Ctrl+Alt+-.
Após a instalação, o monitor pode ser ajustado em sua altura, largura, ou centralização, por meio do xvidtune depois que o XFree86 estiver instalado.
Existem advertências que são apresentadas com configurações impróprias puderem danificar seu equipamento. Considere-as. Não faça nada se tiver dúvidas sobre a integridade de seu hardware. Ao invés disso, use os controles do monitor para ajustar a visualização do X Window. Podem haver diferenças de tamanho no monitor ao alternar entre a interface gráfica e a interface de modo texto, mas isso ainda é melhor do que causar danos à seu equipamento.
Leia a página de manual do xvidtune(1) antes de realizar qualquer ajuste.
Após a configuração com sucesso do XFree86 a próxima etapara será a escolha de um gerenciador de janelas padrão para seu desktop.
Existe uma variedade de gerenciadores de janelas disponíveis. Eles variam de ambientes extremamente básicos à ambientes completos de trabalho, com um leque enorme de aplicações. Algumas opções necessitam de espaço mínimo em disco, e pouca memória, enquanto outros com mais funcionalidades tem necessidade de mais recursos. A melhor maneira de definir qual se encaixa melhor com você é experimentar diferentes opções. Eles estão disponíveis na coleção de ports ou como pacotes, e podem ser adicionados após a instalação.
Você pode escolher entre um dos mais populares ambientes de trabalho e instalar/configurar como desktop padrão. Com isso você poderá inicia-lo logo após a instalação.
Use as teclas indicativas para selecionar o seu desktop preferido, e aperte Enter. A instalação do desktop escolhido ocorrerá.
Pacotes são binários pré-compilados, e são uma maneira conveniente de instalar aplicações.
A instalação de um pacote será apresentada com o propósito de ilustração. Pacotes adicionais podem ser adicionados também neste momento, se desejado. Após a instalação, o /stand/sysinstall pode ser usado para a instalação de pacotes adicionais.
User Confirmation Requested
The FreeBSD package collection is a collection of hundreds of
ready-to-run applications, from text editors to games to WEB servers
and more. Would you like to browse the collection now?
[ Yes ] No
Selecionar [ Yes ] e apertar Enter o levará às telas de seleção de pacotes:
Apenas os pacotes disponíveis na mídia de instalação em uso estarão disponíveis para serem adicionados a qualquer momento.
Todos pacotes disponíveis serão apresentados sob a categoria All, que você pode selecionar agora, ou então selecione uma categoria particular. Selecione a opção desejado com as teclas indicativas e aperte Enter.
Um menu será apresentado, mostrando todos os pacotes disponíveis para a categoria selecionada:
O interpretador de comandos bash está selecionado neste exemplo. Selecione quantos pacotes desejar, bastando para tal marcar o ítem em questão e apertar a tecla Space . Uma breve descrição 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 opção [ OK ] e a opção [ Cancel ].
Quando terminar de marcar os pacotes para instalação, aperte Tab apenas uma vez para passar à opção [ OK ] e aperte Enter para voltar ao menu de seleção de pacote.
As teclas de setas esquerda e direita também serve para alternar entre [ OK ] e [ Cancel ]. Este método pode ser utilizado para selecionar [ OK ] e em seguida apertar Enter para voltar ao menu de seleção de pacotes.
Use a tecla Tab e as setas para selecionar [ Install ] e aperte Enter. Será necessário confirmar que você deseja instalar os pacotes escolhidos:
A instalação dos pacotes será iniciada tão logo [ OK ] seja selecionado e o Enter seja apertado. Mensagens de instalação serão apresentadas até que a mesma esteja terminada. Preste atenção se houverem mensagens de erro.
A configuração final continua assim que os pacotes forem instalados. Se você não selecionou pacote algum, e deseja voltar à configuração final, selecione Install de qualquer forma.
Você deve adicionar ao menos um usuário durante a instalação, de forma que você possa utilizar o sistema sem se logar como superusuário, root. A partição raiz normalmente é pequena, e utilizar aplicações como usuário root pode rapidamente consumir todo seu espaço em disco. O problema maior é que como superusuário você pode danificar seu sistema sem querer, como comentado na mensagem a seguir:
User Confirmation Requested
Would you like to add any initial user accounts to the system? Adding
at least one account for yourself at this stage is suggested since
working as the "root" user is dangerous (it is easy to do things which
adversely affect the entire system).
[ Yes ] No
Selecione [ Yes ] e aperte Enter para continuar com a adição de usuário.
Escolha a opção User com as setas e aperte Enter.
As descrições a seguir aparecerão na base da tela, conforme os ítens vão sendo selecionados com o Tab, de forma a auxiliar o usuário no momento de adicionar as informações necessárias:
O nome de login para o novo usuário (imperativo).
Identificação numerica para o novo usuário (mantenha o campo em branco para definição automática).
O nome do grupo que o usuário fará parte (mantenha o campo em branco para uma definição automática).
A senha para o novo usuário (defina este campo com cuidado!).
Nome completo do novo usuário (comentário).
Grupos auxiliares a que este usuário pertencerá (terá os mesmos direitos definidos pra este grupo).
Diretório home (mantenha em branco para o padrão).
o interpretador de comandos do usuário (deixe em branco para usar o padrão, por exemplo /bin/sh).
O interpretador de comandos (shell)foi modificado de /bin/sh para /usr/local/bin/bash para usar o interpretador bash que foi previamente instalado como pacote. Não tente usar um interpretador de comandos que ainda não existe no sistema ou você não conseguirá se logar. O interpretador de comando mais utilizado no mundo BSD é o C shell, que pode ser compreendido como /bin/tcsh.
O usuário também foi adicionado ao grupo wheel de forma que ele possa se tornar superusuário e assumir os privilégios do root.
Quando estiver satisfeito, aperte [ OK ] e o menu de gerenciamento de usuário e grupo será apresentado novamente:
Pode-se adicionar grupos neste momento, caso hajam necessidades específicas. De outra forma, isso pode ser feito através do /stand/sysinstall depois que a instalação estiver completa.
Quando terminar de adicionar os usuários, selecione Exit com as setas e aperte Enter.
Message
Now you must set the system manager's password.
This is the password you'll use to log in as "root".
[ OK ]
[ Press enter to continue ]
Aperte Enter para definir a senha de root.
A senha deverá ser digitada corretamente duas vezes. É desnecessário dizer, mas garanta que você não esquecerá sua senha.
Changing local password for root. New password : Retype new password :
A instalação continuará depois que a senha for definida corretamenta.
Caso queira configurar algum dispositivo de rede adicional ou qualquer outra configuração, você pode faze-lo agora ou após a instalação, através do /stand/sysinstall.
User Confirmation Requested
Visit the general configuration menu for a chance to set any last
options?
Yes [ No ]
Selecione [ No ] com a tecla indicativa e aperte Enter para voltar ao menu principal de instalação.
Escolha[X Exit Install] com as teclas indicativas e aperte Enter. Será necessário confirmar que deseja sair da instalação:
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 mídia de inicialização. 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 rápido).
O sistema irá reiniciar, preste atenção a qualquer mensagem de erro que possa aparecer.
Se tudo correr bem, você verá uma série de mensagens na tela, e em dado momento chegará ao prompt de login. Você pode acompanhar o conteúdo 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 não será apresentada (por limitação de buffer) mas pode ser acompanhada por linha de comando depois que você se logar, digitando dmesgno terminal.
Logue-se com o usuário e senha definidos durante a instalação do sistema (rpratt, neste exemplo). Evite logar-se como root se não for necessário.
Mensagens típicas de inicialização (informação sobre a versão 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
chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0
ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at
device 10.0 on pci0
ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit)
isa0: too many dependant configs (8)
isa0: unexpected small tag 14
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x1 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/15 bytes threshold
ppbus0: IEEE1284 device found /NIBBLE
Probing for PnP devices on ppbus0:
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33
ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33
acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4
Mounting root from ufs:/dev/ad0s1a
swapon: adding /dev/ad0s1b as swap device
Automatic boot in progress...
/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS
/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
Doing initial network setup: hostname.
ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
ether 52:54:05:de:73:1b
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
Additional routing options: IP gateway=YES TCP keepalive=YES
routing daemons:.
additional daemons: syslogd.
Doing additional network setup:.
Starting final network daemons: creating ssh RSA host key
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
creating ssh DSA host key
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
/usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
starting standard daemons: inetd cron sshd usbd sendmail.
Initial rc.i386 initialization:.
rc.i386 configuring syscons: blank_time screensaver moused.
Additional ABI support: linux.
Local package initialization:.
Additional TCP options:.
FreeBSD/i386 (k6-2.example.com) (ttyv0)
login: rpratt
Password:
A geração das chaves RSA e DSA podem levar algum tempo em estações lentas. Isso acontece apenas na primeira inicialização de um sistema recém instalado. Inicializações subsequentes serão mais rápidas.
Se o servidor X foi configurado e um ambiente de trabalho padrão foi definido, poderá ser iniciado digitando startx na linha de comando.
Uma vez terminados os procedimentos de instalação, será possível iniciar o FreeBSD ao digitar algo, no terminal SRM, algo como:
>>>BOOT DKC0
Isso instrui o sistema interno a iniciar um disco específico Para garantir que o FreeBSD seja inicializado automaticamente no futuro, utilize estes comandos:
>>> SET BOOT_OSFLAGS A >>> SET BOOT_FILE '' >>> SET BOOTDEF_DEV DKC0 >>> SET AUTO_ACTION BOOT
As mensagens de inicialização serão similares (mas não idênticas) à aquelas produzidas pelo processo de boot no FreeBSD em i386.
É importante desligar o sistema operacional de forma apropriada. Não desligue a energia simplesmente. Primeiro, se torne superusuário digitando su na linha de comando e entrando com a senha de root. Isso só funcionará se o usuário for membro do grupo wheel. Do contrário, logue-se como root e use o comando shutdown -h now.
The operating system has halted. Please press any key to reboot.
É seguro desligar o computador depois que o comando de encerramento for dado, e a mensagem Please press any key to reboot aparecer. Se alguma tecla for pressionada ao invés do botão de energia do computador, o sistema reiniciará.
Ainda seria possível utilizar a combinação de teclas Ctrl+Alt+Del para reiniciar o sistema; contudo isso não é recomendado durante a operação normal do sistema.
O FreeBSD atualmente roda em uma variedade de PCs com processadores x86 Intel, AMD, Cyrix ou NexGeon com uma grande variedade de barramentos ISA, VLB, EISA e PCI, bem como em uma série de máquinas baseadas em processadores Compaq alpha. Ainda dispõe de suporte à diversas controladoras SCSI, IDE ou ESDI, placas PCMCIA, dispositivos USB e placas seriais. O FreeBSD suporta também o barramento de microcanal da IBM (MCA).
Uma lista de equipamentos suportados acompanha o FreeBSD em cada versão, no documento Notas de Hardware do FreeBSD. Este documento normalmente pode ser encontrado no arquivo chamado HARDWARE.TXT, na raiz do CDROM do FreeBSD ou algum sítio FTP, ou ainda no menu de documentação do sysinstall. O documento lista, para cada arquitetura, os equipamentos que são reconhecidamente suportadados em cada versão do FreeBSD. Copias da lista de equipamentos suportados para cada versão e arquitetura do sistema podem ainda ser encontradas na página de Informação sobre Versões do sítio WWW do FreeBSD.
A seção à seguir cobre a resolução básica de de problemas durante a instalação do FreeBSD, como os problemas que normalmente os usuários reportam. Existem ainda algumas questões e respostas para as pessoas que desejam iniciar o FreeBSD em conjunto com MS-DOS.
Devido a várias limitações da arquitetura de PC, é impossível que o reconhecimento de dispositivos seja 100% confiável, contudo, existem algumas coisas que podem ser feitas quando ela falhar.
Verifique o documento Notas de Hardware da sua versão do FreeBSD e garanta que seu equipamento é suportado.
Se seu equipamento for oficialmente suportado e ainda assim você encontrar incoerência em seu controle ou qualquer outro problema, resete seu computador, e quando a opção de configuração visual do kernel for dada, escolha-a. Isso permitirá que você defina informações de seu equipamento para o sistema. O kernel no disco de inicialização é configurado de forma a oferecer o maior suporte possível a inúmeros equipamentos, sempre com pré-definição de recursos no padrão do fabricante, em termos de IRQs e endereços de E/S, bem como canais DMA. Se seu equipamento foi reconfigurado, será necessário utilizar o editor de configurações para informar ao FreeBSD como os recursos serão controlados.
É ainda possível identificar um dispositivo não presente que conflita com algum equipamento que já é reconhecido. Neste caso, a configuração dos drivers conflitantes devem ser desabilitadas.
Nota: Alguns problemas de instalaçào podem ser evitados ou aliviados atualizando o firmware de vários componentes de hardware, notávelmente na maioria dos casos, a placa mãe. O firmware da placa mãe também costuma ser chamado de BIOS e a maioria das placas-mãe ou fabricantes de computadores tem um sítio WWW onde as informações e arquivos para atualizações podem ser encontradas.
A maioria dos fabricantes aconselham fortemente que a atualização da BIOS da placa mãe não seja realizada a não ser que exista um bom motivo, como a atualização crítica de inúmeros ítens. O processo de atualização pode dar errado, causando danos permanentes ao chip da BIOS.
AtençãoNão desabilite qualquer dispositivo que venha a ser utilizado durante a instalação, como a saída padrão (tela -- sc0). Se a instalação falhar de forma misteriosa depois que você saiu do editor de configuração, você provávelmente removeu ou modificou algo que não deveria. Reinicie o sistema e tente novamente.
No modo de configuração, você pode:
Listar dispositivos de controles disponíveis no kernel.
Desabilitar dispositivos de controle para os equipamentos que não estão presentes em seu sistema.
Modificar IRQs, DRQs e endereços de E/S utilizados pelo dispositivo de controle.
Depois de ajustar o kernel para que ele esteja de acordo com a configuração de seu equipamento, aperte Q para iniciar o sistema com as novas configurações. Uma vez que a instalação esteja terminada, todas modificações que foram feitas se tornarão permanentes, de forma que você não tenha que refazer a configuração toda vez que for iniciar o sistema. Ainda é muito provável que você deseje construir um kernel customizado.
Muitos usuários costumam querer instalar o FreeBSD em um PC já habitado por sistemas operacionais baseados em Microsoft. Para tais situações, FreeBSD é acompanhado de um utilitário chamado FIPS. Este utilitário pode ser encontrado no diretório tools no CD de instalação do sistema, ou baixado dos vários servidores espelhos do FreeBSDs.
O utilitário FIPS permite que uma partição MS-DOS já existente seja redimensionada em duas partes, preservando a partição original e permitindo que o sistema seja instalado no segundo trecho livre da partição. Primeiro, você tem que desfragmentar sua partição MS-DOS usando o Desfragmentador de Discos do Windows (vá pelo Explorer, clique no seu disco rígido com o botão direito do mouse e escolha a opção de desfragementar seu disco), ou use o Norton Disk Tools. Agora o programa FIPS pode ser executado. Ele perguntará as informações necessárias, basta seguir as instruções na tela. Depois você pode reiniciar o computador e instalar FreeBSD na partição livre. Veja o menu de distribuições de instalação (Distributions) para um valor estimado de quanto espaço em disco será necessário para o tipo de instalação que você deseja.
Existe ainda um produto muito bom da PowerQuest (http://www.powerquest.com) chamado PartitionMagic. Esta aplicação é muito mais funcional que o FIPS, e é altamente recomendado se você planeja adicionar/remover os sistemas com certa frequência. Ele custa dinheiro, portanto se você planeja instalar FreeBSD e mante-lo instalado, FIPS vai te atender muito bem.
No momento o FreeBSD não suporte sistema de arquivos comprimidos com a aplicação Double Space". Portanto o sistema de arquivos deve ser descomprimido antes que o FreeBSD possa acessa-lo. Isso pode ser feito com o Agente de Compressão localizado no menú Iniciar> Programas > Ferramentas do sistema.
FreeBSD suporta sistemas de arquivos MS-DOS. É necessário usar o comando mount_msdos(8) (que no FreeBSD 5.X se tornou o mount_msdosfs(8)) com os parâmetros usuais. A utilização mais comum deste comando é:
# mount_msdos /dev/ad0s1 /mnt
Neste exemplo, o sistema de arquivos MS-DOS está localizado na primeira partição do disco rígido primário. Sua situação pode ser distinta, verifique a saída do comando dmesg, e do mount. Eles devem produzir informações o bastante para te dar idéia sobre a disposição do particionamento.
Nota: Sistemas de arquivos MS-DOS extendidos normalmente são mapeados depois das partições do FreeBSD. Em outras palavras, o número da partição podem ser maiores dos que os utilizados pelo FreeBSD. Por padrão a primeira partição MS-DOS se for /dev/ad0s1 e a partição FreeBSD for /dev/ad0s2 a partição extendida MS-DOS será /dev/ad0s3. Para alguns, isto pode ser confuso no início.
Partições NTFS podem ser montados de forma similar, usando o comando mount_ntfs(8).
Esta seção responde algumas perguntas normalmente realizadas sobre a instalação do FreeBSD em sistemas Alpha.
Nãoo. FreeBSD, assim como o Tru64 da Compaq e o VMS, só podem ser iniciados à partir do console SRM.
Infelizmente, sim.
Essa seção descreve as formas de instalar o FreeBSD em casos excepcionais.
Esse tipo de instalação é chamada instalação decapitada (headless install, em inglês) porque a estação onde você quer instalar o FreeBSD não tem um monitor, ou nem sequer tem um dispositivo de saída VGA. Você pergunta, como isso pode ser possível? Usando um console serial. Um console serial basicamente utiliza uma outra máquina para a função de tela principal e teclado de um sistema. Para isso, basta seguir os passos para criar um disquete de instalaçào, explicado no Seção 2.2.7.
Para modificar estes disquetes e iniciar o sistema em um console serial, siga os seguintes passos:
Habilitando os disquetes de inicialização em um console serial
Se você iniciar o sistema a partir dos disquetes que você acabou de criar, ele irá entrar no modo normal de instalação. Nós queremos que o FreeBSD seja iniciado em um console serial, para prosseguirmos com nossa instalação. Para isso, monte o disquete do kern.flp no seu FreeBSD usando o comando mount(8).
# mount /dev/fd0 /floppy
Agora que seu disquete está montado, entre no diretório em questão:
# cd /floppy
É aqui que você deve configurar o disquete à iniciar o processo de instalação por meio de um console serial. É necessário criar um arquivo chamado boot.config contendo a linha /boot/loader -h. Tudo que este comando faz é passar uma opção ao processo de inicialização através do carregador do sistema, informando que ele deve carregar os componentes em questão, em um console serial.
# echo "/boot/loader -h" > boot.config
Agora que o disquete está corretamente configurado, basta desmontar o disquete usando o comando umount(8)
# cd / # umount /mnt
Agora você pode retirar o disquete do dispositivo.
Conectando seu cabo de modem nulo (Null Modem Cable)
Agora é necessário conectar um cabo de modem nulo entre as duas estaçòes. Conecte o cabo nas portas seriais das duas máquinas. Um cabo serial normal não funcionará aqui , é necessário um cabo de modem nulo, pois ele tem alguns fios cruzados internamente.
Iniciando a instalação
Agora é hora de prosseguir com a instalação. Coloque o disquete gerado com a imagem kern.flp no dispositivo de disquetes da estação decapitada e ligue a máquina.
Conectando-se à sua estação decapitada
Agora você deve se conectar à máquina com o comando cu(1):
# cu -l /dev/cuaa0
É isso! Agora você está conectado à estação decapitada através de sua sessão cu. Ele pedirá para que você substitua o disco atual pelo mfsroot.flp, e depois disso possibilitará a seleção do tipo de terminal que deve ser utilizado. Escolhe o console colorido do FreeBSD e continue com sua instalação!
Nota: Para evitar redundâncias, a expressão disco do FreeBSD neste contexto, refere-se ao CDROM ou DVD do FreeBSD que você adquiriu ou criou sozinho.
Pode haver algumas situaçòes onde será preciso criar sua própria mídia de instalação ou origem. Pode ser mídia física como fita, ou uma origem de onde o sysinstall possa acessar todos os arquivos, como um sítio FTP local, ou uma partição MS-DOS.
Por exemplo:
Você tem inúmeras máquinas conectadas à sua rede local, e apenas um disco do FreeBSD. Você pretende criar um sítio FTP local com o conteúdo do disco do FreeBSD, e depois permitir que estas máquinas usem o sítio FTP em questão ao invés de se conectarem na Internet.
Você tem um disco do FreeBSD, e o FreeBSD não reconhece seu dispositivo de CD/DVD, mas o MS-DOS/Windows reconhece. Você quer copiar os arquivos de instalação do FreeBSD para uma partição DOS no mesmo computador e então instalar o FreeBSD à partir destes arquivos.
O computador onde você pretende instalar o FreeBSD não tem um dispositivo de CD/DVD nem está na rede, mas você pode se conectar por cabo paralelo ou serial através de um Laplink, em um computador que tem esses dispositivos.
Você quer criar uma fita que pode ser utilizada para a instalação do FreeBSD.
Como parte integrante de cada versão, o projeto FreeBSD disponibiliza duas imagens de CD (imagens ISO). Estas imagens podem ser gravadas para gerar o disco de instalação do FreeBSD. Se você tem um gravador de CD e largura de banda suficiente, esta é a maneira mais fácil de instalar o FreeBSD.
Baixe a imagem ISO correta
As imagens ISO de cada versão podem ser baixadas à partir de ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES- arquitetura/versão ou do servidor espelho mais próximo. Substitua as expressões arquitetura e versão com os valores apropriados.
Este diretório normalmente terá as seguintes imagens:
Tabela 2-5. Nomes e significados das imagens ISO do FreeBSD
| Nome do arquivo | Conteúdo |
|---|---|
| versão-mini.iso | Tudo que você precisa para instalar o FreeBSD. |
| versão-disc1.iso | Tudo que você precisa para instalar o FreeBSD, acrescido de quantos pacotes adicionais de terceiros couberem no disco. |
| versão-disc2.iso | Um sistema de arquivos vivo (Live), que costuma ser usado em conjunto com a opção de recuperação (Repair) do sysinstall. Uma cópia da árvore CVS do FreeBSD, e quantos pacotes de terceiros couberem no disco. |
Você deve baixar uma das duas, ou a imagem mini ISO ou o disco um. Não baixe ambos, afinal a imagem do disco um contém 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 Capítulo 4) conforme necessário.
Use a imagem do disco um, se você pretende obter uma seleção razoável de pacotes de terceiros no mesmo disco.
As imagens adicionais de disco são úteis, mas não essenciais, especialmente se você tiver acesso rápido à Internet.
Grave os CDs
Você deve gravar as imagens de CD no disco. Se você pretende fazer isso em outro sistema FreeBSD, veja as informações em Seção 12.5 para obter mais informações (em particular, Seção 12.5.3 e Seção 12.5.4).
Se você pretende fazê-lo em outra plataforma, então será preciso usar os utilitários existentes para controlar seu gravador de CD na plataforma em questão. As imagens disponíveis estão no formato ISO padrão, que a maioria das aplicações para gravação de CD suportam.
Os discos do FreeBSD são dispostos da mesma forma como no sítio FTP. Isso torna a criação de um sítio FTP local muito fácil, para poder utiliza-lo em outras máquinas na sua rede ao instalar o FreeBSD.
No servidor FreeBSD onde o sítio FTP ficará hospedado, garanta que o CDROM do FreeBSD está no dispositivo, e montado no ponto /cdrom.
# mount /cdrom
Crie uma conta para FTP anônimo 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
Garanta que o serviço de FTP está habilitado no /etc/inetd.conf.
Qualquer pessoa com conectividade em rede para sua máquina poderá escolher o tipo de mídia FTP e digitar ftp://sua máquia depois de selecionar a opção Other no menu de sítios FTP, durante a instalação.
AtençãoEssa abordagem está OK para qualquer máquina na sua rede local, e que esteja protegida por seu firewall. Oferecer serviços de FTP para outras estações na Internet (e não apenas na sua rede local) expõe seu computador à atenção de usuários mal intencionados, ou apenas indesejados. Recomendamos fortemente que você siga boas práticas de segurança para fazer isso.
Se você tem que instalar o sistema a partir de um disquete (o que nós não aconselhamos), ou por questões de equipamentos não suportados ou simplesmente porque você insiste em fazer as coisas da maneira difícil, primeiro você deve preparar alguns disquetes para a instalação.
No mínimo, você vai precisar de quantos disquetes forem necessários, de 1.44 MB ou 1.2 MB, para armazenar o diretório bin (distribuição binária). Se você estiver fazendo os disquetes à partir do DOS, então eles DEVEM estar formatados com o comando FORMAT do MS-DOS. Use o Explorer para formatar os discos (clique com o botão direito sobre o dispositivo A: e escolha Formatar.
Não confie em disquetes pré-formatados de fábrica. Formate-os novamente, apenas para garantir. Muitos problemas já foram relatados e descobriu-se depois que o motivo era apenas mídias formatadas de maneira imprópria, e é por isso que estamos lembrando você deste detalhe.
Se você estiver criando os disquetes em outra máquina, formatar ainda é uma boa idéia, contudo não será necessário colocar um sistema de arquivos DOS em cada disquete. Você pode usar os comandos disklabel e newfs para definir UFS como sistema de arquivos, seguindo a sequência de comandos (para um disquete de 3.5", 1.44 MB) ilustrada a seguir:
# fdformat -f 1440 fd0.1440 # disklabel -w -r fd0.1440 floppy3 # newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0
Nota: Use fd0.1200 e floppy5 para discos de 5.25", 1.2 MB.
Depois você pode monta-los e escrever nos mesmos, como qualquer outro sistema de arquivos.
Depois de ter formatado dos disquetes, será necessário copiar os arquivos para eles. Os arquivos de distribuição são divididos em blocos com tamnhos definidos 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 distribuições desejáveis em disquete, sempre da mesma forma. Cada distribuição deve estar em um subdiretório do disquete, por exemplo: a:\bin\bin.aa, a:\bin\bin.ab, e assim por diante.
Uma vez que você tenha chegado à tela de seleção de mídia durante o processo de instalação, escolha select Floppy e você será indagado sobre o restante.
Para preparar uma instalação à partir de uma partição MS-DOS, copie os arquivos da distribuição no diretório chamado freebsd no diretório raiz da partição. Por exemplo, c:\freebsd. A estrutura de directório do CD ou do sítio FTP devem ser parcialmente reproduzidas neste diretório, então sugerimos fortemente a utilização do comando xcopy do MS-DOS, se estiver fazendo a cópia à partir do CD. Por exemplo, para preparar uma instalação mínima do FreeBSD:
C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s
Assumindo que C: é onde existe espaço livre e E: é onde seu CDROM está inserido.
Se você não tem um dispositivo de CD, você pode baixar a distribuição à partir de ftp.FreeBSD.org. Cada distribuição está em seu próprio diretório; por exemplo, a distribuição base pode ser encontrada no diretório 6.2/base/.
Nota: Nas versões 4.X do FreeBSD e anteriores, a distribuição base era chamada de bin. Ajuste os comandos e URLs apresentados acima de acordo com a versão que você estiver utilizando.
Desejando instalar muitas distribuições a partir de uma partição MS-DOS ( e tendo espaço livre para isso ), instale cada uma sob o diretório c:\freebsd -- A distribuição BIN é a única necessária para uma instalação mínima.
Instalar o sistema à partir de uma fita provávelmente é o metodo mais fácil de todos, bem perto de uma instalação FTP ou por CDROM. O programa de instalação espera que os arquivos sejam simplesmente empacotados com o tar(1) e colocados na fita. Depois de obter todos os arquivos da distribuição que você quer instalar, basta empacotá-los com o tar(1) na fita:
# cd /freebsd/distdir # tar cvf /dev/rwt0 dist1 ... dist2
Quando você realizar a instalação, deverá garantir que existe espaço suficiente para um diretório temporário (que você poderá escolher) que acomodará todo o conteúdo da fita que você criou. Devido à natureza não aleatória de acesso às fitas, este método de instalação requer um espaço considerável para armazenamento temporário. Você deve prever a necessidade de tanto espaço temporário quanto a quantidade de dados gravados na fita.
Nota: Ao iniciar a instalação, a fita deve estar no dispositivo antes de iniciar o processo de boot à partir do disquete. A varredura por dispositivos pode, do contrário, falhar em procura-lo.
Existem três tipos de instalação por rede disponíveis. Porta serial (PPP ou SLIP), porta paralela (PLIP (cabo laplink)), ou rede Ethernet (qualquer placa de rede padrão, incluindo alguns dispositivos PCMCIA).
O suporte SLIP é um tanto primitivo e limitado primariamente à redes cabeadas, como um cabo serial ligado entre um laptop e outro computador. O link deve ser cabeado, pois a instalação SLIP no momento não oferece recursos para discagem; este suporte é oferecido com o utilitário PPP, que deve ser utilizado com preferência sobre SLIP sempre que possível.
Se você estiver usando um modem, então PPP certamente é sua única escolha. Garanta que você tem as informações do seu provedor de serviços em mãos, pois será necessário sabê-las bem no início do processo de instalação.
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), então tudo que você precisa fazer é digitar o comando dial no terminal ppp. Do contrário, será necessário saber como discar para seu ISP, usando ps comandos AT específicos para seu modem, pois o discador PPP provê um emulador de terminal bastante simples. Por gentileza, refira-se ao handbook do PPP em modo usuário e às entradas da FAQ sobre PPP. Se você tiver problemas, as mensagens de log podem ser direcionadas à sua tela, utilizando os comandos set log local ....
Se existir uma conexão cabeada para outra máquina FreeBSD (2.0-RELEASE ou posterior) disponível, você deve considerar também a instalação por meio de um cablo laplink na porta parabela. O tráfego de dados em uma porta paralela é muito maior do que normalmente é possível em uma linha serial (cerca de 50 kbytes/sec), resultando portando em uma instalação mais rápida.
Finalmente, para a instalação por rede mais rápida possível, uma placa de rede Ethernet é sempre uma boa escolha! FreeBSD suporta a maioria das placas Ethernet disponíveis para PC; uma tabela das placas suportados (e suas configurações usuais) é disponibilizada nas Notas de Hardware de cada versão do FreeBSD. Se você estiver utilizando um dos cartões PCMCIA suportados, garanta também que ela está inserida antes que o laptop seja ligado! O FreeBSD não suporta, infelizmente, inserção à quente de cartões PCMCIA durante a instalação.
Você precisará também saber o seu endereço IP na rede, e o valor da máscara de rede para sua classe de endereçamento, bem como o nome da sua estação. Se você estiver instalando por meio de uma conexão PPP e não tem um endereço IP estático, não tema, o endereço IP é atribuido automaticamente pelo seu ISP. Seu administrador de sistemas pode informar que valores usar para uma configuração específica. Se você for fazer referência à outras estações por nome, e não por endereçamento IP, será necessário saber o endereço de um servidor de nomes e também o endereço do seu gateway (se você estiver utilizando PPP, é o endereço IP da outra ponta do provedor). Se sua intenção é instalar por FTP por meio de um proxy HTTP, será necessário saber o endereço do proxy. Se você não faz idéia da resposta para algumas ou a maioria destas questões, então você deveria conversar com seu administrador de sistemas ou seu ISP antes de tentar esse tipo de instalação.
A instalação NFS é trivial. Basta simplesmente copiar os arquivos da distribuição FreeBSD que você deseja utilizar no servidor NFS e apontar a seleção da mídia NFS para este servidor.
Se o servidor suporta exclusivamente acesso em portas privilegiadas (normalmente este é o padrão em estações de trabalho Sun), será necessário definir esta opção no menu Options antes que a instalação possa prosseguir.
Se sua placa de rede Ethernet é de baixa qualidade e sofre com taxas de transferência baixa, você ainda pode desejar habilitar a opção apropriada neste mesmo menu.
Para uma instalação NFS funcionar, o servidor deve suportar montagem de subdiretórios, por exemplo, se o diretório de sua distribuição FreeBSD 6.2 fica localizado em: ziggy:/usr/archive/stuff/FreeBSD, então o servidor ziggy deverá permitir montagem direta do /usr/archive/stuff/FreeBSD, não apenas do /usr ou /usr/archive/stuff.
No arquivo /etc/exports do FreeBSD, este controle é feito
por meio das opções -alldirs . Outros servidores NFS podem
manter convenções distintas. Se você estiver tendo problemas com permissões negadas
(permission denied) no servidor, é muito provável que você não tenha habilitado estas
configurações de forma apropriada.
O capítulo a seguir cobrirá os comandos básicos 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 capítulo se você for familiar com o conteúdo deste material. Se você é um novo usuário FreeBSD, então definitivamente você deve ler todo este capítulo cuidadosamente.
Após a leitura deste capítulo, você saberá:
Como usar os consoles virtuais do FreeBSD.
Como as permissões UNIX funcionam.
A disposição padrão dos sistemas de arquivos no FreeBSD.
Como montar e desmontar sistemas de arquivos.
O que são daemons, processos e sinais.
O que é uma shell (interpretador de comandos) e como modificar seu ambiente padrão de login.
Como utilizar editores de texto básicos.
O que são dispositivos e nós de dispositivos.
Que formato binário é usado no FreeBSD.
Como ler as páginas de manual para obter mais informações.
O FreeBSD pode ser utilizado de várias maneiras. Uma delas é através de comandos digitados em um terminal de texto. Muito da flexibilidade e do poder de um sistema operacional UNIX é disponível de imediato ao alcance de suas mãos, quando se utiliza o FreeBSD desta maneira. Esta seção descreve o que são terminais e consoles e como utiliza-los no FreeBSD.
Se você não configurou o FreeBSD para iniciar um ambiente gráfico automaticamente durante sua inicialização, o sistema irá apresentar a você uma tela de login assim que for iniciado, logo depois que os scripts de inicialização forem executados. Você verá algo similar a:
Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002 FreeBSD/i386 (pc3.example.org) (ttyv0) login:
A mensagem deve ser um pouco diferente em seu sistema, mas algo similar será apresentado. As duas últimas linhas são as que nós estamos especialmente interessandos no momento. Na penúltima linha você pode ler:
FreeBSD/i386 (pc3.example.org) (ttyv0)
Essa linha oferece algumas informaçòes sobre o sistema que acabou de ser iniciado. Você está olhando para um console FreeBSD, rodando em arquitetura Intel x86 ou compatível[1]. O nome desta máquina (toda máquina 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 usuário (username) para logar-se no FreeBSD. A próxima seção descreve como fazê-lo.
FreeBSD é um sistema multiusuário e de multiprocessamento. Esta é a descrição formal normalmente dada a um sistema que pode ser usado por pessoas diferentes, que simultâneamento executam uma série de programas na mesma estação.
Todo sistema multiusuário requer uma maneira para fazer distinção entre um usuário e os outros. No FreeBSD (e todo sistema operacional similar ou baseado em UNIX) isso é garantido com a obrigatoriedade de todo usuário logar-se ao sistema antes de poder executar qualquer programa. Todo usuário tem um nome único (o username) e uma senha secreta pessoal (o password). O FreeBSD solicitará estas duas informações para permitir que um usuário se logue ao sistema e execute qualquer programa.
Assim que o FreeBSD é iniciado e acaba de executar seus scripts de inicialização[2], será apresentada a você uma tela que solicitará um usuário válido:
login:
Para compreensão deste exemplo, vamos assumir que o seu nome de usuário é 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 usuário john e aperte Enter. A senha não é apresentada! Não é necessário se preocupar com isso agora. É suficiente dizer que o comportamento é este por razões de segurança.
Se você digitou sua senha corretamente, você deve ter se logado no FreeBSD e está pronto para testar todos os comandos disponíveis.
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.
É legal utilizar um console para executar comandos UNIX, mas o FreeBSD pode executar vários programas de uma vez. Ter apenas um console onde os comandos são digitados pode ser considerado um leve desperdício, quando um sistema operacional como o FreeBSD pode rodar dezenas de programas ao mesmo tempo. É aí que os consoles virtuais podem se mostrar muito úteis.
O FreeBSD pode ser configurado para oferecer vários consoles virtuais diferentes. Você pode alternar de um para outro apertando um conjunto de teclas em seu teclado. Cada console tem seu próprio canal de saída, e o FreeBSD cuida de redirecionar as entradas do console para cada console virtual e monitor, e também a saída padrão quando você alterna de um para o próximo console virtual.
Combinações especiais de teclas foram reservada pelo FreeBSD para controlar a alternância de consoles[3]. Você pode usar Alt-F1, Alt-F2, até Alt-F8 para alternar entre diferentes consoles virtuais no FreeBSD.
Conforme você estiver alternando entre um console e outro, o FreeBSD se responsabiliza por salvar e restaurar o conteúdo de de cada tela. O resultado é uma ilusão de múltiplas telas e teclados virtuais disponíveis, de forma que você possa digitar qualquer comando para o FreeBSD executar. Os programas que são iniciados por você em um console virtual não param de ser executados quando o console não está visível. Eles continuam a ser processados quando acontece alternância de console virtual.
A configuração padrão do FreeBSD iniciará oito consoles virtuais. Contudo, esta configuração não é imutável e pode ser fácilmente customizada de forma a possibilitar que o sistema seja iniciado com mais ou menos consoles virtuais. O número e definições para os consoles virtuais estão configuradas no arquivo /etc/ttys.
Você pode usar o arquivo /etc/ttys para configurar consoles virtuais do FreeBSD. Cada linha descomentada neste arquivo (linhas que não começam com o caracter #) contém ajustes para um único terminal ou console virtual. A versão padrão deste arquivo oferece com o FreeBSD nove consoles virtuais, e habilita oito deles. São as linhas que começam com ttyv:
# name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
Para obter uma descrição detalhada do significado de cada coluna deste arquivo e todas opções disponíveis para os consoles virtuais, consulte a página de manual ttys(5).
Uma descrição detalhada sobre o que é o modo mono-usuário pode ser encontrada em Seção 7.6.2. Vale a pena notar que existe apenas um console disponível quando se está operando o sistema em modo mono-usuário. Não existem consoles virtuais disponíveis. As configurações do console em modo mono-usuário também podem ser definidas no arquivo /etc/ttys. Olha na linha que começa com console:
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure
Nota: Como indicam os comentários acima da linha console, você pode editar esta linha e modificar a entrada secure para insecure. Se você o fizer, quando o FreeBSD iniciar em modo mono-usuário, ele continuará pedindo a senha do usuário root.
Seja cuidadoso ao modificar esta opção para insecure. Se você esquecer um dia a senha de root, entrar em modo mono-usuário vai ser um pouco complicado. Ainda é possível, mas será um pouco difícil para os usuários ainda não muito confortáveis com o processo de inicialização do FreeBSD e os programas envolvidos.
FreeBSD, como decendente direto do UNIX BSD, se baseia em inúmeros conceitos chaves do UNIX. O primeiro e mais citado, é que o FreeBSD é um sistema operacional multi-usuário. O sistema pode gerenciar inúmeros usuários, todos trabalhando simultaneamente em tarefas completamente distintas. O sistema é responsável pelo compartilhamento, e gerencialmente apropriado de pedidos de acesso aos dispositivos de controle de equipamentos, periféricos, de memória, e tempo de processamento, de forma justa entre os usuários.
Pelo fato do sistema poder suportar múltiplos usuários, tudo que o sistema gerencia é composto de um conjunto de permissões que governam quem pode ler, escrever, e executar recursos. Estas permissões são armazenadas como três octetos divididos em três partes, uma para o dono do arquivo, uma para o grupo à que o arquivo pertence, e uma para todos os outros usuários. Sua representação numérica funcionam assim:
| Valor | Permissões | Listagem de diretório |
|---|---|---|
| 0 | Sem leitura, sem escrita, sem execussão | --- |
| 1 | Sem leitura, sem escrita, com execussão | --x |
| 2 | Sem leitura, com escrita, sem execussão | -w- |
| 3 | Sem leitura, com escrita, com execussão | -wx |
| 4 | Com leitura, sem escrita, sem execussão | r-- |
| 5 | Com leitura, sem escrita, com execussão | r-x |
| 6 | Com leitura, com escrita, sem execussão | rw- |
| 7 | Com leitura, com escrita, com execussão | rwx |
A opção -l pode ser usada junto ao ls(1) para visualizar
listagem detalhada do diretório incluindo uma coluna com informações sobre as permissões
de cada arquivo, para o dono, grupo, e outros. Por exemplo, a saída do comando ls -l em um diretório qualquer, mostrará:
% ls -l total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ...
Aqui está a forma como a primeira coluna do ls -l é dividida:
-rw-r--r--
O primeiro caracter (o mais à esquerda) indica que se este é um arquivo normal, se é um diretório, um dispositivo especial, um socket ou qualquer outro pseudo-dispositivo especial. Nesse caso, o - indica que trata-se de um arquivo regular. Os próximos três caracteres, rw- neste exemplo, indicam as permissões para o dono do arquivo. Os próximos três caracteres, r--, indicam as permissões para o grupo ao qual o arquivo pertence. Os três caracteres finais, r--, indicam as permissoes para o resto do mundo. Um hífen indica que a permissão 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 também apenas ler o arquivo. De acordo com a tabela acima, as permissões para o arquivo seriam 644, onde cada dígito representa as três partes das permissões do arquivo.
Isso é muito bonito e legal, mas como o sistema controla as permissões 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 são armazenados no diretório /dev.
Diretórios também são tratados como arquivos comuns. Eles tem permissões de leitura, escrita e execussão. O bit de execussão em um diretório tem uma sutíl diferença quando comparado a um arquivo. Quando um diretório é definido como executável, significa que ele pode ser explorado, ou seja, que é possível entrar neste diretório (cd). Também significa que dentro do diretório, pode-se acessar arquivos cujos nomes são conhecidos (de acordo com as permissões dos próprios arquivos, é claro).
Em particular, para realizar a listagem de um diretório, é necessário ter permissões de leitura no mesmo, enquanto para apagar um arquivo cujo nome já é conhecido, é necessário ter permissões de escrita e execussão no diretório onde está o arquivo.
Existem outros bits de permissões, mas eles são utilizados em circustâncias especiais como binários como setuid e diretórios com opção sticky. Se você deseja obter mais informações sobre as permissões de arquivo e como defini-las, dê uma olhada na página de manual do chmod(1).
Permissões simbólicas, as vezes se referem à expressões de permissões, ou o uso de caracteres em substituição aos valores octais que atribuem permissões aos arquivos e diretórios. Expressões simbólicas usam a sintaxe (quem) (ação) (permissões), onde os seguintes valores estão disponíveis:
| Opção | Letra | Representação |
|---|---|---|
| (quem) | u | Usuário |
| (quem) | g | Grupo dono |
| (quem) | o | Outros |
| (quem) | a | Todos (o mundo) |
| (ação) | + | Adicionar permissões |
| (ação) | - | Remover permissões |
| (ação) | = | Definir permissões explicitamente |
| (permissões) | r | Leitura |
| (permissões) | w | Escrita |
| (permissões) | x | Execussão |
| (permissões) | t | Bit de sticky |
| (permissões) | s | Define UID ou GID |
Estes valores são 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 usuários deixem de acessar determinado ARQUIVO:
% chmod go= ARQUIVO
Pode-se fazer uso de uma lista separado por vírgula, quando se desejar que mais de uma modificação seja realizada no arquivo. Por exemplo, o comando à seguir remove as permissões de escrita para o grupo e todo o mundo, no ARQUIVO, e então adiciona permissões de execussão à todos:
% chmod go-w,a+x FILE
Conhecer a hierarquia de diretórios do FreeBSD é fundamental para se obter entendimento total do sistema. O conceito mais importante para se assimilar é o conceito do diretório raíz, o /. Esse diretório é montado inicialmente no momento em que o sistema é carregado, e ele contém o sistema base necessário para preparar a entrada em modo de operação multi-usuário do sistema operacional. O diretório raiz contém ainda pontos de montagem para cada outro sistema de arquivos que você queira montar.
Um ponto de montagem é um diretório onde sistemas de arquivos adicionais podem ser
acoplados ao sistema de arquivos raíz. Pontos de montagem padrão incluem /usr, /var, /mnt, e
/cdrom. Esses diretórios normalmente são encontrados como
entradas dispostas no arquivo /etc/fstab. O /etc/fstab é uma tabela com vários sistemas de arquivos e pontos de
montagem que o sistema usa como referência. A maioria dos sistemas de arquivos no
/etc/fstab são montados automaticamente no momento da
inicialização, à partir do script rc(8) a não ser que eles
contenham a opção noauto definida. Consulte a página de
manual do fstab(5) para obter mais
informações sobre o formato do arquivo /etc/fstab e seu
conteúdo.
Uma descrição completa da hierarquia do sistema de arquivos está disponível na página de manual hier(7). Por hora, uma breve descrição dos diretórios mais comuns será abordada:
| Diretório | Descrição |
|---|---|
| / | Diretório raíz do sistema de arquivo. |
| /bin/ | Utilitários do usuário, fundamentais para os ambientes de multi-usuário e mono-usuário. |
| /boot/ | Arquivos e programas de configuração que são usados durante o processo de inicialização do sistema operacional. |
| /boot/defaults/ | Arquuivos de configuração padrão do sistema de inicializaçào, veja a página de manual loader.conf(5). |
| /dev/ | Dispositivos de controle; veja intro(4). |
| /etc/ | Arquivos e scripts de configuração do sistema. |
| /etc/defaults/ | Arquivos de configuração padrão do sistema; veja rc(8). |
| /etc/mail/ | Arquivos de configuração para os agentes de transferência de correio, como o sendmail(8). |
| /etc/namedb/ | Arquivos de configuração do named; veja named(8). |
| /etc/periodic/ | Scripts que são executados diariamente, semanalmente e mensalmente por meio do cron(8); veja periodic(8). |
| /etc/ppp/ | Arquivos de configuração do ppp; veja ppp(8). |
| /mnt/ | Diretório vazio normalmente utilizado pelos administradores de sistemas como ponto de montagem temporário. |
| /proc/ | Sistema de arquivos de processos; veja procfs(5) e mount_procfs(8). |
| /root/ | Diretório home da conta de usuário root. |
| /sbin/ | Utilitários de programas e administração, fundamentais para os ambientes de multi-usuário e mono-usuário. |
| /stand/ | Programas usados no ambiente independente. |
| /tmp/ | Arquivos temporários, normalmente um diretório montado em memória por meio do mfs(8) ( o conteúdo do /tmp normalmente NÃO é preservado durante uma reinicialização do sistema). |
| /usr/ | A maioria dos utilitários e aplicações de usuários. |
| /usr/bin/ | Utilitários comuns, ferramentas de programação e aplicações. |
| /usr/include/ | Arquivos C padrão de inclusão. |
| /usr/lib/ | Bibliotecas. |
| /usr/libdata/ | Arquivos de dados de utilitários variados. |
| /usr/libexec/ | Daemons & utilitários do sistema (executados por outros programas). |
| /usr/local/ | Executáveis locais, bibliotecas, etc. Também utilizado como destino padrão para o sistema de Ports. Dentro de /usr/local, a disposição hierárquica geral é definida pelo hier(7) como o definido pelo /usr. Exceto o diretório de páginas de manuais que são diretamente dispostas sob /usr/local ao invés de serem sobre /usr/local/share, e a documentação das aplicações de terceiros, que ficam sob share/doc/port. |
| /usr/obj/ | Arquivo de destino dos objetos binários específicos para cada arquitetura, constribuídos à partir da árvore /usr/src. |
| /usr/ports | A Coleção de Ports do FreeBSD (opcional). |
| /usr/sbin/ | Daemons & utilitários do sistema (executados por usuários). |
| /usr/share/ | Arquivos independentes de arquitetura. |
| /usr/src/ | Arquivos de fontes locais e/ou BSD. |
| /usr/X11R6/ | Executáveis da distribuição do X11R6, bibliotecas, etc (opcional). |
| /var/ | Arquivos de log de múltiplos propósitos, arquivos temporários, de transição, e arquivos de bobina (spool). |
| /var/log/ | Arquivos de logs variados do sistema. |
| /var/mail/ | Arquivos de caixa de corrêio dos usuários. |
| /var/spool/ | Diretórios de spool de impressão e de correio. |
| /var/tmp/ | Arquivos temporários que são mantidos entre reinicializações do sistema. |
| /var/yp | Mapas NIS. |
A menor unidade organizacional que o FreeBSD utiliza para definir os arquivos é o nome de arquivo. Nome de arquivos são case-sensitive, ou seja fazem distinção entre maiúsculas e minúscilas, o que significa que readme.txt e README.TXT são dois arquivos distintos. FreeBSD não utiliza a extensão do arquivo (.txt) para determinar se o arquivo é um programa ou um documento, ou ainda qualquer outro tipo de dado.
Arquivos são armazenados em diretórios. Um diretório pode não conter arquivo algum, ou pode conter centenas de arquivos. Um diretório pode ainda conter outros diretórios, permitindo que você construa hierarquias inteiras de diretórios, uns dentro dos outros. Isso torna a organização de seus dados muito mais fácil.
Arquivos e diretórios são identificados por seu nome, seguido por uma barra dianteira, /, seguido de outros nomes de diretórios, conforme necessário. Se você tem o diretório foo, e dentro dele o diretório bar, que por sua vez contém o arquivo readme.txt, então o nome completo, ou o path para este arquivo é foo/bar/readme.txt.
Diretórios e arquivos são armazenados em um sistema de arquivos. Cada sistema de arquivos contém exatamente um diretório de nível hierárquico interior, chamado de diretório raíz para o sistema de arquivos. Este diretório raíz pode conter outros diretórios.
Certamente isso tudo é similar à qualquer outro sistema operacional que você já usou. Existem algumas diferenças básicas; por exemplo, DOS usa a barra invertida, \, para separar qualquer arquivo ou nome de diretório, enquanto o Mac OS® utiliza o :.
O FreeBSD não 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 invés disso, um sistema de arquivo é definido como sistema de arquivos raíz. O diretório raíz do sistema de arquivo raíz é o /. Todo outro sistema de arquivos é montado (mounted) sob este sistema de arquivos. Não importa quantos discos existam no seu sistema FreeBSD, cada diretório é apresentado como parte do disco.
Suponha que você tenha três sistemas de arquivos, chamados A, B, e C. Cada sistema de arquivos tem seu próprio diretório raíz, que contém outros dois diretórios chamados A1, A2 (e da mesma forma B1, B2 e C1, C2).
Assuma A como sistema de arquivos raíz. Se você usou o comando ls para visualizar o conteúdo deste diretórios, você veria dois subdiretórios, A1 e A2. A árvore de diretórios ficaria assim:

Todo sistema de arquivos deve ser montado em um diretório disposto em outro sistema de arquivos. Então, suponha que você tenha montado o sistema de arquivos B no diretório A1. O diretório raíz do B substitui A1, e os diretórios em B se tornam apropriadamente disponíveis:

Quaisquer arquivos que estejam nos diretórios B1 ou B2 podem ser acessados com o path /A1/B1 ou /A1/B2 conforme necessário. Qualquer arquivo que estivesse no /A1 foi temporariamente escondido. Eles reaparecerão se B for desmontado de A.
Se B foi montado em A2 então o diagrama será parecido com:

e os paths seriam /A2/B1 e /A2/B2 respectivamente.
Os sistemas de arquivos podem ser montados em sobreposição à outros. Prosseguindo com o último exemplo, o sistema de arquivo C poderia ser montado sobre o diretório B1 no sistema de arquivos B, levando ao seguinte arranjo:

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

Se você tem familiaridade com o DOS, a teoria é parecida, mas não idêntica, ao comando join.
Normalmente isso não é 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 modifica-los, a não ser que você adicione um novo disco.
É completamente possível ter um sistema de arquivos raíz, e não criar mais nenhum. Existem alguns problemas com esta abordagem e uma grande desvantagem.
Benefícios de sistemas de arquivos múltiplos
Sistemas de arquivos distintos podem ter opções de montagem distintas. Por exemplo, com planejamento cuidadoso, o sistema de arquivos raíz pode ser montado como apenas-leitura, criando um ambiente onde será impossível apagar ou editar arquivos críticos inadivertidamente. Separando sistemas de arquivos que podem ser escritos por todos usuários, como o /home, de outros sistemas de arquivos, ainda permite que eles sejam montados com nosuid; esta opção previne que os bits suid/guid sejam atribuídos em arquivos executáveis, não tendo mais efeito no sistema de arquivos em questão, possívelmente complementando a segurança do ambiente.
O FreeBSD otimiza a disposição dos arquivos de forma automática, dependendo de como o sistema de arquivos está sendo usado. Portanto um sistema de arquivos que contém muitos arquivos pequenos que são freqüentemente escritos terão regras de otimização distintas daqueles sistemas de arquivos com poucos, mas grandes arquivos. Mantendo um único sistema de arquivos enorme, esta otimização se torna inviável.
Os sistemas de arquivos do FreeBSD são muito robustos, mesmo em situações de queda de energia. Contudo, uma interrupção de energia em um ponto crítico pode danificar parcialmente a estrutura do sistema de arquivos. Dividir os dados em múltiplos sistemas de arquivos aumenta a possibilitado do sistema não ficar indisponível, tornando mais fácil a restauração de cópias de segurança, caso necessário.
Benefícios de um único sistema de arquivos
Sistemas de arquivos tem tamanho fixo. Se você criar um sistema de arquivos ao instalar o FreeBSD e definir tamanho específico, posteriormente você pode descobrir que tem a necessidade de uma partição maior. Não é uma tarefa fácil resolver isso, sem fazer cópias de segurança e recriar o sistema de arquivos com o novo tamanho e depois restaurar a cópia.
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 limitação.
Sistemas de arquivos são contidos em partições. Isso não significa a mesma coisa do que a forma de utilização do termo partição anteriormente neste capítulo, por causa da herança UNIX do FreeBSD. Cada partição é identificada com uma letra que varia de a à h. Cada partição possui um sistema de arquivos, o que significa que sistemas de arquivos normalmente são identificados ou por seu ponto de montagem na hierarquia do sistema de arquivos, ou pela letra disposta no nome de cada partição.
O FreeBSD ainda usa espaço de disco para o espaço de troca, ou swap. Swap oferece características de memória virtual ao FreeBSD. Isso permite que seu computador se comporte como se tivesse mais memória disponível do que na realidade tem. Quando o FreeBSD excede a memória disponível ele move alguns trechos de dados que não estão sendo utilizados para o espaço de troca, a swap, e move esses dados de volta pra memória (descarregando alguma outra coisa para liberar recursos) quando necessário.
Algumas partições mantém algumas convenções associadas.
| Partição | Convenção |
|---|---|
| a | Normalmente contém o sistema de arquivos raíz |
| b | Normalmente contém a partição de swap (troca) |
| c | Normalmente tem o mesmo tamanho da partição inclusa. Isso permite que alguns utilitários que precisam trabalhar na partição toda (por exemplo, um identificador de blocos defeituosos) funcionem corretamenta na partição c. Você não vai criar um sistema de arquivos de verdade nesta partição. |
| d | A partição d costumava ter um significado 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 partição d, de forma que o sysinstall não cria mais esta partição. |
Cada partição que contém um sistema de arquivos é armazenada em um tipo especial de partição que o FreeBSD chama de slice. Este termo é utilizado pelo FreeBSD para fazer menção ao que, mais uma fez, costumava ser chamado de partição, e isso se deve à base UNIX por trás do sistema FreeBSD. Estas partições (slices) são numeradas, iniciando do 1, até o 4.
Número de partições seguem o nome do dispositivo adicionado de um prefixo com o caractér s, começando do 1. Portanto da0s1 é a primeira slice de um disco, mas é possível que existam partições lógicas dentro de cada partição física do tipo apropriado. Estas partições extendidas são numeradas à partir do 5, de forma que ad0s5 seja a primeira partição extendida do primeiro disco IDE. Estes dispositivos são utilizados por sistemas de arquivos que ocupam esse tipo de partição.
Partições, dispositivos físicos, perigosamente dedicados e outros dispositivos contém partições que costumam ser representadas como letras, começando de a até h. Estas letras são atribuídas ao nome dos dispositivos, de forma que da0a indique a partição no primeiro dispositivo, que na realidade é perigosamente dedicado. ad1s3e é a quinta partição na primeira slice do segundo dispositivo de disco IDE.
Finalmente, cada disco no sistema esta identificado. Um nome de disco começa com um código que indica o tipo do disco em questão, e em seguida um número, que indica que disco é esse. Diferente das partições, a numeração dos discos inicia em 0. Informações usuais que você encontrará listados em Tabela 3-1.
Ao se referir a uma partição, o FreeBSD requer que você nomeie cada slice e disco que contenha a partição em questão, e que ao se referir à slice você também identifique o nome do disco. Faça isso listado o nome do disco, s, o número da slice, e em seguida a letra da partição. Exemplos são apresentados em Exemplo 3-1.
Exemplo 3-2 apresenta o modelo conceitual das disposições de disco, o que pode ajudar a tornar as coisas mais claras.
Para instalar o FreeBSD, primeiro você deve configurar os slices de disco, e depois criar as partições em cada slice destinada ao FreeBSD, e criar um sistema de arquivo (ou swap) em cada partição, e decidir onde o sistema de arquivos será montado.
Tabela 3-1. Códigos de Dispositivos de Disco
| Código | Significado |
|---|---|
| ad | disco ATAPI (IDE) |
| da | disco SCSI de acesso direto |
| acd | CDROM ATAPI (IDE) |
| cd | CDROM SCSI |
| fd | Disquete |
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 contém duas partições de 2 GB (partições DOS). A primeira slice contém um disco DOS, o C:, e a segunda slice contém a instalação do FreeBSD. Esta instalação FreeBSD de exemplo tem três partições, e uma swap.
As três partições terão um sistema de arquivos cada. A partição a será utilizada pelo sistema de arquivos raíz, e será utilizada pela hierarquia de diretório /var, e f pela hierarquia de diretório /usr.

O sistema de arquivos pode ser melhor assimilado se for visualizado como uma árvore, cuja raíz é /. /dev, /usr, e outros diretórios na raíz, são os ramos da árvore, que podem ainda ter seus próprios ramos, como /usr/local, e assim por diante.
Existem vários motivos para armazenar alguns destes diretórios em sistemas de arquivos distintos. /var contém os diretórios log/, spool/, e vários tipos de arquivos temporários, e como tal, pode fácilmente encher. Encher o sistema de arquivos raíz não é uma boa idéia, de forma que separar o /var do / é sempre favorável.
Outra razão usual para manter certas árvores de diretórios em outros sistemas de arquivos é que eles podem ser alojados em discos físicos separados, ou em um disco virtual separado como pontos de montagem NFS ou dispositivos de CDROM.
Durante o processo de inicialização, os sistemas de arquivos
listados no /etc/fstab são automaticamente montados (a não ser
que eles tenham a opção noauto definida).
O arquivo /etc/fstab contém uma lista de linhas no seguinte formato:
device /mount-point fstype options dumpfreq passno
Um nome de dispositivo (que deve existir), conforme explicado em Seção 12.2.
Um diretório (que deve existir), onde o sistema de arquivos é montado.
O tipo de sistema de arquivo que será passado ao mount(8). O sistema de arquivos padrão do FreeBSD é ufs.
Pode ser rw para sistemas de arquivos com opções de
leitura e escrita, ou ro para apenas leitura, seguidos de
qualquer outra opção necessária. Uma opção bastante usual é noauto para os sistemas de arquivos que normalmente não devem ser
montados automaticamente pelo processo de inicialização. Outras opções são listadas na
página de manual do mount(8).
Essa opção é utilizada pelo dump(8) para determinar que sistema de arquivos devem sofrer o processo de dump(8) (o dump(8) é uma ferramenta para cópia de segurança). Se o campo não estiver presente, o valor zero é assumido.
Determina a ordem que os sistemas de arquivos devem ser verificados. Sistemas de arquivos cuja verificação pode ser omitida, devem ter seu passno definidos em zero. O sistema de arquivos raíz (que deve ser verificado antes de todos os outros) deve ter seu passno definido como um, e os outros sistemas de arquivos podem ter esta opção definida com um valor maior. Se mais de um sistema de arquivos disporem do mesmo número, o fsck(8) tentará fazer as verificações de forma paralela, se possível.
O comando mount(8) é a ferramenta usada para montar sistemas de arquivos.
Em sua forma mais básica, basta usar:
Existem inúmeras opções, e estão todas dispostas na página de manual do mount(8), mas as mais comuns são:
Opções de montagem
-aMonta todos os sistemas de arquivos listados no /etc/fstab.
Exceto aqueles assinalados com a opção noauto, excluídos pala opção -t, ou aqueles que já estiverem montados.
-dFaz tudo, exceto a efetivação da chamada de sistema para a montagem. Essa opção é
muito útil, em conjunto com a -v para descobrir o que o
mount(8) está tentando
fazer.
-fForça a montagem de um sistema de arquivos que não tem garantia de integridade (isso é perigoso), ou força a revogação 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.
-rMonta o sistema de arquivos como somente leitura. Essa opção é idêntica ao argumento
rdonly na opção -o.
-t tipo de sistema de
arquivosMonta o sistema de arquivos em questão, como do tipo em atribuído, ou monta apenas
sistemas de arquivos do tipo atribuído se for usado em conjunto com a opção -a.
ufs é o tipo padrão de sistema de arquivos.
-uAtualiza opções de montagem no sistema de arquivos.
-vTorna-se verboso.
-wMonta o sistema de arquivos como leitura e escrita.
A opção -o pode utilizar uma lista de opções separadas por
vírgula, das quais, as principais são:
Não interpreta dispositivos especiais no sistema de arquivos em questão. Esta é uma opção útil para segurança.
Não permite execussão de binários neste sistema de arquivos. Também é uma opção muito útil para segurança.
Não interpreta opções de setuid ou setgid no sistema de arquivos. É uma opção útil para segurança.
O comando umount(8) recebe como
parâmetro o ponto de montagem, o dispositivo, a opção -a ou a
opção -A.
Todas estas maneiras podem ter também as opções -f para
forçar desmontagem, e -v para ser verboso. Esteja atento ao
fato que a opção -f geralmente não é uma boa idéia. Desmontar
os sistemas de arquivos forçozamente pode causar dano aos dados do sistema de
arquivos.
-a and -A são usadas para
desmontar todos os sistemas de arquivos; este comportamento é possivelmente modificado em
conjunto com a opção -t. -A,
contudo, não tenta desmontar o sistema de arquivos raíz.
O FreeBSD é um sistema operacional multi-tarefa. Isso significa que ele cria um ambiente onde os recursos computacionais são 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 vários processos do sistema que estão sempre em execussão, mantendo a funcionalidade do ambiente como um todo.
Cada processo é identificado de forma única com um número, que é chamado de identificação do processo, ou process ID, ou então a forma abreviada e mais comum, PID, e, assim como os arquivos, cada processo também tem um dono e grupo. As informações sobre dono e grupo são utilizadas com o intúito de determinar que arquivos e dispositivos o processo pode abrir, utilizando as permissões 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, então essa shell é um processo, e todo comando executado é outro processo. Todo comando executado desta forma terá sua shell como o processo pai. A única excessão é 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 são particularmente úteis para verificar os processos ativos no sistema, o ps(1) e o top(1). O comando ps é usado para apresentar uma lista estática dos processos sendo executados no momento, e pode apresentar seu PID, quanta memória o processo está utilizando, a linha de comando que o iniciou, e assim por diante. O comando top apresenta todos os processos em execussão, 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 padrão o ps apenas apresenta os comandos que estão sendo executados por você, e cuja propriedade também seja sua. Por exemplo:
% ps PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish
Como você pode acompanhar neste exemplo, a saída do comando ps(1) é organizada em várias colunas. PID é a identificação do processo discutida anteriormente. PIDs são atribuíudos à partir do 1, e vão 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 execussão na CPU em questão -- normalmente não é o tempo total desde que o processo foi iniciado, e sim tempo de execussão, uma vez que vários programas ficam um bom tempo esperando que algo aconteça para eles utilizarem tempo de processamento da CPU. Finalmente, COMMAND é a linha de comando utilizada para executar o programa em questão.
ps(1) suporta uma série de
opções distintas que modificam as informações apresentadas. Um dos cunjuntos mais úteis
de opções é auxww. a apresenta
informações sobre todos os processos em execussão, não apenas os de sua propriedade.
u apresenta o nome do usuário que é o dono do processo, bem
como o uso de memória do mesmo. x apresenta informações sobre
processos daemon, e ww faz o
ps(1) apresentar a linha de
comando completa, ao invés de um trecho compactado para caber na tela.
A saída do top(1) é similar. Uma sessão modelo teria a seguinte aparência:
% 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 USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ...
A saída está dividida em duas seções. O cabeçalho (as primeiras cinco linhas) apresenta o PID do último processo executado, a média de carga do sistema (que mede o quanto o sistema está ocupado), e o tempo de atividade initerrupta do sistema (tempo desde a última inicialização - o uptime). As outras informações do cabeçalho inidicam quantos processos (47 neste caso) estão ativos, quando de memória e swap foi utilizado, e quanto tempo o sistema está gastando em estados diferentes de uso da CPU.
Abaixo está uma série de colunas com informações similares à saída do ps(1). Como antes, você pode ver o PID, o usuário, o tempo de CPU utilizado, e o comando executado. top(1) também mostra por padrão a quantidade de memória utilizada pelo processo. Essa informação é dividida em dois grupos, uma para o tamanho total de memória, e um para o tamanho residente -- tamanho total indica quanta memória a aplicação 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 informações a cada dois segundos, o que pode ser modificado com a
opção s.
Ao usar um editor, é fácil controla-lo, indicar que ele deve carregar arquivos, e assim por diante. Você pode fazê-lo pois o editor oferece algumas opções para fazê-lo, e por que o editor é diretamente interligado a um terminal. Alguns programas não são projetados de forma a utilizar informações contínuas do usuário, e assim ele se desconecta do terminal em sua primeira oportunidade. Por exemplo, um servidor HTTP passa o tempo todo respondendo requisições da rede, e normalmente ele não necessita intervenção alguma do usuário. Programas que transportam mensagens de correio de um local para outro, são outro exemplo dessa classe de aplicações.
Chamamos estes programas de daemons. Daemons são personagens da mitologia Grega; não são bons, nem maus, eram apenas espíritos assistentes que, na maior parte do tempo, realizavam tarefas úteis para a humanidade. É por isso que o mascote do BSD, há um bom tempo, é aquele daemon simpático que usa tênis e carrega um tridente.
Existe uma convenção para batizar os programas que normalmente são executados como daemon, que é terminar o nome do programa com um d. BIND é o Daemon de Nomes Internet de Berkeley, (Berkeley Internet Name Daemon - o programa que o executa, é chamado named), O servidor WWW Apache é chamado de httpd, o daemon de impressão em linha é o lpd e assim sucetivamente. Esta é uma convenção, e não uma regra de rápida assimilação; por exemplo, o daemon principal para a aplicação Sendmail é chamado sendmail, e não maild, como você poderia ter imaginado inicialmente.
Algumas vezes será necessário se comunicar com um processo daemon. Essa comunicação é chamada de sinais, e você pode se comunicar com o daemon (ou qualquer outro processo em execussão) enviando-o um sinal. Existem uma série de sinais diferentes que podem ser enviados--alguns dos quais tem um significado específico, e outros são interpretados pela aplicação, e a documentação dessa aplicação indicará o que ela faz quando recebe este tipo de sinal. Você só pode enviar um sinal para os processos que te pertencem. Se você tentar enviar sinais para um processo que não é seu, com kill(1) ou kill(2) terá permissão negada. A única excessão é o usuário root, que pode enviar sinais para os processos de todos.
O FreeBSD em certos casos também enviará sinais às aplicações. Se uma aplicação for mal escrita e tentar acessar endereços de memória que ele não deve, o FreeBSD envia o sinal de violação de segmento ao processo (Segmentation Violation), conhecido como SIGSEGV. Se alguma aplicação usou a chamada de sistema alarm(3) para solicitar que seja alertada depois de certo período de tempo, o sistema envia o sinal de alerta (SIGALRM) ao processo, e assim por diante.
Dois sinais podem ser usados para interromper um processo, SIGTERM e SIGKILL. SIGTERM é uma maneira educada de matar um processo; o processo pode acatar o sinal, entender que você deseja que ele deixe de ser executado, fechar qualquer arquivos de logs que ele tenha aberto, e geralmente terminar a tarefa que ele está realizando no momento, antes de deixar de executar. Em alguns casos um processo pode ignorar o SIGTERM se ele estiver no meio de uma tarefa que não pode ser interrompida.
SIGKILL não pode ser ignorado por qualquer processo. Este é o sinal que diz ao processo, Eu não me importo com o que você esteja fazendo, pare agora mesmo. Se você enviar um SIGKILL a qualquer processo, o FreeBSD irá interromper aquele processo[4].
Outros sinais que você pode querer conhecer são SIGHUP, SIGUSR1, e SIGUSR2. Estes são sinais de propósitos gerais, e aplicações distintas terão comportamento distintos ao receber estes sinais.
Suponha que você modificou o arquivo de configuração do seu servidor HTTP--você deseja dizer ao daemon para ele reler essa configuração. Você poderia parar e reiniciar o httpd, mas isso resultaria em uma breve interrupção do serviço, o que pode não ser desejável. A maioria dos daemons são escritos de forma que respondam a um SIGHUP com a releitura de seu arquivo de configuração. Então, ao invés de matar e reiniciar o processo httpd você enviaria o sinal SIGHUP ao processo. Por não existir uma forma padrão de resposta à estes sinais, cada daemon pode ter um comportamento diferente, de forma que você deve ler a documentação para o programa em questão.
Sinais são 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 configuração do inetd é o /etc/inetd.conf, e o inetd irá reler sua configuração, quando receber o sinal SIGHUP.
Encontre o ID do processo que você quer enviar o sinal. Faça isso com o ps(1) em conjunto com
grep(1). O grep(1) é usado para
procurar por uma cadeia de caracteres na saída desejada. O comando é executado como
usuário normal, e o inetd(8) é executado como
root, então as opções ax devem ser
usadas com o ps(1).
% ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW
Portando o PID do inetd(8) é 198. Em alguns casos o comando grep inetd poderá estar incluso também na saída desses comandos. Isso se deve à maneira como o ps(1) procura na lista de processos em execussão.
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) não apresentará qualquer mensagem se o resultado da ação for bem sucedido. Se você enviou um processo que não é seu, você verá uma mensagem parecida com kill: PID: Operation not permitted. Se você digitar o PID errôneamente, 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 não 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 invés de executar o /bin/kill. Isso pode ser muito útil, mas interpretadores de comandos distintos podem ter sintaxe distinta. Ao invés de aprender a usar cada uma, é bem mais fácil aprender usar o comando /bin/kill ... diretamente.
Enviar outros sinais é muito parecido, basta substituir o TERM ou KILL na linha de comando, conforme for necessário.
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 função de uma shell é receber comandos por um canal de entrada e executá-los. Uma série de shells ainda possuem funções embutidas, o que ajuda a facilitar a realização de tarefas do dia-a-dia, como gerenciamente de arquivos, edição de linha de comando, macros de comandos e variáveis de ambiente. O FreeBSD vem com uma série de interpretadores de comandos, como o sh, chamado de Bourne Shell, e tcsh, A C-shell melhorada. Muitos outros interpretadores de comandos estão disponíveis na Coleção de Ports do FreeBSD, como o zsh e o bash.
Que shell utilizar? Trata-se meramente de uma questão de gosto. Se você é um programador C, se sentirá mais confortável 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 não funcionar corretamente em seu ambiente de trabalho, e também, outro ponto importante é sua liberdade de escolha para decidir qual e quando interpretador utilizar.
Uma das características 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. Então 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 não foi capaz de completar totalmente o nome do arquivo porque existe mais do que uma opções que coincide. Ambos, foobar e foo.bar começam 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 variáveis de ambiente. Variáveis de ambiente são duplas variáveis de valores armazenados no espaço de ambiente da shell. Esse espaço de ambiente pode ser lido por qualquer programa chamado pelo intepretador, de forma que contenha uma série de configurações interpretadas pelo mesmo. Segue aqui uma lista de variáveis de ambiente comuns, e seus respectivos significados:
| Variável | Descrição |
|---|---|
| USER | Nome do usuário logado no momento. |
| PATH | Lista de diretórios, divididos por vírgula, indincando onde deve-se procurar por binários. |
| DISPLAY | Nome de rede do terminal gráfico do X11 onde o mesmo deve se conectar, caso esteja disponível. |
| SHELL | O interpretador de comandos atual. |
| TERM | Nome do terminal do usuário. É usado para determinar as características do terminal. |
| TERMCAP | Entrada com a base de dados de códigos de terminal, que realizam várias funções do console. |
| OSTYPE | A espécie do sistema operacional em questão, por exemplo, FreeBSD. |
| MACHTYPE | A arquitetura de CPU onde o sistema está sendo executado. |
| EDITOR | Editor de texto padrão para o usuário. |
| PAGER | O paginador de texto padrão para o usuário. |
| MANPATH | Lista de diretórios separadaos por vírgulas que indicam onde as páginas de manuais devem ser buscadas. |
Ajustar as variáveis de ambiente é tarefa que se difere de algumas formas entre as várias shells disponíveis. Por exemplo, nas shells baseadas na linguagem C, como o tcsh e o csh, você usaria o setenv para justar as variáveis de ambiente. Sobre um interpretador estilo Bourne shell como o próprio sh e o conhecido bash, você usaria o export para definir a variável de ambiente. Por exemplo, para definir ou modificar o valor da variável de ambiente EDITOR, sob csh ou tcsh, para definir a variável EDITOR com o valor /usr/local/bin/emacs, você faria algo como:
% setenv EDITOR /usr/local/bin/emacs
Enquanto sob uma Bourne shell seria:
% export EDITOR="/usr/local/bin/emacs"
Ainda é possível fazer a maioria dos interpretadores expandirem a variável, simplesmente adicionado o carácter $ na frente da própria variável. Por exemplo, echo $TERM imprimiria todo o conteúdo da variável $TERM, por quê o interpretador interpreta a variável $TERM como seu valor, e o passa para o echo.
Os interpretadores de comandos cuidam ainda de uma série de caracteres especiais, chamados de meta-caracteres, como representações especiais de dados. O caracter mais comum é o *, que representa qualquer conjunto de caracteres em um nome de arquivo. Os meta-caractéres especiais podem ser usados como substituição de arquivos. Por exemplo, o comando echo * tem resultado similar à saída 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 exclusão, inserindo uma barra invertinda (\) na frente deles. echo $TERM imprime em que terminal você está, enquanto echo \$TERM imprime $TERM exatamente.
A forma mais fácil de modificar seu interpretador de comandos é usar o comando chsh. Executar o chsh te colocará no editor definido na variável de ambiente EDITOR; se esta variável não estiver definida, você será colocado no vi. Modifique a linha Shell: de acordo com suas necessidades.
Você pode ainda usar o chsh com a opção -s; assim você pode ajustar sua shell sem
entrar no editor. Por exemplo, se a intenção era modificar seu interpretador para usar o
bash, o truque pode ser feito da seguinte forma:
% chsh -s /usr/local/bin/bash
Utilizar o chsh sem parâmetros e editar a shell também funcionaria.
Nota: O interpretador de comandos que você deseja utilizar deve estar listado no arquivo /etc/shells. Se você instalou o interpretador à partir da Coleção de Ports, isso já foi feito. Se você instalou na mão, você mesmo deve faze-lo.
Por exemplo, se você instalou o bash manualmente e o colocou no /usr/local/bin, você vai querer fazer o seguinte:
# echo "/usr/local/bin/bash" >> /etc/shellsEm seguida, execute novamente o chsh.
Uma série de configurações no FreeBSD são feitas à partir da edição de arquivos de texto. Por tal motivo, seria uma boa idéia se tornar familiar com algum editor de texto. FreeBSD vem com alguns editores, como parte de seu sistema base, e muitos outros editores estão disponíveis na coleção de ports.
O editor mais simples e mais fácil para aprender, é um editor chamado ee, que significa easy editor (editor fácil). Para iniciar o ee, basta digitar na linha de comando ee nomedoarquivo onde nomedoarquivo é o nome do arquivo que deve ser editado. Por exemplo, para editar o /etc/rc.conf, digite ee /etc/rc.conf. Uma vez dentro do ee, todos os comandos para manipular as funções do editor estão listadas no topo da tela. O caracter ^ representa a tecla Ctrl do teclado, de forma que ^e implica na combinação de teclas Ctrl+e. Para sair do ee, aperte a tecla Esc, depois escolha leave editor (sair do editor). O editor irá perguntar se você deseja salvar as modificações no arquivo, caso ele tenha sido alterado.
FreeBSD também oferece editores de texto mais poderosos, como o vi, como parte da base do sistema, enquanto outros editores como emacs e vim, estão disponívels na Coleção de Ports do FreeBSD. Estes editores oferecem muitas funcionalidades e são extramente poderosos, ao custo de serem um pouco mais difíceis de aprender. Contudo se você planeja editar muitos textos, aprender algum editor de texto mais poderoso como vim ou emacs economizará a você mais tempo, à longo prazo.
Um dispositivo é um termo usado em sua maioria para fazer menção à atividades relacionadas à equipamentos físicos no sistema, incluindo discos, impressoras, placas de vídeo e teclados. Quando o FreeBSD é iniciado, a maioria dos dados que o sistema apresenta são referentes à detecção de dispositivos. É possível reavaliar as mensagens de inicialização, analisando o arquivo /var/run/dmesg.boot.
Por exemplo, o dispositivo acd0 é o primeiro CDROM IDE disponível, enquanto kbd0 representa o teclado.
A maioria destes dispositivos em um sistema operacional UNIX devem ser acessados por intermédio de arquivos especiais, chamados nós de dispositivos, ou device nodes, que estão dispostos sob o diretório /dev.
Ao adicionar um novo dispositivo em seu sistema, ou compilar suporte à dispositivos adicionais, pode ser necessário criar um ou mais nós de dispositivos para controlar os recém adicionados.
Em sistemas sem DEVFS (isso diz respeito à todas versões do FreeBSD antes da 5.0), nós de dispositivos são criados utilizando a rotina MAKEDEV(8) como apresentado à seguir:
# cd /dev
# sh MAKEDEV ad1
Este exemplo cria os nós de dispositivos apropriados para o segundo dispositivo IDE, quando o mesmo for instalado.
O sistema de arquivo de dispositivos, ou simplesmente DEVFS, oferece acesso ao espaço em kernel para os dados referentes aos nomes de dispositivos, no sistema de arquivos global. Ao invés de ter que criar e modificar os nós de dispositivos, DEVFS mantém este sistema de arquivos particular.
Veja a página de manual do devfs(5) para obter mais informações.
DEVFS é utilizado por padrão no FreeBSD 5.0 e posteriores.
Para entender o motivo pelo qual o FreeBSD usa o formato ELF você deve saber primeiro um pouco mais sobre os três formados atualmente dominantes de arquivos executáveis UNIX:
O mais antigo e clássico formato de objetos UNIX. Utiliza um cabeçalho curto e compacto com um número mágico (magic number) no início do mesmo, que geralmente é usado para caracterizar seu formato (veja a.out(5) para mais detalhes). Contém três segmentos carregados: .text, .data e .bss, acrecidos de uma tabela de símbolos e uma tabela de conjunto caracteres.
COFF
O formato de objetivos SVR3. Seu cabeçalho compreende uma tabela de seções, de forma que é possível ter mais seções do que apenas .text, .data e .bss.
ELF
O sucessor direto do COFF, oferecendo múltiplas seções e valores possíveis 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 consideração contudo é levemanete incorreta hoje em dia, e nem mesmo no mundo comercial do SYSV (onde existem ao penos três ABIs: SVR4, Solaris e SCO) ela é real.
FreeBSD tenta amenizar este problema por meio de um utilitário que reconhece um executável ELF e obtém informações sobre a ABI compilada neste. O utilitário em questão é o brandelf. Veja a página de manual do brandelf(1) para obter mais informações.
FreeBSD vem do campo clássico e durate muito tempo usou o formato a.out(5), uma tecnologia utilizada e aprovada por muitos gerações de versões de sistemas BSD, até o ramo 3.X do FreeBSD. Apesar de ser possível gerar binários (e mesmo o kernel) no formato ELF bem antes do FreeBSD 3.X, o sistema inicialmente resistiu à pressão de mudar para o formato ELF como formato padrão. Por quê? Bem, quando o pessoal do campo Linux fez sua dolorosa transição para ELF, os executáveis a.out não podiam ser utilizados pois sua tabela de salto era consideradavelmente inflexível, e a construção de bibliotecas compartilhadas parecia ser complexa demais no novo formato, para os fabricantes e desenvolvedores em geral. Depois que algumas ferramentas ELF ofereceram soluções ao problema de bibliotecas compartilhadas, o formato passou a ser visto como o caminho a ser seguido, os custos de migração para este formato já eram então aceitáveis, e a transição 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 fácil de ser utilizado.
Então, por que existem tantos formatos distintos?
De volta ao sombrio, gélido e distante passado, existiam apenas equipamentos simples de computação. Estes equipamentos simples, suportavam sistemas simples e pequenos. O formato a.out era completamente adequado às tarefas apresentadas pelos binários 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 suficiente para as primeiras conversões do UNIX, para arquiteturas como Motorola 68k, VAXen, etc.
Depois algum engenheiro de hardware iluminado decidiu que ele poderia forçar 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 núcleo de sua CPU processasse de forma mais rápida. Mesmo tendo sido projetado para funcionar com este novo tipo de hardware (conhecido hoje em dia como RISC), o formato a.out não se encaixava funcionalmente para o novo equipamento, então vários 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 limitaçòes exploradas antes que as coisas pudessem se estabilizar no formato ELF.
Em adição, o tamanho dos programas estavam se tornando grandes, e os discos (bem como memória física) continuavam relativamente pequenos, então o conceito de bibliotecas compartilhadas nasceu. O sistema de memória virtual também se tornou mais sofisticado. Enquanto cada um desses avanços foram feitos utilizando o formato a.out, sua usabilidade foi se tornando cada vez mais duvidosa, na proporção que novas características eram adicionadas. Em adição, as pessoas queriam poder carregar as coisas de forma dinâmica, no momento de execussão do sistema, ou então dispensar trechos de seus programas depois que o código inicial tivesse sido executado, para economizar memória e espaço de troca (swap) As linguagens se tornaram mais sofisticadas, e as pessoas queriam que códigos fossem carregados antes do programa principal de forma automática. Uma série de modificações 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 não podia mais contornar estes problemas sem sobrecarregar seu código e aumentar sua complexidade. O formato ELF resolvia a maioria desses problemas, mas seria doloroso migrar de um sistema que, basicamente, funcionava. Então 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 construção de onde o FreeBSD derivou suas próprias ferramentas de construção (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 à compilação cruzada, podendo adicionar formatos diferentes à bel prazer, e assim por diante. Partindo do princípio 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 não possibilitava tal tarefa. A nova corrente de ferramentas GNU (binutils) suporta compilação cruzada, ELF, bibliotecas compartilhadas, extensões C++, etc. Além disso, muitos fabricantes passaram a lançar binários 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 são melhor mantidas, e oferecem suporte à compilação cruzada, que é importante para muita gente. O formato ELF pode ser um pouco mais lento do que a.out, mas tentar medir esta diferença é bem difícil. Existem ainda vários detalhes distintos entre ambos, em relação à como eles mapeiam páginas, tratam código de inicialização, carregamento das instruções, etc. Nenhum destes fatores são muito relevantes, mas são 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.
A documentação mais compreensiva do FreeBSD é em forma de páginas de manuais. Quase todo programa no sistema é acompanhado com um breve manual de referência que explica a operação básica e os vários argumentos do programa. Estes manuais podem ser visualizados com o comando man. A utlização do comando man é simples:
% man comando
comando é o nome do comando sobre o qual você deseja aprender. Por exemplo, para aprender sobre o comando ls, digite:
% man ls
O manual online é dividido em seções numeradas:
Comandos de usuário.
Chamadas de sistema e número de erros.
Funções de bibliotecas C.
Controladores de dispositivos.
Formato de arquivos.
Jogos e outras diversões.
Informações gerais.
Comandos de manutenção e operação do sistema.
Desenvolvedores do kernel.
Em alguns casos, o mesmo tópico pode aparecer em mais de uma seção do manual online.
Por exemplo, se houver um comando chmod para o usuário, e se
houver uma chamada de sistema denominada chmod(), você pode
informar ao comando man qual delas você quer, especificando a
seção:
% man 1 chmod
Esse comando apresentará a página de manual para o comando do usuário, chmod. Referências para uma seção particular do manual online normalmente são apresentadas entre parênteses, nos documentos escritos, de forma que chmod(1) se refere ao comando de usuário 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 informações, mas e se você não puder lembrar o nome do comando? Pode usar
o man para procurar por palavras chaves nas descrições do
comando, usando opção -k:
% man -k mail
Com esse comando, uma lista de programas será apresentada, contendo em sua descrição a expressão mail. Na verdade esse comando tem a mesma funcionalidade de se utilizar o comando apropos.
Então, você está dando uma olhada em todos esses simpáticos programas que você encontrou sob /usr/bin mas não tem a menor idéia do que quer que cada um deles faça? Simplesmente digite:
% cd /usr/bin % man -f *
ou
% cd /usr/bin % whatis *
que fazem a mesma coisa.
O FreeBSD inclui várias aplicações e utilitários mantidos pela Fundação do Software Livre (FSF). Em complemento às páginas de manual, estes programas vem ainda com um documento hipertexto extenso, chamado arquivo info que pode ser visualizado com o comando info ou, se você dispõe do emacs instalado, o modo info do emacs tem essa função.
Para usar o comando info(1), simplesmente digite:
% info
Para uma breve introdução, digite h. Para uma rápida referência aos comandos, digite ?.
O FreeBSD tem como parte de seu pacote básico uma vasta coleçao de ferramentas de sistemas. é possível fazer muita coisa antes de ter que instalar aplicativos adicionais de terceiros para trabalhar de verdade. O FreeBSD disponibiliza duas tecnologias complementares para a instalação de aplicativos em seu sistema: A coleção de ports do FreeBSD, e pacotes binários de software. Qualquer um dos dois sistemas pode ser utilizado para instalar as verões mais recentes das suas aplicações preferidas a partir de uma mídia local ou então direto da rede.
Após ler este capitulo você irá conhecer:
Como instalar aplicativos a partir de pacotes binários do software.
Como compilar aplicativos a partir da coleção do Ports.
Como remover aplicativos instalados préviamente através de packages ou ports.
Como sobrescrever os valores padrões utilizados pela coleção de ports.
Como atualizar sua coleção de ports.
Se você já utilizou um sistema UNIX anteriormente, você deve saber que o procedimento tipico para instalar um aplicativo é parecido com isto:
Faça o download do software, o qual pode ser distribuido como código fonte ou no formato binário.
Descompacte o arquivo de distribuição do software (tipicamente um tarball comprimido com compress(1), gzip(1), ou bzip2(1)).
Localize a documentação (normalmente é um arquivo chamado INSTALL ou README, ou então um conjunto de arquivos no subdiretório doc/ ) e descubra como instalar o software.
Se o software for distribuido como código fonte, compile-o. Isto pode envolver a edição de um arquivo Makefile , ou a execução de um script chamado configure , além de outras tarefas.
Teste e instale o software.
E é só isso se tudo correu como esperado. Agora se você está instalando um aplicativo que não foi deliberamente portado para o FreeBSD, você pode ter que fazer ajustes no código fonte do mesmo para que ele compile corretamente.
Se você desejar, você pode continuar instalando aplicativos no FreeBSD pelo método tradicional. Contudo, o FreeBSD disponibiliza duas tecnologias que podem lhe economizar muito esforço: packages e ports. No momento, mais de 16,000 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 contém cópias pré-compiladas de todos os comandos do aplicativo, bem como cópias dos arquivos de configuração e/ou da documentação. O gerenciamento de um pacote FreeBSD é realizado por uma série de comandos especificos, tais como pkg_add(1), pkg_delete(1), pkg_info(1) entre outros. A instalação de um novo aplicativo pode ser realizada através da execução de um unico comando.
Um port FreeBSD para um aplicativo consiste-se em uma coleção de arquivos destinados a automatizar o processo de compilação da aplicação a partir do seu código fonte.
Lembre-se que existem diversos passos que você teria que executar para compilar o programa manualmente ( baixar , descompactar, aplicar correções, compilar e instalar). Os arquivos de um port contém todas as informações necessárias para possibilitar que o sistema automatize o processo para você. Você executa um conjunto de comandos simples e o código fonte do aplicativo é automaticamente baixado, descompactado, corrigido, compilado e instalado para você.
De fato, o sistema de ports pode ser utilizado para pacotes binários do aplicativo, o qual pode ser manipulado mais tarde através do comando pkg_add, ou por qualquer outro comando de gerenciamento de pacotes, os quais iremos introduzir adiante.
Ambos os sistemas de instalação cuidam da instalação das dependências do aplicativo. Suponha que você deseja instalar uma aplicação que depende de uma biblioteca específica para funcionar. Tanto o aplicativo quanto a biblioteca são 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 irão informar que a biblioteca necessária para o funcionamento do aplicativo não está instalada corretamente e irão instalar automaticamente a biblioteca antes de instalar o aplicativo.
dado que ambas as tecnologias são muito similares, você deve querer saber porque o FreeBSD se preocupa com as duas. Os sistemas de pacotes e ports possuem suas próprias virtudes, a que você irá utilizar dependerá da sua preferência pessoal.
Benefícios do sistema de Pacotes
Um pacote tarball comprimido dos binários do aplicativo é é normalmente menor que um tarball compactado contendo o código fonte do mesmo aplicativo.
Um pacote não requer nenhuma compilação adicional. Para os grandes aplicativos como por exemplo Mozilla, KDE, ou GNOME isto pode ser importante, particularmente se você está utilizando uma máquina lenta.
A instalação de um pacote não requer nenhum conhecimento do processo envolvido na compilação do software para o FreeBSD.
Benefícios do Sistema de ports
Um pacote é compilado normalmente com opções conservadoras, pois ele tem que executar no maior numero de sistemas possivel. Ao instalar a partir do ports, você pode ajustar as opções de compilação para (por exemplo) gerar um binário específico para processadores Pentium IV ou para processadores Athlon.
Alguns aplicativos possuem opções que são especificadas no ato da compilação que estão relacionadas ao que eles podem ou não fazer. Por exemplo, o Apache pode ser configurado no momento de sua compilação com uma grande variedade de opções. Ao compilar a partir do port voce não é obrigado a aceitar as opções default, e pode defini-las de acordo com suas necessidades.
Em alguns casos, irão existir multiplos pacotes de um mesmo aplicativo para especificar certas opções. Por exemplo, o aplicativo Ghostscript esta disponível em dois pacotes, ghostscript e ghostscript-nox11, você irá optar por um ou por outro dependendo se possui ou não um servidor X11 instalado. Esse tipo de ajuste fino é possível de ser realizado com pacotes, mas se torna inviável se o aplicativo possuir mais de uma ou duas opções, em tempo de compilação, diferentes.
As condições de licenciamento de alguns softwares proibem a distribuição de pacotes binários. Eles tem que ser distribuidos como código fonte.
Algumas pessoas não confiam em distribuições binárias. Tendo acesso ao código fonte, você mesmo pode (em teoria) inspecioná-lo e procurar por problemas potenciais.
Se você possui correções customizadas, você vai precisar do código fonte para poder aplicá-las.
Muitos usuarios gostam de ter o código a sua disposição, para estudá-los, modificá-los, copiá-los (respeitando a licenca, é claro) e assim por diante.
Para manter-se atualizado sobre a coleção de ports, inscreva-se nais listas lista de discussão sobre FreeBSD ports e o sistema de ports FreeBSD e lista de discussão dos bugs do ports em FreeBSD.
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.
Antes que você possa instalar todas as aplicações de que necessita, você precisa saber do que precisa, e também como a aplicação se chama.
A lista de aplicativos disponiveis para FreeBSD cresce o tempo todo. Felizmente, existem diversas formas de procurar o que você necessita:
O web site do projeto FreeBSD mantém uma lista atualizada de todos os aplicativos disponiveis e na qual você pode executar buscas, em http://www.FreeBSD.org/ports/. O ports está dividido em categorias, e você pode efetuar buscas pelo nome do aplicativo (se você souber qual é), ou então olhar todos os aplicativos disponiveis em uma categoria.
Dan Langille mantém o sítio web FreshPorts, em http://www.FreshPorts.org/. O FreshPorts rastreia as alterações nas aplicações 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ê não sabe o nome da aplicação que deseja, consulte um sítio no estilo do FreshMeat (http://www.freshmeat.net/) para procurar um aplicativo que lhe atenda, quando encontrar volte ao sítio do FreeBSD e verifique se o aplicativo já foi incorporado ao ports.
Você pode utilizar o utilitário pkg_add(1) para instalar um pacote de software no FreeBSD a partir de um arquivo local ou a partir de um servidor na rede.
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. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit # pkg_add lsof-4.56.4.tgz
Se você não possui uma fonte local de pacotes (como por exemplo um conjunto de CD-ROMs
do FreeBSD) será mais facil utilizar a opção -r com o
pkg_add(1). Esta opção fará
com que o utilitário determine automaticamente o formato correto do objeto, a versão
apropriada, bem como dirá ao utilitário para fazer o download e a instalação 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 intervenção do usuário. O pkg_add(1) utiliza o fetch(3) para baixar os arquivos, o qual considera variáveis de ambiente incluindo FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Você pode ter que ajustar uma ou mais delas caso esteja atrás de um firewall, ou então 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 versão do pacote deve ser removido. O pkg_add(1) irá buscar automaticamente a ultima versão do aplicativo.
Os pacotes são distribuidos no formato .tgz e .tbz, você pode encontra-los em ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ou nos CDs de instalação do FreeBSD. Todos os CDs do conjunto de CDs de instalação do FreeBSD (e do PowerPack, etc) contém pacotes no diretório /packages. O layout do diretório packages é similar ao encontrado na árvore /usr/ports. Cada categoria possui seu próprio diretório, e cada pacote pode ser encontrado no diretório All.
A estrutura do diretório do sistema de pacotes é idêntica ao layout do ports; eles trabalham em conjunto para formar o sistema de pacotes/ports.
O pkg_info(1) é um utilitário que lista e descreve os vários pacotes instalados.
# pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ...
O pkg_version(1) é um utilitário que sumariza a versão de todos os pacotes instalados. Ele compara a versão do pacote instalado com a versão atual encontrada na árvore do ports.
# pkg_version cvsup = docbook = ...
Os símbolos na segunda coluna indicam a idade relativa da versão instadada e da versão disponivel na árvore local do ports.
| Symbol | Meaning |
|---|---|
| = | A versão instalada do pacote é idêntica a versão disponível na árvore local do ports. |
| < | A versão instalada do pacote é mais antiga que a versão disponivel na árvore local do ports. |
| > | A versão instalada do pacote é mais resente que a versão disponivel na árvore local do ports. (Provavelmente sua árvore do ports está desatualizada) |
| ? | O pacote instalado não foi localizado no indice do ports. (Isto pode ocorrer, por exemplo, se um aplicativo instalado for removido da árvore do ports ou então foi renomeado). |
| * | Existem múltiplas versões do pacote. |
Para remover um pacote préviamente instalado, utilize o utilitário pkg_delete(1).
# pkg_delete xchat-1.7.1
Todas as informações dos pacotes são armazenadas no diretório /var/db/pkg. A lista de arquivos instalados e a descrição de cada pacote pode ser encontrada nos arquivos destes diretórios.
A sessão abaixo fornecerá as instruções básicas sobre o uso da coleção de ports para instalar e remover programas do seu sistema.
Antes que você possa instalar um port, você primeiro precisa obter a coleção de ports, a qual é basicamente um conjunto de arquivos Makefiles, patches, e arquivos de descrição colocados sob /usr/ports
Quando você está instalando o FreeBSD, o Sysinstall pergunta se você deseja instalar a árvore do ports, se você respondeu não naquela ocasião, você pode seguir as seguintes instruções para instalar a coleção de ports:
Via Sysinstall
Este método envolve novamente a utilização do sysinstall para instalar manualmente a coleção de ports.
Estando logado como o usuário root, execute o comando /stand/sysinstall como mostrado abaixo:
# /stand/sysinstall
Utilize as setas direcionais de seu teclado e selecione a opção Configure, e pressione Enter .
Selecione a opção Distributions, e pressione Enter.
Selecione a opção ports, e pressione a barra de espaço para marcá-la.
Selecione a opção Exit, e pressione Enter.
Agora você deve escolher a mídia a partir da qual a coleção de ports será instalada, como por exemplo CDROM, FTP, etc. Selecione a opção desejada e pressione Enter para iniciar a instalação.
Selecione a opção Exit e pressione Enter para voltar a tela inicial.
Pressione X para sair do sysinstall.
Um método alternativo para obter e manter atualizada a coleção de ports é através da utilização do aplicativo CVSup . Dê uma olhada no arquivo de configuração do CVSup para o ports em /usr/share/examples/cvsup/ports-supfile. Consulte a sessão Utilizando o CVSup (Seção A.5) para maiores informações sobre a utilização do CVSup e deste arquivo.
Via CVSup
Este é um guia rápido sobre como obter a coleção de ports através do uso do CVSup. Se voce deseja manter a sua árvore do ports atualizada, ou então se desejar aprender mais sobre o CVSup, leia a sessão mencionada anteriormente.
Instale o portnet/cvsup. Consulte a sessão Instalando o CVSup (Seção A.5.2) para maiores detalhes.
Estando logado como o usuário root, copie o arquivo /usr/share/examples/cvsup/ports-supfile para um novo local, como por exemplo para o diretório /root ou então para o seu diretório home.
Abra o arquivo ports-supfile com o seu editor de textos preferido.
Altere a entrada CHANGE_THIS.FreeBSD.org para o endereço válido de um servidor CVSup perto de você. Consulte a sessão Espelhos CVSup (Seção A.5.7) para visualizar a lista completa com todos os servidores disponiveis.
Execute o comando cvsup:
# cvsup -g -L 2 /root/ports-supfile
Ao executar este comando novamente no futuro, ele irá atualizar a sua árvore do ports, baixando todas as alterações que ocorreram na coleção desde a ultima vez em que ele foi executado.
A primeira coisa que precisa ser explicada a alguém que está iniciando no uso do ports é que na verdade um port é composto por um conjunto de arquivos. Em poucas palavras, um port é o conjunto mínimo de arquivos que diz ao sistema FreeBSD como compilar corretamente e como instalar um aplicativo. Cada port é composto por:
Um arquivo Makefile. O Makefile contém várias instruções que definem como o aplicativo deve ser compilado e onde ele deve ser instalado em seu sistema.
Um arquivo distinfo. Este arquivo contem informações sobre quais arquivos precisam ser obtidos para compilar o port e os seus respectivos checksums, os quais são utilizados para verificar se o o arquivo não foi corrompido durante o processo de transmissão, a verificação é realizada através do utilitário md5(1).
Um diretório chamado files. Este diretório contém as correções necessárias para que o aplicativo possa ser compilado e instalado no FreeBSD. As correções são basicamente arquivos pequenos os quais especificam alterações a serem aplicadas a determinados arquivos. São arquivos em formato texto plano, e basicamente dizem remova a linha 10 ou Altere a linha 26 para .... As correções são normalmente conhecidas como diffs, pois são gerados pelo utilitário diff(1)
Este diretório também pode conter outros arquivos necessários para a compilação do aplicativo.
Um arquivo pkg-descr. Este arquivo contém a descrição detalhada do aplicativo.
Um arquivo pkg-plist. Este arquivo contém a lista de todos os arquivos que serão instalados pelo port. Ele também diz ao sistema de ports quais arquivos devem ser removidos durante a desinstalação do aplicativo.
Alguns ports possuem outros arquivos, como por exemplo pkg-message. O sistema de ports utiliza estes arquivos para lidar com sistuações especiais. Se você desejar maiores detalhes sobre estes arquivos, e sobre o sistema de ports em geral, consulte o FreeBSD Porter's Handbook .
Agora que você tem bastante informação básica para saber para que a coleção 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 é através da listagem de ports no web site do FreeBSD. No site você pode navegar pela árvore de ports ou então utilizar-se do mecanismo de busca. Cada port possui uma descrição da finalidade do aplicativo a que ele se refere, a leitura destas descrições vai ajudá-lo na escolha de qual port instalar.
Uma outra opção é utilizar-se do utilitário 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 localização, como mostrado abaixo:
# whereis lsof lsof: /usr/ports/sysutils/lsof
A saida acima nos diz que o lsof (utilitário de sistema) pode ser encontrado no diretório /usr/ports/sysutils/lsof.
Outra forma de procurar um port em particular é através da utilização do mecanismo interno de busca disponibilizado pelo sistema de ports. Para usar o recurso de busca, você tem que estar dentro do diretório /usr/ports. Uma vez dentro do diretório, execute o comando make search name=nome_do_programa onde nome_do_programa é o nome do aplicativo que vc está procurando. Por exemplo, se você estiver procurando pelo lsof:
# cd /usr/ports # make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps:
A parte da saída na qual você deve prestar um atenção especial é a linha iniciada com Path:, uma vez que é ela que diz onde encontrar o port. As outras informações exibidas não são necessárias para a instalação do aplicativo pelo ports, e portanto não serão 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 comentários, as descrições, as dependências e pode pode ser utilizada para buscar um aplicativo que esteja relacionado a um assunto em particular caso você não 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 instalação. O port inclui instruções sobre como compilar o código fonte, porém não inclui o código fonte propriamente dito. Você pode obter o código fonte a partir de um CDROM ou a partir da internet. O código fonte é distribuido da forma como o autor do software desejar, normalmente o formaro utilizado é um tarball compactado com o utilitário gzip, porém ele pode estar compactado com outro utilitário ou mesmo estar descompactado. O código fonte de um software, independente de como ele for distribuido, é chamado de distfile. Voce pode obter o distfile a partir de um CDROM ou da internet.
Os ISOs oficiais distribuidos pelo projeto FreeBSD não incluem nenhum distfile. Eles ocupariam muito espaço, o qual é melhor utilizado pelos pacotes pré-compilados. Os CDROMs da linha PowerPack incluem distifiles, e voce pode comprar este conjunto de CDs em vendedores como a FreeBSD Mall. Esta seção 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 instalação não irá funcionar. Para iniciar, vá para o diretório do ports que você deseja instalar:
# cd /usr/ports/sysutils/lsof
Uma vez dentro do diretório lsof, você irá ver o esqueleto do port. O próximo passo é compilar, ou construir, o port. Isto é realizado pela simples execução do comando make. Ao executar o comando, você irá visualizar uma saida semelhante a esta:
# make >> lsof_4.57D.freebsd.tar.gz doesn't 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 após completar o processo de compilação você irá voltar para o prompt. O próximo 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 aplicação que acabou de instalar. Como o aplicativo lsof executa com privilégios altos, um aviso de segurança é exibido. Durante o processo de compilação e de instalação, outros avisos podem ser exibidos.
Nota: Voce pode economizar um passo executando diretamente o comando make install, ao invés de executar o comando make seguido do comando make install como duas etapas separadas.
Nota: Alguns shells mantém um cache dos comandos disponíveis nos diretórios listados na variável de ambiente PATH, com o objetivo de agilizar o processo de busca para a execução desdes comandos. Se voce estiver utilizando um destes shells, você terá que executar o comando rehash logo após a instalação do ports, antes que voce possa utilizar o aplicativo recém instalado. Esta operação é necessária com todos os shells disponibilizados na base do sistema (como por exemplo o tcsh) e com alguns dos disponibilizados no ports (por exemplo, shells/zsh).
Nota: Por favor, esteja ciente de que a licença de alguns aplicativos não permite a inclusão dos mesmos em um CDROM. Isto pode ocorrer devido a necessidade de se preencher algum formulário antes de se fazer o download ou então porque a redistribuição não é permitida, ou por qualquer outra razão. Se você deseja instalar um ports cujo distfile não esteja presente no CDROM, você terá que estar online para instalá-lo (consulte a próxima seção).
Como na última seção, está seção assume que você possui uma conexão internet funcional. Se você não possuir, você terá que executar a instalação apartir do CDROM, ou então colocar manualmente uma cópia do distifile do port desejado no diretório /usr/ports/distfiles.
A instalação de um port a partir da internet é realizada de forma idêntica a instalação a partir do CDROM, a única diferença entre as duas é que agora o distfile será obtido da internet ao invés de ser lido do CDROM.
Os passos envolvidos são idênticos:
# make install
>> lsof_4.57D.freebsd.tar.gz doesn't 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:
This port has installed the following binaries which execute with
increased privileges.
#
Como voce pode ver a única diferença é a linha que informa que o sistema esta baixando o distfile.
O sistema de ports utiliza o fetch(1) para baixar os arquivos, o qual considera várias variáveis de ambiente, incluindo FTP_PASSIVE_MODE, FTP_PROXY, e FTP_PASSWORD. Você pode precisar definir uma ou mais delas caso esteja atrás de um firewall, ou mesmo fazer uso de um proxy FTP/HTTP, consulte fetch(3) para visualizar a lista de todas as variáveis.
Para os usuários que não podem ficar conectados o tempo todo, é oferecido o comando make fetch como opção. Ao executar este comando na raiz da árvore do ports (/usr/ports), ele irá baixar todos os distifiles necessários para o uso do ports para você. Este comando também funciona para as demais categorias do segundo nível (por exemplo, /usr/ports/net). Observe que se um port depender de uma biblioteca ou de outros ports para funcionar, o comando acima não irá baixar os distifiles destes ports. Se você desejar que sejam baixadas todas as dependencias, substitua a opção 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 não 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 usuários podem precisar obter os tarballs, a partir de um sítio diferente do especificado no MASTER_SITES (local de onde os distfiles são obtidos). Voce pode sobrescrever o valor da opção MASTER_SITES com o seguinte comando:
# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
No exemplo acima, nós alteramos a opção MASTER_SITES para ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Nota: Alguns ports permitem (ou mesmo precisam) que você forneça algumas opções no momento da compilação, com o objetivo de habilitar ou desabilitar partes da aplicação que não são necessárias, opções de segurança e outras customizações. Alguns ports onde ocorrem isso, e que vem a mente no momento são www/mozilla, security/gpgme, e mail/sylpheed-claws. Uma mensagem é exibida quando este tipo de opções estiverem disponíveis.
Algumas vezes é útil (ou obrigatório) utilizar diferentes distfiles e diretórios de ports. As variáveis PORTSDIR e PREFIX podem sobrescrever os diretórios default. Por exemplo:
# make PORTSDIR=/usr/home/example/ports install
Irá compilar o port disponível no diretório /usr/home/example/ports e instalar tudo sob o diretório /usr/local.
# make PREFIX=/usr/home/example/local install
Irá compilar o port em /usr/ports e instalar tudo em /usr/home/example/local.
E é claro,
# make PORTSDIR=../ports PREFIX=../local install
Irá combinar os dois (é muito longo para escrever nesta pagina, mas já deu para você ter uma idéia geral de como isso funciona).
Alternativamente, estas variáveis podem fazer parte do seu ambiente. Leia o manual do seu shell para ver instruções de como fazer desta forma.
Alguns ports que fazem uso do imake (uma parte do Sistema X Windows) não fucionam bem com a variável PREFIX, e irão insistir em instalar o aplicativo sob /usr/X11R6. De forma semelhante, alguns ports Perl ignoram a variável PREFIX e se instalam sob a árvore do Perl. Fazer estes ports respeitarem a variável PREFIX é um trabalho difícil, senão impossível.
Agora que você sabe como instalar um ports, você provávelmente está se perguntando como remove-lo do sistema, apenas para o caso de você instalar um e mais tarde descobrir que instalou o port errado. Nós iremos remover o nosso exemplo anterior (era o lsof caso não tenha prestado atenção). Assim como na instalação, você primeiro deve entrar no diretório do port, no nosso caso /usr/ports/sysutils/lsof. Depois que você tiver entrado no diretório, você estará pronto para desinstalar o lsof. O que é feito através do comando make deinstall:
# cd /usr/ports/sysutils/lsof # make deinstall ===> Deinstalling for lsof-4.57
Simples assim, você já removeu o lsof do seu sistema. Se você desejar reinstalá-lo, basta executar o comando make reinstall dentro do diretório /usr/ports/sysutils/lsof.
Os comandos make deinstall e make reinstall, não irão funcionar depois que voce executar o comando make clean. Se voce desejar desinstalar um ports depois de ter limpado o diretório de trabalho, utilize o comando pkg_delete(1) como mostrado na Sessão sobre pacotes do Handbook.
Utilizar a coleção de ports pode definitivamente devorar espaço do seu HD. Por esta razão você precisa se lembrar de limpar o diretório de trabalho utilizando o comando make clean. Ao executá-lo ele irá remover o diretório work depois do port ter sido compilado e instalado. Você também pode remover os arquivos tarballs do diretório distfiles, além de remover os aplicativos instalados quando eles não tiverem mais utilidade.
Alguns usuários preferem limitar as categorias do port, colocando uma entrada no arquivo refuse. Desta forma quando eles executam o CVSup, ele não irá baixar nenhum arquivo desta categoria.
Manter um aplicativo atualizado pode ser uma tarefa tediosa. Pois para atualizar um aplicativo você precisa ir ao diretório do ports, compilar o port, desinstalar a versão antiga do port, instalar a nova versão e então limpar o diretório de trabalho após a compilação. Imagine fazer isso para 5 aplicativos, entediante certo ? Este é um dos grandes problemas com que um administrador de sistema tem que lidar, mas agora temos um utilitário para fazer este trabalho para nós. Por exemplo o utilitário sysutils/portupgrade irá fazer tudo para você. Instale-o da mesma forma como faz com qualquer outro port, usando o comando make install clean.
Agora crie o banco de dados com o comando pkgdb -F. Este comando irá ler a lista de ports instalados em seu sistema e irá criar um banco de dados com informações dos mesmos no diretório /var/db/pkg. Agora quando você executar portupgrade -a, ele irá ler este banco de dados e o arquivo INDEX na raiz da árvore do ports. Em seguida o portupgrade irá iniciar o processo de download, compilação, backup, instalação e limpeza dos aplicativos que precisarem de atualização. Existem outros utilitários que fazem um trabalho semelhante, verifique as demais opções no diretório ports/sysutils.
Depois de instalar um novo aplicativo você normalmente irá querer ler a documentação instalada com ele, editar algum arquivo de configuração necessário para o correto funcionamento do aplicativo, certificar-se de que o aplicativo irá iniciar automaticamente no próximo boot (se ele for um servidor) e assim por diante.
Os passos exatos necessários para configurar cada aplicativo são obviamente diferentes. No entando, se você acabou de instalar um novo aplicativo e está se perguntando O que fazer agora ? , as dicas abaixo podem ajudá-lo:
Utilize o comando pkg_info(1) para descobrir quais aplicativos estão instalados e onde eles estão instalados. Por exemplo, você tiver instalado o aplicativo FooPackage versão 1.0.0, então o comando
# pkg_info -L foopackage-1.0.0 | less
Irá exibir todos os arquivos instalados com o pacote. Preste atenção especial aos arquivos instalados no diretório man/, pois eles são os manuais dos aplicativos que compoem o pacote, Também preste atenção aos arquivos instalados no diretório etc/, pois são os arquivos de configuração, e por fim preste atenção aos arquivos instalados no diretório doc/, pois nele ficam os documentos complementares sobre o aplicativo.
Se você não tem certeza de qual versão 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 identificado as paginas de manual instaladas com o seu aplicativo, utilize o comando man(1) para visualizá-las. De forma análoga, leia os arquivos de configuração instalados como exemplo, bem como qualquer outra documentação complementar que tenha sido disponibilizada.
Se o aplicativo possuir um sítio web, faça uma visita e verifique se ele disponibiliza alguma documentação adicional, uma lista com as perguntas e repostas mais frequentes, e assim por diante. Se você não tiver certeza do endereço do sítio web do aplicativo, ele pode ser listado na saida do comando
# pkg_info foopackage-1.0.0
Verifique se existe uma linha iniciada por WWW: , se ela estiver presente, você terá descoberto o endereço do sítioweb do aplicativo.
Os aplicativos que inicializam no boot (aplicativos servidores) irão instalar um script shell no diretório /usr/local/etc/rc.d. Voce deve verificar este script para ter certeza de que está correto, editando-o ou renomeando-o se for necessário. Consulte a sessão Iniciando Serviços para maiores informações.
Se você encontrar um port que não está funcionando, existem algumas coisas que você pode fazer, incluindo:
Conserte-o! O Porter's Handbook inclui informações detalhadas sobre a infraestrutura do Ports, de forma que você pode ocasionalmente corrigir um port quebrado ou então submeter o seu próprio!
Reclamar--por email apenas! Primeiro envie um email para o responsável pelo port. Execute make maintainer ou então leia o arquivo Makefile para encontrar o endereço de email do responsável pelo port. Lembre-se de incluir o nome e a versão do port (envie a linha $FreeBSD:, do arquivo Makefile) e a mensagem de erro no email que irá enviar. Se você não obtiver uma resposta do responsável, voce pode utilizar o send-pr(1) para enviar um relatório de falha.
Pegue o pacote em um servidor de FTP próximo de você. A coleção de pacotes master fica no servidor ftp.FreeBSD.org, no diretório packages, mas tenha certeza de verificar o seu mirror local antes! Esta abordagem é muito garantida de que vai funcionar do que tentar compilar o aplicativo apartir do código fonte, além de ser muito mais rápida também. Utilize o utilitário pkg_add(1) para instalar aplicativos no seu sistema.
O FreeBSD usa XFree86 para prover aos usuários uma poderosa interface gráfica. XFree86 é uma implementação de código aberto do X Window System. Este capítulo cobrirá a instalação e configuração do XFree86 num sistema FreeBSD. Para mais informações sobre o XFree86 e hardware de vídeo suportado, verifique o sítio XFree86.
Após ler este capítulo, você saberá:
Os vários componentes do X Window System e como eles interagem.
Como instalar e configurar 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 gráfico (XDM).
Antes de ler este capítulo, é recomendável:
Saber como instalar softwares adicionais de terceiros (Capítulo 4).
Usar o X pela primeira vez pode causar certo impacto em quem já está familiarizado com outros ambientes gráficos, como o Microsoft Windows ou o Mac OS.
Não é necessário entender todos os detalhes dos vários componentes do X e como eles interagem; entretanto, algum conhecimento básico torna possível tirar vantagens dos pontos positivos do X.
O X não é o primeiro sistema de interface gráfica escrito para o UNIX, mas é o mais popular. O grupo de desenvolvimento original do X já havia trabalhado em outro sistema de interface gráfica antes de escrever o X. O nome desse sistema era W (de Window). X é apenas a próxima letra no alfabeto Romano.
O X pode ser chamado de X, X Window System (Sistema de Janela X), X11, e outros termos. Chamar X11 de X Windows (n.t. note o s) pode ofender algumas pessoas; veja X(7) para mais dicas sobre isso.
O X foi concebido desde o início com foco na rede, e adota um modelo cliente-servidor. No modelo do X, o servidor X executa em um computador que possui teclado, monitor e mouse conectados. O servidor é responsável por gerenciar o vídeo, tratar as entradas pelo teclado e mouse, e assim por diante. Cada aplicativo do X (como o XTerm, ou Netscape) é um cliente. Um cliente envia mensagens para o servidor como Por favor, desenhe uma janela nestas coordenadas, e o servidor responde a mensagens como O usuário acabou de clicar o botão OK .
Se há apenas um computador envolvido, como em casa ou em um ambiente de escritório pequeno, o servidor X e os clientes X estarão executando no mesmo computador. Entretanto, é perfeitamente possível executar o servidor X em um computador de mesa menos poderoso, e executar os aplicativos do X (os clientes), por assim dizer, naquela máquina poderosa e caríssima que serve a todo o escritório. Neste cenário a comunicação entre o cliente X e o servidor se dá na rede.
Isto causa confusão a algumas pessoas, pois a terminologia do X é exatamente contrária à que eles esperam. O que se espera é que o servidor X seja a máquina grande e poderosa do porão e o cliente X a máquina sobre suas mesas.
Lembre-se que o servidor X é a máquina com monitor e teclado, e os clientes X são os programas que exibem as janelas.
Não há nada no protocolo que force máquinas clientes e servidoras a estarem executando o mesmo sistema operacional ou ainda no mesmo tipo de computador. É certamente possível executar um servidor X no Microsoft Windows ou no Mac OS da Apple, e há várias aplicações gratuitas e comerciais disponíveis que fazem exatamente isso.
O servidor X que é distribuído com o FreeBSD é chamado XFree86, e está disponível gratuitamente, sob uma licença muito similar à licença do FreeBSD. Há também servidores X comerciais disponíveis para o FreeBSD.
A filosofia de concepção do X é muito semelhante à filosofia de concepção do UNIX, ferramentas, não políticas. Isso significa que o X não tenta dizer como a tarefa deve ser realizada. Ao invés disso, as ferramentas são fornecidas ao usuário, e é sua responsabilidade decidir como vai usar essas ferramentas.
Essa filosofia se estende ao X quando o mesmo não dita com o quê as janelas devem parecer na exibição, como movê-las com o mouse, que atalho deve ser usado para mover-se entre as janelas (i.e., Alt+Tab, no caso do Microsoft Windows), a aparência da barra de títulos em cada janela, se elas devem ou não apresentar botões para fechá-las e assim por diante.
Ao invés disso, o X delega essa responsabilidade para um aplicativo chamado Gerenciador de Janela (do inglês Window Manager). Há dúzias de gerenciadores de janela disponíveis para o X: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker, e outras. Cada um desses gerenciadores de janela provê diferentes visuais e sensações; alguns deles suportam áreas de trabalho virtuais; alguns permitem personalizar atalhos de teclado para gerenciar a área de trabalho; outros tem um botão Iniciar ou dispositivo semelhante; outros são tematizáveis, permitindo uma modificação completa do visual e sensação pela aplicação de um novo tema. Estes gerenciadores de janela e muitos outros, estão disponíveis na categoria x11-wm da Coleção de Ports.
Para completar, ambos ambientes de trabalho KDE e o GNOME têm seus próprios gerenciadores de janela integrados na área de trabalho.
Cada gerenciador de janela também possui um mecanismo de configuração diferente; alguns esperam que a configuração seja escrita manualmente, outros possuem GUI como ferramentas para a maior parte das tarefas de configuração; pelo menos um (sawfish) tem seu arquivo de configurações escrito em um dialeto da linguagem Lisp.
Política do Foco: Outro recurso de responsabilidade do gerenciador de janela é a política de foco do mouse. Todo sistema de enjanelamento precisa de parâmetros para escolher uma janela que responda ao acionamento do teclado, e deve indicar visivelmente qual janela está ativa também.
Uma política de foco bem familiar é a chamada clique para focar. Este é o modelo utilizado pelo Microsoft Windows, no qual uma janela se torna ativa após receber um clique do mouse.
O X não suporta nenhuma política de foco em particular. Ao invés disso, o gerenciador de janela controla qual tem o foco a qualquer tempo. Os diferentes gerenciadores de janela vão suportar métodos de foco distintos. Todos suportam clique para focar e a maioria deles suporta vários outros.
As políticas de foco mais populares são:
- o foco segue o mouse
A janela abaixo do ponteiro do mouse é a janela que possui o foco. Esta não é necessariamente a janela que está sobre todas as demais. O foco é modificado ao apontar outra janela, não há necessidade de clicar nela.
- foco desleixado
Esta política é uma pequena extensão de o foco segue o mouse. Com o foco seguindo o mouse, se o mouse é movido para a janela raiz (ou a área de trabalho) então nenhuma janela tem o foco, e o acionamento do teclado é simplesmente perdido. Com o foco desleixado, o foco é modificado apenas quando o cursor entra em uma nova janela, e não quando se sai da janela atual.
- clique para focar
A janela ativa é selecionada pelo clique do mouse. A janela pode então ser elevada e aparecer na frente de todas as demais janelas. Todo acionamento do teclado será agora direcionado para essa janela, mesmo se o cursor for movido para outra janela.
Muitos gerenciadores de janela suportam outras políticas, bem como variações nestas. Certifique-se de consultar a documentação própria do gerenciador de janela.
A abordagem do X de prover ferramentas e não políticas se estende para os widgets vistos nas telas de cada aplicativo.
Widget é um termo para todos os ítens da interface com o usuário que podem ser clicados ou manipulados de alguma forma; botões, check boxes, radio buttons, ícones, listas, e outros. O Microsoft Windows chama estes de controles.
O Microsoft Windows e o Mac OS da Apple's têm uma política muito rígida para os widgets. Espera-se que os desenvolvedores de aplicações compartilhem o mesmo visual e sensação em seus aplicativos. Com o X, não foi considerado sensato determinar um estilo gráfico particular, ou conjunto de widgets a aderir.
Como resultado, não espere que as aplicações do X tenham o mesmo visual e sensação. Há vários conjuntos de widgets populares e variações, 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 três tons de cinza), OpenLook, e outros.
A maior parte das novas aplicações para o X vão 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 convergência no visual e sensação da área de trabalho do UNIX, o que certamente torna tudo mais fácil para os novos usuários.
Antes de instalar o XFree86, decida que versão executar. O XFree86 3.X é um ramo de manutenção do desenvolvimento do XFree86. É muito estável e suporta um número bem grande de placas vídeo. Entretanto, nenhum recurso novo está sendo desenvolvido para o software. O XFree86 4.X é uma reconcepção do sistema com diversos novos recursos como melhor suporte para fontes e anti-aliasing. Infelizmente esta nova arquitetura requer que os drivers de vídeo sejam reescritos, e algumas placas mais velhas que eram suportadas no 3.X não são ainda suportadas no 4.X. Como todo desenvolvimento novo e suporte para as placas de vídeo são feitos nesse ramo, o XFree86 4.X é agora a versão padrão do sistema de janela X no FreeBSD.
O programa de instalação do FreeBSD oferece aos usuários a oportunidade de instalar e configurar o XFree86 4.X durante a instalação (detalhes na Seção 2.9.12). Para instalar e executar o XFree86 3.X, aguarde até que o FreeBSD mínimo seja instalado, e então instale o XFree86. Por exemplo, para construir e instalar o XFree86 3.X da coleção de ports:
# cd /usr/ports/x11/XFree86 # make all install clean
Como alternativa, quaisquer versões do XFree86 podem ser instaladas diretamente dos binários do FreeBSD fornecidos no sítio XFree86. Um pacote binário a ser usado com a ferramenta pkg_add(1) também está disponível para o XFree86 4.X. Quando o recurso de baixar da fonte remota do pkg_add(1) é utilizado, o número da versão do pacote deve ser removido. O pkg_add(1) vai baixar automaticamente a versão mais recente do aplicativo. Logo para baixar e instalar o pacote do XFree86 4.X, é só digitar:
# pkg_add -r XFree86
Você também pode utilizar a coleção 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 vão instalar a distribuição completa do XFree86 incluindo os servidores, clientes, fontes etc. Pacotes individuais e ports para diferentes partes do XFree86 4.X também estão disponíveis.
O restante deste capítulo explicará como configurar o XFree86 e como instalar um ambiente produtivo na área de trabalho.
Antes de configurar o XFree86 4.X, é necessário conhecer as seguintes informações sobre o sistema alvo:
As especificações do monitor
O chipset da placa de vídeo
A quantidade de memória da placa de vídeo
As especificações do monitor são usadas pelo XFree86 para determinar a resolução e taxa de atualização em que deve operar. Estas especificações podem geralmente ser obtidas da documentação que vem com o monitor ou a partir do sítio do fabricante. São necessários dois intervalos numéricos, a taxa de varredura horizontal e a taxa de sincronização vertical.
O chipset da placa de vídeo define qual módulo de driver o XFree86 usa para conversar com o hardware. Com a maioria dos chipsets isso pode ser determinado automaticamente, mas ainda é útil saber identificá-lo caso a detecção automática não funcione corretamente.
A memória da placa de vídeo determina que resolução e a profundidade das cores nas quais o sistema vai executar. É importante que o usuário conheça isso para saber das limitações do sistema.
A configuração do XFree86
4.X é um processo de vários passos. O primeiro passo é construir um arquivo de
configuração inicial com a opção -configure do XFree86. Como o super usuário,
simplesmente execute:
# XFree86 -configure
Isso vai gerar o esqueleto do arquivo de configuração do XFree86 no diretório /root chamado XF86Config.new (na verdade a pasta utilizada é a registrada na variável de ambiente $HOME e ela vai depender de como você conseguiu os direitos de super usuário). O programa do XFree86 vai tentar investigar o hardware da placa de vídeo no sistema e vai escrever um arquivo de configuração que carregue os drivers adequados ao hardware detectado no sistema alvo.
O próximo passo é testar a configuração existente para verificar se o XFree86 pode trabalhar com o hardware do sistema alvo. Para fazer esta tarefa, o usuário precisa executar:
# XFree86 -xf86config XF86Config.new
Se a grade preto e cinza e um ponteiro de mouse do X aparecem, a configuração foi bem sucedida. Para sair do teste, basta pressionar simultaneamente Ctrl+Alt+Backspace.
Nota: Se o mouse não funcionar, certifique-se que o dispositivo foi configurado. Consulte a Seção 2.9.10 no capítulo de instalação do FreeBSD.
Em seguida, ajuste o arquivo de configurações XF86Config.new a seu gosto. Abra o arquivo em um editor de texto como o emacs(1) ou ee(1). Primeiro, adicione as freqüências do monitor do seu sistema. Elas geralmente são expressas como taxas de sincronização horizontal e vertical. Estes valores são adicionados ao arquivo XF86Config.new sob a seção "Monitor":
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSection
As expressões HorizSync e VertRefresh podem não existir no arquivo de configurações. Se for o
caso, elas precisam ser adicionadas, com a taxa de sincronização horizontal posicionada
depois da expressão Horizsync e a taxa de sincronização
vertical após a expressão VertRefresh. Confira 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 forçar 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 seção Monitor:
Option "DPMS"
Enquanto o arquivo de configurações XF86Config.new ainda estiver aberto no editor, selecione a resolução padrão do monitor e a profundidade das cores desejada. Isso está definido na seção "Screen":
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
A expressão DefaultDepth descreve a profundidade de cores
empregada por padrão. Isso pode ser sobreposto com a opção da linha de comando -bpp existente para o
XFree86(1). A
expressão Modes descreve a resolução utilizada para a
profundidade de cores dada. Observe que apenas os modos do padrão VESA são suportados
pela definição do hardware gráfico do sistema alvo. No exemplo acima, a profundidade de
cores padrão é de vinte e quatro bits por ponto. Nesta profundidade de cores, a resolução
aceita é de mil e vinte e quatro pontos por setecentos e sessenta e oito pontos.
Por fim, salve o arquivo de configurações e teste-o utilizando o modo de teste dado acima. Se tudo estiver bem, o arquivo de configuração precisa ser instalado em um local conhecido pelo XFree86(1), a fim 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 configuração tenha sido colocado em um lugar conhecido, a configuração está completa. Para iniciar o XFree86 4.X com startx(1), instale o port x11/wrapper. O XFree86 4.X também pode ser executado via xdm(1).
Nota: Também existe uma ferramenta gráfica capaz de fazer a configuração, o xf86cfg(1), que vem na distribuição do XFree86 4.X Ela permite definir interativamente sua configuração pela escolha dos drivers e parâmetros apropriados. Este programa pode ser utilizado no console também, basta utilizar o comando xf86cfg -textmode. Para mais detalhes, verifique a página do manual xf86cfg(1).
A configuração dos chipsets integrados da Intel i810 requerem que a interface de programação para o AGP e agpgart do XFree86 seja instalada para controlar a placa. O driver agp(4) está no kernel GENERIC desde as releases 4.8-RELEASE e 5.0-RELEASE. Nas releases anteriores, você deve adicionar as linhas a seguir:
device agp
no arquivo de configuração do seu kernel e reconstruir um novo kernel. Ao invés disso, você pode querer carregar o módulo agp.ko do kernel automaticamente com o loader(8) durante o processo de inicialização. 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 programação. Para criar o nó para o dispositivo AGP, execute o MAKEDEV(8) no diretório /dev:
# cd /dev # sh MAKEDEV agpgart
Nota: O FreeBSD 5.X ou posterior vai utilizar o devfs(5) para alocar os nós dos dispositivos de modo transparente, logo, o passo do MAKEDEV(8) não é necessário.
Isso vai permitir a configuração do dispositivo como se faz com qualquer outra placa de vídeo. Observe que em sistemas sem o driver agp(4) compilado no kernel, tentar carregar o módulo com o kldload(8) não vai funcionar. Este driver precisa estar no kernel durante o processo de inicialização, seja sendo compilado ou pelo uso do /boot/loader.conf.
Se estiver utilizando o XFree86 4.1.0 (ou posterior) e mensagens sobre símbolos não resolvidos como fbPictureInit aparecerem, tente adicionar a linha a seguir após Driver "i810" no arquivo de configuração do XFree86:
Option "NoDDC"
As fontes padrão que são distribuídas com o XFree86 estão aquém do ideal para aplicações comuns de editoração eletrônica. Fontes grandes em apresentações aparecem recortadas e com aparência nada profissional, e fontes pequenas no Netscape são quase ininteligíveis. Entretanto, há várias fontes Type1 (PostScript®) gratuitas e de alta qualidade disponíveis, as quais podem ser usadas imediatamente com o XFree86, seja a versão 3.X ou a versão 4.X. Por exemplo, a coleção de fontes URW (x11-fonts/urwfonts) inclui versões de alta qualidade de fontes type1 padrão (Times Roman®, Helvetica®, Palatino® e outras). A coleção Freefonts (x11-fonts/freefonts) inclui muitas outras fontes, mas a maioria delas são destinadas ao uso em softwares de manipulação de gráficos como o Gimp, não sendo suficientemente completas para o uso como fontes de tela. Para completar, o XFree86 pode ser configurado para usar fontes TrueType com um mínimo de esforço: veja a seção sobre fontes TrueType adiante.
Para instalar as coleções de fontes Type1 acima da coleção 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 coleções. Para dizer ao servidor X que estas fontes existem, adicione a linha apropriada ao arquivo XF86Config (em /etc/ para XFree86 versão 3, ou em /etc/X11/ para a versão 4), onde se lê:
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
Alternativamente, na linha de comandos da sessão X execute:
% xset fp+ /usr/X11R6/lib/X11/fonts/URW % xset fp rehash
Isso vai funcionar mas será perdido quando a sessão do X for fechada, a menos que seja adicionada ao arquivo de inicialização (~/.xinitrc para uma sessão normal via startx, ou ~/.xsession quando o registro (login) for feito via um gerenciador de registro gráfico como o XDM). Uma terceira forma é utilizar o novo arquivo XftConfig: consulte a seção sobre anti-aliasing.
O XFree86 4.X tem suporte incorporado para a exibição produzida de fontes TrueType. Há dois módulos diferentes que podem permitir essa funcionalidade. O módulo freetype é utilizado neste exemplo por ser mais coerente com outros suportes para produção de fontes. Para habilitar o módulo freetype basta acrescentar a linha a seguir à seção Module do arquivo /etc/X11/XF86Config.
Load "freetype"
Para o XFree86 3.3.X, um servidor de fontes TrueType separado se faz necessário. O Xfstt é de uso comum para esta finalidade. 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 não 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á disponível na Coleção 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 descrição utilizada anteriormente para as fontes Type1, isto é, utilize
% xset fp+ /usr/X11R6/lib/X11/fonts/TrueType % xset fp rehash
ou adicione uma linha FontPath ao arquivo XF86Config.
Isso é tudo. Agora o Netscape, o Gimp, o StarOffice", e todos os outros aplicativos do X devem estar reconhecendo as fontes TrueType instaladas. Fontes muito pequenas (como um texto em um vídeo de alta resolução de uma página da internet) e fontes muito grandes (dentro do StarOffice) vão ter uma aparência muito melhor agora.
O Anti-aliasing está disponível no XFree86 desde a versão 4.0.2. Mesmo assim, configurar tais fontes era incômodo antes da introdução do XFree86 4.3.0. Da versão 4.3.0 em diante, todas as fontes em /usr/X11R6/lib/X11/fonts/ e em ~/.fonts/ são automaticamente disponibilizadas com anti-aliasing para os aplicativos prontos para o Xft. Nem todas as aplicações são preparadas para usar o Xft ainda, mas muitas já contam com o suporte Xft. Exemplos de aplicações que reconhecem o Xft incluem o Qt 2.3 e posteriores (conjunto de ferramentas feito para a área de trabalho do KDE), Gtk+ 2.0 e posteriores (conjunto de ferramentas para a área de trabalho do GNOME), e o Mozilla 1.2 e posteriores.
Para distinguir que fontes são anti-aliased, ou configurar as propriedades do anti-aliasing, crie (ou edite, se já existir) o arquivo /usr/X11R6/etc/fonts/local.conf. Vários recursos avançados do sistema de fontes Xft podem ser ajustadas através deste arquivo; esta seção descreve apenas algumas possibilidades simples. Para mais detalhes, por favor verifique em fonts-conf(5).
Este arquivo deve ser em formato XML. Preste bastante atenção à caixa dos caracteres e assegure-se de ter fechado todos os rótulos (tags). O arquivo começa com o cabeçalho usual do XML seguido de uma definição DOCTYPE, e então pelo rótulo <fontconfig>:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Como citado anteriormente, toda fonte em /usr/X11R6/lib/X11/fonts/ bem como em ~/.fonts/ são automaticamente disponibilizadas para aplicações 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>
Após 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 nítidas, 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">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
O espaçamento para fontes monoespaçadas também pode ser inapropriado com o anti-aliasing. Isso parece ser uma questão presente no KDE, em particular. Uma correção possível para isso é forçar o espaçamento 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 fixas como "mono"), e então 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 Helvética, 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 execução 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>
Uma vez terminada a edição do local.conf assegure-se de colocar no final do arquivo o rótulo </fontconfig>. Não fazê-lo fará que suas modificações sejam desprezadas.
O con