Académique Documents
Professionnel Documents
Culture Documents
clenilsonsq@yahoo.com
O FreeBSD completo
ndice
Consideraes .............................................................................xxv
Prefcio .......................................................................................... xxvii
A quarta edio ...................................................................................... xxvii
Convenes usadas neste livro ..................................................................xxviii
Descrevendo o teclado .............................................................................. xxix
Agradecimentos ....................................................................................... xxx
Revisores do livro ................................................................................... xxxi
Como este livro foi escrito ....................................................................... xxxii
1: Introduo......................................................................................1
Como usar este livro .....................................................................................2
Caractersticas FreeBSD ................................................................................4
As condies de licenciamento .......................................................................6
Um pouco de histria ....................................................................................7
O fim das guerras UNIX.................................................................................9
Outros sistemas operacionais UNIX-like livre ....................................................9
FreeBSD e Linux ....................................................................................... 10
Documentao do sistema FreeBSD ............................................................... 12
Lendo a documentao on-line ....................................................................... 12
O manual online ........................................................................................ 13
GNU info ................................................................................................ 15
Outra documentao sobre FreeBSD .............................................................. 16
v
vi
ndice analtico
O FreeBSD completo
vii
viii
ndice analtico
O FreeBSD completo
ix
8: Tomar o controle...................................................................143
Usurios e grupos ..................................................................................... 144
Escolher um nome de usurio....................................................................... 144
Adicionando usurios ................................................................................ 145
O super-usurio ....................................................................................... 146
Tornando-se super usurio .......................................................................... 147
Adicionar ou alterar senhas ......................................................................... 147
Processos ................................................................................................ 148
Quais os processos que eu tenho correndo?....................................................... 149
Os processos que esto a correr? ................................................................... 149
Daemons ................................................................................................ 150
cron ..................................................................................................... 151
Processos em FreeBSD Release 5 .................................................................. 152
topo ..................................................................................................... 152
Processos de parada .................................................................................. 154
A marcao do tempo ............................................................................... 155
A varivel de ambiente TZ .......................................................................... 155
Mantendo o horrio correto ......................................................................... 156
Os arquivos de log .................................................................................... 157
Suporte ao processador Multiple ................................................................. 159
Dispositivos PC Card ................................................................................ 159
DEVD: O daemon dispositivo ...................................................................... 159
Remoo de dispositivos PC Card ................................................................. 161
Cdigo do carto alternativo PC.................................................................... 161
Configurando dispositivos PC Card na inicializao ............................................ 161
Emulando outros sistemas .......................................................................... 162
Emuladores e simuladores........................................................................... 162
Emulando Linux ...................................................................................... 163
Executando o emulador de Linux .................................................................. 163
Linux procfs ........................................................................................... 164
Problemas executando Linux binrios ............................................................. 164
Emulando SCO UNIX ............................................................................... 164
Emulando Microsoft Windows.................................................................... 165
Acessando arquivos do Microsoft .................................................................. 165
ndice analtico
O FreeBSD completo
xi
xii
ndice analtico
O FreeBSD completo
xiii
xiv
ndice analtico
O FreeBSD completo
xv
xvi
ndice analtico
O FreeBSD completo
xvii
xviii
ndice analtico
O FreeBSD completo
xix
xx
ndice analtico
O FreeBSD completo
xxi
xxii
ndice analtico
A: Bibliografia ..............................................................................627
Livros sobre BSD ..................................................................................... 627
Guias dos usurios .................................................................................... 628
Guias dos administradores ......................................................................... 628
Guias dos programadores ........................................................................... 629
Referncia Hardware ................................................................................ 629
Os manuais 4.4BSD .................................................................................. 630
Obtendo o FreeBSD em CD-ROM............................................................... 630
O FreeBSD completo
xxiii
ndice .................................................................................................643
Consideraes
Tenho sido um longo tempo desenvolvedor das distribuies de software Berkeley (BSD). Meu
envolvimento comeou em 1976, na Universidade da Califrnia, em Berkeley. Eu fui atrado como
um escritrio companheiro de Bill Joy, que, sozinho, escreveu o cdigo BSD e, em seguida, comeou a
manipulao de seu lanamento. Bill passou a executar o Grupo de Pesquisa em Sistemas de Computao (CSRG)
que desenvolveu e divulgou as primeiras distribuies BSD totalmente completos. Depois de Bill
partida para se tornar um dos fundadores da Sun Microsystems, eu finalmente subiu para cabecear a CSRG
e supervisionar o lanamento da livre distribuio 4.4BSD-Lite. O 4.4BSD-Lite
distribuio a base para todas as variantes livremente distribuveis do BSD hoje bem
como o fornecimento de muitos dos utilitrios encontrados em Linux e distribuies UNIX comerciais.
Com o lanamento do 4.4BSD-Lite, da Universidade da Califrnia em Berkeley deixou ainda mais
Desenvolvimento BSD. Depois de analisar os pontos fortes e fracos de diferentes BSD
grupos de desenvolvimento, eu decidi fazer o meu desenvolvimento contnuo em FreeBSD porque
teve a maior comunidade de usurios. Nos ltimos 10 anos, portanto, eu tenho sido um membro da
a equipe de desenvolvedores do FreeBSD.
Eu sempre senti que importante usar o seu prprio produto. Por esta razo, eu tenho
sempre correr BSD em todos os lugares: no meu trabalho, na minha Web / arquivo / mail / backup do servidor, em
meu laptop e no meu firewall. Por necessidade, eu tenho que encontrar ferramentas para fazer o meu trabalho
que ser executado em meus sistemas BSD. Pode ser mais fcil simplesmente executar o Windows e PowerPoint para
fazer a sua apresentaes, mas h um nmero cada vez maior de alternativas bem l isso
rodar em FreeBSD, como o cdigo aberto OpenOffice.org suite ou MagicPoint.
Nos velhos tempos, no havia muitas pessoas que trabalham com o software BSD. Este
restrio sobre o desenvolvimento BSD tornou fcil manter-se com o que poderia fazer e BSD
como gerenciar seu sistema. Mas a ltima dcada assistiu a um crescimento exponencial no
movimento de cdigo aberto. O resultado foi um grande aumento no nmero de pessoas
trabalhando em FreeBSD e um aumento ainda maior no nmero de aplicaes e ferramentas
que foram portados para rodar em FreeBSD. Tornou-se um trabalho de tempo mais do que completo apenas para
manter o controle de todos os recursos do sistema, e muito menos para descobrir como us-los todos.
Greg Lehey tem feito um trabalho maravilhoso com este livro de ajudar aqueles de ns que querem
utilizar plenamente o sistema FreeBSD para fazer isso sem ter que dedicar toda a nossa vida
xxv
xxvi
Prefcio
descobrir como. Ele atravessou e descobriu cada uma das diferentes tarefas que voc
pode pedir o seu sistema para fazer. Ele identificou o software que voc precisa para fazer a tarefa.
Ele explica como configur-lo para as suas necessidades operacionais. Ele diz-lhe como monitorar
subsistema resultante para se certificar de que est funcionando como desejado. E, ele ajuda voc a
identificar e corrigir problemas que possam surgir.
O livro comea com o bsico de conseguir o sistema FreeBSD instalado e funcionando em seu
hardware, incluindo laptops, estaes de trabalho e servidores. Em seguida, ele explica como personalizar
uma instalao para as suas necessidades pessoais. Esta personalizao inclui o download e
operando o mais importante dos pacotes de software de mais de 8000 no FreeBSD
portas de cobrana. O livro tambm inclui um conjunto muito abrangente de sistemas
informaes de administrao, incluindo a instalao e operao de impressoras, local e
rede externa, o sistema de nome de domnio, os sistemas de arquivos remotos NFS e Samba,
correio eletrnico, navegao na web e de hospedagem, e dial-up para FAX, login remoto, e ponto-aapontar conexes de rede.
Em suma, este livro fornece tudo o que voc precisa saber sobre o sistema FreeBSD de
o dia em que primeiro pegar o software ao longo do dia voc tem um conjunto completo de mquinas.
Ele cobre seu gama completa de necessidades de computao. H uma razo que este livro to
Populares: como diz o ttulo, o FreeBSD completa. Estou muito feliz em ver esta reviso
que mais uma vez cumpre o seu mandato.
Marshall Kirk McKusick
Berkeley, Califrnia
Fev 2003
Neste captulo:
A quarta edio
Convenes usadas
este livro
Agradecimentos
Como este livro foi
escrito
Prefcio
FreeBSD um sistema operativo de alto desempenho derivado do Berkeley Software
Distribuio (BSD), a verso do UNIX desenvolvida na Universidade da Califrnia em
Berkeley, entre 1975 e 1993. FreeBSD no um clone UNIX. Historicamente e
tecnicamente, ele tem mais direitos do que UNIX System V para serem chamados UNIX. Legalmente, pode
no ser chamado de UNIX, uma vez que UNIX agora uma marca registrada do The Open Group.
Este livro destina-se a ajud-lo a obter o FreeBSD instalado e funcionando em seu sistema e
familiariz-lo com ele. No posso fazer tudo, mas a abundncia de livros UNIX e on-line
documentao esto disponveis, e uma grande proporo delas so directamente aplicveis aos
FreeBSD. No decorrer do texto, vou repetidamente apontar-lhe outra documentao.
Eu no estou esperando por voc para ser um guru, mas eu espero que voc entenda os fundamentos do uso
UNIX. Se voc vem de um fundo Microsoft, vou tentar fazer a transio de um
pouco menos pedregoso.
A quarta edio
Este livro j teve uma histria bastante. Dependendo da forma como voc conta, esta a
quarta ou quinta edio O FreeBSD completo: a primeira edio do livro foi chamado
Instalando e executando o FreeBSD, e foi publicado em Maro de 1996. A prxima edio
foi chamado de'' The Complete FreeBSD'', primeira edio. As trs primeiras edies foram
publicado pela Walnut Creek CDROM, que cessou actividade editorial, em 2000. Isto
a primeira edio a ser publicada pela O'Reilly and Associates.
Durante este tempo, FreeBSD tem mudado continuamente, e difcil para um livro para manter
com a mudana. Isso no significa que o FreeBSD mudou alm do reconhecimento,
mas as pessoas tm feito um grande trabalho de trabalhar fora essas pequenas arestas que fazem o
diferena entre um sistema operacional utilizvel e que um prazer de usar. Se voc
vm para FreeBSD do System V, voc certamente vai notar a diferena.
Durante o tempo de vida das edies anteriores deste livro, percebi que grande parte do texto
torna-se obsoleto muito rapidamente. Por exemplo, na primeira edio eu fui a um monte de problemas
xxvii
xxviii
Prefaciar
para dizer s pessoas como instalar a partir de um CD-ROM ATAPI, pois no momento em que o apoio era
pouco vacilante. Quase antes que o livro foi lanado, a equipe melhorou o FreeBSD
apoio e rolou para o lanamento base. O resultado? Muitas mensagens de correio electrnico para o
FreeBSD-questions lista de discusso dizendo:'' Onde posso obter ATAPI.FLP?''. Mesmo o
lista errata freqentemente postou no ajuda muito.
Este tipo de ocorrncia traz para casa a diferena na escala de tempo entre software
lanamentos e publicao de livros. FreeBSD CD-ROMs so liberadas vrias vezes por ano. A
nova edio de um livro a cada ano considerado muito freqente, mas, obviamente, no pode esperar
para manter-se com o ciclo de lanamento de software. Como resultado, este livro contm menos tempo
material sensvel do que as edies anteriores. Por exemplo, o captulo sobre a construo de kernels no
j contm uma discusso aprofundada do kernel construir parmetros. Eles mudam muito
freqncia, e as descries, embora corretas no momento da impresso, seria apenas
confusas. Em vez disso, o captulo agora explica onde encontrar as informaes up-to-date.
Outra coisa que descobri foi que o livro era muito grande. A segunda edio
continha 1.100 pginas de man pages, pginas de manual do FreeBSD que tambm so instalados
on-line no sistema. Estas pginas impressas eram mais fceis de ler, mas eles tiveram dois
desvantagens: em primeiro lugar, eles estavam um pouco desatualizado em relao verso on-line, e
Em segundo lugar, pesava cerca de 1 kg (2,2 lbs). O livro era simplesmente pesado, e
algumas pessoas relataram que tinham rasgado fisicamente as pginas do manual do livro para
torn-lo mais controlvel. Como resultado, a terceira edio tinha apenas o homem mais necessrio
pginas.
Os tempos mudaram desde ento. Na altura, O FreeBSD completo foi a nica
Livro Ingls-language em FreeBSD. Agora, existem vrios, consulte o Apndice A,
Bibliografia, para mais detalhes. Em particular, o FreeBSD handbook on-line est disponvel
tanto na forma impressa e on-line em http://www.freebsd.org/handbook/index.html, ento eu tenho
deixou muito das questes mais sensveis ao tempo deste livro. Consulte o manual on-line
em vez disso. Alternativamente, voc pode imprimir as pginas man-se-ver pgina 15 para mais detalhes.
muito difcil encontrar uma boa seqncia de apresentao que o material neste livro. Em
muitos casos, no um problema da galinha e do ovo: o que voc precisa saber primeiro?
Dependendo do que voc precisa fazer, preciso obter informaes em diferentes seqncias.
Passei muito tempo tentando apresentar o material na seqncia melhor possvel, mas
inevitavelmente, voc vai achar que voc vai ter que saltar atravs de uma pgina da mirade
cruzar referncias.
xxix
Eu uso largura constante em exemplos para mostrar o contedo dos arquivos, a sada do
comandos, variveis do programa, os valores reais de palavras-chave, para IDs e-mail, para os nomes dos
Internet Notcias newsgroups, e no texto para representar comandos.
Eu uso itlico largura constante em exemplos para mostrar as variveis de contexto quesubstituies especficas devem ser feitas. Por exemplo, a varivel nome do arquivo Seria
substitudo por um nome de arquivo real.
Eu uso largura constante negrito nos exemplos para mostrar comandos ou texto que seria
digitado literalmente pelo usurio.
Neste livro, eu recomendo o uso do shell Bourne ou um de seus descendentes (sh, festana,
pdksh, ksh ou zsh). sh est na base do sistema, e os restantes so todos na Coleo de Ports,
que veremos no captulo 9. Eu pessoalmente uso o bater shell. Este um pessoal
preferncia, e uma recomendao, mas no o padro shell: o tradicional BSD
shell o shell C (csh), que substituiu o FreeBSD com um descendente mais cheio de recursos,
tcsh. Em particular, o padro de instalao define o raiz usurio com um csh. Consulte a pgina
136 para obter detalhes sobre como alterar o shell.
Na maioria dos exemplos, vou mostrar a janela de comandos como $, Mas no importa qual normalmente
shell que voc usa. Em alguns casos, no entanto, que faz:
s vezes voc precisa ser super-usurio, o usurio que pode fazer qualquer coisa. Se este for
necessrio, eu indic-lo usando o prompt #.
Descrevendo o teclado
Uma das grandes diferenas entre os sistemas operacionais UNIX e outra refere-se maneira
eles tratam os chamados'' cdigos de controle do carro.'' Quando UNIX foi escrito, o padro
terminal interativo ainda era o modelo Teletipo KSR 35. Esta monstruosidade mecnica
impresso em 10 caracteres por segundo, e os personagens de controle do carro realmente causa
movimento fsico da carruagem. Os dois personagens mais importantes foram Transporte
Retorno, que moveu a carruagem (que levou a cabea de impresso) para a margem esquerda, e
Line Feed , Que transformaram a prensa para fazer avanar o papel pela altura de uma linha. Para chegar a
o incio de uma nova linha, que voc precisava para emitir os caracteres de controle. Ns no temos
placas ou carruagens mais, mas os personagens ainda esto l, e em muitos sistemas,
incluindo a Microsoft, uma linha de texto terminada por um caractere de retorno de carro e uma linha
carter alimentar. UNIX usa apenas um carcter'''' nova linha, que corresponde linha
alimentar. Essa diferena, por vezes, d origem a confuso. Vamos olh-la com mais detalhes
na pgina 267.
xxx
Prefaciar
Caracteres de controle (caracteres produzidos por mantendo pressionada a Ctrl e pressionando uma tecla
teclado normal, ao mesmo tempo). Vou mostrar a eles como, por exemplo, Ctrl-D no
texto, mas esses personagens so freqentemente ecoado na tela como um acento circunflexo () seguido
pelo caractere digitado, por isso, os exemplos, voc pode ver as coisas como D.
O Alt chave, que Emacs aficionados chamar um META chave, funciona da mesma maneira como
o Ctrl chave, mas gera um conjunto diferente de caracteres. Estes so, por vezes,
abreviado por prefixar o personagem com um til (~) ou os personagens Um-. Eu
pessoalmente, como este mtodo melhor, mas para evitar confuso eu vou representar o carter
gerado, mantendo pressionada a Alt fundamental e urgente D como Alt-D.
CR o retorno de carro caracteres, em ASCII Ctrl-M. A maioria dos sistemas de gerao com
o ENTER chave. UNIX tambm se refere a este personagem como \ R de novo, isso vem de
a linguagem de programao C.
HT o ASCII guia horizontal personagem, Ctrl-I. A maioria dos sistemas que geram quando o
TAB tecla pressionada. UNIX e C tambm se referem a esse personagem como \ T.
Agradecimentos
Este livro baseia-se no trabalho de muitas pessoas, em primeiro lugar o FreeBSD
projeto de documentao. Anos atrs, eu levei partes significativas do FreeBSD handbook,
em particular o Captulo 7, As ferramentas do comrcio. O FreeBSD manual fornecido como
documentao on-line com o lanamento do FreeBSD-consulte a pgina 12 para obter mais informaes.
sujeito licena BSD documentao, uma variante da licena de software BSD.
A redistribuio e utilizao do cdigo fonte (SGML DocBook) ou formato 'compilado' (SGML,
HTML, PDF, PostScript, RTF e assim por diante), com ou sem modificao, so
permitidas desde que as seguintes condies sejam atendidas:
1. As redistribuies do cdigo fonte (SGML DocBook) devem manter os direitos autorais acima
aviso prvio, esta lista de condies ea seguinte iseno de responsabilidade nas primeiras linhas deste
arquivo sem modificaes.
2. As redistribuies em forma compilada (transformada para outros DTDs, convertida para PDF,
PostScript, RTF e outros formatos) devem reproduzir o aviso de copyright acima,
esta lista de condies ea seguinte iseno de responsabilidade na documentao e / ou
outros materiais fornecidos com a distribuio.
Agradecimentos
xxxi
Revisores do livro
Este livro no seria o mesmo sem a ajuda de um pequeno grupo de crticos dedicados
que tentou o que eu disse, e assinalou que no deu certo. Em particular, eu gostaria de
agradecer Jack Velte de Walnut Creek CDROM, que teve a idia deste livro, no primeiro
lugar, Jordan Hubbard e Gary Palmer para rasgar a estrutura eo contedo para alm
vrias vezes, e tambm Bob Bishop, Julian Elischer, Stefan Esser, John Fieber, Glen
Foster, Poul-Henning Kamp, Michael Smith, e Nate Williams para valiosa contribuio
es ('' O que, voc espera que os novos usurios de saber que voc tem que desligar a mquina
antes de lig-lo?'') 0,1 Finalmente, um agradecimento especial a Josef Mllers, Andreas Ritter, e
Jack Velte, que colocou os primeiros rascunhos deste livro atravs de seus ritmos e realmente instalado
FreeBSD com a sua ajuda.
A segunda edio teve muito mais crtica do que a primeira. Um certo nmero de dedicado
revisores realizada atravs de vrios meses que eu gradualmente dobrado para fora cpia utilizvel. Em
especial, um agradecimento especial a Annelise Anderson, Sue Blake, Jonathan M. Bresler, William
Bulley, Mike Cambria, Brian Clapper, Paul Coyne, Lee Crites, Jerry Dunham, Stefan
Esser, Patrick Gardella, Gianmarco Giovannelli, David Kelly, Andreas Klemm, Andrew
MacIntyre, Jonathan Michaels, Jrg Micheel, Marco Molteni, Charles Mott, Jay D.
Nelson, Daniel J. O'Connor, Andrew Perry, Kai Peters, Wes Peters, Mark Prior, Guido
van Rooij, Andrew Rutherford, Thomas Vickery e Don Wilde.
Muitos dos revisores segunda edio voltou para a terceira edio. Alm disso, graas
para John Birrell por sua ajuda com a arquitetura Alpha, e Michael A. Endsley para
esmiuando erros, alguns dos quais tinham estado presentes desde os tempos de Instalao e
Execuo FreeBSD.
As seguintes pessoas ajudaram com a quarta edio: Annelise Anderson, Jonathan
Arnold, Sue Blake, Doug Barton, Brian Clapper, Jerry Dunham, Matt Geddes, Jeremias
Gowdy, Daniel B. Hemmerich, Justin Heath, Peter NM Hansteen, Paul A. Hoadley, Ed
Irvine, John Lind, Johannes Lochmann, Warner Losh, Yin Cheung 'Yogesh' Mar,
Andrew MacIntyre, Jonathan Michaels, Ove Ruben R. Olsen, Hiten Pandya, Linh Pham,
Daniel Phillips, Siegfried P Pietralla. Stephen J. Roznowski, Dan Shearer e Murray
Stokely.
Alm disso, os meus agradecimentos ao povo de O'Reilly and Associates, especialmente Andy Oram,
1. Consulte a pgina 541 para obter detalhes sobre como desligar o sistema.
xxxii
Prefaciar
com quem eu tinha discutido esse projeto h anos antes que ele finalmente foi capaz de convencer
O'Reilly que era uma boa idia. Posteriormente, foi Andy que coordenou vendo isso
projeto bastante incomum atravs de canais O'Reilly. Emma Colby desenhou a capa e
David Futato desde especificaes, recomendaes e exemplos para o formato. Linley Dolby
revisar o documento depois que eu pensei que estava pronto, e encontrou dezenas de erros em quase
cada pgina, garantindo que o livro melhor que seus antecessores.
Finalmente, graas a David Lloyd para o emprstimo de uma unidade ATA CD-R ao escrever o ATA
seo do Captulo 13, Gravao de CD-Rs.
xxxiii
Neste captulo:
Como usar este livro
Caractersticas FreeBSD
As condies de licenciamento
Um pouco de histria
Outro livre UNIX-like
sistemas operativos
Sistema FreeBSD
documentao
Outra documentao
em FreeBSD
O FreeBSD
comunidade
Listas de discusso
O Berkeley
demnio
1
Introduo
FreeBSD um sistema operacional livre derivado da AT & T UNIX operando system.1 Ele
executado nas seguintes plataformas:
Alm disso, os esforos de desenvolvimento significativos esto indo para portar o FreeBSD
outro hardware, nomeadamente a arquitetura de 64 bits da Intel e IBM / Motorola PowerPC
arquitetura.
Este livro descreve as verses lanadas do FreeBSD para processadores Intel e Alpha.
Suporte atual para 64 processadores SPARC est mudando rpido demais para que seja prtico para dar
detalhes especficos para este processador, mas quase tudo neste livro tambm se aplica a SPARC
64.
1. FreeBSD no contm qualquer AT & T cdigo proprietrio, por isso pode ser distribudo gratuitamente. Consulte a pgina 7 para
mais detalhes.
introduction.mm, v v4.22 (2003/04/02 06:36:16)
1
O FreeBSD completo
No restante deste captulo, vamos olhar para o FreeBSD , o que voc precisa para execut-lo, e
quais recursos esto disponveis, incluindo caractersticas e histria do FreeBSD, como
compara a outros sistemas livres operacionais UNIX-like, outras fontes de informao
sobre FreeBSD, a comunidade FreeBSD em todo o mundo, e suporte para FreeBSD. Em
Alm disso, vamos olhar para o emblema daemon do BSD.
Captulo 8, Tomar o controle, entra em mais detalhes sobre as especificidades do trabalho com
UNIX, tais como processos, daemons, pontualidade e arquivos de log. Tambm vamos olhar
caractersticas nicas para FreeBSD, incluindo suporte ao processador mltipla, removvel I / O
dispositivos e emulando outros sistemas.
Captulo 1: Introduo
Captulo 11, Discos, descreve como formatar e integrar os discos rgidos, e como
lidar com erros no disco.
Gerenciamento de discos pode ser um assunto complicado. Captulo 12, O volume Vinum
Manager, descreve uma forma de gerenciamento de armazenamento em disco.
No captulo 13, Gravao de CD-Rs, veremos como usar o FreeBSD para gravar CD-Rs.
Captulo 15, Impressoras, descreve o sistema de spooling BSD e como us-lo tanto no
sistemas locais e em rede.
Captulo 17, Configurao da rede local, descreve como configurar a rede local.
No captulo 20, Configurando o PPP, olhamos para duas implementaes de PPP do FreeBSD
e que preciso configur-los.
Captulo 24, Acesso rede bsica: clientes, descreve o ponto de vista do cliente de rede
acesso, incluindo navegadores da Web, ssh, ftp, rsync e NFS clientes para o compartilhamento de arquivos
sistemas entre computadores em rede.
Os clientes da rede conversar com servidores de rede. Vamos olhar para o servidor correspondente
ponto de vista no captulo 25, Acesso rede bsica: servidores.
FreeBSD oferece, servios de backup de dados confiveis profissionais como parte da base
sistema. Nunca deixe-se perder dados por causa de disposies de backup inadequadas.
Leia tudo sobre ele no captulo 14, Tapes, backups e disquetes.
No captulo 28, XFree86 em profundidade, vamos olhar para a teoria por trs ficando X11
de trabalho.
No captulo 30, Arquivos de configurao do FreeBSD, vamos olhar para a mais comum
arquivos de configurao eo que deve conter.
No captulo 31, Manter-se atualizado, vamos discutir a forma de garantir que o seu sistema
sempre executando a verso mais apropriada do FreeBSD.
FreeBSD continua a mudar. Ns vamos olhar para alguns aspectos do que isso significa para voc em
Captulo 32, A atualizao do software do sistema.
Caractersticas FreeBSD
FreeBSD derivado Berkeley UNIX , O sabor de UNIX desenvolvido pela
Computer Systems Research Group da Universidade da Califrnia em Berkeley e
lanadas anteriormente como o Berkeley Software Distribution (BSD) do UNIX.
UNIX uma marca registrada da Open Group, por isso legalmente, FreeBSD no pode ser chamado de UNIX.
As questes tcnicas so diferentes, claro, fazer a sua prpria mente como a quantidade de diferena
isto faz.
FreeBSD utiliza multitarefa preemptiva com ajuste de prioridade dinmica para garantir
partilha suave e justa do computador entre as aplicaes e usurios.
Captulo 1: Introduo
FreeBSD confivel. Ele usado por provedores ao redor do mundo. Sistemas FreeBSD regularmente
ir vrios anos sem reiniciar. FreeBSD pode falhar, claro, mas as principais causas
de interrupes so falhas de energia e falhas de hardware catastrficas.
FreeBSD fornece uma completa TCP / IP networking implementao. Isto significa que
sua mquina FreeBSD pode interagir facilmente com outros sistemas e tambm atuar como um
servidor da empresa, oferecendo funes vitais como NFS (acesso remoto a arquivos) e
servios de correio eletrnico, ou colocar sua empresa na Internet com a WWW,
Servios FTP, roteamento e firewall. Alm disso, a coleco de portas inclui software
para se comunicar com protocolos proprietrios.
Proteo de memria garante que nem aplicaes nem usurios podem interferir uns com os
outro. Se um aplicativo trava, ele no pode afetar outros aplicativos em execuo.
Demanda paginada memria virtual (VM) e'' fundiu VM / buffer de cache'' projeto
eficientemente satisfaz aplicaes com grande apetite para a memria e ainda mantering resposta interativo para outros usurios.
FreeBSD fornece o completo cdigo-fonte para todo o sistema, para que voc tenha a
maior grau de controle sobre o seu ambiente. Os termos de licenciamento so os mais livres
que voc vai encontrar em qualquer lugar ('' Ei, us-lo, no finja que voc escreveu, no reclame
para ns, se voc tem problemas''). Essas so apenas as condies de licenciamento, claro. Como
veremos mais adiante neste captulo, h uma abundncia de pessoas dispostas a ajudar se voc executar
em apuros.
FreeBSD pode rodar a maioria dos programas criados para verses do UNIX e SCO UnixWare,
Solaris, BSD / OS, NetBSD, 386BSD e Linux na mesma plataforma de hardware.
Milhares de aplicaes adicionais e easy-to-port esto disponveis na Internet.
FreeBSD o cdigo fonte compatvel com os mais populares sistemas UNIX comerciais
e, portanto, a maioria das aplicaes requerem poucos, se houver, as mudanas para compilar. Mais livremente
software disponvel foi desenvolvido em sistemas BSD-like. Como resultado, o FreeBSD um
das plataformas mais simples que voc pode transferir para.
Caractersticas FreeBSD
Uma vez que o cdigo fonte est disponvel, voc pode facilmente personaliz-lo para aplicaes especiais ou
projetos, de forma geral, no so possveis com os sistemas operacionais de comercial
vendedores. Voc pode facilmente comear pequeno com um barato 386 classe PC e atualizar como
suas necessidades aumentam. Aqui esto algumas das aplicaes em que as pessoas utilizam atualmente
FreeBSD:
Educao: FreeBSD uma maneira ideal para aprender sobre sistemas operacionais, computador
arquitetura e networking. Um nmero de disponveis livremente CAD, matemtica e
pacotes de design grfico tambm torn-lo muito til para aqueles cujo principal interesse em
um computador obter outro trabalho feito.
Pesquisa: FreeBSD uma excelente plataforma para a investigao em sistemas operacionais bem
como outros ramos da cincia da computao, uma vez que o cdigo-fonte do sistema como um todo
disponvel. Livre disponibilidade do FreeBSD tambm possibilita que grupos remotos
colaborar com idias ou desenvolvimento compartilhado sem ter que se preocupar com especial
acordos de licenciamento ou limitaes sobre o que pode ser discutido em fruns abertos.
X Janela estao de trabalho: FreeBSD uma excelente escolha para uma barata
soluo de desktop grfico. Ao contrrio de um terminal X, FreeBSD permite muitas aplicaes
para ser executado localmente, se desejado, aliviando assim a carga em um servidor central. FreeBSD
pode at arrancar'' sem disco'', fazendo estaes de trabalho individuais ainda mais barato e mais fcil de
administrar.
As condies de licenciamento
Como o nome sugere, FreeBSD gratuito. Voc no tem que pagar para obter o cdigo, voc pode usar
-lo em quantos computadores voc quiser, e voc pode dar cpias para seus amigos.
H algumas limitaes, no entanto. Aqui est a licena BSD, usado para todos os novos
Cdigo FreeBSD:
A redistribuio eo uso nas formas de origem e binria, com ou sem modificao, so
permitidas desde que as seguintes condies sejam atendidas:
1. As redistribuies do cdigo fonte devem manter o aviso de copyright acima, esta lista de
condies ea seguinte iseno de responsabilidade.
introduction.mm, v v4.22 (2003/04/02 06:36:16)
Captulo 1: Introduo
2. As redistribuies em formato binrio devem reproduzir o aviso de copyright acima, esta lista
de condies ea seguinte iseno de responsabilidade na documentao e / ou outros
materiais fornecidos com a distribuio.
Este software fornecido pelo projeto FreeBSD'' como '' e qualquer expressa ou implcita
garantias, incluindo, mas no limitado a, garantias implcitas de comerciabilidade
e adequao a um propsito particular so recusadas. Em nenhum caso o FreeBSD
projeto ou colaboradores sero responsveis por quaisquer, indiretos, incidentais, especiais, exemplares direta,
ou danos conseqentes (incluindo, mas no limitado a, aquisio de substituto
bens ou servios, perda de uso, dados ou lucros, ou interrupo de negcios), no entanto
causados em qualquer teoria de responsabilidade, seja por contrato, responsabilidade estrita ou ato ilcito
(Incluindo negligncia ou no) decorrentes de qualquer forma de uso deste software,
mesmo se avisados da possibilidade de tais danos.
O ltimo pargrafo tradicionalmente escrito em todos os CAPS, por razes que no parecem
tem nada a ver com o significado. As verses mais antigas da licena tambm continha
clusulas adicionais relativas publicidade.
Um pouco de histria
FreeBSD um trabalho de amor: grandes empresas comerciais produzir sistemas operacionais e
lotes de carga de dinheiro para eles, o projeto FreeBSD produz um profissional de qualidade
sistema operacional e d-lo afastado. Essa no a nica diferena.
Em 1981, quando a IBM lanou seu computador pessoal, a indstria de microprocessadores foi
ainda na sua infncia. Eles confiada Microsoft para fornecer o sistema operacional. Microsoft
j tinha sua prpria verso do UNIX, chamado XENIX, mas o PC tinha um mnimo de 16
kB e nenhum disco. UNIX no era um fsforo apropriado para este hardware. Microsoft passou
procurando por algo mais simples. O sistema operacional'''' eles escolheram foi correspondentemente
primitiva: 86/DOS, um clone do sistema operacional CP / M sucesso da Digital Research,
escrito por Tim Paterson da Seattle Computer Products e originalmente chamado QDOS
(Sistema Operacional Quick and Dirty). Na poca, parecia apenas uma coisa: ela funcionou muito bem
sem um disco rgido (na verdade, o PC original no fez ter um disco rgido, nem como um
opo), e no utilizar muita memria. A nica coisa que realmente tinha que fazer
era mudar o nome. IBM chamado sua verso PC-DOS, enquanto a Microsoft comercializou seu
verso sob o nome MS-DOS.
Por esta altura, um pouco mais abaixo os EUA West Coast, o Computer Systems Research
Group (CSRG) da Universidade da Califrnia em Berkeley tinha acabado de modificao da AT & T
Sistema operacional UNIX para rodar no novo dezembro VAX 11/780 da mquina, que ostentou
memria virtual, e virou a sua ateno para aplicar alguns dos novos protocolos para
ARPANET: o chamado Protocolos da Internet. A verso do UNIX que tinham
desenvolvido agora era suficientemente diferente do sistema da AT & T que tinha sido apelidado
Berkeley UNIX .
Conforme o tempo passava, o MS-DOS e UNIX evoluiu. Em pouco tempo, o MS-DOS foi
modificada para lidar com discos rgidos, no bem, mas lidou com eles, e para os usurios de PC, que era
introduction.mm, v v4.22 (2003/04/02 06:36:16)
A pouco de histria
muito melhor do que o que tinham antes que eles ignoraram as ineficincias. Afinal,
o PC deu-lhe o seu prprio disco rgido em sua mesa, e voc no tem que compartilhar com todos
as outras pessoas no departamento. Microsoft ainda tentou emular o diretrio UNIX
estrutura, mas s conseguiu implementar o conceito de diretrios aninhados. Em
Berkeley, eles estavam desenvolvendo um maior desempenho subsistema de disco, o Rpido Arquivo
Sistema, agora conhecido como o sistema de arquivos UNIX.
Ao final dos anos 80, era evidente que a Microsoft j no se destinem a melhorar substancialmente
MS-DOS. Novos processadores com suporte para multitarefa e memria virtual teve
substituiu o antigo processador Intel 8088 do IBM PC, mas eles ainda corriam MS-DOS
emulando o processador 8088, que foi agora completamente obsoleto. A memria de 640 kB
limite do PC original, que j apareceu maior do que qualquer um poderia precisar,
tornou-se um problema srio. Alm disso, as pessoas queriam fazer mais do que uma coisa de cada
tempo com seus computadores.
Uma soluo para ambos os problemas era bvia: passar para o modo, o endereo de 32 bits do novo
Processador Intel 80386 e introduzir verdadeira multitarefa, que sistemas operacionais em maior
mquinas tiveram durante dcadas. Naturalmente, estas mquinas maiores eram apenas fisicamente
maior. O PC mdio de 1990 tinha mais memria, mais disco e mais poder de processamento
do que apenas sobre qualquer um dos grandes computadores da dcada de 70. No entanto, a Microsoft no fez
resolver estes problemas para o seu'' Windows'' plataforma at muito mais tarde, e as solues ainda
deixam muito a desejar.
UNIX, por outro lado, era um sistema operativo maduro relativamente ao momento em que o
PC foi introduzido. Como resultado, os ambientes baseados em Microsoft tiveram pouca influncia
sobre o desenvolvimento do UNIX. Desenvolvimento UNIX foi determinada por outros fatores:
mudanas nas regulamentaes legais nos EUA, entre 1977 e 1984 permitiu AT & T primeiro a
licena UNIX para outros fornecedores, notadamente da Microsoft, que anunciou XENIX em 1981,
e, em seguida, para comercializar sua prpria verso do UNIX. AT & T desenvolveu System III em 1982, e
Sistema V em 1983. As diferenas entre XENIX e System V foram inicialmente pequeno,
mas eles cresceram: em meados dos anos 80, havia quatro verses diferentes do UNIX: o Pesquisa
Version, usado quase somente dentro AT & T, que a partir da oitava edio on derivado
4.1cBSD, o Berkeley Software Distribution (BSD) de Berkeley, o comercial
System V da AT & T, e XENIX, que a Microsoft no est mais interessado, e foi
comercializado pela empresa que tinha desenvolvido, o Operao de Santa Cruz, ou SCO.
Uma vtima de maturidade do UNIX foi o CSRG em Berkeley. UNIX era muito madura para
ser considerado um objeto de pesquisa, e nele estava escrito na parede: o CSRG seria
fechar as portas. Algumas pessoas decidiram porta Berkeley UNIX para o PC, afinal, SCO tinha
portado sua verso do UNIX com os anos anteriores de PC. Na tradio Berkeley, no entanto,
eles queriam d-lo afastado. A reao da indstria no foi amigvel. Em 1992, a AT & T
subsidirio USL (UNIX Systems Laboratories) entrou com uma ao contra Berkeley Software
Design, Inc. (BSDI), o fabricante do sistema operacional BSD/386, mais tarde chamado
BSD / OS, um sistema muito semelhante ao FreeBSD. Alegaram distribuio de fonte AT & T
cdigo em violao dos acordos de licena. Eles posteriormente alargado o caso ao
Universidade da Califrnia em Berkeley. O processo foi resolvido fora do tribunal, ea exata
condies no foram todos divulgados. O nico que se tornou pblico foi a de que seria BSDI
migrar sua base de origem para as mais recentes fontes de 4.4BSD-Lite, uma coisa que eles eram
introduction.mm, v v4.22 (2003/04/02 06:36:16)
Captulo 1: Introduo
prepara-se para fazer, em qualquer caso. Apesar de no ser envolvido no litgio, foi sugerido para
FreeBSD que eles tambm devem se deslocar para 4.4BSD-Lite, que foi feito com o lanamento do
FreeBSD verso 2.0 no final de 1994.
Agora, no incio do sculo 21, o FreeBSD o mais conhecido dos sistemas operacionais BSD,
aquela que muitos consideram a seguir a tradio da CSRG. No consigo pensar em nenhum maior
honra para a equipe de desenvolvimento. Ele foi desenvolvido com um oramento apertado, ainda que
consegue superar sistemas operacionais comerciais por uma ordem de magnitude.
386/BSD era o sistema operacional BSD original livre, introduzida por William F. Jolitz
em 1992. Ele nunca progrediu alm de uma fase de teste: em vez disso, duas operacional derivado
sistemas surgiu, FreeBSD e NetBSD. 386/BSD tem sido obsoleto durante anos.
10
Computador Apple lanou a verso 10 (X) de sua Mac OS no incio de 2001. um grande
desvio de verses anteriores do Mac OS: ele baseado em um microkernel Mach com
um ambiente DEB. O sistema de base (Darwin), tambm gratuito. FreeBSD e Darwin
so compatveis ao nvel do cdigo fonte do usurio.
Voc poderia ter a impresso de que h muitas verses BSD diferentes e incompatveis.
Na verdade, do ponto de vista do usurio so todos muito semelhantes entre si, muito mais do que o
distribuies individuais de Linux, o que ns vamos olhar ao lado.
FreeBSD e Linux
Em 1991, Linus Torvalds, ento um estudante em Helsinki, Finlndia, decidiu que queria correr
UNIX em seu computador de casa. Naquela poca, as fontes BSD no eram livremente disponvel,
e assim por Linus escreveu sua prpria verso do UNIX, que ele chamou de Linux.
Linux um excelente exemplo de como alguns dedicados, pessoas inteligentes podem produzir uma
sistema operacional que melhor do que sistemas comerciais famosos desenvolvidos por um grande
nmero de engenheiros de software treinados. melhor at do que uma srie de comerciais
Sistemas Unix.
Obviamente, eu prefiro FreeBSD sobre Linux, ou eu no estaria escrevendo este livro, mas o
diferenas entre FreeBSD e Linux so mais uma questo de filosofia e no de
conceito. Aqui esto alguns contrastes:
Tabela 1-1: Diferenas entre FreeBSD e Linux
FreeBSD um descendente direto do
UNIX original, embora ele no contm
residual AT & T cdigo.
11
Captulo 1: Introduo
FreeBSD est licenciado sob a BSD liincenso, consulte a pgina 6. H muito poucosPublic License.
Mais detalhes esto no
restries sua utilizao.
http://www.gnu.org/licenses/gpl.html. Por
comparao com a licena BSD, imposes restries significativas sobre o que voc pode
fazer com o cdigo fonte.
FreeBSD tem aficionados que esto precomparado a ningum chama que sugerem
atreve
que no melhor do que o Linux.
Em resumo, o Linux tambm um sistema operativo muito boa. Para muitos, melhor do que
FreeBSD.
12
O projeto GNU introduziu o seu prprio formato de documento, Informaes GNU. Alguns GNU
programas no tm outra forma de documentao.
/ Usr / share / doc / en / books / faq / index.html contm o FreeBSD FAQ (Frequentes
Asked Questions). exatamente o que ele diz que : uma lista de perguntas que as pessoas freqentemente
perguntar sobre FreeBSD, com as respostas, claro.
/ Usr / share / doc / en / books / fdp-primers / index.html um iniciador para a FreeBSD DocuProjeto atividade mental,
/ Usr / share / doc / en / books / handbook / index.html o FreeBSD manual on-line. Ele
contm uma grande quantidade de informaes especificamente sobre FreeBSD, incluindo um profundo
discusso de muitos temas deste livro.
/ Usr / share / doc / en / books / ppp-primer / index.html contm um documento um pouco datado
sobre a criao de PPP. Se voc tiver problemas com o captulo 20, Configurando o PPP, voc
pode ser til.
13
Captulo 1: Introduo
Se voc est rodando o X, voc pode usar um navegador como mozilla ler os documentos. Se voc
no tem X em execuo ainda, use lynx. Ambos os programas esto includos no CD-ROM
distribuio. Para instal-los, use sysinstall, que descrita na pgina 92.
lince no um substituto completo para navegadores completos, como Mozilla: uma vez que
somente texto, no capaz de exibir a grande maioria das pginas da web corretamente.
bom o suficiente para ler a maior parte da documentao on-line FreeBSD, no entanto.
Em cada caso, voc inicia o navegador com o nome do documento, por exemplo:
$ Lynx / usr / share / doc / en / books / handbook / index.html
$ Mozilla / usr / share / doc / en / books / handbook / index.html &
Digite o & aps a invocao de mozilla para liberar a janela na qual voc invoc-lo:
mozilla abre sua prpria janela.
Se voc no instalou a documentao, voc ainda pode acess-lo a partir do Live
CD-ROM do sistema de arquivos. Assumindo que o CD-ROM est montado / Cdrom, escolha o arquivo
/ Cdrom / usr / share / doc / en / books / handbook / index.html.
Alternativamente, voc pode imprimir o manual. Isto um pouco mais difcil, e, claro,
voc vai perder as referncias de hipertexto, mas voc pode preferir desta forma. Para formatar o
manual para a impresso, voc vai precisar de uma impressora PostScript ou ghostscript. Consulte a pgina 271 para
mais detalhes sobre como imprimir PostScript.
A verso impressa da documentao normalmente no vm com o CD-ROM
distribuio. Voc pode busc-lo com
ftp (Ver pgina 430) a partir de
ftp://ftp.FreeBSD.ORG/pub/FreeBSD/doc/, que tem a mesma estrutura de diretrios
descrito acima. Por exemplo, voc poderia fazer o download do manual em formato PostScript
de ftp://ftp.FreeBSD.ORG/pub/FreeBSD/doc/en/books/handbook/book.ps.bz2.
O manual online
A documentao mais abrangente sobre FreeBSD o manual online, geralmente
referido como o pginas man. Quase todos os programas, arquivos, biblioteca de funes, dispositivo ou
interface no sistema vem com um manual de referncia de curto explicando o bsico
operao e vrios argumentos. Se voc fosse para imprimi-lo, ele iria correr para bem mais
8000 pginas.
Quando on-line, voc v as pginas do manual com o comando homem. Por exemplo, para aprender
mais sobre o comando ls, digite:
$ Man ls
LS (1)
LS (1)
NOME
ls - lista o contedo do diretrio
SINOPSE
ls [-ACFLRTacdfiloqrstu1] [arquivo ... ]
DESCRIO
Para cada operando que nomeia um arquivo de um tipo diferente de diretrio, ls
exibe seu nome, bem como todas as informaes solicitadas, associado. Para
introduction.mm, v v4.22 (2003/04/02 06:36:16)
14
Este comando exibe a pgina de manual para o usurio comando chmod. As referncias a um
seo especial do manual online so tradicionalmente colocados entre parnteses na escrita
documentao. Por exemplo, a chmod (1) refere-se ao comando do utilizador chmod, e
chmod (2) significa que a chamada do sistema.
Isso bom se voc souber o nome do comando e se esqueceu de como us-lo, mas o que se
voc no consegue lembrar o nome do comando? Voc pode usar homem para procurar palavras-chave na
descries de comando usando o -K opo, ou iniciando o programa a propsito:
$ Man-k correio $ apropos correio
Ambos os comandos fazem a mesma coisa: eles mostram os nomes das pginas de manual que
tem a palavra correio em suas descries.
Alternativamente, voc pode navegar atravs do / Usr / bin directrio, que contm a maior parte do
executveis do sistema. Voc vai ver um monte de nomes de arquivos, mas voc no tem idia do que eles
fazer. Para descobrir isso, digite uma das seguintes linhas:
$ Cd / usr / bin, o homem-f *
$ Cd / usr / bin; whatis *
15
Captulo 1: Introduo
Ambos os comandos fazem a mesma coisa: eles imprimir um resumo de uma linha do
objetivo do programa:
$ Cd / usr / bin, o homem-f *
a2p (1) - Awk para Perl tradutor
addftinfo (1) - adicionar informaes aos arquivos fonte troff para uso com groff
aplica (1) - aplicar um comando para um conjunto de argumentos
apropos (1) - pesquisar a base de dados whatis
Etc ...
Isto d-lhe uma verso impressa, que muito parecido com o original na tela,
exceto que voc no pode ter o texto em negrito ou sublinhado.
Isto d-lhe uma verso devidamente compor da pgina homem, mas exige que o seu
sistema de spool entender PostScript-consulte a pgina 271 para mais detalhes sobre a impresso
PostScript, mesmo em impressoras que no entendem PostScript.
GNU info
A Free Software Foundation tem o seu prprio navegador de hipertexto on-line chamada info. Muitos
Programas FSF quer entrar com nenhuma pgina homem em tudo, ou uma desculpa para uma pgina de homem
(Gcc, por exemplo). Para ler a documentao on-line, voc precisa para navegar na Informaes arquivos
com a Informaes programa, ou a partir de Emacs com a Informaes modo. Para comear info, basta digitar:
$ Info
Em Emacs, digite CTRL-h i ou ALT-X info. Qualquer que seja a maneira que voc comear info, voc pode
obter
breve introduo, digitando h, e uma referncia de comando rpido digitando?.
16
UNIX Power Tools, por Jerry Peek, Tim O'Reilly, e Mike Loukides, uma soberba
recolha de informaes interessantes, incluindo um CD-ROM. Recomendado para
todos, desde iniciantes a peritos.
UNIX para o Impaciente, por Paul W. Abrahams e Bruce R. Larson, mais semelhante
com este livro, mas inclui muito mais material sobre produtos especficos, tais como conchas
e a Emacs editor.
O UNIX Administration Handbook sistema, por Evi Nemeth, Garth Snyder, Scott
Seebass e Trent R. Hein, um dos melhores livros sobre administrao de sistemas que tenho
vi. Abrange um nmero diferente de sistemas UNIX, incluindo uma verso mais antiga do
FreeBSD.
H tambm muitos grupos ativos de Internet que lidam com FreeBSD. Leia sobre eles no
o manual online.
A comunidade FreeBSD
FreeBSD foi desenvolvido por um grupo mundial de desenvolvedores. No poderia ter
acontecido sem a Internet. Muitos dos principais jogadores nunca sequer se conheceram
em pessoa, o principal meio de comunicao atravs da Internet. Se voc tem qualquer tipo de
Conexo com a Internet, voc pode participar tambm. Se voc no tem uma conexo com a Internet,
sobre o tempo que voc tem um. A conexo no precisa ser completa: se voc puder
receber e-mails, voc pode participar. Por outro lado, o FreeBSD inclui todo o software
voc precisa de uma conexo de Internet completo, no o subconjunto muito limitado que a maioria dos PCbaseada em'' Internet'' pacotes lhe oferecer.
17
Captulo 1: Introduo
Listas de discusso
Como diz o autor, FreeBSD fornecido tal como est, sem qualquer responsabilidade apoio. Se
voc est na Internet, voc no est sozinho, entretanto. Responsabilidade uma coisa, mas h
muitas pessoas dispostas a ajud-lo, a maioria de graa, alguns para a taxa. Um bom lugar para comear
com as listas de discusso. H uma srie de listas de discusso que voc pode participar:
Se o ID de e-mail que voc deseja adicionar lista diferente da ID que voc est enviando
de, colocar o ID no final da linha. Isto requer a interveno manual para confirmar que
o usurio realmente quer estar na lista, para que ele possa demorar mais tempo. sempre melhor para enviar o
mail do ID em que deseja receber o e-mail.
Voc no precisa de uma linha de assunto, se voc incluir um, ele ser ignorado. Voc obter uma resposta
de volta dizendo que o pedido deve ser autenticado: ele vai ser algo como isto:
Por favor, certifique-se de ler as cartas antes de assinar ou enviar
e-mail para qualquer lista de discusso FreeBSD para uma explicao de quais tpicos
so relevantes para uma determinada lista e quais os tipos de postagens so e
no so permitidos. Eles podem ser encontrados em:
http://www.freebsd.org/handbook/eresources.html # eResources-MAIL
Algum (possivelmente voc) pediu que o seu endereo de e-mail ser adicionado
ou excludo da lista de discusso "freebsd-questions@FreeBSD.ORG".
Se voc realmente quer esta ao a ser tomada, por favor, envie a seguinte
comandos (exatamente como mostrado) de volta para "Majordomo@FreeBSD.ORG":
auth b2c64f95 subscribe FreeBSD-questions grog@example.org
Se voc no quer que esta ao a ser tomada, simplesmente ignore esta mensagem
eo pedido ser desconsiderado.
introduction.mm, v v4.22 (2003/04/02 06:36:16)
Listas de discusso
18
Se o seu cliente no vai permitir que voc envie o comando inteiro como um nico
linha, voc pode dividi-lo usando barras invertidas, assim:
auth b2c64f95 subscribe FreeBSD-questions \
grog@example.org
Se voc tem alguma dvida sobre a poltica do proprietrio da lista, por favor
contato "postmaster@FreeBSD.ORG".
Thanks!
Majordomo@FreeBSD.ORG
Basta responder a essa mensagem, a remoo de todo o texto, exceto o auth linha:
auth b2c64f95 subscribe FreeBSD-questions grog@example.org
Ao enviar perguntas para -Pergunta, lembre-se de que as pessoas esto sob nenhuma
obrigao de respond-las. Faz-los querer respond-la: apresentar a questo de forma clara,
forma compreensvel. Para mais detalhes, consulte http://www.lemis.com/questions.html. Voc
tambm pode gostar de conferir o site em FreeBSD World Wide Web (WWW)
http://www.FreeBSD.org, em particular a pgina de suporte em http://www.FreeBSD.org/support.html.
Alm disso, um nmero de empresas que oferecem suporte para FreeBSD. Veja a pgina web
http://www.freebsd.org/commercial/consulting_bycat.html para algumas possibilidades.
19
Captulo 1: Introduo
No seja uma daquelas pessoas que enviam o pedido de cancelamento para a lista de discusso.
Os grupos de usurios
Mas como sobre o encontro de usurios de FreeBSD face a face? H um certo nmero de grupos de utilizadores
em todo o mundo. Se voc mora em uma cidade grande, as chances so de que h um perto de voc. Verificar
http://www.freebsd.org/support.html # usurio para uma lista. Se voc no encontrar um, considere
tomar a iniciativa e comear um.
Alm disso, USENIX detm uma conferncia anual, a BSDCon, que lida com
aspectos tcnicos dos sistemas operacionais BSD. tambm uma grande oportunidade para chegar ao
conhece outros usurios de todo o mundo. Se voc estiver na Europa, h tambm uma BSDCon
Europa, que, no momento da escrita no foi executado por USENIX. Ver http://www.eurobsdcon.org / para mais detalhes.
Relatar bugs
Se voc encontrar algo de errado com FreeBSD, queremos saber sobre o assunto, para que possamos corrigir
lo. Para relatar um erro, use o envie-pr programar para envi-lo como uma mensagem de e-mail.
Costumava haver um formulrio web em http://www.FreeBSD.org/send-pr.html, mas tem sido
encerradas devido ao abuso.
O Berkeley daemon
O pequeno daemon direita simboliza BSD.
includo com a devida permisso de Marshall Kirk McKusick,
um dos principais membros da antiga Computer
Sciences Research Group da Universidade da Califrnia em
Berkeley, e proprietrio dos direitos autorais do daemon. Kirk tambm
escreveu o prefcio para este livro.
O daemon ocasionalmente tem dado origem a uma certa quantidade
de confuso. Na verdade, uma referncia a brincar aos processos que
executado em segundo plano, consulte o Captulo 8, Tomar o controle, pgina
150, para uma descrio. O mundo l fora, ocasionalmente v
coisas de forma diferente, como indica a seguinte histria:
introduction.mm, v v4.22 (2003/04/02 06:36:16)
O Berkeley daemon
20
21
Captulo 1: Introduo
O Berkeley daemon
22
sala de aula'' reunio realizada por Mel Ferentz (sim, eu estava naquele demais) ea mais-ou-menos
simultnea reunio Costa Oeste (s) organizada pela SRI, mas antes do Users Group UNIX
foi realmente incorporado como uma preocupao constante.
Eu sabia que Ken Thompson e Dennis Ritchie estaria l. Eu estava vivendo em
Chicago no momento, e assim foi quadrinista Phil Foglio, cuja estrela estava apenas comeando
a subir. Naquela poca, eu era um serralheiro ligado. Colega de quarto de Phil tinha inesperadamente
cidade dividida, e ele era o nico que sabia a combinao do cofre de parede em seu
apartamento. Este o nico apartamento que eu j vi que tinha um cofre de parede, mas com certeza fez
tem um, e Phil tinha algumas coisas trancado l dentro. Eu no tinha muita esperana, j que
cofres esto muito alm de onde eu estava (e estou) em serralharia minha esfera de competncia,
mas eu percebi que'' nenhuma entranhas nenhuma glria'' e disse a ele que iria dar-lhe uma pancada. Em troca, eu lhe disse:
ele poderia fazer alguma T-shirt arte para mim. Ele concordou prontamente.
Maravilha das maravilhas, este seguro era vulnervel para o mesmo algoritmo que o Mestre
fechaduras costumava ser suscetvel. Abri-lo em cerca de 15 minutos de manipulao. Ele
foi o meu melhor momento como serralheiro e Phil ficou muito feliz. Fui at a minha
laboratrio e tiro algumas Polaroid encaixe do sistema PDP-11 que eu estava correndo em UNIX no
tempo, e deu para Phil com algumas descries dos trocadilhos visuais que eu queria: tubos,
demnios com garfos correndo ao longo dos tubos, um pouco balde'''' chamado / Dev / null, tudo isso.
O Phil veio com a obra de arte que enfeitou a pena da primeira dcada do
'' Camisetas UNIX'', que foram feitas por uma operao de Ma e Pa em um subrbio de Chicago.
Eles transformaram a arte de transferncia usando uma copiadora colorida 3M em seu poro. Assim, o
PDP-11 invertida (as unidades de fita esto para trs), mas desde Phil parou na frente
painel, isso era difcil dizer. Sua assinatura marca era foto invertida, mas era
recopiado pelos T-shirt pessoas e re-forwardized'','' que por isso parece um pouco
engraado em comparao com a sua assinatura real.
Dezenas e dezenas de estas camisas foram produzidas. Sozinho Bell Labs representaram
uma ordem de algo como 200 para um grande piquenique. Contudo, apenas quatro (4) Real
originais foram produzidos: com um colar vermelho distintivo e punho da luva. Um foi
para Ken, um para Dennis, um para mim e outro para minha ento esposa. Eu agora possuem o ltimo
duas camisas. Ken e Dennis foram apresentados com suas camisas na conferncia Urbana.
Pessoas ordenou estas camisas direto do casal Chicago. Muitos anos depois,
quando eu estava morando em Los Angeles, eu recebi um telefonema de Armando Stettner, depois para dezembro, pedindo
sobre o que a arte agora famoso. Eu lhe disse que no tinha falado com os fabricantes de Illinois T-shirt
nos ltimos anos. A seu pedido, eu liguei para eles. Eles tinham dobrado os anos de operao atrs e
estavam dentro dos dias de descartar toda a arte antiga. I solicitado o seu retorno, e devidamente
recebeu-o de volta no correio. Parecia estranho, vendo-o novamente em sua forma original, uma
imagem de espelho das camisas com que eu e todos os outros estavam agora familiar.
Enviei a arte para Armando, que queria dar comercializao Ultrix
pessoas. Eles saram com o cartaz Ultrix que mostrou uma boa mquina Ultrix brilhante
contrastava com a goma de mascar-e-corda PDP-11 pessoas UNIX estavam familiarizados.
Eles ainda tm a obra de arte, tanto quanto eu sei.
No me lembro mais exatamente o contedo da carta que enviei junto com a obra de arte. Eu
disse que, tanto quanto sabia, Phil no tinha direitos residuais arte, j que era uma "obra
feito para aluguer ', mas nada foi escrito (e note que este foi dcadas antes do
introduction.mm, v v4.22 (2003/04/02 06:36:16)
23
Captulo 1: Introduo
nova lei de direitos autorais). Eu no me lembro agora se eu explicitamente atribudo todos os direitos dezembro
O que certo que o daemon de John Lassiter, de forma consciente emprestado do
original ou criado por evoluo paralela, posterior primeira horda de daemons UNIX
pelo menos uma dcada e provavelmente mais. E se o daemon de Lassiter se parece muito com um Phil
Criao Foglio, h uma razo.
Eu nunca fiz a varredura na arte de Phil, eu tenho quase nunca verificado em nada, ento eu
no tm GIFs para mostrar. Mas eu tenho alguns muito, muito velho camisetas UNIX em surpreendentemente
bom estado de conservao. Melhores condies do que eu, de qualquer modo: eu j no se encaixam em nenhum dos
eles.
Mike O'Brien
rangente antigo
Observe a data desta mensagem: ele apareceu desde a primeira edio deste livro. Desde ento,
a imagem daemon foi digitalizado, e voc pode encontrar uma verso em
http://www.mckusick.com/beastie/shirts/usenix.html.
Neste captulo:
Usando hardware antigo
PC Hardware
Como o sistema
detecta hardware
Configurando o ISA
cartes
PCMCIA, PC Card
e CardBus
Universal Serial Bus
Discos
Layout de dados em disco
Fazendo o arquivo
sistemas
Limitaes de tamanho de disco
Mostrar hardware
O hardware
Compaq / Digital
Mquinas Alpha
O CD-ROM
distribuio
2
Antes de instalar
FreeBSD executado em praticamente qualquer PC moderno, Alpha ou 64 bits mquina SPARC. Voc pode
pular este captulo e no prximo e passar para o captulo 3, e voc ter uma chance muito boa
de sucesso. No entanto, isso torna as coisas mais fceis de conhecer o contedo deste captulo
antes de comear. Se voc se deparar com problemas, ele vai te dar a informao de fundo
voc precisa para resolver o problema de forma rpida e simples.
FreeBSD tambm executado na maioria dos laptops baseados em Intel, em geral, as consideraes acima se aplicam
para laptops tambm. No decorrer do livro vamos ver exemplos de onde laptops requerem
tratamento especial.
A maioria da informao aqui se aplica principalmente s plataformas Intel. Vamos olhar para o
Compaq arquitetura Alpha na pgina 42. A primeira verso do FreeBSD para apoiar o
Arquitetura SPARC 64 5.0, e suporte ainda um pouco irregular. Na hora de ir para a
imprensa, no vale a pena descrever, uma vez que vai mudar rapidamente. As instrues sobre o CDDistribuio ROM so atualmente a melhor fonte de informaes sobre a execuo FreeBSD em
SPARC 64.
25
26
Se voc estiver planejando instalar FreeBSD em uma mquina antiga, considere o seguinte para ser um
mnimo absoluto:
Voc no precisa absolutamente de um teclado e exibir placa: muitas mquinas FreeBSD executar
tarefas do servidor com nem teclado nem monitor. Mesmo assim, porm, voc pode encontr-lo
conveniente para colocar uma placa de vdeo na mquina para ajudar no caso de voc ter problemas.
Quando eu digo absoluto mnimo, eu quero dizer isso. Voc no pode fazer muito com esse mnimo
sistema, mas para algumas finalidades, pode ser adequada. Pode melhorar o desempenho de
um sistema to mnima significativamente pela adio de memria. Antes de ir para o trabalho de
mesmo tentar uma instalao como mnimo, considerar o custo de mais 16 MB de memria. E
voc pode pegar as mquinas melhores do que este de segunda mo por US $ 50. o trabalho vale a pena?
Para obter todos os benefcios de um sistema FreeBSD desktop ou laptop (mas no de uma mquina
usado principalmente como um servidor), voc deve estar executando o sistema X Window. Este usa mais
memria. Considere 32 MB no mnimo til aqui, embora graas a virtuais do FreeBSD
sistema de memria, este no um limite to difcil como com alguns outros sistemas.
A velocidade de um sistema baseado em memria virtual, como FreeBSD depende, pelo menos, tanto sobre
desempenho da memria como no desempenho do processador. Se voc tem, digamos, um 486DX-33 e 16 MB de
memria, upgrade da memria para 32 MB, provavelmente voc vai comprar mais desempenho do que a atualizao
placa-me para um Pentium 100 e manter a memria de 16 MB. Isto vlido para a habitual mistura
de programas, em especial, os programas que no realizam processamento de nmeros.
Qualquer mquina de 64 SPARC corre FreeBSD aceitvel, pois as mquinas so relativamente novos. Se
voc est executando Intel ou Alpha, considere o seguinte o mnimo para conseguir til
trabalho feito com FreeBSD e X:
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
Mouse
27
Sua milhagem pode variar. Durante a fase de reviso de uma edio anterior deste livro, um dos
usurios declarou que estava muito feliz com a sua mquina, que tem um processador de 486-33, 16 MB
memria principal, e 1 MB de memria de sua placa de vdeo. Ele disse que correu muito mais rpido do que o seu
Pentium 100 no trabalho, que decorreu Microsoft. Moral da histria: se o seu hardware no est altura do
especificao recomendada, no desanime. Experiment-lo de qualquer maneira.
Para alm deste mnimo, FreeBSD suporta um grande nmero de outros componentes de hardware.
Os drivers de dispositivo
O kernel do FreeBSD a nica parte do sistema que podem acessar o hardware. Ele
inclui drivers de dispositivo, que controlam a funo de dispositivos perifricos, como discos,
monitores e placas de rede. Quando voc instala um novo hardware, voc precisa de um driver para ele.
H duas maneiras de obter um driver no kernel: voc pode construir um kernel que inclui o
cdigo do driver, ou voc pode carregar um mdulo de controlador (Kernel Module carregvel ou kld ) Na
do kernel em tempo de execuo. Nem todos os drivers esto disponveis como klds. Se voc precisa de um desses motoristas,
e no est includo no kernel padro, voc tem que construir um novo kernel. Ns olhamos para
construo de kernels no captulo 33.
A configurao do kernel fornecido com distribuies FreeBSD chamado GENRICO aps o
nome do arquivo de configurao que descreve. Ele contm suporte para o mais comum
dispositivos, embora o suporte para alguns hardwares mais antigos est faltando, geralmente porque est em conflito
com os drivers mais modernos. Para uma lista completa de hardware suportado atualmente, leia a web
pgina http://www.FreeBSD.org/releases/ e selecione o link Notas de Hardware pela
liberar voc est interessado polegadas Este arquivo tambm est disponvel em sistemas FreeBSD instalados como
/ Usr/share/doc/en_US.ISO_8859-1/books/faq/hardware.html. Ele tambm est disponvel em outras
lnguas, ver os subdiretrios / Usr / share / doc.
PC Hardware
Esta seo examina as informaes que voc precisa entender para instalar o FreeBSD no
arquitetura i386. Em particular, na prxima seo veremos como o FreeBSD detecta
hardware, eo que fazer se o seu hardware no corresponde ao sistema de
expectativas. Na pgina 31, vamos ver como FreeBSD e outros sistemas operacionais de PC lidar com
espao em disco, e como configurar o disco para o FreeBSD.
Algumas dessas informaes tambm se aplica aos Alpha e SPARC 64 arquiteturas. Vamos
olhar para as diferenas para a arquitetura Alpha na pgina 42. Atualmente, a SPARC 64
implementao est mudando rpido demais para descrev-lo de uma forma significativa.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
28
Desde que o PC original, uma srie de padres de hardware vm, e alguns foram:
O PC original tinha um barramento de 8 bits. Muito poucas destas cartas ainda esto disponveis, mas eles
so compatveis com o barramento ISA (veja o prximo item).
O PC AT, lanado em 1984, tinha um processador de 16 bits 80286. Para apoiar esta
processador, o nibus foi ampliado para 16 bits. Esse nibus veio a ser conhecido como o Indstria
Standard Architecture, ou ISA. Esta norma ainda no est completamente morto, e muitos
novas placas-me suportam. Placas-me mais antigas tm um nmero de slots ISA.
O barramento ISA tem uma srie de limitaes severas, nomeadamente o mau desempenho. Este
tornou-se um problema muito cedo. Em 1985, a IBM introduziu o sistema PS / 2, que
abordou esta questo com um novo nibus, o chamado Arquitetura de microcanais ou MCA.
Embora bem sucedido para a IBM, MCA no foi adotado por outros fabricantes, e
FreeBSD no apoi-lo em tudo. IBM no produz produtos base de
MCA.
EISA ainda provou no ser rpido o suficiente para uma boa performance grfica. No final dos anos
Dos anos 80, uma srie de nibus local solues apareceu. Eles tiveram um desempenho melhor, mas
alguns eram muito confiveis. FreeBSD apoiou a maioria deles, mas voc no pode contar com
lo. melhor ficar longe deles.
Finalmente, no incio de 1990, a Intel trouxe um novo barramento chamado Componentes perifricos
Interligar, ou PCI. PCI agora o barramento dominante num certo nmero de arquitecturas.
PC mais moderno add-on placas so PCI.
Em comparao com os nibus anteriores, PCI muito mais rpido. A maioria das placas tem uma largura de
32 bits de dados autocarro, mas tambm existe um padro PCI de 64 bits. PCI placas tambm contm uma quantida
PC Hardware
29
Placas de vdeo ISA so muito lentos em comparao com placas grficas modernas, mas se
voc quer apenas um carto para manuteno em uma mquina servidor que normalmente no
exibir qualquer coisa, esta uma alternativa econmica.
Alguns controladores de disco ISA pode ser til, mas eles so bem limitados em performance.
ISA placas Ethernet pode ser uma escolha para a rede de baixo volume.
A maioria das placas ISA exigir alguma configurao. Existem quatro parmetros principais que voc
pode ser necessrio definir para placas de controlador de PC:
1. O endereo da porta o endereo do primeiro possivelmente vrios registos de controlo de que o
motorista usa para se comunicar com a placa. Ele normalmente especificada em hexadecimal,
por exemplo 0x320.
Se voc vem de um fundo Microsoft, voc pode estar mais acostumado com a notao 320H.
O notation0x320 vem da linguagem de programao C. Voc vai ver um monte de que em UNIX.
Cada placa tem seu prprio endereo ou faixa de endereos. A arquitetura ISA tem um
acentuadamente intervalo de endereos limitada, e uma das causas mais freqentes de problemas quando
a instalao de uma placa que os endereos de porta coincidir com os de outra placa.
Cuidado com as placas com um grande nmero de registros. Porta tpica aborda final em
(Hexadecimal) 0. No confie em ser capaz de tomar qualquer endereo desocupado
terminando em 0, porm: algumas placas, como a Novell NE2000 placas Ethernet
compatveis, ocupar
at 32 registos, por exemplo, a partir de 0x320 a 0x33f. Note-se tambm que uma srie de
endereos, como as portas seriais e paralelas, muitas vezes acabam em 8.
2. Placas usam um Solicitao de interrupo, tambm conhecido como IRQ, para chamar a ateno do
motorista quando um determinado evento acontece. Por exemplo, quando uma interface serial l um
personagem, ele gera uma interrupo para dizer ao motorista para recolher o personagem. Interromper
pedidos s vezes pode ser compartilhado, dependendo do motorista e do hardware. L
so ainda menos pedidos de interrupo do que endereos de porta: um total de 15, dos quais um nmero
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
30
esto reservados pela placa-me. Normalmente voc pode esperar para ser capaz de usar IRQs 3, 4,
5, 7, 9, 10, 11 e 12. IRQ 2 especial: devido ao design do IBM PC original / AT,
ela a mesma coisa que o IRQ 9. FreeBSD se refere a essa interrupo como IRQ 9.
Como se as interrupes disponveis j no estavam restritas suficiente, ISA e PCI placas
utilizam o mesmo conjunto de linhas de interrupo. Placas PCI podem compartilhar linhas de interrupo entre
vrias placas, e de fato o padro PCI suporta apenas quatro interrupes, chamadas
INTA, INTB, INTC e INTD. Na arquitetura PC eles so mapeados para quatro dos 15 ISA
as interrupes. Placas PCI so auto-configurao, ento tudo que voc precisa fazer garantir que PCI
e interrupes ISA no entrem em conflito. Voc normalmente configurar isso em um menu de configurao do BIOS.
3. Alguns dispositivos de alta velocidade executar Direct Memory Access, tambm conhecido como DMA, para
transferir dados para ou a partir da memria sem a interveno da CPU. Para transferir os dados, eles
afirmar uma DMA Request (DRQ) e aguardar o nibus para responder com uma DMA Reconhea
(DACK). A combinao de DRQ e DACK s vezes chamado de DMA Channel.
A arquitectura ISA fornece 7 canais DMA, numerados de 0 a 3 (8 bits) e de 5 a 7
(16 bits). O driver de disquete utiliza DMA canal 2. Canais de DMA no pode ser compartilhado.
4. Finalmente, os controladores podem ter memria on-board, por vezes referido como I / O de memria
ou Iomem. geralmente localizados em endereos entre 0xA0000 e 0xeffff.
Se o motorista s olha para configuraes de placa especfica, voc pode configurar a placa para combinar
o que o motorista espera que, normalmente, definindo jumpers ou utilizando um fornecedor fornecido
programa de diagnstico para definir a configurao de memria on-board, ou voc pode construir um kernel
coincidem com as configuraes de tabuleiro.
31
Tipo 2 cartes so 5 mm de espessura. Estes so o tipo mais comum, ea maioria dos laptops
tomar dois deles.
Tipo 3 cartes so 10,5 milmetros de espessura. Na maioria dos laptops normalmente voc pode inserir qualquer um
tipo 3 card ou dois tipo 2 cartes.
O GENRICO Kernel do FreeBSD contm suporte para carto PC, assim voc no precisa construir uma
novo kernel.
Discos
Um certo nmero de discos diferentes tm sido usados em computadores:
ST-506 discos so os mais antigos. Voc pode reconhec-los pelo fato de que eles tm dois
cabos: um cabo de controle que, geralmente, tem conexes para dois discos, e um mais fino dados
cabo que no partilhada com qualquer outro disco. Eles so apenas sobre completamente obsoleto
por agora, mas FreeBSD Release 3 ainda apoia-los com o wd motorista. Estes discos
s vezes so chamados pelo seu formato de modulao, Modified Frequency Modulation ou
MFM. Uma variante da MFM, que oferece cerca de 50% mais espao de armazenamento RLL ou Run Length
Limitado modulao. Do ponto de vista do sistema operativo, no existe diferena
entre MFM e RLL.
32
ESDI (Enhanced Small Device Interface) discos foram projetados para trabalhar em torno de alguns
do as limitaes de unidades ST-506. Eles tambm usam o mesmo cabeamento como ST-506, mas
eles no so hardware compatvel, embora a maioria dos controladores ESDI entender ST-506
comandos. Eles tambm esto obsoletos, mas o wd motorista em FreeBSD Release 3 suporta
eles, tambm.
IDE (Integrated Device Electronics), agora freqentemente chamado ATA (AT Attachment)
a interface de disco do PC de baixo custo atual. Ele suporta dois discos ligados por uma nica de 40
ou 80 cabo plano condutor. Os suportes para os cabos so os mesmos, mas o 80
cabos condutores necessrio para a 66 MHz, 100 MHz e 133 MHz e as taxas de transferncia
apoiada por unidades de disco mais recentes.
Todos os discos IDE modernos so chamados EIDE (Enhanced IDE). O IDE originais
discos foram limitadas pela BIOS do PC padro para um tamanho de 504 MB (1024 * 16 * 63 *
512, ou 528.482.304 bytes). As unidades EIDE exceder esse limite por vrias ordens de
magnitude.
Um problema com os controladores IDE antigos era que eles costumavam programada de I / O ou PIO a
realizar a transferncia. Neste modo, a CPU est directamente envolvido na transferncia ou
a partir do disco. Mais antigos controladores transferido um byte de cada vez, mas mais moderno
controladores podem transferir em unidades de 32 bits. De qualquer maneira, transferncias de disco usam uma grande
quantidade de tempo de CPU com programado I / O, e difcil conseguir a transferncia
taxas de discos IDE modernos, que podem ser to elevados como 100 MB / s. Durante tal
transferncias, o sistema parece ser insuportavelmente lento:'' sofre uma parada.''
Para resolver este problema, chipsets modernos oferecem transferncias DMA, que quase
eliminar completamente a sobrecarga da CPU. Existem dois tipos de DMA, cada um com
vrios modos de transferncia possveis. Os mais velhos DMA modo no est mais em uso. Ele
taxas de transferncia de tratados entre 2.1 MB / s e 16,7 MB / s. O mais recente UDMA (Ultra
DMA) modo suporta taxas de transferncia entre 16,7 MB / s, 133 MB / s. Discos atuais
usar UDMA33 (33 MHz a taxa de transferncia), que a taxa mais rpida que voc pode usar com um 40
cabo condutor, e UDMA66 (66 MHz), UDMA100 (100 MHz) e UDMA-133
(133 MHz), com um cabo condutor 80. Para obter esta taxa de transferncia, tanto o disco eo
controlador de disco deve suportar a taxa. FreeBSD suporta todos os modos UDMA.
Outro fator que influencia o desempenho IDE o fato de que a maioria dos controladores IDE e
discos s pode executar uma transferncia ao mesmo tempo. Se voc tiver dois discos em um controlador,
e voc deseja acessar ambos, o controlador serializa os pedidos para que um pedido de
uma unidade completa antes das outras partidas. Isso resulta em um pior desempenho do que
em uma cadeia SCSI, que no tem essa restrio. Se voc tiver dois discos e dois
controladores, melhor colocar um disco em cada controlador. Esta situao est gradualmente
mudando, assim, quando a escolha de hardware vale a pena checar com o apoio atual para
enfileiramento marcado, que permite transferncias simultneas.
Discos
33
condutores ('' wide SCSI'', que tambm se conecta at 16 dispositivos). Alguns SCSI
dispositivos tm subdevices, para trocadores de CD-ROM exemplo.
Drives SCSI tm a reputao de um desempenho muito superior do que o IDE. Isto principalmente
porque quase todos os adaptadores SCSI suportam DMA, enquanto no passado IDE
controladores geralmente utilizados programado I / O. Alm disso, os adaptadores SCSI pode
realizar transferncias de vrias unidades ao mesmo tempo, enquanto os controladores IDE pode
apenas realizar uma transferncia ao mesmo tempo. Drives SCSI tpicos ainda so mais rpidos do que IDE
unidades, mas a diferena nem de longe to grande quanto costumava ser. Narrow SCSI pode
suportar taxas de transferncia de at 40 MB / s (Ultra 2) e grande SCSI pode suportar taxas de
at 320 MB / s (Ultra 320). Estas velocidades no so necessariamente mais rpido que IDE: voc
pode conectar mais de sete vezes o nmero de dispositivos a uma ampla cadeia SCSI.
BIOS do PC e discos
Os princpios bsicos de unidades de disco so relativamente simples: os dados so armazenados em um ou mais
girando os discos com um revestimento magntico semelhante em funo do revestimento em uma fita de udio.
Ao contrrio de uma fita, no entanto, os chefes de disco, no toque na superfcie: o disco em rotao produz um
a presso de ar de encontro cabea, a qual mantm flutuante muito perto da superfcie. O disco
tem (geralmente) um leitura / escrita cabea para cada uma das superfcies de transferncia de dados de e para o
sistema. As pessoas freqentemente falam sobre o nmero de cabeas, e no o nmero de superfcies,
embora estritamente falando, isso incorreto: se h duas cabeas por superfcie (para acelerar
de acesso), voc ainda est interessado no nmero de superfcies, no o nmero de cabeas.
Durante a transferncia dos dados, as cabeas esto estacionrias, os dados assim est escrito em discos numa srie
concntrico de circular faixas. Logicamente, cada pista est dividida num nmero de sectores,
que hoje em dia quase que invariavelmente contm 512 bytes. Um nico mecanismo de posicionamento
move as cabeas de uma faixa para outra, de modo a qualquer momento todas as faixas sob a
posio atual chefe pode ser acessado sem reposicionamento. Este grupo de faixas
chamado cilindro.
Uma vez que o dimetro da pista difere de uma faixa para a outra, o mesmo acontece com a armazenagem
capacidade por faixa. No entanto, por uma questo de simplicidade, unidades mais antigas, como a ST-506
(MFM e RLL) unidades, teve um nmero fixo de setores por trilha. Para executar um conjunto de dados
transferncia, necessrio dizer que a unidade de cilindro, cabea e setor de abordar. Este
modo de endereamento assim chamado CHS endereamento.
Discos modernos tm um nmero varivel de setores por trilha em diferentes partes do disco para
optimizar o espao de armazenamento, e pela mesma razo que normalmente armazenar dados no disco
em unidades muito maiores do que os sectores. Externamente, eles traduzem os dados em unidades de setores,
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
34
Particionamento de disco
O BIOS do PC divide o espao em disco em at quatro parties, liderados por uma partio
tabela. Para os sistemas Microsoft, cada partio pode ser uma partio primria que
contm um sistema de arquivos (a'' unidade'' na terminologia Microsoft), ou um partio estendida que
contm vrios sistemas de arquivos (ou parties lgicas'''').
FreeBSD no utiliza a tabela de partio BIOS do PC diretamente. Ele mantm a sua prpria
esquema de particionamento com a sua prpria tabela de parties. Na plataforma PC, ele coloca este
tabela de partio em uma nica partio BIOS do PC, em vez da mesma forma que um BIOS do PC
partio estendida contm'' vrias parties lgicas.'' Trata-se de parties da BIOS do PC
como fatias''.''
Este uso duplo da palavra divisria realmente confuso. Neste livro, eu sigo uso BSD, mas
Eu continuo a referir a tabela de parties do PC BIOS por esse nome.
Divisria oferece a flexibilidade que outros sistemas operativos precisa, por isso, tem sido adoptada
por todos os sistemas operacionais que rodam na plataforma PC. A Figura 2-1 mostra um disco com todos
alocados quatro fatias. O Partition Table representa a estrutura de dados mais importantes. Contem
informaes sobre o tamanho, localizao e tipo das fatias (parties do PC). A BIOS do PC
permite que uma destas fatias de ser designado como active: no momento da inicializao do sistema, a sua inicializao
registro utilizado para iniciar o sistema.
A tabela de partio de um disco de inicializao tambm contm um Master Boot Record (MBR), que
responsvel por encontrar a fatia correta e arrancar-lo. O MBR ea tabela de partio
ocupam o primeiro setor no disco, e muitas pessoas consideram que eles sejam a mesma coisa. Voc
s precisa de um MBR em discos a partir do qual voc inicializa o sistema.
35
A partio pode ser um sistema de arquivos, uma estrutura na qual UNIX armazena arquivos.
Ele pode ser usado como um partio swap. FreeBSD usa a memria virtual: do total endereado
memria do sistema pode exceder o tamanho da memria fsica, ento precisamos de espao no
disco para armazenar pginas de memria que no cabem na memria fsica. Swap um separado
partio por motivos de desempenho: voc pode usar arquivos de swap, como a Microsoft faz, mas
muito menos eficiente.
A partio poder ser utilizada por outros componentes do sistema. Por exemplo, a Vinum
Volume Manager utiliza parties especiais como blocos de construo para volumes. Ns olharemos
Vinum na pgina 221.
A partio pode no ser uma partio real. Por exemplo, a partio c refere-se ao
fatia inteira, para que ele se sobrepe todo o resto. Por razes bvias, as parties que
representar sistemas de arquivos e espao de troca (a, b e d atravs h) no devem se sobrepor.
36
Normalmente, claro, voc quer que os arquivos em seu disco: voc no se importa onde eles esto, voc s
quer ser capaz de abri-los e manipul-los. Alm disso, por razes de desempenho
o sistema mantm os dados acessados recentemente em um o buffer cache. Trata-se de um conjunto muito mais
trabalhar de dispositivos brutos. Estes dispositivos so chamados bloquear dispositivos.
Em contraste com o UNIX, Linux originalmente no tm dispositivos de disco caracteres. Comeando
com a verso 4.0, FreeBSD tomou o caminho inverso: h agora nenhum usurio
dispositivos de bloco acessveis mais. H um nmero de razes para isto:
Ter dois nomes diferentes para dispositivos confuso. Em verses mais antigas do FreeBSD,
voc poderia reconhecer bloco e dispositivos de caracteres em um ls-l lista com as letras b
e c no incio das permisses. Por exemplo, em FreeBSD 3.1 voc pode
vi:
$ Ls-l / dev/rwd0s1a
crw-r ----- 1 operador de raiz
brw-r ----- 1 operador de raiz
/ Dev/wd0s1a
3, 131072 31 de outubro 19:59 / dev/rwd0s1a
0, 131072 31 de outubro 19:59 / dev/wd0s1a
wd o nome antigo para o atual anncio discos. A questo : quando voc usa o que
um? Mesmo em comparao com UNIX System V, as regras eram diferentes.
Quase todos os acessos ao disco passa atravs do sistema de arquivos e dispositivos de bloco acessveis ao usurio
adicionar complicao.
Se voc escrever para um dispositivo de bloco, voc no escrever automaticamente para o disco, s em
o buffer cache. O sistema decide quando escrever para o disco. Se h um problema de escrita
para o disco, no h nenhuma maneira para notificar o programa que realizou a gravao: Pode at
j terminaram. Pode demonstrar isto de forma muito eficaz, comparando o
maneira FreeBSD e Linux gravar em um disquete. Ele leva 50 segundos para escrever um
disco da disquete completa velocidade determinada pelo hardware, de modo que o FreeBSD
programa de cpia termina aps 50 segundos. Com o Linux, no entanto, o programa executado apenas
por um segundo ou dois, depois que ele termina e voc ter seu prompt de volta. No
Enquanto isso, o sistema libera os dados para floppy: voc ainda precisa esperar um total de 50
segundos. Se voc remover o disquete neste momento, obviamente voc perder dados.
A remoo de dispositivos de bloco causado mudanas significativas para os nomes de dispositivos. Em mais velhos
verses do FreeBSD, o nome do dispositivo o nome do dispositivo de bloco, ea matria(Personagem) dispositivo tinha a letra r no incio do nome, tal como mostrado no exemplo
acima.
Vamos olhar com mais cuidado em como nomes BSD suas parties:
Em seguida, vem o nome do motorista. Como vimos, o FreeBSD tem drivers para IDE
e amigos (ad), discos SCSI (da) e disquetes (fd). Para discos SCSI, agora
ter o nome / Dev / da.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
37
As verses originais do FreeBSD tinha a abreviatura wd para drives IDE. Esta abreviatura
surgiu porque o mais popular dos controladores MFM originais foram feitos por Western
Digital. Outros afirmam, porm, que uma abreviatura de'' Winchester disco.'' Discos SCSI
foram originalmente abbreviatedsd. O NameDA vem do padro CAM e curto para
acesso directo. BSD / OS, NetBSD e OpenBSD ainda usa os nomes antigos.
Em seguida, vem o nmero da unidade, geralmente um nico dgito. Por exemplo, a primeira SCSI
disco no sistema seria normalmente chamada / Dev/da0.
Geralmente, os nmeros so atribudos durante os testes de inicializao, mas voc pode reservar os nmeros para
Discos SCSI, se quiser. Isto impede a remoo de um nico disco de mudar o
nmeros de todas as unidades subseqentes. Consulte a pgina 574 para mais detalhes.
Em seguida, vem as informaes da partio. O chamado estrita nome de fatia especificado pela
adicionando a letra s (Por fatia) eo nmero fatia (1 a 4) para o nome do disco. BSD
sistemas de divisrias nome anexando as letras um a h ao nome do disco. Assim, o
primeira partio da primeira fatia do nosso disco acima (que normalmente seria um arquivo de raiz
sistema) ser chamado / Dev/da0s1a.
Algumas outras verses do BSD no tm o mesmo suporte para as fatias, de modo que eles usam um
terminologia mais simples para o nome da partio. Em vez de chamar o sistema de arquivos raiz
/ Dev/da0s1a, eles se referem a ele como / dev/da0a. FreeBSD suporta este mtodo como bem
ele chamado fatia compatibilidade de nomeao. A fatia compatibilidade simplesmente o primeiro
FreeBSD cortar encontrado no disco, e as parties nessa fatia tem dois diferentes
nomes, por exemplo / Dev/ad0s1a e / Dev/ad0a.
Divisria c uma exceo: por conveno, que representa todo o disco BSD (neste
caso, a fatia em que reside FreeBSD).
Alm disso, NetBSD partio reservas d para o disco inteiro, incluindo outras parties.
FreeBSD no atribui qualquer significado especial para particionar d.
A Figura 2-2 mostra uma disposio tpica de um sistema com um nico disco SCSI, partilhada entre
Microsoft e FreeBSD. Voc vai notar que a partio / Dev/da0s3c est faltando a partir do
FreeBSD fatia, uma vez que no uma separao real. Como a tabela de partio do BIOS do PC, o disco
rtulo contm as informaes necessrias para o FreeBSD para gerenciar a fatia FreeBSD, como
a localizao e os comprimentos das divisrias individuais. A inicializao usado para carregar a
kernel na memria. Ns vamos olhar para o processo de inicializao em mais detalhes no Captulo 29.
38
PC BIOS C: conduzir
PC BIOS D: conduzir / Dev/da0s5
Slice 3 - FreeBSD
/ Dev/da0s3
Uso
Primeira fatia (PC BIOS C: partio)
Segunda fatia (PC BIOS partio estendida)
Terceiro fatia (PC BIOS partio), FreeBSD
Primeira unidade de partio estendida PC BIOS (D :)
Segunda unidade na partio estendida PC BIOS (E :)
Terceiro fatia (PC BIOS partio), a partio um (Sistema de arquivos root)
Terceiro fatia (PC BIOS partio), a partio b (Espao de troca)
Terceiro fatia (PC BIOS partio), partio inteira
Terceiro fatia (PC BIOS partio), a partio e (Sistema de arquivos / usr)
Partio de compatibilidade, o sistema de arquivos raiz, o mesmo que
/ Dev/da0s1a
Partio de compatibilidade, a partio swap, mesmo que
/ Dev/da0s1b
Fatia BSD todo, mesmo que / Dev/da0s1c
Partio de compatibilidade, usr sistema de arquivos, mesmo que
/ Dev/da0s1e
39
Se voc j tem outro sistema instalado no disco, melhor usar esse sistema de
ferramentas para manipular a tabela de partio. FreeBSD normalmente no tem dificuldade
com tabelas de parties criadas por outros sistemas, de modo que voc pode estar razoavelmente certo de que a
outro sistema vai entender o que ele deixou. Se o outro sistema a Microsoft, e voc
ter uma fatia que voc no precisa, utilize o MS-DOS FDISK programa para liberar o suficiente
espao para instalar o FreeBSD. Se voc no tem uma fatia de apagar, voc pode usar o FIPS
programa para criar um consulte o Captulo 5, Instalando o FreeBSD, pgina 52.
Se por algum motivo voc no pode usar o MS-DOS FDISK, por exemplo, porque voc est instalando
FreeBSD, por si s, FreeBSD tambm fornece um programa chamado fdisk que manipula o
tabela de parties. Normalmente voc invoc-lo indirectamente atravs do sysinstall programa consulte a pgina
63.
A primeira foi a BIOS Limite de 504 MB em discos IDE, imposta pela sua semelhana com
Discos ST-506. Discutimos isso na pgina 32. FreeBSD trabalha em torno desta questo,
usando um carregador que entende discos grandes, ento esse limite uma coisa do passado.
O limite seguinte foi o limite de 1 GB, o que afetou alguns adaptadores host SCSI mais velhos.
Embora discos SCSI sempre usar o endereamento LBA Internamente, o BIOS precisava
simular CHS endereamento para a Microsoft. BIOS iniciais foram limitados a 64 cabeas, 32
n seria um
setores e 1.024 faixas (64 32 1024 512 = 1 GB). Isso o
problema, a no ser que alguns antigos controladores Adaptec oferecer uma opo de compatibilidade 1 GB.
No us-lo: ele s necessrio para os sistemas que foram instalados com o velho mapeamento.
Depois disso, lgico que o prximo limite deve vir a 2 GB. Existem vrias
diferentes problemas aqui. O nico que afeta FreeBSD parece ser um bug no
alguns controladores IDE, o que no trabalham alm desse limite. Todos eles so, e
Controladores IDE no custa nada, por isso, se voc tem certeza que voc tem esse problema, voc pode
resolv-lo mediante a substituio do controlador. Certifique-se de obter um que suporta DMA.
Outros sistemas, incluindo vrias verses do UNIX System V, ter problemas com isso
limitar porque 231 o maior nmero que pode ser representado em um 32 bit
inteiro. FreeBSD no tem esta limitao, como o tamanho dos arquivos so representados em 64 bits
quantidades.
40
s 8 GB do sistema CHS funciona fora do vapor. No se pode descrever com mais de 1024
cilindros, 255 cabeas e 63 setores. Alm deste tamanho, voc deve usar LBA
dirigindo-se a sua BIOS suporta.
Voc esperaria mais problemas em 16 GB, mas na verdade a prxima limitao no vem
at 128 GB. devido s limitaes no plano inicial LBA, que s tinha
28 bits de endereo setor. O novo padro prolonga-se isto para 48 bits, o que deve ser
suficiente para os prximos anos. FreeBSD j usa o novo padro, de modo que este
limitao nunca foi um problema.
Nenhum desses problemas afetam diretamente FreeBSD. A inicializao do FreeBSD no usa mais
BIOS do sistema, por isso no est vinculada pelas restries do BIOS e do controlador. Se
voc usar o gestor de outro sistema operacional, no entanto, voc pode ter problemas. Se voc
tem a opo, use o endereamento LBA. Infelizmente, voc no pode fazer isso, se o disco j
contm software que usa endereamento CHS.
Outras coisas a considerar so:
Se voc tiver outro software j instalado no disco, e voc quer mant-lo, fazer
no alterar a geometria do disco. Se voc fizer isso, voc no ser mais capaz de executar o
outro software.
Se tudo mais falhar, instale o Microsoft em uma pequena fatia no incio do disco. Isto cria um
tabela de parties vlida para a unidade, eo software de instalao entende. Uma vez
de ter iniciado o processo de instalao, a partio Microsoft cumpriu a sua
propsito, e voc pode exclu-lo novamente.
Se voc tem que usar CHS, e voc no tem nenhum outro software na unidade, utilize o
conduzir geometria especificada no prprio disco ou no manual, se voc tiver sorte o suficiente para
obter um manual com o disco. Muitos BIOS remapear a geometria da unidade, a fim de obter
Microsoft concorda em trabalhar com o disco, mas isso pode quebrar o mapeamento de disco FreeBSD.
Verifique se o editor de parties tem esses valores, e alter-las se necessrio.
Mostrar hardware
Durante anos, os usurios UNIX tm trabalhado com um nico modo de exibio de caracteres 80x25. Muitos
pessoas consideram esta extremamente antiquado, mas na verdade a flexibilidade do UNIX
sistema feito isso muito uma boa maneira de trabalhar. Ainda assim, no h dvida da vantagem de um
sistema que oferece a possibilidade de realizar vrias operaes ao mesmo tempo, e isso
Uma das vantagens particulares do UNIX. Mas voc precisa normalmente de um terminal para interagir
com cada tarefa. A melhor maneira de fazer isso com o X Window System. Voc tambm pode
quer usar um desktop, um conjunto de programas que oferecem funcionalidades comumente usados.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
Mostrar hardware
41
Por que faz-lo desta maneira? Porque lhe d mais opes. Existem dezenas de janela
gerentes disponveis, e tambm vrios ambientes. Voc no est preso a um nico produto.
Isso tem seu lado negativo, porm: voc deve fazer a escolha, e assim a criao de X requer um
pouco mais de ateno do que a instalao do Microsoft.
O hardware
X funciona com praticamente qualquer hardware. Isso no significa que todo o hardware igual, claro.
Aqui esto algumas consideraes:
O teclado
X usa o teclado muito mais do que Microsoft. Certifique-se de obter uma boa.
O mouse
X prefere um mouse de trs botes, embora tenha provises para at cinco botes. Pode
apoiar os ratos mais novos com rolos e botes laterais, mas a maioria dos softwares no us-los.
Alguns mouses, como o mouse sem fio Logitech, requerer sequncias de indocumentados
permitir alguns botes (no boto polegar no caso do Logitech). X no suporta esta
boto.
Obter o melhor mouse que voc puder. Prefira um switch curto, luz. Ele obrigao ter pelo menos trs
botes. No aceite nenhum substituto. Consultar por um com um boto de fcil de usar meio.
Frequentemente os ratos com ambos um boto no meio e um rolo tornam difceis de usar o meio
boto: ou deslocada, muito pesado em ao, ou exige a presso sobre o rolo (e
assim, eventualmente, transformando-o). Todos estes provar ser um incmodo ao longo do tempo.
Camundongos mais velhos conectados via porta serial ou um carto especial ('' bus rato''). Hoje em dia
a maioria dos mouses so os chamados mouses PS / 2 e mouse USB esto se tornando mais popular.
42
Hardware Laptop
Se voc tiver um laptop, voc no tem outra escolha. O ecr tem uma resoluo nativa que
voc no pode mudar. A maioria dos laptops exibir resolues mais baixas por interpolao, mas o resultado
parece muito pior do que a resoluo nativa. Telas de LCD olhar mais ntida do que CRT
laptops monitores, assim voc pode escolher resolues mais altas-modernos tm resolues de tela
de at 1600x1200.
Se voc estiver indo para usar seu laptop para apresentaes com projetores, certifique-se
encontrar um que pode exibir tanto na tela interna e tambm na sada externa em
Ao mesmo tempo, mantendo uma resoluo de tela de 1024x768: no muitos sobrecarga
projetores pode exibir em uma resoluo maior.
Grande parte do hardware PC mencionado acima no foi fornecido com o Alpha. Este
vale principalmente para hardware mais antigo.
Nesta seo, vamos dar uma olhada em alguns tpicos adicionais que se aplicam apenas ao Alpha.
Requer que o FreeBSD SRM consola de firmware, que usado pelo Tru64 (Anteriormente conhecido
como UNIX Digital ). Ele no funciona com o firmware ARC (s vezes chamado
AlphaBIOS) usado com Microsoft NT. O firmware SRM funciona a mquina de 64 bits
modo, o que necessrio para executar FreeBSD, enquanto o ARC firmware define o modo de 32 bits. Se
seu sistema est funcionando atualmente Tru64, voc deve ser capaz de usar o SRM existente
Console.
Os comandos do console SRM diferem de uma verso para outra. Os comandos
suportado pela sua verso esto descritas no manual de hardware que foi enviado com
seu sistema. O console ajudar comando lista todos os comandos de console suportados. Se o seu
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)
43
sistema foi configurado para inicializar automaticamente, voc deve digitar Ctrl-C interromper o arranque
processar e chegar ao prompt do console do SRM (>>>). Se o sistema no estiver configurado para inicializar
automaticamente, ele exibir o console SRM aps a realizao de verificaes do sistema.
Todas as verses do console SRM apoiar o conjunto e mostrar comandos, que operam em
variveis de ambiente que so armazenados em uma memria no-voltil. O mostrar listas de comandos
todas as variveis de ambiente, incluindo aqueles que so somente leitura.
SRM da Alpha exigente sobre qual hardware que suporta. Por exemplo, reconhece
NCR placas SCSI, mas ele no reconhece placas Adaptec. H relatos de alguns
Alphas no arrancar com determinadas placas de vdeo. O GENRICO configurao do kernel
(/ Usr / src / sys / alpha / conf / GENERIC) mostra que o kernel suporta, mas que no
significa que o SRM suporta todos os dispositivos. Alm disso, o suporte varia de SRM
uma mquina para a prxima, ento no h o perigo de que o que est descrito aqui no vai funcionar para
voc.
Outras diferenas para Alpha incluem:
O layout do disco para o SRM diferente do layout para Microsoft NT. SRM parece
para sua inicializao onde a Microsoft mantm sua tabela de partio. Isto significa que
No possvel compartilhar um disco entre FreeBSD e Microsoft em um Alpha.
A maioria das mquinas Alpha baseados em SRM no suportam drives IDE: voc est limitado a SCSI.
A distribuio do CD-ROM
A maneira mais fcil de instalar o FreeBSD de CD-ROM. Voc pode compr-los com desconto
com o formulrio de pedido na parte de trs do livro, ou voc pode baixar um Imagem ISO de
ftp.FreeBSD.org e criar seu prprio CD-ROM. H um certo nmero de CD-ROMs numa
FreeBSD de distribuio, mas apenas o mais importante o primeiro, o Instalao CDROM. Ele contm tudo que voc precisa para instalar o sistema em si. O outro CD-ROMs
conter pacotes principalmente instalveis. Verses individuais podem conter outros dados, como por exemplo um
cpia do repositrio de cdigo-fonte. Vamos dar uma olhada mais detalhada na instalao
CD-ROM aqui.
CD-ROM de instalao
O CD-ROM de instalao contm tudo que voc precisa para instalar o FreeBSD em seu
sistema. Ela fornece duas categorias de software instalvel:
O sistema operativo de base armazenado como compactado arquivos nos diretrios base,
boot, catpages, compat1x, compat20, compat21, compat3x, compat4x, des, dict, doc,
jogos, informaes, manpages e proflibs. Para facilitar o transporte de e para a instalao de
disquete, os arquivos foram divididos em pedaos de 1,44 MB. Por exemplo, a
set s necessrio nos arquivos base / base.?, em outras palavras, todos os arquivos cujos nomes
comear com base. e conter dois caracteres adicionais. Isso exclui especificamente a
arquivos base.inf e base.mtree, que no fazem parte do arquivo.
44
O diretrio / Todos os pacotes contm portados, pacotes de software instalveis como gzipped
alcatro arquivos. Eles so projetados para ser instalado diretamente em um sistema em execuo, para que eles
No foram divididos em pedaos. Devido a restries de tamanho no CD-ROM, este
diretrio no contm todos os pacotes: os outros so em CD-ROMs adicionais.
packages / Latest contm as ltimas verses dos pacotes.
/ Todos os pacotes contm um grande subconjunto da coleo de ports. Para torn-lo mais fcil para
voc a encontrar o seu caminho em torno deles, links simblicos para pacotes apropriados foram
colocados nos diretrios archivers, astro, udio, pontos de referncia, biologia, cad, chins,
comunicadores, conversores, bases de dados, deskutils, devel, editores, emuladores, francs, ftp, jogos,
alemo, grficos, hebraico, irc, japons, java, coreano, lang, e-mail, matemtica, mbone, variado,
net, notcias, palma, PicoBSD, plan9, impresso, russo, cincia, segurana, conchas, sysutils,
modelos, textproc, ucraniano, vietnamita, www, x11, x11-relgios, x11, x11-fm-fontes,
X11-servidores x11-toolkits e x11-wm. No fique com a impresso de que estes so
diferentes pacotes, eles so realmente os ponteiros para os pacotes em Tudo. Voc vai encontrar um
lista dos pacotes atualmente disponveis no arquivo pacotes / index .
Vamos dar uma olhada na coleo de Ports em mais detalhes no Captulo 9.
Contedo
A lista de alteraes de ltima hora. Leia este arquivo. Ela pode salvar
um monte de dores de cabea.
HARDWARE.TXT
INSTALL.TXT
LEIAME.TXT
RELNOTES.TXT
Solte notas.
base
bota
catpages
cdrom.inf
compat1x
compat20
A distribuio do CD-ROM
Arquivo
compat21
Contedo
Diretrio contendo bibliotecas para manter a compatibilidade
com a verso 2.1 do FreeBSD.
compat22
compat3x
compat4x
crypto
dict
doutor
docbook.css
jogos
Informaes
ncleo
O kernel de inicializao.
manpages
pacotes
portas
proflibs
src
ferramentas
45
46
As fontes de base para a coleo de ports preencher mais de um CD-ROM, mesmo que
restries de copyright significa que nem todas as fontes podem ser includos: alguns ficheiros de origem
distribudo gratuitamente na rede, mas no pode ser distribudo em CD-ROM.
No se preocupe com as fontes ausentes: se voc estiver conectado Internet, as portas
Coleo recupera automaticamente as fontes a partir de um servidor de Internet quando voc digita
fazer.
Voc vai encontrar o mais popular pacotes, os binrios pr-compilados dos portos, na
CD-ROM de instalao. Um pleno de distribuio contm uma srie de outros CD-ROMs com
a maioria dos pacotes restantes.
Neste captulo:
Tornar as coisas mais fceis
para si mesmo
FreeBSD em um disco
com espao livre
FreeBSD partilhada com
Microsoft
Configurando o XFree86
3
Instalao rpida
Nos captulos 4-6 vamos entrar em muitos detalhes sobre como instalar o sistema. Talvez isso
muito detalhe para voc. Se voc um usurio experiente UNIX, voc deve ser capaz de obter
com pelo menos significativamente leitura. Este captulo apresenta listas de verificao para alguns dos mais
os tipos usuais de instalao. Cada remete s descries detalhadas correspondentes
Os captulos 4 a 6.
Nas pginas seguintes, vamos olhar para a instalao mais simples, onde FreeBSD a nica
sistema no disco. A partir da pgina 49, vamos olhar para compartilhar o disco com a Microsoft,
e na pgina 50, veremos como instalar o XFree86. Voc pode achar que conveniente para
fotocpia estas pginas e para marc-los como voc ir junto.
47
48
Use conhecido, hardware estabelecida. Novos produtos de hardware freqentemente tm undocuproblemas mentados. Voc pode ter certeza de que eles trabalham sob Microsoft, porque o
fabricante testou-los nesse ambiente. Com toda a probabilidade, ele no testou
los sob qualquer sabor de UNIX, e muito menos FreeBSD. Normalmente, os problemas no so
srio, ea equipe FreeBSD resolve-los muito rapidamente, mas se voc pegar o
hardware at o software est pronto, voc a cobaia.
No outro extremo da escala, voc pode ter mais problemas com hardware antigo tambm.
No to fcil de configurar, e hardware de idade no to bem suportado como mais recente
hardware.
Executar uma instalao padro. A maneira mais fcil de instalar o FreeBSD est iniciando
a partir de um CD-ROM e instalar em um disco rgido vazio a partir do CD-ROM. Se voc
proceder conforme discutido no Captulo 5, Instalando o FreeBSD, voc no deve ter qualquer
dificuldade.
Se voc precisa para compartilhar o seu disco rgido com outro sistema operacional, mais fcil de instalar
ambos os sistemas a partir do zero. Se voc j tem um sistema Microsoft no disco,
voc pode usar FIPS (Ver pgina 52) para dar espao para ele, mas isso requer mais cuidado.
Se voc tiver problemas, RTFM.1 Eu fui a um monte de problemas para antecipar os problemas
voc pode encontrar, e h uma boa chance de que voc vai encontrar algo aqui para
ajudar.
Se voc fizer tudo isso, e ainda no funciona, consulte a pgina 17 para maneiras de obter externo
ajudar.
49
Se voc quiser usar o carro apenas para FreeBSD, exclua todas as fatias existentes e
alocar uma nica fatia FreeBSD, que ocupa todo o disco. Ao sair do
editor de parties, selecione o Padro MBR. Consulte a pgina 66.
Se voc quiser compartilhar o disco com outros sistemas, apagar qualquer fatias indesejadas e
us-los para FreeBSD. Ao sair do editor de parties, selecione o BootMgr
MBR. Consulte a pgina 66.
No editor de etiqueta de disco, exclua todas as parties UNIX existentes. Criar os sistemas de arquivos
manualmente. Se voc no tem qualquer layout favorito, crie um sistema de arquivos raiz com 4
GB, uma partio swap com pelo menos 512 MB (certifique-se que pelo menos 1 MB maior do que
o mximo de memria que voc pretende instalar em seu sistema). Alocar um / Home arquivo
sistema to grande quanto voc quiser, contanto que ele pode caber em uma nica fita quando o backup. Se
voc tem algum espao adicional, deixe-o vazio, a menos que voc saiba o que usar para isso.
Consulte a pgina 68 para a lgica desta abordagem, o que no o que sysinstall
recomenda.
Instalar o sistema completo, incluindo X e da Coleo de Ports. Isto exige
cerca de 1 GB de espao em disco. Consulte a pgina 75, se voc quiser limitar.
Selecione CD-ROM como mdia de instalao. Consulte a pgina 76.
D a confirmao final. O sistema vai ser instalado. Consulte a pgina 77.
Aps a instalao, configurar pelo menos um ID de usurio para si mesmo. Consulte a pgina 144.
50
Configurando o XFree86
Voc pode configurar o XFree86 durante a instalao ou aps a reinicializao.
Verifique se o seu mouse est conectado ao sistema no momento da inicializao. Dependendo do
hardware, se voc conect-lo mais tarde, ele no pode ser reconhecido.
Se voc j tiver reiniciado a mquina, efetue login como raiz e reinicie sysinstall.
Selecione o sysinstall Configurao menu XFree86 e depois xf86cfg, e
siga as instrues. Consulte a pgina 102 para mais detalhes.
Selecione o rea de Trabalho menu e instalar o gerenciador de janelas de sua escolha. Consulte a pgina
108 para uma discusso mais aprofundada.
Neste captulo:
Discos separados
Compartilhando um disco
Compartilhando com Linux ou
outro BSD
Repartitioning com
FIPS
4
Shared OS
Instalao
Em muitos casos, voc no vai querer instalar o FreeBSD no sistema por si s: voc pode precisar
usar outros sistemas operativos bem. Neste captulo, vamos olhar para o que voc precisa fazer
a preparar-se para uma instalao deste tipo. Se voc est apenas executando FreeBSD na mquina, voc
No precisa ler este captulo, e voc pode passar para o Captulo 5, Instalando o FreeBSD.
Discos separados
A primeira pergunta : voc precisa compartilhar um disco entre FreeBSD e outro
sistema operacional? muito mais fcil se voc no tem que. Nesta seo, veremos
o que voc precisa fazer.
Muitos sistemas operacionais s ir arrancar a partir do primeiro disco identificado pela BIOS, geralmente
chamado C: disco em deferncia a Microsoft. FreeBSD no tem esse problema, de modo que o
shareinstall.mm, v v4.11 (2003/04/02 06:38:41)
51
Discos separados
52
coisa mais fcil instalar o FreeBSD em todo o segundo disco. Restries BIOS normalmente
tornar difcil para arrancar a partir de qualquer, mas os dois primeiros discos.
Neste caso, voc realmente no precisa fazer nada de especial, embora seja sempre uma boa idia
para fazer backup de seus dados antes. Instalar o FreeBSD no segundo disco e escolher o Bota
Gerente opo no editor de parties (pgina 64). Este, ento, dar-lhe a escolha de
arranque a partir do primeiro ou segundo disco. Note que voc no deve alterar a ordem dos discos
depois de uma instalao deste tipo, se voc fizer isso, o sistema no ser capaz de encontrar os seus sistemas de arquivos
aps a inicializao.
Compartilhando um disco
Se voc pretende compartilhar um disco entre FreeBSD e outro sistema operacional, o primeiro
pergunta : h espao suficiente no disco para o FreeBSD? Quanto voc precisa
Depende do que voc quer fazer com o FreeBSD, claro, mas por uma questo de exemplo
vamos dar 120 MB como um mnimo absoluto. Na seo seguinte, vamos considerar
o que fazer se voc precisa mudar suas parties. Se voc j tem espao suficiente para uma
Partio FreeBSD (por exemplo, se voc acabou de instalar Microsoft especificamente para
compartilhando com FreeBSD, e, portanto, no ter preenchido o disco), continue lendo na pgina 66.
53
Voc pode usar FIPS para diminuir uma partio Microsoft, deixando espao para o FreeBSD. FIPS
um utilitrio de domnio pblico, e est includo no CD-ROM do FreeBSD.
Se voc no pode usar FIPS, use um utilitrio comercial como PartitionMagic. Isto no
includo no CD-ROMs, e no vamos discutir mais o assunto.
No restante da seo, veremos como encolher uma partio com FIPS. Se voc fizer isso
com PartitionMagic, os detalhes so diferentes, mas os princpios so os mesmos. Em
nomeadamente:
A nova partio Microsoft precisa ser grande o suficiente para manter no s os dados atuais,
mas tambm qualquer coisa que voc vai querer colocar nele no futuro. Se voc faz exatamente o
tamanho atual dos dados, ele ser efetivamente completo, e voc no vai ser capaz de escrever
nada com ele.
A segunda partio tambm uma partio da Microsoft. Para instalar o FreeBSD nele, voc precisa
para convert-lo em uma partio FreeBSD.
FIPS pode resultar em problemas de configurao com a sua mquina Microsoft. Desde que
adiciona uma partio, as parties atribudas automaticamente a seguir ter uma diferente
letra de unidade. Em particular, isso poderia significar que a unidade de CD-ROM vai'' passar''.
Depois de excluir a segunda partio Microsoft e transform-lo em um FreeBSD
partio, ele ir mover'''' de volta novamente.
FIPS s funciona com o BIOS do disco rgido que usam interrupo 0x13 de baixo nvel difcil
acesso ao disco. Esta no geralmente um problema.
FIPS no dividir parties com gorduras de 12 bits, que foram utilizados por verses mais antigas do
Microsoft. Estes so menos de 10 MB de tamanho e, portanto, pequenas demais para valer a pena dividir.
FIPS divide apenas parties Microsoft. A tabela de partio eo setor de inicializao deve
conformidade com o MS-DOS 3.0 + ou convenes do Windows 95. Este marcada pela
indicador do sistema byte na tabela de partio, que deve ter o valor 4 (setor 16 bit
nmero) ou 6 (nmero do setor 32 bits). Em particular, ser no diviso Linux ou Windows
2000 e parties posteriores.
54
FIPS no vai reduzir a partio original para um tamanho inferior a 4085 clusters
porque isso implicaria reescrever o bit FAT 16 para um pouco FAT 12.
FIPS precisa de uma entrada de partio livre. No vai funcionar se voc j tem quatro parties.
Repartitioning-um exemplo
Nesta seo, ns vamos passar a mecnica de reparticionar um disco. Vamos comear com um
disco que contm um sistema nico, completo Microsoft.
Primeiro, execute o utilitrio de verificao de erro Microsoft sobre a partio que voc deseja dividir. Certificar-se
no h aglomerados'''' mortas permanecem no disco.
Em seguida, preparar um disquete de boot. Quando voc comear FIPS, voc vai ser dada a oportunidade
escrever cpias de backup de sua raiz e arrancar setor para um arquivo em disco R:. Estes sero
chamado ROOTBOOT.00x, onde x representa um algarismo entre 0 a 9. Se algo der errado
durante o uso FIPS, voc pode restaurar a configurao original de inicializao a partir do disquete
e funcionando RESTORRB.
Se voc usar FIPS mais de uma vez (o que no normalmente necessrio, mas pode acontecer), o disquete
conter mais de um ROOTBOOT arquivo. RESTORRB permite que voc escolha qual configurao
arquivo para restaurar. O arquivo RESTORRB.000 contm sua configurao original. Tente no confundir
as verses.
Antes de comear FIPS voc obrigao desfragmentar o disco para garantir que o espao a ser usado
para a nova partio gratuito. Se voc estiver usando programas como o IMAGEM ou MIRROR, nota que
que armazenar um arquivo de sistema oculto com um ponteiro para seus arquivos espelho no ltimo setor da
disco rgido. Voc obrigao excluir esse arquivo antes de usar FIPS. Ele vai ser recriada a prxima vez
executar MIRROR. Para apag-lo, no diretrio raiz, digite:
C \:> atri-r-s-h image.idx
C \:> atri-r-s-h mirorsav.fil
para IMAGE
para MIRROR
Voc ainda tem muitos dados na partio restante. Considere fazer o novo
partio menor ou excluso de alguns dos dados. Se voc apagar os dados, voc deve
desfragmentar e executar FIPS novamente.
55
Se o arquivo pertence a algum tipo de proteo contra cpia, ser necessrio desinstalar o programa para
que pertence e reinstal-lo aps reparticionamento.
A mensagem Qual a unidade Pode parecer confuso. Refere-se a BIOS interno numerao.
No se preocupe com isso: se voc deseja particionar a primeira unidade fsica no sistema (C :)
entrar 1, caso contrrio, digite 2. Como o BIOS, FIPS lida apenas dois discos rgidos.
Se voc comear FIPS no Windows, ele vai reclamar e dizer-lhe para iniciar a partir de um disquete
disco. Ele no vai impedi-lo de continuar, mas uma m idia para faz-lo.
Em seguida, FIPS l o setor de raiz do disco rgido e exibe a tabela de partio:
| |
Comece | | End
Parte |. Inicializvel | Cabea Cyl. Sector
----- + -------- + ---------------- + -----1 | sim |
1 0 1 |
0Ch | 239
2 | no | 0
0 0 |
00h |
3 | No | 0
0 0 |
00h |
4 | no | 0
0 0 |
00h |
| Incio | Nmero de |
| Sistema | Cabea Cyl. Setor | Setor | Setores | MB
+ ----------- ----- + -------- + --------- + ---2047
63 | 63 | 40083057 | 19571
0
0 0 |
0 |
0 |
0
0
0 0 |
0 |
0 |
0
0
0 0 |
0 |
0 |
0
Isso mostra que somente a primeira partio ocupado, que inicializvel, e que ocupa
todo o disco (19.571 MB, de cilindro 0, cabea 1, Setor 1 a Cylinder 2047, Chefe
238, Setor 63). Ele tambm afirma que isso faz 40083057 setores. No faz: o cilindro
Nmero foi truncado, e FIPS reclama uma inconsistncia tabela de parties,
que ele corrige. Depois disso, tem-se:
| |
Comece | | End
Parte |. Inicializvel | Cabea Cyl. Sector
----- + -------- + ---------------- + -----1 | sim |
1 0 1 |
0Ch | 239
2 | no | 0
0 0 |
00h |
3 | No | 0
0 0 |
00h |
4 | no | 0
0 0 |
00h |
| Incio | Nmero de |
| Sistema | Cabea Cyl. Setor | Setor | Setores | MB
+ ----------- ----- + -------- + --------- + ---2650
63 | 63 | 40083057 | 19571
0
0 0 |
0 |
0 |
0
0
0 0 |
0 |
0 |
0
0
0 0 |
0 |
0 |
0
No se preocupe com o'' arranque'' bandeira negcio aqui: ns com isso no FreeBSD
instalao. Em primeiro lugar, FIPS faz alguma verificao de erros e, em seguida, l e mostra o boot
setor da partio:
shareinstall.mm, v v4.11 (2003/04/02 06:38:41)
56
fazer o que diz
Aps nova verificao, FIPS pergunta se voc quer fazer um disquete de backup. Digite o seu
disquete formatado na unidade A: e fazer o backup. Em seguida, voc v:
Digite comear cilindro para nova partio (35-2650):
Use as teclas do cursor para escolher o cilindro, <enter> para continuar
Partio antiga
Cilindro nova partio
258,4 MB
35 19313,4 MB
Use o Cursor Esquerda e Direita Cursor teclas para ajustar o nmero de cilindros em que a
nova partio comea. Voc tambm pode usar as teclas Cursor Up e Cursor para baixo para alterar
em intervalos de dez cilindros. FIPS atualiza a linha de fundo do display para mostrar a nova
valores selecionados. Inicialmente, FIPS escolhe o menor possvel partio da Microsoft, assim
inicialmente s pode aumentar o tamanho da partio antiga (com a Direita Cursor key).
Quando voc est feliz com o tamanho, prima Entrar para passar para a prxima etapa.
Tenha certeza que voc est muito feliz antes de continuar. Se voc fizer o
primeira partio muito pequena, no h nenhuma maneira de tornar maior
novamente.
Por outro lado, se voc torn-lo muito grande, voc pode dividi-lo
novamente e, em seguida, usar fdisk ou MS-DOS FDISK para remover o
parties suprfluo.
Neste exemplo, ns escolhemos as parties de igual tamanho:
Partio antiga
Cilindro nova partio
251,5 MB
511 251,5 MB
(Pressionado Enter)
| |
Comece | | End
| Incio | Nmero de |
Parte |. Inicializvel | Cabea Cyl. Sector | Sistema | Cabea Cyl. Setor | Setor | Setores | MB
----- + -------- + ---------------- + ------ + ----------- ----- + -------- + --------- + ---1 | sim |
0 0 1 |
06h | 15 511
63 | 0 |
515088 | 251
2 | no | 0
512 1 |
06h | 15 63 1023 |
0 | 515088 | 251
3 | No | 0
0 0 |
00h |
0
0 0 |
0 |
0 |
0
4 | no | 0
0 0 |
00h |
0
0 0 |
0 |
0 |
0
Voc quer continuar ou reeditar a tabela de partio (c / r)? c
Para garantir que a partio reconhecida, reinicie imediatamente. Certifique-se de desativar todos
programas que gravam o disco em CONFIG.SYS e AUTOEXEC.BAT antes
reinicializao. Pode ser mais fcil para renomear os arquivos ou para arrancar a partir de disquete. Tenha especial
o cuidado de desativar programas como o MIRROR e Imagem, que pode ficar confuso se a
shareinstall.mm, v v4.11 (2003/04/02 06:38:41)
57
particionamento no do seu agrado. Depois de reiniciar, use CHKDSK ou Norton Disk Doctor
para garantir que a primeira partio OK. Se voc no encontrar algum erro, voc pode reiniciar agora
com a sua normalidade CONFIG.SYS e AUTOEXEC.BAT. Iniciar alguns programas e fazer
certeza que voc ainda pode ler seus dados.
Depois disso, voc tem duas parties Microsoft vlidos em seu disco. Veremos o que fazer
com eles no prximo captulo. As diferenas especficas de uma instalao dedicada so em
pgina 66, mas voc vai precisar para comear a partir do incio do captulo para fazer a instalao.
Neste captulo:
Iniciar a partir de CDROM
Instalao na Intel
arquitetura i386
Iniciando a sysinstall
Definir instalao
opes
Particionamento do disco
Definio de sistemas de
arquivos
Selecionando
distribuies
Selecionando o
mdia de instalao
Realizar o
instalao
Instalando em um Alpha
sistema
Atualizando um velho
verso do FreeBSD
Como desinstalar
FreeBSD
Se as coisas do errado
Alternativa
mtodos de instalao
5
Instalando o FreeBSD
Nos captulos anteriores, ns olhamos se preparando para instalar o FreeBSD. Neste captulo,
vamos, finalmente, faz-lo. Se voc tiver problemas, vou encaminh-lo de volta para a pgina do Captulo 2
que discute o tema. Se voc quiser instalar o FreeBSD no mesmo disco como Microsoft
ou outro sistema operacional, voc j deve ter lido o Captulo 4, Shared OS
Instalao.
A discusso a seguir se refere principalmente instalao na arquitetura i386. Ver
pgina 78 para as diferenas na instalao no AXP ('' Alpha'') do processador.
59
60
dependendo do hardware que voc est correndo, do jeito que voc est instalando o software eo
lanamento do FreeBSD que voc est instalando. No entanto, voc deve ser capaz de reconhecer o que
est acontecendo.
Iniciar a partir de CD-ROM principalmente uma questo de configurar o BIOS do sistema e, possivelmente,
o SCSI BIOS. Normalmente, voc executar um dos seguintes procedimentos:
Se voc est inicializando atravs de um CD-ROM IDE, voc entra em seu sistema de configurao do BIOS rotinas
e definir o Seqncia de inicializao parmetro para selecionar CD-ROM iniciar antes do disco rgido
inicializao e, possivelmente, tambm frente do disquete de inicializao. Uma seqncia tpica pode ser
CDROM, C, A.
Na maioria das mquinas, se est a arrancar a partir de um CD-ROM SCSI, voc tambm precisa de um host
adaptador que suporte CD-ROM de inicializao. Configure o BIOS do sistema para arrancar no
seqncia, digamos, SCSI, A, C. Em adaptadores de host tpicos (como o Adaptec 2940
srie), voc configura o adaptador para permitir CD-ROM boot, e definir o ID da bota
dispositivo para o ID da unidade de CD-ROM.
Essas configuraes no so, provavelmente, o que voc deseja usar para a operao normal. Se voc deixar
as definies como esta, e no um CD-ROM inicializvel na unidade de CD-ROM, ele sempre
botas desse CD-ROM em vez do disco rgido. Aps a instalao, altere o
parmetros de volta para arrancar a partir do disco rgido antes de CD-ROM. Ver o seu sistema
documentao para mais detalhes.
Iniciando a sysinstall
O prprio processo de inicializao muito semelhante ao processo de inicializao normal descrito na pgina 524.
Depois de terminar, porm, voc colocado no sysinstall menu principal.
61
A Figura 5-1 mostra o principal sysinstall menu. sysinstall inclui ajuda on-line em todas as fases.
Basta pressionar F1 e voc vai ter a ajuda adequada. Alm disso, se voc no esteve aqui antes,
o Doutor Menu d-lhe uma grande parte da informao adequada do manual.
Os tipos de instalao
Para comear, selecione uma das Padro, expresso ou Personalizado. Os nomes implicam que o
Padro instalao o melhor caminho a percorrer, a Expresso instalao para as pessoas de uma
apressar, e Personalizado instalao para quando voc quiser especificar exatamente o que deve ser feito.
Na verdade, os nomes so um pouco enganador. No h realmente muita diferena
entre as trs formas de instalao. Todos eles executam os mesmos passos:
Criar sistemas de arquivos e espao de troca dentro de uma fatia FreeBSD, que comeam na pgina
67.
Escolha onde voc deseja instal-lo. Ns vamos olhar para isso na pgina 76.
Olhamos para parties de disco e sistemas de arquivos na pgina 34. Ns vamos olhar para os outros pontos
quando chegarmos a eles.
Ento, qual a diferena entre os tipos de instalao?
A instalao padro leva voc por essas etapas em seqncia. Entre cada
etapa, voc tem uma janela pop-up que lhe diz o que vai acontecer a seguir.
A instalao Expressa tambm leva voc por essas etapas em seqncia. A principal
diferena que voc no fique a janela pop-up dizendo que o que vai
acontecer a seguir. Isso pode economizar um pouco de tempo. Se voc deseja que as informaes, similar
informaes esto disponveis com a tecla F1.
A instalao personalizada retorna para o menu principal, depois de cada etapa. Cabe a voc
para selecionar a prxima etapa. Voc tambm pode selecionar uma outra etapa, ou voltar para a anterior.
Como a instalao Express, voc no tem a janela de informaes pop-up, mas voc
pode obter mais informaes com a tecla F1.
O grande problema com as instalaes Standard e Express que eles no deixam voc de volta
up: se voc passar um passo especfico e descobrir que voc quer mudar alguma coisa, voc tem que
abortar a instalao e comear de novo. Com a instalao personalizada, voc pode simplesmente ir
trs e mud-lo. Como resultado, eu recomendo a instalao personalizada. No seguinte
discusso, voc no vai ver muita diferena: os menus so os mesmos para todos os trs
formas de instalao.
Iniciando a sysinstall
62
63
Particionamento do disco
O primeiro passo da instalao a criao de espao para o FreeBSD no disco. Olhamos para o
formao tcnica no Captulo 2, na pgina 39. Nesta seco s, vamos usar o termo
divisria para se referir a uma fatia ou partio BIOS, porque essa a terminologia habitual.
Mesmo se o disco est corretamente particionado, selecione o Divisria Menu: a instalao
rotinas precisa entrar nessa tela, a fim de ler as informaes da partio do disco.
Se voc gosta do que voc v, voc pode sair de novo imediatamente com q (Sair), mas voc deve
entra pela primeira vez este menu. Se voc tiver mais de um disco conectado a sua mquina, voc vai
prximo ser solicitado a escolher as unidades que voc deseja usar para FreeBSD.
Particionamento do disco
64
O prximo passo alocar uma partio FreeBSD. H duas maneiras de fazer isso: se voc
quer ter mais de uma partio no disco (por exemplo, se voc compartilhar o disco com
outro sistema operacional), voc pode usar o c (Criar) de comando. Veremos que na pgina
66. Neste caso, no entanto, voc quiser usar todo o disco para o FreeBSD, assim que voc escolher o
um opo. A tela resultante efectivamente a mesma que na Figura 5-5: a nica
diferena que o Desc campo agora mostra freebsd em vez de gordura.
Isso tudo que voc precisa fazer aqui: sair fdisk premindo o q chave.
65
Compensar
Coluna
Descrio
O nmero do primeiro sector da partio.
Tamanho
Final
Nome
Ptype
Desc
Subtipo
Particionamento do disco
66
Se voc pretende ter apenas um sistema operacional neste disco, selecione Padro. Se voc
compartilhando com outro sistema operacional, voc deve escolher BootMgr em vez disso. Veremos
a isso com mais detalhes na seo sobre a inicializao do sistema na pgina 525. Saia pressionando
a tecla Tab at o Ok guia destacado, em seguida, pressione Enter.
Tabela 5-2: Escolhas MBR
BootMgr
Escolha
Descrio
Instale o gerenciador de boot do FreeBSD no MBR. Isso permitir que voc
escolher qual partio para inicializar a cada vez que voc iniciar o sistema.
Padro
Nenhum
Parties compartilhadas
Se voc estiver instalando em um disco compartilhado com outro sistema operacional, as coisas so um pouco
diferente. A seo continua o exemplo iniciado no Captulo 4. Quando voc entra no
editor de parties, voc vai ver algo como:
67
O prximo passo alocar uma partio FreeBSD com o c de comando. O menu pede
o tamanho da partio, e sugere um valor de 35899920 sectores, o tamanho da utilizada
rea no final. Voc pode editar este valor se desejar, mas neste caso o que voc quer, ento
basta pressionar ENTER. Voc comea uma outra janela pedindo-lhe o tipo de partio, e
sugerindo tipo 165, a tabela de parties do FreeBSD. Quando voc aceita isso, voc obtm:
A nova partio agora tem um tipo de partio e 8 subtipo 165 (0xA5), que identifica
como uma partio FreeBSD.
Aps isso, selecione um mtodo de inicializao conforme descrito na pgina 66 e sair do menu com o q
de comando. Existem dois sistemas operacionais no disco, s selecionar o BootMgr opo.
68
O parties?
Neste exemplo, voc tem 20 GB de espao para dividir. Como voc deve faz-lo? Voc no
precisa se preocupar com esta questo, uma vez que sysinstall pode faz-lo para voc, mas vamos ver a seguir por
isso pode no ser a melhor escolha. Nesta seo, vamos considerar como UNIX sistemas de arquivos
tem mudado ao longo dos anos, e ns vamos olhar para as questes de layout de sistema de arquivos hoje em dia.
Quando UNIX era jovem, os discos eram diminutos. No momento da terceira edio do UNIX, em
1972, o sistema de arquivos raiz estava em um Digital RF-11, um disco de cabea fixa com 512 kB. O
sistema estava a crescer, e que j no era possvel, para manter o sistema em todo o disco,
para um segundo sistema de arquivos tornou-se essencial. Foi montado numa Digital RK03 com 2 MB
de armazenamento. Para citar um artigo publicado no Communications da ACM em Julho
1974:
Em nossa instalao, por exemplo, o diretrio raiz reside no fixo-cabea
disco, eo disco grande, que contm os arquivos do usurio, montado pelo
programa de inicializao do sistema ...
Conforme o tempo passava, UNIX ficou maior, mas assim como os discos. No incio dos anos 80, os discos foram
grande o suficiente para colocar / e / Usr no mesmo disco, e que teria sido possvel
fundir / e / Usr, mas no o fez, principalmente por causa de preocupaes com a confiabilidade. Desde aquele tempo,
um sistema de arquivos adicionais, / Var, entrou em uso comum de dados freqentemente alterados,
e apenas recentemente sysinstall foi modificado para criar um / Tmp sistema de arquivos por padro.
Isto o que sysinstall faz se voc pedir para ele particionar automaticamente:
69
Se voc escrever para um sistema de arquivos eo sistema trava antes de todos os dados podem ser gravados
no disco, a integridade desse sistema de arquivo de dados pode ser severamente comprometida. Para
razes de desempenho, o sistema no escrever tudo para o disco imediatamente, assim
h muito uma chance razovel de que isso acontea.
Se voc tem um acidente e perder o sistema de arquivos raiz, a recuperao pode ser difcil.
Por outro lado, alguns sistemas de ficheiros so mais importantes do que outros. Se o / Var arquivo
sistema enche (devido explorao madeireira excessivamente ativo, por exemplo), voc no pode se preocupar demais
muito. Se o seu sistema de arquivos raiz enche, voc pode ter problemas srios.
No modo single-user, apenas o sistema de arquivos raiz est montado. Com o layout clssico,
isto significa que os nicos programas que podem ser executados so aqueles em / Bin e / Sbin. Para executar
outros programas, voc deve primeiro montar o sistema de arquivos em que eles esto localizados.
bom para manter seus arquivos pessoais separados dos arquivos do sistema. Dessa forma, voc pode
atualizar um sistema com muito mais facilidade.
muito difcil estimar com antecedncia o tamanho precisa de alguns sistemas de arquivos. Para
exemplo, em alguns sistemas / Var pode ser muito pequeno, talvez de apenas 2 ou 3 MB.
no vale a pena fazer um sistema de arquivos separado para tantos dados. Por outro lado,
outros sistemas, como servidores web, ftp, ou podem ter um / Var sistema de 50 ou 100 GB.
Como voc escolhe o tamanho correto para seu sistema?
Ao fazer backups, uma boa idia para ser capaz de obter um sistema de arquivos em uma nica fita.
Se um sistema de arquivos enche, ele pode causar muitos problemas. A maioria das mensagens sobre sistemas de arquivos
no FreeBSD-questions lista de discusso esto reclamando sobre sistemas de arquivos enchimento
up. Se voc tem um grande nmero de sistemas de arquivos pequenos, as chances so maiores que um
vai encher-se enquanto espao permanece em outro.
Nos primeiros dias de UNIX, falhas no sistema foram relativamente comuns, e os danos que
fez para os sistemas de arquivos foi relativamente srio. Os tempos mudaram, e hoje em dia o arquivo
danos ao sistema relativamente raro, principalmente em sistemas de arquivos que tm pouca atividade.
Por outro lado, unidades de disco tm crescido alm do mais selvagens expectativas da maioria das pessoas.
A primeira edio deste livro, h apenas seis anos, mostrou como instalar em um 200 MB
dirigir. As unidades de disco mais pequeno na produo atual de 20 GB de tamanho, mais do que vai caber
em muitas fitas.
Como resultado destas consideraes, eu mudei as minhas recomendaes. Em mais cedo
edies deste livro, eu recomendo colocar um sistema de arquivos raiz pequeno e um / Usr arquivo
sistema no primeiro disco (ou nico) no sistema. / Var era para ser um link simblico para
/ Usr / var.
Este ainda um layout vlido, mas tem alguns problemas:
Muitas pessoas tiveram dificuldade com o link simblico para / Usr / var.
70
No tem uma separada / Var o sistema de arquivos, a menos que voc tenha uma boa idia de quo grande ele
deveria ser. Um bom exemplo pode ser um servidor web, onde (ao contrrio do FreeBSD
recomendaes), uma boa idia para colocar as pginas web na / Var sistema de arquivos.
Usar o resto do espao no disco para uma / Home sistema de arquivos, desde que seja possvel
guard-lo em uma nica fita. Caso contrrio, fazer vrios sistemas de arquivos. / Home o
diretrio normal para os arquivos do usurio.
Este layout permite fcil de backup dos sistemas de arquivos, e tambm permite a fcil
atualizao para uma nova verso do sistema: voc s precisa substituir o sistema de arquivos raiz. No
um ajuste perfeito para todas as aplicaes, no entanto. Em ltima anlise, voc precisa fazer o seu prprio
decises.
necessrio espao de troca para todas as pginas de memria virtual que contm dados que no so
travado na memria e que no pode ser recriada automaticamente. Esta a maior parte das
memria virtual no sistema.
Algumas pessoas usam regras de ouro como'' 2,5 vezes o tamanho da memria fsica, ou 64
MB, o que for maior.'' Essas regras funcionam apenas fazendo suposies sobre o seu
carga de trabalho. Se voc estiver usando mais de 2,5 vezes mais espao de swap como fsico
memria, o desempenho ser prejudicado.
Voc pode adicionar as parties de swap adicionais em outros discos. Isto tem o adicional
vantagem de equilibrar a carga do disco se o seu swaps mquina muito.
Sobre as nicas maneiras de mudar o tamanho de uma partio swap adicionar outro
partio ou reinstalar o sistema, ento se voc no tiver certeza, um pouco mais no vai fazer qualquer
prejudicar, mas muito pouco realmente pode ser um problema.
71
Se o seu sistema entra em pnico, e despejo de memria ativada, ela vai escrever o contedo de
memria para a partio swap. Isto, obviamente, no vai funcionar se sua partio swap
menor do que a memria principal. Sob estas circunstncias, o sistema se recusa a despejar,
assim voc no ser capaz de encontrar a causa dos problemas.
As rotinas de despejo apenas pode despejar a uma nica partio, ento voc precisa de um que grande
suficiente. Se voc tem 512 MB de memria e duas parties swap de 384 MB cada,
voc ainda no vai ser capaz de despejar.
Mesmo com cargas leves de memria, o sistema de memria virtual lentamente pginas fora dados
preparao para uma possvel demanda repentina para a memria. Isto significa que ele pode ser
mais sensvel a esses pedidos. Como resultado, voc deve ter pelo menos a mesma quantidade correspondente
como memria.
1024-blocos
122880
Usado
65148
2. Na hora de escrever eu corro muito mais coisas em um AMD Athlon com 512 MB de
memria. Tem muito espao swap, mas o que eu vejo :
$ pstat-s
Dispositivo
/ Dev/ad0s1b
1024-blocos
1048576
No to importante que o Athlon est usando menos swap: ele est usando menos de 3% do seu
memria swap, enquanto que o 486 usado 4 vezes a sua memria. Em uma edio anterior deste
livro, eu tive o exemplo de um Pentium com 96 MB de memria, que usaram 43 MB de
trocar. Olh-lo de um ponto de vista diferente, e isso faz mais sentido: troca faz-se
a falta de memria real, de modo que o 486 foi utilizando um total de 80 MB de memria, a
Pentium estava usando 140 MB, eo Athlon est usando 526 MB. Em outras palavras, existe um
tendncia para ser capaz de dizer'' o mais principal memria que voc tem, menos voc precisa trocar.''
Se, entretanto, voc olha para ele do ponto de vista de desempenho aceitvel, voc vai
ouvir coisas como'' voc precisa de pelo menos um tero de sua memria virtual em memria real.''
Isso faz sentido do ponto de vista do desempenho, assumindo que todos os processos so relativamente
ativo. E, claro, outra maneira de dizer'' tomar o dobro de swap to real
memria.''
72
Em resumo: ser generoso na alocao de espao de swap. Se voc tiver a opo, use mais. Se
voc realmente no pode fazer a sua mente, ter 512 MB de espao de troca ou 1 MB a mais do que o
tamanho mximo de memria que so susceptveis de instalar.
Para os sistemas de arquivos, a coluna Monte agora mostra os pontos de montagem, e o Newfs
coluna contm as letras UFS1 para UNIX File System, verso 1, ea letra Y,
o que indica que voc precisa para criar um novo sistema de arquivos para que voc possa us-lo. Neste ponto,
voc tem duas opes: decidir por si mesmo o que voc quer, ou deixar que o editor rtulo de disco faz-lo
para voc. Vamos olhar para os dois lados:
Criando sistemas de arquivos
Com essas consideraes em mente, vamos dividir o disco da seguinte maneira:
Para criar um sistema de arquivos, voc pressiona c. Voc fica com uma janela de prompt pedindo o tamanho
da
sistema de arquivos, e oferecendo todo o espao. Digite o tamanho do sistema de arquivos root:
73
74
Imprensa m (Mount). Uma janela aparece pedindo o ponto de montagem. Digite o nome, em
Neste exemplo, o primeiro / E pressione Enter. O editor rtulo insere o nome do monte
ponto em Monte, e sob Newfs ele entra UFS1 N-ele sabe que esta uma UFS
sistema de arquivos, de modo que apenas verifica a sua consistncia e no substitu-lo. Repita este
procedimento para / Home, e est feito. Se voc estiver compartilhando seu disco com o outro
sistema, voc tambm pode usar esse mtodo para especificar pontos de montagem para o arquivo Microsoft
sistemas. Selecione a partio Microsoft e especificar o nome de um ponto de montagem.
install.mm, v verso 4.21 (2003/04/02 06:39:30)
75
A menos que voc est muito certo de que o sistema de arquivo vlido, e voc realmente quiser manter o
dados nas parties, pressione t para especificar que o sistema de arquivo deve ser criado. O
texto UFS1 N alteraes UFS1 Y. Se voc deixar o N l, a fase de confirmao ser
verificar a integridade do sistema de arquivos com fsck ao invs de criar um novo.
Ser cuidadoso neste ponto. O sistema de arquivos mostrados na lista o Microsoft Active
partio, no um sistema de arquivos do FreeBSD. A informao importante aqui o fato de
que temos 17.529 MB de espao livre no disco. Vamos criar os sistemas de arquivos em que
espao livre da mesma forma que vimos na pgina 72.
Seleo de distribuies
O prximo passo decidir o que instalar. Figura 5-14 mostra o menu que voc comea quando
voc entra Distribuies. A instalao completa do FreeBSD utiliza cerca de 1 GB de espao,
ento no h motivo para escolher outra coisa. Posicione o cursor na linha Tudo, pois
mostrado, e pressione a barra de espao.
Por que pressionar a barra de espao quando at agora lhe tm vindo a pressionar ENTER? Porque neste nomeadamente
menu ENTER ir voltar para o menu de nvel superior, ou simplesmente continuar com a seleo de mdia
de menu, dependendo do tipo de instalao que voc est fazendo. um dos estranheza de
sysinstall.
Em seguida, sysinstall perguntar se voc deseja instalar a coleo de ports. Vamos olhar para o
Portas coleo no Captulo 9. Voc no precisa instal-lo agora, e preciso muito mais
tempo do que voc esperaria de a quantidade de espao que ele tem: a Coleo de Ports
consiste em mais de 150.000 arquivos muito pequenos, e copi-los para o disco pode demorar tanto quanto o
resto da instalao juntos. Por outro lado, muito mais fcil do que fazer agora, ento se
voc tem o tempo, voc deve instal-los.
Tudo o que voc responder a esta pergunta, voc retorna para o menu de distribuio da Figura
5-14. Selecionar Saia, e est feito selecionando suas distribuies.
As verses anteriores do sysinstall perguntou-lhe perguntas sobre XFree86 neste momento. Hoje em dia voc faz
que, depois de completar a instalao.
Seleo de distribuies
76
77
Executando a instalao
At agora, tudo que voc fez no teve nenhum efeito sobre as unidades de disco. Se voc mudar sua
mente, voc pode simplesmente abortar a instalao e os dados em seus discos no ser alterada.
Isso muda completamente na prxima etapa, que vocs chamam comprometendo a instalao.
Agora o grande momento. Voc configurar suas parties, decidiu o que voc deseja instalar
e de onde. Agora voc faz-lo.
Se voc estiver instalando com a instalao personalizada, voc precisa selecionar Cometer explicitamente.
A instalao padro pergunta se voc quer continuar:
Last Chance! Tem certeza de que deseja continuar a instalao?
Se voc estiver executando esta em um sistema existente, altamente
incentiv-lo a fazer backups apropriados antes de prosseguir.
Ns no assumimos qualquer responsabilidade pelos contedos de discos perdidos!
Quando voc responder sim, sysinstall faz o que temos vindo a preparar-se para:
Ele cria as estruturas do sistema de arquivos nas parties do sistema de arquivos, ou verifica-los,
dependendo do que voc escolheu no editor de etiqueta.
Executando a instalao
78
Voc realmente tem a opo aqui. Voc pode responder Sim e continuar, ou voc pode reiniciar:
o sistema agora executvel. Com toda a probabilidade, porm, voc ter adicional
trabalhos de montagem para fazer, ento vale a pena continuar. Ns vamos olhar para isso da seguinte
captulo.
Insira o mfsroot.flp disquete quando solicitado e voc vai acabar na primeira tela do
instalar o programa. Voc pode ento continuar como para a arquitetura Intel na pgina 59.
Para instalar atravs da Net, buscar as imagens de disquetes a partir do site ftp, bota acima, e depois
proceder como para a arquitetura Intel.
79
Uma vez que o processo de instalao for concludo, voc ser capaz de comear a FreeBSD / Alpha por
digitando algo assim para o prompt de SRM:
>>> Boot DKC0
Isto instrui o firmware para inicializar o disco especificado. Para encontrar os nomes SRM de discos em
sua mquina, use o mostrar dispositivo comando:
Dispositivo espetculo
dka0.0.0.4.0
dkc0.0.0.1009.0
dkc100.1.0.1009.0
dva0.0.0.0.1
ewa0.0.0.3.0
pkc0.7.0.1009.0
pqa0.0.0.4.0
>>>
DKA0
DKC0
DKC100
Dva0
EWA0
PKC0
PQA0
Este exemplo vem de uma cmera digital 433au estao de trabalho pessoal e mostra trs discos
acoplado mquina. O primeiro um CD-ROM chamado DKA0 e os outros dois so discos
e so chamados DKC0 e dkc100 respectivamente.
Voc pode especificar qual arquivo do kernel para carregar e quais as opes de inicializao para usar com o -File
e -Flags opes de boot:
>>> Boot-file kernel.old-flags s
80
Se as coisas do errado
Nesta seo, vamos olhar para os problemas de instalao mais comuns. Muitos destes so
coisas que antes costumavam acontecer e no ter sido visto por algum tempo: sysinstall tem
melhorou consideravelmente, e hardware moderno muito mais confivel e fcil de
configurar. Voc pode encontrar informaes adicionais sobre este tpico na seo Conhecido
Problemas de hardware no arquivo INSTALL.TXT no CD-ROM em primeiro lugar.
Isso pode acontecer mesmo se voc tiver iniciado a partir do CD-ROM! As razes mais comuns
para este problema so:
Voc est usando uma unidade de CD-ROM ATAPI que no se encaixa a especificao. Em
Neste caso, voc precisa de ajuda dos desenvolvedores do FreeBSD. Enviar uma mensagem para FreeBSDquestions@FreeBSD.org e descrever o seu CD-ROM com a maior preciso possvel.
No possvel inicializar
Uma das coisas mais terrveis aps a instalao do FreeBSD se voc achar que a mquina
s no vai arrancar. Isto particularmente ruim se voc tem dados importantes no disco (ou
outro sistema operacional, ou dados de uma instalao anterior do FreeBSD).
Neste momento, os hackers experientes tendem a encolher os ombros e apontam que ainda
ter o backup que voc fez antes de voc fazer a instalao. Se voc lhes disser que voc no fez
fazer um backup, eles tendem a encolher novamente e passar para outra coisa.
Mesmo assim, todos provavelmente no est perdida. As causas mais freqentes de falha de inicializao so incorretas
inicializar problemas de instalao ou geometria. Alm disso, possvel que o sistema pode
travar e nunca completar o processo de inicializao. Todos esses problemas so muito menos comuns
do que costumava ser, e um monte de informaes sobre como lidar com eles um pouco
anos de idade, uma vez que no foram vistos desde ento.
81
Este botas da unidade / Dev/ad0s1a, supondo que voc est usando discos IDE. O
a correspondncia entre o nome / Dev/ad0s1a e disk1s1a passa atravs da informao no
a parte superior do exemplo: BTX s conhece os nomes de BIOS, ento voc normalmente estar olhando
para a primeira partio no disco C:. Aps a inicializao, instalar o bootstrap correta com
disklabel-B ou comando boot0cfg, e voc deve ser capaz de inicializar a partir do disco rgido novamente.
Problemas de geometria
As coisas poderiam continuar um pouco mais: voc optar por instalar booteasy, e quando voc iniciar, voc
obter o prompt do Gerenciador de Inicializao, mas s imprime F? no menu de inicializao e no aceitar qualquer
entrada. Neste caso, voc pode ter definido a geometria do disco rgido incorretamente na partio
editor quando voc instalou o FreeBSD. Volte para o editor de parties e especifique o
geometria correta para o seu disco rgido. Infelizmente, voc deve reinstalar o FreeBSD a partir do
comeando se isso acontecer.
Ela costumava ser relativamente comum que sysinstall no poderia calcular a geometria correta para
um disco, e que, como resultado, voc pode instalar um sistema, mas que no iria arrancar. Uma vez que os
dias, sysinstall tornou-se muito mais inteligente, mas ainda quase impossvel que voc vai correr em
este problema.
Se voc no consegue descobrir a geometria correta para sua mquina, e mesmo se voc no quiser
para executar o Microsoft em sua mquina, tente instalar uma pequena partio Microsoft no
incio do disco e instalar o FreeBSD depois disso. O programa de instalao vai ver a
Partio Microsoft e tentar inferir a geometria correta dele, o que geralmente funciona.
Aps o editor de parties aceitou a geometria, voc pode remover o Microsoft
partio novamente. Se voc estiver compartilhando sua mquina com Microsoft, certifique-se de que o
Microsoft partio antes a partio FreeBSD. Lembre-se que, em ambos os casos, voc
pode precisar localizar o sistema de arquivos raiz FreeBSD completamente nos primeiros 1024 cilindros,
caso contrrio voc no ser capaz de inicializar. Consulte a pgina 32 para mais detalhes.
install.mm, v verso 4.21 (2003/04/02 06:39:30)
Se as coisas do errado
82
Alternativamente, se voc no deseja compartilhar seu disco com qualquer outro sistema operacional, selecione
a opo de usar todo o disco (um no editor de parties). Isso vai deixar toda a geometria
consideraes de lado.
Esta bandeira d-lhe informaes adicionais que podem ajudar a diagnosticar o problema. Ver
Captulo 29 para mais detalhes sobre o que significa a sada.
Se voc estiver usando placas ISA, pode ser necessrio reconfigurar a placa para coincidir com o kernel, ou
alterar o arquivo / Boot / device.hints para coincidir com as configuraes da placa. Veja o exemplo na pgina
600. Verses antigas do FreeBSD costumava ter um programa chamado UserConfig para executar
esta funo, mas no mais suportado.
83
Pnico
s vezes o sistema entra em tantos problemas que no pode continuar. Deve notar
esta situao e parar mais ou menos graciosamente. Voc pode ver uma mensagem como:
pnico: vnode livre no
Discos de sincronizao 14 13 9 5 5 5 5 5 5 5 desistir
despejo para dev 20001 offset 0
despejar 16 32 48 64 80 96 112 128 sucedido
Reinicializao automtica em 15 segundos - premir uma tecla no console para abortar
Reboooting ...
S porque o sistema tem em pnico, no significa que voc deve entrar em pnico tambm. uma pena
fato da vida que o software contm bugs. Muitos sistemas comerciais apenas falhar quando eles
atingiu um bug, e voc nunca sabe por que, ou eles imprimem uma mensagem como Proteo geral
culpa, o que no lhe diz muito tambm. Quando o sistema entra em pnico UNIX,
geralmente d-lhe informaes mais detalhadas, neste exemplo, a razo vnode livre no . Voc
pode no ser o mais sbio de uma mensagem como esta (diz-lhe que a manipulao do sistema de arquivos
tem confundido sobre o estado atual de armazenamento em um disco), mas outras pessoas podem. Em
particular, se voc fazer obter um pnico e pedir ajuda em FreeBSD-questions, por favor
no basta dizer'' Meu sistema entrou em pnico, o que eu fao?'' A primeira resposta, se voc conseguir um
ser'' Qual foi a seqncia de pnico?'' O segundo ser'' Onde est o lixo?''
Depois de entrar em pnico, o sistema tenta escrever buffers do sistema de arquivos de volta para o disco de modo que eles
no ficar perdido. Isso nem sempre possvel, como podemos ver na segunda linha deste exemplo.
Tudo comeou com 14 buffers para escrever, mas s conseguiu escrever 9 deles, possivelmente
porque ele estava confuso sobre o estado do disco. Isso pode significar que voc ter
dificuldades aps a reinicializao, mas tambm pode significar que o sistema estava errado em sua
suposies sobre o nmero de buffers necessrios para ser escrito.
Alm de dizer a causa do pnico, FreeBSD, opcionalmente, copiar o atual
contedo da memria para o arquivo de swap para a anlise post-mortem. Isto chamado despejo o
do sistema, e mostrado nas duas linhas seguintes. Para habilitar o dumping, necessrio especificar
onde o lixo deve ser escrito. Em / Etc / defaults / rc.conf, voc vai encontrar:
dumpdev = "NO"
Isso permite que os depsitos a ser feita mesmo pnico ocorre antes que o sistema l o
/ Etc / rc.conf arquivo. Certifique-se de que o nome do dumpdev corresponde a uma troca
partio com pelo menos tanto espao quanto a sua memria total. Voc pode usar pstat para verificar
isto:
Se as coisas do errado
# Pstat-s
Dispositivo 1024-blocos
/ Dev/ad0s1b 51200
/ Dev/da0s1b 66036
/ Dev/da2s1b 204800
Total de 321.844
84
Usado
50108
51356
51220
152684
Enquanto esta mquina no tem mais do que cerca de 192 MB de memria, ser
possvel fazer um despejo em / Dev/da2s1b.
Alm disso, garantir que voc tenha um diretrio chamado / Var / crash. Aps a reinicializao, o
primeiro sistema verifica a integridade dos sistemas de ficheiros, ento verifica a presena de um
despejar. Se encontrar um, ele copia o despejo eo kernel atual para / Var / crash.
Vale sempre a pena permitir que o dumping, assumindo que o seu espao de swap pelo menos to grande como o seu
memria. Voc pode analisar os dumps com gdb, consulte a pgina 614 para mais detalhes.
Para obter os melhores resultados a partir de uma anlise de despejo, voc precisa de um depurar o kernel. Este kernel
idntico a um ncleo normal, mas inclui uma srie de informaes que podem ser usadas para despejo
anlise. Consulte a pgina 605 para detalhes de como construir um kernel de depurao. Voc nunca sabe quando
voc pode executar em um problema, ento eu recomendo que voc utilize um kernel de depurao em todos os
vezes. Ele no tem nenhum efeito sobre o desempenho do sistema.
Inicializao a partir do CD-ROM segunda (Live Sistema de Arquivos). Ele ser montado como o arquivo de raiz
sistema.
Em ambos os casos, os discos rgidos no so montados, voc pode querer fazer o trabalho de reparo neles
antes de qualquer outro acesso.
Use esta opo somente se voc tiver uma boa compreenso do processo de instalao do sistema.
Dependendo do dano, voc pode ou no ser bem sucedido. Se voc tiver uma recente
backup do seu sistema, pode ser mais rpido para executar uma instalao completa do que tentar
consertar o que est esquerda, e depois de uma reinstalao pode ser mais confiante de que o sistema
instalado corretamente.
85
A partir de uma partio de disco montado localmente, ou FreeBSD (se voc j tiver instalado
lo) ou Microsoft.
A partir de disquete. Esta apenas para masoquistas ou pessoas que realmente no tm quase nenhum
hardware: dependendo da extenso da instalao, voc vai precisar de at 250 discos
e pelo menos um deles obrigado a ter um erro I / O. E no se esquea que um CDROM custa muito menos do que 250 disquetes.
Isso pressupe que o seu software est no CD-ROM, e que est montado no diretrio
/ Cdrom. Ele tambm assume que sua unidade de disquete chamado de / dev/fd0. Este o FreeBSD
nome da verso 5.0, e tambm o nome que usa Linux. Older FreeBSD e outros
Sistemas BSD referem a ele como / Dev/fd0c.
O dd implementao de algumas verses do UNIX, especialmente os mais antigos variantes System V,
podem queixar-se sobre a opo bs = 36b. Se isso acontecer, basta deix-lo fora. Pode demorar
install.mm, v verso 4.21 (2003/04/02 06:39:30)
86
at 10 minutos para gravar o disquete, mas ele vai trabalhar, e isso vai fazer voc apreciar
FreeBSD tudo o mais.
Se voc tem que criar o disquete de boot da Microsoft, use o programa FDIMAGE.EXE,
que est na ferramentas diretrio do primeiro CD-ROM.
Depois de substituir o disquete e pressione Enter, o processo de inicializao continua como antes.
Se voc estiver usando a imagem 2.88 MB em um disquete de 2,88 MB ou um LS-120 unidade, voc tem
tudo que voc precisa de um disco, ento voc no tem o pedido para mudar o disco.
Dependendo de seu hardware, voc poder mais tarde ter uma solicitao para instalar drivers adicionais
a partir do disquete driver.
Regular ftp modo no funciona atravs da maioria dos firewalls, mas, muitas vezes, funcionam melhor com
servidores FTP antigos que no suportam modo passivo. Utilize este modo se sua conexo
trava com o modo passivo.
Se voc precisar passar por firewalls que no permitem conexes de entrada, tente
FTP passivo.
Qualquer que seja o modo de instalao e qualquer mquina remota que voc escolher, voc precisa
ter acesso mquina remota. A maneira mais fcil e mais comum para garantir o acesso
a utilizao de ftp annimo. Se voc est instalando a partir de outra mquina FreeBSD, leia como
instalar ftp annimo na pgina 448. Esta informao tambm geralmente correto para outra
Sistemas Unix.
install.mm, v verso 4.21 (2003/04/02 06:39:30)
87
cd / var/spool/ftp/FreeBSD/5.0-RELEASE
mkdir disquetes
cd disquetes
cp / cdrom / disquetes / *.
no omitir o. no final
cd / cdrom
o diretrio de distribuio em CD-ROM
tar cf -. | (Cd / var/spool/ftp/FreeBSD/5.0-RELEASE; tar xvf -)
88
Em seguida, voc dar essa informao para sysinstall, como mostrado na Figura 5-17. Depois de entrar neste
informaes, sysinstall pede-lhe para configurar uma interface. Este o mesmo procedimento
que voc faria de outra maneira aps a instalao, consulte a pgina 98. Depois de realizar esta
configurao, voc continuar com Cometer (Na pgina 77).
89
90
Em seguida, copie os arquivos para os disquetes. Os arquivos de distribuio so divididos em partes que se encaixam
exatamente em um disquete de 1,44 MB convencional. Copiar um arquivo para cada disquete. Assegure-se
colocar o arquivo base.inf no primeiro disquete, que necessrio para descobrir quantos disquetes para
ler.
A instalao em si bastante simples: siga as instrues a partir da pgina
63, selecione Frouxo no menu de mdia de instalao na pgina 76 e siga as instrues.
Neste captulo:
Instalando adicional
software
Adicionando usurios
Fuso horrio
Servios de rede
Preferncias de inicializao
Configurando o
mouse
Configurando o X
Reiniciando o novo
sistema
Ps-instalao
configurao
No ltimo captulo olhamos para a instalao do sistema bsico, at o ponto onde
ele pode ser reiniciado. quase impossvel que isso poderia ser o suficiente. Quase certamente,
porm, voc vai precisar para realizar uma srie de outras etapas de configurao para que o sistema
til. Neste captulo, seguem aproximadamente o menu de configurao final, mas h uma
algumas excees. As coisas mais importantes a fazer so:
Neste captulo, vamos nos concentrar em obter o sistema instalado e funcionando o mais rapidamente
possvel. Mais tarde, no livro ns vamos entrar em mais detalhes sobre esses tpicos.
No final do captulo anterior, tivemos um menu perguntando se queramos visitar o
'''' ltimas opes do menu. Se voc responder Sim, voc comea o menu de configurao mostrada na
Figura 6-1. Se voc tiver reiniciado a mquina, efetue login como raiz e comear sysinstall. Em seguida
selecionar Configure, que voc fica no mesmo menu.
91
O FreeBSD completo
92
acroread o Acrobat Reader, um utilitrio para ler e imprimir arquivos PDF. Ns olhamos
para ele brevemente na pgina 276.
bater o shell recomendado neste livro. Vamos olh-la com mais detalhes na pgina
113. Outros conchas populares so tcsh e CSH, tanto no sistema de base.
cdrecord um utilitrio para queimar SCSI CD-Rs. Vamos discutir isso no captulo Captulo 13,
Gravao de CD-Rs. Voc no precisa se voc tiver uma unidade IDE CD-R.
93
Emacs o editor GNU Emacs recomendado neste livro. Vamos olh-lo na pgina
139. Outros editores populares so vi (No sistema base) e vitalidade (Nos Portos
Collection).
fetchmail um programa para a recuperao de e-mail de caixas de correio POP. Ns olhamos para ele na pgina
501.
fvwm2 um gerenciador de janelas que voc pode preferir um desktop completo. Ns olhamos para
ele na pgina 118.
ghostscript um interpretador de PostScript. Ele pode ser usado para exibir PostScript em um X
exibir, ou imprimi-lo em uma impressora no-PostScript. Vamos olhar para ele na pgina 273.
gpg um programa de criptografia.
gv um utilitrio que funciona com ghostscript para exibir PostScript em um display X. Ele
e permite a ampliao de paging, ambos os quais ghostscript no faz facilmente. Vamos
olh-lo na pgina 273.
ispell um programa de verificao ortogrfica.
kde o ambiente de trabalho recomendada neste livro. Vamos dar uma olhada em mais
detalhadamente no Captulo 7, As ferramentas do comrcio.
mkisofs um programa para criar imagens de CD-R. Ns olhamos para ele no captulo Captulo 13,
Gravao de CD-Rs.
vira-lata o Mail User Agent (MUA, ou leitor de mail) recomenda no Captulo 26,
Correio eletrnico: seus clientes.
xtset um utilitrio para definir o ttulo de uma xterm janela. utilizada pela . Bashrc arquivo
instalado com o instant-workstation pacote.
Por que eu recomendo essas portas em particular? Simples: porque eu gosto deles, e eu us-los
eu. Isso no significa que eles so a nica opo, no entanto. Outros preferem o Gnomo
gerenciador de janelas-kkde, ou o pinho ou olmo MUAs para vira-lata, ou o vim editor para
Emacs. Este
o material
de
santo
guerras.
Ver
http://www.tuxedo.org/ ~ esr / jargo / html / entry / santo wars.html para mais detalhes.
Workstation instante
As portas mencionados na seco anterior, esto includas no misc / instant-workstation
porto, que instala software tpico e configuraes para uma estao de trabalho e permite que voc
para ser produtivo imediatamente. Em um ponto mais tarde, voc pode achar que voc preferir outro software,
Nesse caso, voc pode instal-lo.
postinstall.mm, v v4.12 (2003/04/02 06:40:31)
94
Note-se que o bater shell est no diretrio / Usr / local / bin, o que porque ele no faz parte do
o sistema base. As conchas so padro no diretrio / Bin.
Adicionando usurios
Um sistema FreeBSD recm instalado tem um nmero de usurios, quase todos para o sistema
componentes. O nico login de usurio raiz, e voc no deve se autenticar como root.
Em vez disso voc
deve adicionar pelo menos uma conta para si mesmo. Se voc est transferindo um master.passwd arquivo
de outro sistema, voc no precisa fazer nada agora. Caso contrrio, selecione este item e
em seguida, o item de menu Usurio, e preencher o menu resultante da seguinte forma:
95
Fuso horrio
Em seguida, selecione a entrada fuso horrio. A primeira entrada pergunta se a mquina do
relgio CMOS
(Ou seja, o relgio de hardware) est definido para UTC (s vezes incorretamente chamado de GMT, que um
Fuso horrio britnico). Se voc pretende executar apenas FreeBSD ou outro UNIX-like operacional
sistemas nesta mquina, voc deve ajustar o relgio para UTC. Se voc pretende executar outro
software que no entende fusos horrios, como muitos sistemas da Microsoft, voc tem
para definir o tempo para a hora local, o que pode causar problemas com o horrio de vero.
Fuso horrio
96
TEM
MST
MST7MDT
PST8PDT
Pacfico
SystemV
WET
regras posix
zone.tab
Se voc quiser definir o fuso horrio, digamos, Cingapura, voc pode digitar:
# Cd sia /
# Ls
Aden
Almaty
Am
Anadyr
Aqtau
Aqtobe
Ashkhabad
Bagd
Bahrain
Baku
Bangkok
Beirute
Chungking
Colombo
Dacca
Damasco
Dili
Dubai
Dushanbe
Gaza
Harbin
Hong_Kong
Hovd
Irkutsk
Jerusalm
Cabul
Kamchatka
Carachi
Kashgar
Katmandu
Krasnoyarsk
Kuala_Lumpur
Kuching
Kuweit
Macau
Magadan
Novosibirsk
Omsk
Phnom_Penh
Pyongyang
Catar
Rangoon
Riyadh
Saigon
Samarkand
Seul
Xangai
Cingapura
Teer
Thimbu
Tquio
Ujung_Pandang
Ulaanbaatar
Ulan_Bator
Urumqi
Vientiane
Vladivostok
Yakutsk
Yekaterinburg
Yerevan
97
Bishkek
Brunei
Calcut
# Cp Cingapura
Istambul
Manila
Jacarta
Moscatel
Jayapura Nicosia
/ Etc / localtime
Taipei
Tashkent
Tbilisi
Note-se que os arquivos / Usr / share / zoneinfo / sia (E os outros diretrios) representam
cidades especficas, e estes podem no corresponder com a cidade em que voc se encontra.
Escolha um no mesmo pas e fuso horrio.
Voc pode fazer isso a qualquer momento em um sistema em execuo.
Servios de rede
Se voc estiver executando a instalao personalizada recomendado, voc vai busc-la automaticamente
depois do fim da instalao.
Se voc estiver executando as instalaes Standard e Express, voc no obt-lo em tudo: depois
criao de suas interfaces de rede, sysinstall apresenta-lhe os itens individuais de
Menu Network Services vez.
Servios de rede
98
Se voc estiver configurando aps a reinicializao, ou se voc perdeu durante a instalao, selecione
Configurar a partir do menu principal e depois Networking.
O primeiro passo deve ser sempre para configurar as interfaces de rede, de modo que este o lugar onde voc encontra
a si mesmo se voc estiver executando uma instalao padro ou Express.
99
O que acontece se voc no tem um nome de domnio? Se voc est se conectando ao global
Internet, voc deve sair e comear uma pgina 318. Mas, entretanto, no falso
lo. Basta deixar os campos em branco. Se voc no est se conectando Internet, claro,
no faz muita diferena o nome que voc escolher.
inetd permite conexes ao seu sistema a partir do exterior. Vamos olh-la com mais detalhes
na pgina 446. Embora seja muito til, tambm um risco de segurana se ele est configurado
incorretamente. Se voc no quiser aceitar as conexes de fora, voc pode
incapacitar inetd e reduzir significativamente as possveis exposies de segurana.
Cliente NFS. Se voc quiser montar sistemas de arquivos NFS localizados em outras mquinas, selecione
esta caixa. Um X aparece na caixa, mas nada acontece mais. Veja os Captulos 24 e
25 para mais detalhes sobre NFS.
Servidor NFS. Se voc quiser permitir que outros sistemas para montar sistemas de arquivos localizados neste
mquina, marque essa caixa. Voc receber um aviso pedindo para voc criar o arquivo / Etc / exportaes,
que descreve as condies em que outros sistemas podem montar os sistemas de arquivos
nesta mquina. Voc deve digitar o editor, mas no h necessidade de mudar nada
este ponto. Ns olharemos / Etc / exportaes em mais detalhes na pgina 460.
Servios de rede
100
Voc no precisa selecionar sshd: ele j est selecionado para voc. Consulte a pgina 451
para obter mais
Detalhes de ssh e sshd.
Voc no precisa especificar qualquer uma das opes de configurao restantes durante
configurao. Consulte o manual on-line para mais detalhes.
Preferncias de inicializao
O prximo passo o de interesse Startup submenu, o que permite que voc escolha as configuraes
que entrem em vigor, sempre que voc ligar a mquina. Consulte o Captulo 29 para obter detalhes sobre a partida
arquivos.
101
Selecionar APM Se voc estiver executando um laptop. Ele permite que voc desligar o sistema em
suspender para RAM ou suspenso para o disco modo, preservando o sistema atualmente em execuo,
e para continuar a execuo em uma data posterior.
Se voc tiver perifricos USB, selecione usbd , para permitir o usbd daemon, que
reconhece quando os dispositivos USB so adicionados ou removidos.
nomeado inicia um nome do daemon. Use isto se voc est se conectando Internet em tudo, mesmo
Se voc no tem uma configurao de DNS: a configurao padro um cache nome
servidor, o que torna mais rpido de resoluo de nome. Basta selecionar a caixa, voc no precisa fazer
qualquer outra coisa. Ns olharemos nomeado no captulo 21.
Selecionar LPD, a daemon de impressora de linha, se voc tiver uma impressora conectada mquina.
Ns olharemos lpd no Captulo 15.
Selecionar linux Se voc pretende executar binrios Linux. Este certamente o caso,
e, por padro a caixa j est marcada para voc.
Selecione SVR4 e SCO, se voc pretende correr Sistema UNIX V.4 (SVR4) ou SCO
OpenDesktop ou OpenServer (SCO) binrios, respectivamente.
Configurando o mouse
FreeBSD detecta mouse PS / 2 no momento da inicializao s, ento o mouse deve ser ligado quando voc
arrancar. Se no, voc no ser capaz de us-lo. Para configurar, selecione Mouse do
menu de configurao. O menu na Figura 6-8 aparece.
Configurando o mouse
102
Com um moderno mouse PS / 2, voc no precisa fazer nenhuma configurao em tudo. Voc s
permitir que o do mouse daemon ou moused. Selecione o item de menu Ativar: voc tem o
possibilidade de mover o mouse e observe que o cursor segue. As chaves no funcionam nesta
Menu: selecione Sim e sair do menu. Isso tudo que voc precisa fazer.
Se voc estiver executando um mouse serial, escolha o item Selecione a porta do mouse e configur-lo para
correspondem com a porta que voc tem, se voc tem um protocolo incomum, voc tambm pode precisar
configur-lo com o Digite menu. Para conexes ainda mais exticas, leia a pgina de manual
para
moused e definir os parmetros apropriados.
Configurando o X
Voc deve ter instalado o X junto com o resto da pgina do sistema de ver 75. Se voc
se no, instale o pacote x11/XFree86. Nesta seo, vamos olhar para o que voc precisa
fazer para obter X instalado e funcionando.
Configurao X mudou muito no decorrer do tempo, e ainda est mudando. O
mtodo atual de configurao do X utiliza um programa chamado xf86cfg, que ainda est em
desenvolvimento, e mostra algumas estranheza. Muito possivelmente, a verso que voc comea
no se comportam de forma idntica, com a seguinte descrio. As diferenas devem ser
relativamente clara, no entanto.
103
servidor procura pelo arquivo de configurao em vrios lugares, ento se voc estiver atualizando a partir de um
verso anterior, certifique-se de remover todos os arquivos de configurao antigos. Vamos olhar para o
contedo do arquivo em detalhes no Captulo 28. Nesta seo, vamos ver como
gerar uma configurao utilizvel.
A partir do menu de configurao, selecione XFree86 e depois xf86cfg. H um pequeno atraso
enquanto xf86cfg cria um arquivo de configurao inicial, ento voc v o menu principal da figura
6-9. Este aplicativo executado, sem saber o que o hardware , portanto, o processamento
bastante bsico. A janela esquerda mostra o layout do hardware, ea janela
direita est disponvel no caso do seu mouse no est funcionando. Seleccione o indivduo
componentes com o mouse ou o teclado numrico. Por exemplo, para configurar o
mouse, selecione a imagem no canto superior esquerdo:
Configurando o X
104
Descrevendo o monitor
Provavelmente a coisa mais importante que voc precisa mudar so as definies para o monitor
e a placa de exibio. Alguns monitores modernos e mais placas de vdeo AGP suprir a
informao, mas dispositivos mais antigos no. Neste exemplo vamos configurar a Hitachi CM813U
monitor, que no se identifica com xf86cfg. Selecione a imagem no monitor, na parte superior
direito da janela, ento Configurar Monitor (s). Voc v:
xf86cfg no sabe nada sobre o monitor, por isso assume que ele s pode exibir
resolues VGA padro de 640x480. Os parmetros importantes para mudar so os
freqncias horizontal e vertical. Voc pode selecionar uma das possibilidades mencionadas, mas
a no ser que voc no sabe de suas especificaes do monitor, voc deve definir exatamente o
freqncias que ele pode fazer. Neste caso, o monitor de frequncias horizontais de suporte 31
kHz a 115 kHz e freqncias verticais de 50 Hz a 160 Hz, e isso que ns entramos.
Ao mesmo tempo, mudar o identificador para indicar o nome do monitor:
105
A nica indicao que voc tem que xf86cfg reconheceu o carto (aqui uma Matrox G200)
que ele selecionou mga para o nome do motorista. Se voc precisa mudar, desloque-se a
lista at encontrar o carto:
Configurando o X
106
107
Configurando o X
108
Configurao de desktop
Em seguida, selecione rea de Trabalho a partir do menu de configurao. Voc ganha este menu:
Configurao adicional X
Neste ponto, estamos quase feito. Algumas coisas ainda precisam ser feitas:
Decida como voc deseja iniciar X. Voc pode faz-lo explicitamente com a startx comando,
ou voc pode entrar diretamente com o X xdm Display Manager. Se voc escolher startx,
voc no precisa fazer nenhuma configurao adicional.
109
Configurando o xdm
Para ativar xdm, edite o arquivo / etc / ttys. Por padro, ele contm as seguintes linhas:
ttyv8
off seguro
em proteger
Se voc fizer isso a partir de um sistema em execuo, enviar um sinal HUP para inicializao para fazer com que re-ler o
arquivo de configurao e start xdm:
# Kill -1 1
Isto provoca um xdm tela a aparecer / Dev/ttyv8. Voc pode acess-lo com Alt-F9.
Configurao do usurio X
Se voc est comeando X manualmente com startx, crie um arquivo. xinitrc em seu diretrio home.
Este arquivo contm comandos que so executados quando o X for iniciado. Selecione a linha que
corresponde ao seu gerenciador de janelas ou ambiente de trabalho a partir da lista a seguir, e coloc-lo em
. Xinitrc:
startkde
exec gnome-session
fvwm2
para kde
para o Gnome
para fvwm2
Se voc estiver usando xdm, voc coloca o mesmo contedo do arquivo. xsession em sua casa
diretrio.
No basta pressionar o boto de reset ou desligue-o. Isso pode causar perda de dados. Vamos
olhar para esta questo com mais detalhes na pgina 537.
Neste captulo:
Usurios e grupos
Ganhando acesso
O desktop KDE
A janela fvwm2
gerente
Alterando o X
exibir
Conseguir um shell
Arquivos e nomes de arquivos
Diferenas entre
Microsoft
O editor Emacs
Parando o sistema
As ferramentas do
comrcio
Portanto, agora que voc instalou FreeBSD, e ele inicia com sucesso a partir do disco rgido. Se
voc novo no FreeBSD, o seu primeiro encontro com ele pode ser bastante intrigante. Voc provavelmente
no esperava ver as mesmas coisas que voc sabe de outras plataformas, mas voc no pode
esperar o que voc quer ver:
FreeBSD (freebie.example.org) (ttyv0)
sesso:
Se voc tiver instalado xdm, voc vai pelo menos conseguir um display grfico, mas ainda pede para voc fazer logon
e fornecer uma senha. Onde voc vai a partir daqui?
No h espao neste livro para explicar tudo o que h sobre como trabalhar com FreeBSD,
mas nos seguintes alguns captulos que eu gostaria de fazer a transio mais fcil para as pessoas que
ter experincia prvia com plataformas da Microsoft ou com outros sabores de UNIX. Voc pode
encontrar muito mais informaes sobre esses tpicos em UNIX para o Impaciente, por Paul W.
Abrahams e Bruce R. Larson, UNIX Power Tools, por Jerry Peek, Tim O'Reilly, e
Mike Loukides e UNIX Administration Handbook sistema, por Evi Nemeth, Garth
Snyder, Scott Seebass e Trent R. Hein. A terceira edio deste livro cobre tambm
FreeBSD verso 3.2. Veja o Apndice A, Bibliografia, para mais informaes.
Se voc veio da Microsoft, voc vai notar um grande nmero de diferenas entre
UNIX e Microsoft, mas na verdade os dois sistemas tm mais em comum do que os
olho. De fato, em meados dos anos 80, um dos objetivos declarados do MS-DOS 2.0 era faz-lo
mais UNIX-like. Voc o juiz de quo bem sucedido que a tentativa era, mas se voc sabe
unixref.mm, v v4.16 (2003/04/02 06:41:29)
111
O FreeBSD completo
112
a interface de linha de comando do MS-DOS, voc vai notar algumas semelhanas nos seguintes
sees.
Neste captulo, vamos olhar para FreeBSD a partir da perspectiva de algum com computador
experincia, mas sem fundo UNIX. Se voc fazer tem um fundo UNIX, voc pode
Continuo a achar interessante.
Se voc est vindo de uma plataforma Microsoft, vai ser usado para fazer quase tudo
com uma interface grfica. Neste livro, eu recomendo que voc use X e, possivelmente, um
desktop, mas a maneira de us-lo ainda muito diferente. FreeBSD, como outros UNIX-like
sistemas, lugares muito maior nfase no uso de texto. Isto pode parecer primitivo, mas
na verdade, o oposto verdadeiro. mais fcil apontar e clicar do que escrever, mas voc pode expressar
-se com muito mais preciso e muitas vezes mais rapidamente com uma interface de texto.
Como resultado, as duas ferramentas mais importantes que voc ir usar com o FreeBSD so o concha e a
editor. Usar o Shell para emitir comandos diretos para o sistema, eo editor de preparar
textos. Ns vamos olhar para estas questes com mais detalhes neste captulo. No captulo 8, Tomar
controle, vamos olhar para outros aspectos do sistema. Primeiro, porm, precisamos ter acesso ao
o sistema.
Usurios e grupos
Provavelmente, a maior diferena entre a maioria dos sistemas operacionais de PC e FreeBSD tambm
leva mais tempo para se acostumar: FreeBSD um sistema multi-usurio, multi-tasking. Este
significa que muitas pessoas podem usar o sistema ao mesmo tempo, e cada um pode fazer vrias coisas ao
mesmo tempo. Voc pode pensar'' Por que eu iria querer fazer isso?''. Uma vez que voc se acostumou a
essa idia, no entanto, voc nunca vai querer fazer sem ele novamente. Se voc usar o X Window
Sistema, voc ver que todas as janelas podem estar ativos ao mesmo tempo, voc no tem que
selecion-los. Voc pode acompanhar alguma atividade no fundo em outra janela enquanto
escrevendo uma carta, testando um programa, ou jogar um jogo.
Antes que voc possa acessar um sistema FreeBSD, voc deve estar registrado como um utilizador. O
registo define um certo nmero de parmetros:
A nome de usurio, muitas vezes tambm chamado de ID de usurio. Este um nome que voc usa para
identificar
-se ao sistema.
A senha, um dispositivo de segurana para garantir que outras pessoas no abusar do seu ID de usurio.
Para entrar, voc precisa especificar o ID do usurio ea senha correta. Quando voc
digite a senha, no aparece nada na tela, para que as pessoas olhando sobre seu
ombro no pode l-lo.
Pode parecer estranho para ir a tais medidas de segurana em um sistema que s voc usa.
A incidncia de problemas de segurana relacionados com a Internet nos ltimos anos tem mostrado
que no estranho em tudo, apenas o senso comum. Sistemas da Microsoft ainda esto sujeitos
a uma srie interminvel de falhas de segurana. Sistemas FreeBSD no so.
113
A diretrio home. O sistema pode ter vrios usurios, de modo que cada um precisa de uma separada
diretrio para armazenar seus arquivos privados. Normalmente, os usurios tm um diretrio
/ Home / username, onde username o nome que eles usam para entrar Quando voc faz logon no
para o sistema, o shell define o diretrio atual para o diretrio home. Nele, voc
pode fazer o que quiser, e normalmente esto protegidos contra acesso por outros usurios. Muitos
escudos, incluindo o bater shell usado nestes exemplos, use a notao especial ~
(Til) para representar o nome do diretrio home.
A grupo nmero. UNIX recolhe usurios em grupos que tm acesso especfico comum
permisses. Quando voc adicionar um usurio, voc precisa fazer dele um membro de uma especfica
grupo, que est inscrita no as informaes de senha. O seu nmero de grupo indiretamente
ajuda a determinar o que permitido fazer no sistema. Como veremos na pgina 181,
seu usurio e grupo determinar o que voc tem acesso ao sistema. Voc pode pertencer
a mais de um grupo.
Os nmeros de grupo geralmente tm nomes que lhes esto associados. Os nomes dos grupos e
nmeros so armazenados no arquivo / Etc / group. Alm disso, este arquivo pode conter IDs de usurio
de usurios que pertencem a outro grupo, mas que esto autorizados a pertencer a este grupo como
bem.
Se voc encontrar o conceito de grupos de confuso, no se preocupe com eles. Voc pode comear por
completamente feliz sem us-los em tudo. Voc s ver referncias a eles quando
vir a discutir as permisses de arquivo. Para mais informaes, veja a pgina man
grupo (5).
No momento em que voc chegou aqui, voc deve ter definido um nome de usurio, como recomendado na pgina
94. Se voc no tiver, voc vai ter que logar como raiz e criar um tal como descrito aqui.
Ganhando acesso
Depois de ter um nome de usurio, voc pode fazer login no sistema. J que voc tem uma escolha:
FreeBSD oferece terminais virtuais eo X Window System. O primeiro exibido
texto simples no monitor, enquanto o segundo usa as capacidades grficas do sistema. Uma vez
execuo, voc pode mudar de um para o outro, mas voc tem a opo de qual interface
voc usa pela primeira vez. Se voc no fizer nada, voc recebe um terminal virtual. Se voc executar xdm, voc
obter X.
Ainda relativamente incomum de usar xdm, e em muitos casos voc pode no querer X em
tudo, por exemplo, se voc estiver executando o sistema como um servidor. Como resultado, ns vamos olhar para o
'' Convencional'' de login em primeiro lugar.
Se voc est entrando em um terminal virtual, voc ver algo parecido com isto:
unixref.mm, v v4.16 (2003/04/02 06:41:29)
Ganhando acesso
114
login: grog
Senha:
senha no mostra na tela
ltimo login: Fri 11 de abril de Canberra 16:30:04
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
Os Regentes da Universidade da Califrnia. Todos os direitos reservados.
FreeBSD 5.0-RELEASE (FREEBIE) # 0: ter 31 dez 19:08:24 CST 2002
Bem-vindo ao FreeBSD!
Voc tem e-mail.
apagar H, matar U, intr C, o estado T
Niklaus Wirth lamentou que, enquanto os europeus pronunciar seu nome
corretamente (Ni-klows Virt), os americanos sempre mangle-lo em
(Nick-les Worth). O que significa dizer que os europeus cham-lo pelo nome, mas
Americanos cham-lo pelo valor.
=== Grog @ freebie (/ dev/ttyv0) ~ 1 ->
H um monte de coisas aqui. Vale a pena olhar para ele com mais detalhes:
O programa pede que voc faa login em uma janela de terminal chamado getty. L-se em
seu ID eo usurio inicia um programa chamado login e passa o ID do usurio para ele.
Durante o arranque, o shell examina uma srie de arquivos. Veja a pgina de manual para o seu
shell em particular para obter mais detalhes sobre o que eles so. Neste caso, porm, podemos ver o
resultados: um arquivo contm a ltima vez que voc logado, outra contm o
Mensagem do dia (/ Etc / motd), e um terceiro informa que voc tem e-mail. O
concha imprime a mensagem do dia textualmente, neste caso, contm informao
sobre o nome do kernel e uma mensagem de boas-vindas. O escudo tambm imprime
informaes sobre a ltima vez login (neste caso, a partir de um sistema remoto) e se voc
tem e-mail.
O shell executado a fortuna programa, que imprime uma citao aleatria a partir de uma
banco de dados de biscoitos da sorte''.'' Neste caso, temos uma mensagem sobre Niklaus Wirth,
o inventor da linguagem de programao Pascal.
Finalmente, a ltima linha um alerta, a informao que lhe diz que o shell est pronto
para entrada.
O prompt ilustra uma srie de coisas sobre o ambiente UNIX. Por padro, o sh
e os amigos com um prompt de $, E csh e os amigos com um prompt de %. Voc pode mud-lo para
qualquer coisa que voc quiser com as conchas UNIX. Voc no tem que gostar de meu especial
verso, mas vale a pena entender o que ele est tentando dizer.
A primeira parte, ===, apenas para torn-lo mais fcil de encontrar em uma grande lista em um
display X. Um
xterm janela num cran X de alta resoluo pode conter at 120 linhas, e pesquisando
para comando solicitar pode ser no-trivial.
unixref.mm, v v4.16 (2003/04/02 06:41:29)
115
Em seguida, grog @ freebie o meu ID de usurio eo nome do sistema no qual estou trabalhando, em
o formato RFC 2822 usado para IDs e-mail. Vrios sistemas e vrios usurios podem ser
presentes numa nica tela X. Dessa forma, eu posso descobrir qual usurio eu sou eo que
sistema que estou executando.
/ Dev/ttyv0 o nome do dispositivo terminal. Isso s vezes pode ser til.
~ o nome do diretrio home. A maioria das conchas, mas no todos eles, apoiar esta
simbolismo.
1 o nmero de alerta. Cada vez que voc digitar um comando, ele associado com este
nmero e o nmero de aviso incrementado. Uma maneira de re-executar o comando
para introduzir ! 1 (Dois pontos de exclamao eo nmero do comando). Ns olharemos
os mais confortveis na pgina 131.
Para iniciar o X a partir de um shell terminal virtual, use o startx comando:
$ Startx
Se voc usar xdm, voc ignorar os terminais virtuais e ir direto para X. Digite seu usurio
nome e senha para o prompt de login ou o xdm tela de login, e imprensa Enter. Se voc
utilizar o xdm login, voc vai direto para X.
Ganhando acesso
116
De qualquer maneira, supondo que voc tenha instalado e configurado kde, voc vai ter uma exibio
semelhante ao da Figura 7-1. Este exemplo inclui quatro janelas que no esto presentes em
inicializao. No arranque da parte central da tela est vazio. Ns vamos olhar para as janelas
mais abaixo.
O desktop KDE
KDE um sistema complicado, e uma boa documentao est disponvel
em
http://www.kde.org/documentation/. Uma vez que voc tem o KDE em execuo, voc pode acessar o
mesma informao atravs do cone de ajuda no painel na parte inferior (o cone anel de vida). O
seguindo descrio d uma breve introduo.
O visor KDE contm um certo nmero de reas distintas. No topo est um menu opcional, a
o fundo quase opcional painel, e no meio da tela reservada para
janelas.
O menu do desktop
O Desktop menu est no topo da tela. Ele fornece a funcionalidade que no
especfico para uma aplicao particular. Selecione as categorias individuais com o mouse. Para
exemplo, a Novo Menu parecido com este:
A letra K estilizado na extrema esquerda o Iniciado aplicao. Quando voc selecion-lo, uma
unixref.mm, v v4.16 (2003/04/02 06:41:29)
117
menu vertical longo aparece no lado esquerdo da tela e permite iniciar programas
('' Aplicaes'') ou o acesso apenas sobre qualquer outra funo.
Em seguida, vem um cone chamado'' Mostrar rea de trabalho.'' Essa uma maneira conveniente de iconify todo o
janelas atualmente no desktop.
Os demais cones nesta parte do painel representam diversas aplicaes.
O sistema de ajuda.
O Kmail MUA.
O Kspread planilha.
O Kate editor.
O desktop KDE
118
A prxima seo mostra um conector de alimentao estilizada, que mostra o poder atual
estado da mquina, e uma rea de transferncia.
Provavelmente a parte mais til desta seo do painel no muito bvia: o direito do
seta apontando permite remover o painel, se voc achar que est no caminho. A totalidade
painel substitudo por uma nica seta apontando para a esquerda na extrema direita da tela.
Usando o mouse
Por padro, o kde s usa os botes esquerdo e direito do mouse. Em geral, o boto esquerdo
usado para selecionar um determinado boto, eo boto direito usado para um menu auxiliar.
Manipulando janelas
Voc ver que cada janela tem uma moldura em torno dele com uma srie de recursos. Em X
terminologia, eles so chamados decoraes. Especificamente:
H uma barra de ttulo com o nome do programa. Se voc selecionar a barra de si mesmo, voc levanta
a janela acima de todos os outros. Se voc segurar o boto na barra de ttulo, voc pode
mover a janela.
No lado esquerdo da barra de ttulo existe um logotipo X. Se voc selecionar este logo, voc ter um menu
de operaes de janela.
direita da barra de ttulo, h trs botes que voc pode selecionar. A esquerda
maximize a janela, o do meio maximiza da janela, tornando-se levar at o
tela inteira, eo outro direita mata a aplicao. Se a janela j
maximizada, o boto do meio restaura-lo ao seu tamanho anterior.
Voc pode selecionar qualquer canto da janela, ou qualquer um dos outros lados, para alterar o tamanho
da janela.
119
Comeando fvwm2
Como KDE, instale fvwm2 a partir da coleo de ports. No projetado para funcionar
completamente corretamente fora da caixa, mas ela no funciona. Tal como acontece com o KDE, a primeira coisa
voc precisa fazer criar um . Xsession ou . Xinitrc arquivar, dependendo se voc est
funcionamento xdm. Deve conter, no mnimo, a seguinte linha:
fvwm2
Comece X da mesma forma que voc fez para o KDE. Desta vez, voc v, aps o incio da mesma
aplicaes como antes:
Cada janela tem uma moldura e um ttulo. A forma exata da decorao diferente,
mas o objectivo o mesmo. No h'' boto'' Fechar aplicao: para a maioria UNIX
aplicaes, voc deve obter o programa para sair ao invs de mat-lo.
H uma barra de tarefas no canto inferior direito, tendo-se apenas a metade da largura da tela.
A janela ativa no momento (o xterm no lado esquerdo, neste exemplo) realado.
O padro fvwm2 display tambm tem quatro telas, e da barra de tarefas mostra a posio
das janelas na barra de tarefas.
120
A menos que voc tenha uma mquina topo de gama, muito mais rpido no que faz.
Voc pode mover de uma tela para a outra usando o cursor, e as janelas podem
sobrepem. Neste exemplo, a galeon janela do navegador web vai at a tela
a seguir, e a janela Emacs passa sobre todas as quatro telas, tal como o mostrador na tarefa
bar mostra. Com o KDE, a nica maneira de exibir o resto destas janelas mover
a janela.
Paradoxalmente, voc pode fazer muito mais com o mouse. Na janela de raiz, esquerda
boto do mouse d-lhe um menu para iniciar vrios programas, tanto a nvel local e
remotamente, e tambm vrios utilitrios de janela. O boto do meio lhe d direto
acesso aos utilitrios de manipulao de janelas, eo boto direito d um drop-down
lista para selecionar qualquer uma das janelas actualmente activa:
Os menus acima mostram um dos problemas: olhar para os nomes do sistema esquerda
submenu (Dunga, snoopy e amigos). Eles no existem em nossa rede de amostra, eo
possibilidade deles existentes em sua rede so muito baixos tambm. Eles so codificados em
o arquivo de configurao de amostra, / Usr/X11R6/etc/system.fvwm2rc. Para usar fvwm2 eficaz,
voc vai ter que modificar o arquivo de configurao. A melhor coisa a fazer fazer uma cpia do
/ Usr/X11R6/etc/system.fvwm2rc em seu prprio diretrio, como ~ / .fvwm2/.fvwm2rc. Ento voc
pode ter muita diverso aprimorando o arquivo para fazer exatamente o que voc quer que ele faa. Claramente, KDE
mais fcil de configurar.
Alterar o visor X
Quando voc configurar o seu XF86Config arquivo, voc pode ter especificado mais de uma
resoluo. Por exemplo, na pgina 107 foram selecionados a resoluo 1024x768 adicional
pixels. Quando voc iniciar o X, ele seleciona automaticamente a primeira resoluo, neste caso
640x480. Voc pode alterar a resoluo anterior (aquele esquerda na lista) por
pressionando a Ctrl-Alt-Teclado - chave, e para a seguinte resoluo (aquele para a direita
na lista) com Ctrl-Alt-Teclado +. Teclado + e Teclado - referem-se a + e - smbolos
no teclado numrico direita do teclado, voc no pode usar o + e - smbolos
unixref.mm, v v4.16 (2003/04/02 06:41:29)
121
o teclado principal para esta finalidade. As listas de envolver em torno de: no nosso exemplo, se o seu
resoluo atual de 640x480, e voc pressionar Ctrl-Alt-teclado -, o visor muda para
1024x768. uma idia muito boa para manter a resoluo padro de 640x480 at que voc tenha
depurado seu XF86Config parmetros: 640x480 quase sempre funciona, por isso, se o seu monitor
confuso, voc pode simplesmente voltar para uma boa exibio conhecido com uma nica tecla.
Com placas de vdeo mais velhas, que tinham exposio relativamente limitada de memria, no houve uma
tradeoff entre a mxima resoluo e profundidade mxima de pixel. Modernas placas de vdeo
j no tem essa limitao. Vamos olhar para esta questo com mais detalhes na pgina 519.
Conseguir um shell
Como vimos no incio do captulo, suas principais ferramentas so o reservatrio eo editor,
e isso o que vimos nas telas de amostra. Mas quando voc comea X, eles no esto l:
voc precisa comear a eles.
No KDE, voc tem duas maneiras para iniciar uma janela de terminal:
Voc pode selecionar o cone que mostra um monitor com uma concha na frente dele, o terceiro do
deixado na parte inferior do exemplo acima. Isso inicia o konsole emulador de terminal.
Voc pode iniciar uma xterm premindo Alt-F2. Voc ver uma janela como a da
centro-esquerda da Figura 7-1, digite o texto xterm (Como mostrado) e prima Correr ou Entrar
chave.
Conseguir um shell
122
Shell bsico
A coisa mais bsica que voc pode fazer com a casca para iniciar um programa. Considere programa
nomes como comandos: como voc pode pedir a algum para'' lavar os pratos'' ou'' cortar a
gramado,'' voc pode dizer ao shell para'' remover esses arquivos'':
$ Rm arquivo1 arquivo2 file3
Isso inicia um programa chamado rm (Retirar), e d-lhe uma lista de trs nomes de arquivos para
remover.
Se voc est removendo um monte de arquivos, isto pode demorar um pouco. Considere remover a
hierarquia diretrio inteiro / Usr / obj, que criado quando a construo de uma nova verso do
sistema (ver pgina 587). Esta hierarquia diretrio contm cerca de 15.000 arquivos e
diretrios, e vai demorar um pouco para remov-lo. Voc pode fazer isso com a seguinte
comando:
# Rm-rf / usr / obj &
Neste exemplo, temos um par de opes levou em por um hfen (-) e tambm o carter
& no final da linha.
O f Opo (fora) diz rm para continuar no erro, caso contrrio, se alguma coisa der errado,
ele vai parar.
O & personagem no final da linha diz ao shell (no rm) para continuar aps o incio
o programa. Ele pode funcionar por algum tempo, e no h necessidade de esperar por ele.
Opes
No exemplo anterior, vimos um par de opes. Por conveno, eles vm entre
o nome do comando e outros parmetros, e eles esto identificados porque eles comeam com um
hfen (-). H muita variao, no entanto, dependendo do indivduo
programa.
Por vezes, como no exemplo anterior, as opes de consistir de uma nica letra e pode
muitas vezes, ser unidas.
123
Voc tambm pode vir atravs de programas que se recusam a aceitar o hfen em tudo.
Por vezes, podem ter valores de opes. Por exemplo, no captulo 23, vamos ver:
# Tcpdump-i ppp0 hub.freebsd.org anfitrio
Aqui, ppp0 um argumento para o Eu opo. Em alguns casos, deve ser escrita com um
espao, em outros, ele deve ser escrito sem um espao, e em outros ainda, pode ser
escrita de qualquer maneira. Preste ateno a este detalhe ao ler as pginas de manual.
Em outros casos, eles podem ser palavras-chave, caso em que eles tm de ser escritas
separadamente. O projeto GNU particularmente apaixonado por este tipo de opo. Por exemplo, a
na construo do sistema, voc pode ver invocaes compilador como estes:
cc-O-pipe-DINLINE = rpcgen_inline-Wall-WNO-format-Y2K-WNO-inicializado \
-D__FBSDID = __RCSID-c / usr / src / usr.bin / rpcgen / rpc_main.c
Com excepo do ltimo parmetro, todos os textos so opes, tal como o hfen
sugere.
As opes so especficas para comandos especficos, embora muitas vezes vrios comandos tentar
usar as mesmas letras para significar o mesmo tipo de coisa. As tpicas so v para verboso
sada, q para a sada tranquila (ou seja, menos do que o normal).
s vezes voc pode ter problemas quando voc fornecer um parmetro que se parece com um
opo. Por exemplo, como voc remover um arquivo chamado -Rf? H um certo nmero de
solues para este problema. Neste exemplo, voc poderia escrever:
$ Rm. /-Rf
Este um arquivo alternativo conveno de nomeao que veremos novamente na pgina 126.
Parmetros shell
Quando voc chama um programa com a casca, ele primeiro analisa a linha de entrada antes de pass-lo
para o programa: verifica-se a linha para um nmero de parmetros (chamado argumentos na C
linguagem de programao). Normalmente, os parmetros so separados por um espao em branco, ou uma
espao ou um caractere de tabulao. Por exemplo, considere o exemplo anterior:
$ Rm arquivo1 arquivo2 file3
Conseguir um shell
124
Argumento 1 a expresso, todos os argumentos adicionais so os nomes dos arquivos a serem pesquisados.
Poderamos escrever:
$ Grep mail rejeitou / var / log / maillog
mas que iria tentar olhar para o texto Correio nos ficheiros rejeitado (Provavelmente causar um erro
mensagem que o arquivo no existe) e / Var / log / maillog (Onde praticamente todas as linhas
contm o texto Mail). Isso no o que queremos. Em vez disso, ns fazemos muito bem
o que eu
escrevi acima:
$ Grep "Mail rejeitado" / var / log / maillog
Esta invocao compila todos os arquivos fonte C (*. C) e cria um programa foo. Se voc fizer isso
com a Microsoft, o compilador C recebe quatro parmetros, e tem que encontrar os arquivos de origem C
si. No UNIX, o shell expande o texto *. C e substitui-lo com os nomes dos
arquivos de origem. Se h trinta arquivos de origem no diretrio, ele ir passar por um total de 33
parmetros para o compilador.
unixref.mm, v v4.16 (2003/04/02 06:41:29)
125
126
Os caminhos relativos
Cada diretrio contm duas entradas de diretrio, . e .. (Um e dois perodos). So
entradas de diretrio relativo:. uma forma alternativa para se referir ao diretrio atual, e ..
refere-se ao diretrio pai. Por exemplo, em / Home / fred,. refere-se a / Home / fred, e ..
refere-se a / Home. O diretrio raiz no tem um diretrio pai, portanto, neste diretrio
apenas, .. refere-se ao mesmo diretrio. Veremos uma srie de casos em que este useful.1
Caracteres englobamento
A maioria dos sistemas tem um mtodo de representao de grupos de nomes de arquivos e outros nomes,
geralmente usando caracteres especiais para representar uma abstrao. Os mais comuns em
UNIX so os personagens *,? e os colchetes []. UNIX chama esses caracteres
englobamento caracteres. O uso Microsoft vem do UNIX, mas o arquivo subjacente
representao nome faz grandes diferenas. Tabela 7-2 d alguns exemplos.
Tabela 7-2: Exemplos englobamento
Nome
CONFIG. *
Microsoft significado
Todos os arquivos com o nome
CONFIG,
no importa qual a sua extenso.
Todos os arquivos que comecem com CONFIG.BA e tem mais um caacter em seu nome.
CONFIG.BA?
*. *
UNIX significado
Todos os arquivos cujo nome comea com
CONFIG., No importa o que o resto
. Note-se que o nome contm um
perodo.
127
foo [127]
De entrada e de sada
A maioria dos programas ou ler dados de entrada ou escrever dados de sada. Para torn-lo mais fcil, o shell
geralmente comea programas com pelo menos trs arquivos abertos:
Entrada padro, muitas vezes abreviado para stdin, o arquivo que a maioria dos programas de leitura
para obter
os dados de entrada.
Sada padro, ou stdout, o lugar normal para programas para escrever dados de sada.
Sada de erro padro, ou stderr, um arquivo separado para os programas de gravao de erro
mensagens.
Com um shell interativo (que funciona em uma tela de terminal, como o que estamos vendo aqui), tudo
trs arquivos so o mesmo aparelho, neste caso o terminal que voc est trabalhando.
Por que dois arquivos de sada? Bem, voc pode estar a recolher algo importante, como um backup
de todos os arquivos de seu sistema. Se algo der errado, voc quer saber sobre ele, mas
voc no quer estragar o backup com a mensagem.
Redirecionamento de entrada e sada
Mas claro que, mesmo se voc estiver executando um shell interativo, voc no quer fazer backup do seu
sistema para a tela. Voc precisa mudar stdout ser um arquivo. Muitos programas podem fazer isso
-se, por exemplo, voc pode fazer um backup de seu diretrio home assim:
$ Tar-cf / var / tmp / backup ~
Isso cria (opo c) um arquivo (opo f) chamado / Var / tmp / backup, e inclui todos os arquivos
em seu diretrio home (~). Todas as mensagens de erro ainda aparecer no terminal, como stderr
no foi alterado.
Esta sintaxe especfico para tar. A casca fornece uma sintaxe mais geral para redirecionar
fluxos de entrada e de sada. Por exemplo, se voc quiser criar uma lista dos arquivos em seu
diretrio atual, voc pode digitar:
$ Ls-l
drwxr-xr-x
-Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r (Etc)
2
1
5
5
5
1
5
5
raiz
raiz
raiz
raiz
raiz
raiz
raiz
raiz
roda
roda
roda
roda
roda
roda
roda
roda
512
7928
209
1163
271
741
108
482
Dezembro
Outubro
Julho
Jan
Jan
Fevereiro
Jan
Jan
20
23
26
31
31
19
31
31
14:36
12:01
07:11
2002
2002
2001
2002
2002
CVS
Makefile
amd.map
apmd.conf
auth.conf
crontab
csh.cshrc
csh.login
128
Isso coloca a lista no arquivo / Var / tmp / etclist. O smbolo > diz ao shell para redirecionar stdout
para o arquivo cujo nome segue. Da mesma forma, voc pode usar a < para redirecionar stdin quele
arquivo, por exemplo, quando se utiliza grep procurar textos especficos no arquivo:
$ Grep
-Rw-r -Rw-r -Rw-r -
csh
r-5
r-5
r-5
</
roda
roda
grog
Na verdade, porm, h uma maneira melhor de fazer isso: o que estamos fazendo aqui alimentar o
sada de um programa para a entrada de um outro programa. Isso acontece tantas vezes que no h
um mtodo especial de faz-lo, chamado tubos:
$ Ls-l | grep
-Rw-r - r -Rw-r - r -Rw-r - r -
csh
5 roda raiz
5 roda raiz
5 grog Lemis
O | smbolo faz com que o shell para iniciar dois programas. O primeiro tem um arquivo especial, um pipe, como
a sada, e o segundo tem o mesmo tubo como entrada. Nada gravado no disco, e
o resultado muito mais rpido.
Um uso tpico de tubos esto a manipular quantidades de dados de sada em excesso de uma tela cheia.
Voc pode canalizar para o less1 programa, que permite a pgina para trs e para a frente:
$ Ls-l | menos
As variveis de ambiente
O modelo de programao UNIX inclui um conceito chamado variveis de ambiente. Este
nome soa bastante incomum simplesmente um mtodo prtico de passagem relativamente longa durao
informaes de carcter geral a partir de um programa para outro. mais fcil para demonstrar
a utilizao de descrever. Tabela 7-3 d uma olhada em algumas variveis de ambiente tpico.
Para definir as variveis de ambiente a partir de conchas de estilo Bourne, digite:
1. Porqu menos? Originalmente havia um programa chamado mais, mas no to poderoso. menos um novo programa com
recursos adicionais, o que prova sem sombra de dvida que menos mais.
unixref.mm, v v4.16 (2003/04/02 06:41:29)
129
Isso define o valor da PRAZO varivel xterm. A palavra de exportao diz que o shell
passar essa informao para qualquer programa que comea. Uma vez que exportado, ele permanece exportado. Se o
varivel no exportada, s o shell pode us-lo.
Alternativamente, se voc quiser definir a varivel de uma nica vez durante a execuo de um programa, e depois
esquec-lo, voc pode configur-lo no incio de uma linha de comando:
$ TERM = xterm-color vira-lata
Isso inicia o vira-lata leitor mail (ver pgina 472) com cor do xterm funcionalidades ativadas.
Para csh e tcsh, definir variveis de ambiente com:
% Setenv TERM xterm
EDITOR
PGINA
PRINCIPAL
LANG
MAIL
MANPATH
NTAPE
Propsito
O tamanho dos blocos de programas que gosta df contar. O padro de 512 bytes,
mas muitas vezes mais conveniente usar 1024 ou at 1.048.576 (1 MB).
Ao executar o X, o nome do servidor X. Para um sistema local, este
tipicamente unix: 0. Para sistemas remotos, na forma
system-name: server-number.screen-nmero. Para o sistema bumble.example.org, voc provavelmente iria escrever bumble.example.org: 0.
O nome do seu editor favorito. Vrios programas que iniciam editores
olhar para esta varivel para saber qual editor para comear.
O nome do seu diretrio home.
O localidade que voc usa. Este deve ser o nome de um diretrio em
/ Usr / share / locale.
Alguns programas usam esta varivel para encontrar seu arquivo de mensagens recebidas.
Uma lista de nomes de caminho, separados por dois pontos (:), que especifica onde o homem
programa deve procurar pginas man.
Uma seqncia tpica pode ser
/ Usr / share / man :/ usr / local / man, e especifica que no h homem
pginas em cada um dos diretrios / Usr / share / man e / Usr / local / man.
O nome do dispositivo de fita no-retrocesso. Consulte a pgina 252 para mais
detalhes.
Nome
130
SHELL
Propsito
Uma lista de nomes de caminho, separados por dois pontos (:), que especifica onde o shell
deve procurar programas executveis, se voc especificar apenas o nome do programa.
Em conchas de estilo Bourne, esta a seqncia de prompt. geralmente definida como $, Mas
pode ser alterado. Consulte a pgina 114 para uma discusso sobre uma possvel solicitao para
Bash.
Em conchas Bourne estilo, esta a seqncia de prompt para linhas de continuao.
geralmente definida como >.
O nome da shell. Alguns programas usam isso para iniciar uma shell.
TAPE
O nome do dispositivo de fita rebobinando. Consulte a pgina 252 para mais detalhes.
PRAZO
O tipo de emulao de terminal que voc est usando. Isto muito importante:
no h outra maneira de um aplicativo para saber o que o terminal , e
se voc configur-lo para o valor errado, os programas em tela cheia vai se comportar
incorretamente.
Fuso horrio. Este o nome de um ficheiro / Usr / share / zoneinfo que descreve
o fuso horrio local. Veja a seo de cronometragem na pgina 155 para mais
detalhes.
PATH
PS1
PS2
TZ
Nota particular a PATH varivel. Uma das perguntas mais populares no FreeBSDperguntas lista de discusso '' Eu compilei um programa, e eu posso v-lo no meu diretrio,
mas quando tento execut-lo, recebo a mensagem de'' comando no foi encontrado.'' Isso geralmente
porque PATH no inclui o diretrio atual.
uma boa prtica no ter o seu diretrio atual ou seu diretrio home em ThePath: se o fizer,
pode estar sujeito a comprometer a segurana. Por exemplo, algum poderia instalar um programa
chamado ps no diretrio / Var / tmp. Apesar do nome, o programa pode fazer outra coisa, para
exemplo, remover todos os arquivos em seu diretrio home. Se voc alterar o diretrio para / Var / tmp e executar ps,
voc ir remover todos os arquivos em seu diretrio home. Obviamente compromissos muito mais sutis so
possvel.
Em vez disso, execute o programa como este:
$. / Programa
Voc deve definir o seu PATH varivel para apontar para os diretrios executveis mais comuns.
Adicionar algo como isto para o seu . Perfil arquivo (por shells Bourne estilo):
PATH = / usr / bin :/ usr / local / bin :/ usr / sbin :/ bin :/ sbin :/ usr/X11R6/bin
export PATH
131
Este exemplo classifica as variveis para torn-lo mais fcil de encontr-los. Com toda a probabilidade, voc vai
encontrar mais variveis.
Este comando deveria criar a verso PostScript deste captulo, mas, infelizmente,
errei o nome do captulo que deveria ter sido unixref.mm, e eu digitei
unixerf.mm.
Sim, eu sei que isso parece terrvel. Na verdade, UNIX tem maneiras para garantir que voc quase nunca precisam escrever
comandos como este. O comando eu realmente usar para formatar este captulo '' fazer'' unixref.
Seria particularmente frustrante se eu tivesse que digitar todo o comando novamente. UNIX
oferece uma srie de maneiras de tornar a vida mais fcil. O mais bvio to bvio que voc
tendem a tom-lo como certo: o Retrocesso apaga-chave o ltimo caractere digitado. Bem,
a maior parte do tempo. E se voc estiver rodando em uma mquina sem um Retrocesso chave? Voc
no tem esse problema com um PC, claro, mas uma srie de estaes de trabalho tm um DEL chave
em vez de um Retrocesso chave. UNIX permite que voc especifique o que chave usar para apagar a ltima
caractere digitado. Por padro, o personagem realmente apagar DEL, mas o incio do shell
mudanas que ele e imprime uma mensagem dizendo o que tem feito:
unixref.mm, v v4.16 (2003/04/02 06:41:29)
132
Voc notar que ele est definido para Ctrl-C, pelo que a sua funo muito semelhante do MS-DOS
Quebrar chave. estado uma funo excntrico: ele no mudar a entrada, ele apenas exibe uma
mensagem de estatsticas. bater no de fato us-lo: ele tem um uso melhor para Ctrl-T.
Na verdade, esses caracteres de controlo so apenas alguns de um grande nmero de caracteres de controlo que
voc pode definir. Tabela 7-4 fornece uma viso geral dos caracteres de controle mais comuns. Para um
lista completa, veja a pgina man stty (1).
Tabela 7-4: Caracteres de controle de terminal
Nome
Funo
Ir para o incio da linha. Normalmente, este tambm termina entrada (em
Ou seja, ele retorna a linha completa para o programa, que
em seguida, actua sobre a entrada).
CR
Omisso
\ R
NL
\ N
INTR
Ctrl-C
SAIR
Ctrl-|
APAGAR
DEL
MATAR
Ctrl-U
EOF
Ctrl-D
PARAR
Ctrl-S
Pare de sada. Use-o para examinar o texto que est rolando mais rpido do que
voc pode ler.
COMECE
Ctrl-Q
SUSP
Ctrl-Z
133
Nome
DSUSP
Omisso
Ctrl-Y
REPRODUO
Ctrl-R
DESCARTE
Ctrl-O
Funo
Suspenso adiada. Gerar uma SIGTSTP sinalizar quando o personagem
ler. Caso contrrio, esta a mesma SUSP.
Reexibir todos os personagens na fila de entrada (em outras palavras,
caracteres que foram introduzidos, mas ainda no foram lidas por qualquer processo).
O termo "impresso", lembra os dias de terminais harcopy. Muitos
conchas desabilitar esta funo.
Descartar todas as sadas do terminal at que outro DESCARTE carter
chega, mais entrada digitado ou o programa elimina a condio.
Para definir esses caracteres, utilize o stty programa. Por exemplo, se voc est acostumado a apagar a
linha de entrada completo com Ctrl-X, e especificando uma condio de fim de arquivo com Ctrl-Z, voc
poderia entrar:
$ Stty susp \ 377 matar X eof Z
Voc precisa definir SUSP a outra coisa em primeiro lugar, porque, por padro, Ctrl-Z, de modo que o
sistema no sabe qual a funo de realizar, se voc pressionar Z.
A combinao \ 377 representa o caractere octal 377 (esta notao vem do C
linguagem de programao, e sua origem se perde nas brumas do tempo, de volta nos dias em que decorreu UNIX
em PDP-11s). Este personagem o nulo'' personagem'' que desliga a funo correspondente.
Sistema V usa o carcter \ 0 para a mesma finalidade.
134
para edio de estilo Emacs
para edio de estilo vi
Funo
Mover para o incio da linha.
Mova a personagem anterior em linha.
Mova a personagem anterior em linha (alternativa).
Excluir o caractere sob o cursor. Tenha cuidado com este personagem:
tambm personagem de fim-de-arquivo do shell, por isso, se voc entra em um vazio
linha, ele pra o seu shell e registra-lo.
Mover para o fim da linha.
Mover para a prxima personagem na linha.
Mover para a prxima personagem em linha (alternativa).
Apagar o resto da linha. Os contedos so salvos em um buffer de anel de
apagados texto e pode ser restaurado, possivelmente em outros lugares, com Ctrl-Y.
Apague o contedo da tela (shell) ou janela (Emacs) redesenhar.
Mover para a prxima linha de entrada.
Mover para a prxima linha de entrada (alternativa).
Mova a linha de entrada anterior.
Mova a linha de entrada anterior (alternativa).
Incremental para trs busca de texto.
Pesquisa incremental para a frente para o texto.
Transpor o personagem sob o cursor com o personagem antes do
cursor.
Insert anteriormente apagadas com Ctrl-K ou Alt-D.
Desfazer o ltimo comando.
Capitalizar a seguinte palavra.
Excluir a palavra seguinte.
Avanar uma palavra.
Converta a seguinte palavra para minsculas.
unixref.mm, v v4.16 (2003/04/02 06:41:29)
135
Chave
Funo
Alt-T
Transpor a palavra antes do cursor com o depois.
Alt-U
Converta a seguinte palavra em maisculas.
Ctrl + X Ctrl-S Salvar arquivo (somente Emacs).
Ctrl + X Ctrl-C Sair do Emacs editor.
Voc vai notar uma srie de alternativas para as teclas do cursor. H duas razes para eles:
Em primeiro lugar, o shell e Emacs deve trabalhar em sistemas sem teclas de setas do teclado.
A segunda razo no imediatamente bvio: se voc um touch-typer, mais fcil de digitar
Ctrl-P de tomar as suas mos longe do teclado principal e procurar a chave de seta.
As setas so boas para iniciantes, mas se voc se acostumar com as teclas de controle, voc nunca
perca as setas.
O nome do arquivo completo
Como vimos, os nomes de arquivo UNIX pode ser muito mais do que nomes tradicionais da Microsoft,
e torna-se um problema para digit-los corretamente. Para resolver este problema, escudos mais recentes
fornecer concluso de nome de arquivo. No Emacs modo, voc normalmente digitar parte do nome,
em seguida, pressione o Aba chave. As verificaes shell qual arquivo nomes comeam com os caracteres que voc
digitado. Se houver apenas um, ele coloca nos personagens que faltam para voc. Se no houver nenhum,
beeps (anis do terminal de sino''''). Se houver mais do que um, coloca em tantas letras
so comuns a todos os nomes de arquivo e emite um sinal sonoro. Por exemplo, se eu tenho um diretrio
docco no meu diretrio home, eu poderia entrar:
=== Grog @ freebie (/ dev/ttyp4) ~ 14 -> cd docco /
=== Grog @ brinde (/ dev/ttyp4) ~ / docco 15 -> ls
freebsd.faq freebsd.fbc gratuito
=== Grog @ freebie (/ dev/ttyp4) ~ / docco 16 -> emacs freebeepbsd.fbeepaq
Lembre-se que a minha entrada largura constante negrito fonte e de sada do reservatrio de
largura constante fonte. Na primeira linha, entrei para os personagens cd doc seguido por uma
Aba personagem, eo shell concludo com o texto co /. Na ltima linha, entrei no
caracteres emacs f e um Tab. Neste caso, o reservatrio determinou que havia mais
de um nome de arquivo que comeou assim, por isso acrescentou as letras ree e tocou a campainha. Eu
entrou na carta b e pressionado Aba novamente, eo shell acrescentou as letras sd.f e
buzinou novamente. Finalmente, eu adicionei as letras aq para completar o nome do arquivo freebsd.faq.
Concluso da linha de comando em vi modo semelhante: em vez de pressionar Tab, pressione ESC
duas vezes.
136
arquivo de inicializao
. Perfil, ento. Bashrc
. Logon no login, sempre . Cshrc
. Perfil
. Logon no login, sempre . Tcshc,. Cshrc se . Tcshrc no encontrado
Esses arquivos so shell scripts no-outras palavras, os comandos shell retas. Figura 7-3 mostra
um tpico . Bashrc arquivo para definir as variveis de ambiente que discutimos.
umask 022
exportar BLOCKSIZE = 1024
# Para df
export CVSROOT = / src / NCVS
export EDITOR = / opt / bin / emacs
exportao MANPATH = / usr / share / man :/ usr / local / man
exportao MOZILLA_HOME = / usr / local / netscape
exportao PAGER = menos
export PATH = / usr / bin :/ usr / local / bin :/ usr / sbin :/ bin :/ sbin :/ usr/X11R6/bin
PS1 = "=== \ u @ \ h ('tty') \ w \ # ->"
PS2 = "\ u @ \ h \ w \! + +"
exportao SHELL = / usr / local / bin / bash
exportar TAPE = / dev/nsa0
# Nota no rebobinar como padro
if ["$ TERM" = ""], ento
export TERM = xterm
fi
if ["$ DISPLAY" = ""], ento
export DISPLAY =: 0
fi
/ Usr / games / fortune # imprime um biscoito da sorte
137
Se voc quiser ficar com um shell csh-like, voc pode obter melhor linha de comando edio com
tcsh, que tambm se encontra no sistema de base. Voc pode obter tanto melhor edio e linha de comando
Bourne shell com sintaxe Bash, na Coleo de Ports.
Se voc tem raiz acesso, voc pode usar vipw para mudar seu shell, mas no h uma forma mais
maneira geral: usar chsh (Alterar Shell). Basta executar o programa. Ele comea o seu favorito
edio (tal como definido pela EDITOR varivel de ambiente). Aqui est um exemplo antes:
# Alterando informaes de banco de dados de usurio para Velte.
Shell: / bin / csh
Nome Completo: Jack Velte
Localizao:
Telefone Escritrio:
Telefone Residencial:
Voc pode mudar alguma coisa depois dos dois pontos. Por exemplo, voc pode mudar isso para:
# Alterando informaes de banco de dados de usurio para Velte.
Shell: / usr / local / bin / bash
Nome Completo: Jack Velte
Localizao: On the road
Escritrio Telefone: +1-408-555-1999
Telefone Residencial:
chsh verifica e atualiza os arquivos de senha quando voc salvar as modificaes e sair da
editor. A prxima vez que voc fizer login, voc comea o novo shell. chsh tenta garantir que voc no
cometer erros, por exemplo, ele no vai deixar voc digitar o nome de um shell que no
mencionado no arquivo / Etc / shells-mas um muito boa idia para verificar a casca antes
sair. Voc pode tentar isso com su, o que voc normalmente usa para se tornar super-usurio:
bumble # su Velte
Senha:
su-2.00 $
Voc pode ouvir objees ao uso de bater como um shell de root. O argumento algo
assim: bater instalado em / Usr / local / bin, por isso ele no est disponvel, se voc iniciar o singlemodo de usurio, onde apenas o sistema de arquivos raiz est disponvel. Mesmo se voc copi-lo para, por exemplo, / Bin,
voc no pode execut-lo em modo de usurio nico, porque ele precisa de bibliotecas em / Usr / lib.
Na verdade, este no um problema. Se voc instalar o sistema do jeito que eu recomendo no Captulo 5,
/ Usr no sistema de arquivos raiz. Mesmo se no , porm, voc no tem que usar bater em
modo de usurio nico. Quando voc inicializar no modo de usurio nico, voc receber um aviso pedindo que voc
que shell para comear, e sugerindo / Bin / sh.
138
Diferenas da Microsoft
Se voc est vindo de um fundo Microsoft, existem algumas dicas que voc pode
tropear.
Voc pode coloc-lo na frente de outro personagem especial para dizer'' no interprete isso
personagem de alguma forma especial.'' Vimos que o shell interpreta um caractere de espao
como o fim de um parmetro. No exemplo anterior, mudamos E-mail rejeitou a
"Mail rejeitado" para parar o shell de interpret-la. Tambm poderia ter escrito:
\ Mail rejeitado.
Um uso mais comum para este citando dizer ao shell para ignorar o fim de uma linha. Se
uma linha de comando em um shell script fica muito longo, voc pde gostar de dividi-la em vrios
linhas, mas o shell v o fim de uma linha como um aval para executar o comando. Pare
de faz-lo, colocando uma barra invertida imediatamente antes do fim da linha:
$ Grep \
"Mail rejeitado" \
/ Var / log / maillog
Utilizao \ como um caractere de escape causa problemas: como que vamos colocar um \ personagem em um
line? A resposta: cit-lo. Escrever \ \ quando voc quer dizer \. Isso faz com que determinado
problemas na interface com Microsoft: se voc der um nome de caminho para a Microsoft
shell, ele precisa as barras invertidas dobrou: C: \ \ WINDOWS.
Caracteres de tabulao
Ns vimos que o shell trata'' espao em branco'', espaos ou caracteres de tabulao, como o
mesmas. Infelizmente, alguns outros programas no. fazer, sendmail e syslogd fazer
distino entre os dois tipos de personagens, e todos eles necessitam de guias (e no espaos) em
determinados lugares. Este um real incmodo, porque quase nenhum editor faz uma distino
entre eles.
139
O editor Emacs
Alm da casca, a segunda ferramenta mais importante a editor, um programa que cria
e alteraes de textos. Outra divergncia de conceito entre UNIX e Microsoft
ambientes UNIX que lhe d uma escolha dos editores em praticamente qualquer coisa que voc faz.
Produtos Microsoft freqentemente tentam redefinir todo o ambiente, por isso, se voc mudar
utentes, voc tambm pode ter que mudar o editor que voc usa para escrever e-mail. Isto tem um
efeito profundo sobre a maneira de trabalhar. Em particular, a forma como o Microsoft torna
desinteressante para escrever um bom editor, porque voc no pode us-lo o tempo todo.
O editor BSD padro vi, sobre o qual as pessoas falam com uma mistura de admirao,
espanto e horror. vi uma das partes mais antigas do BSD. um editor muito poderoso, mas
ningum diria que fcil de aprender. H duas razes para usar vi:
1. Se voc j um experiente vi hacker, voc provavelmente no vai querer mudar.
2. Se voc fizer um monte de trabalho em diferentes sistemas UNIX, voc pode confiar em vi estar l.
sobre o nico em que voc pode confiar.
Se, por outro lado, no sabe vi, e s funciona em sistemas cujo software
voc pode controlar, voc provavelmente no deve usar vi. Emacs muito mais fcil aprender, e
mais poderoso do que vi.
O editor Emacs
140
A Figura 7-4 mostra o visor resultante. Como voc pode ver, a primeira coisa que Emacs oferece
voc um tutorial. Voc deve lev-la. Voc tambm ver as barras de menu no topo.
Embora paream primitivos em comparao com barras de ferramentas grficos, eles oferecem todo o
funcionalidade dos menus grficos orientados. Alm disso, eles vo te dizer as teclas
que voc pode usar para invocar as mesmas funes. A Figura 7-5 mostra um exemplo da Arquivos
menu.
Existe uma grande quantidade de documentao para Emacs, em grande parte em linha. A completa Emacs
manual est disponvel atravs do Informaes de modo Emacs, que descrito no tutorial. Se
isso no suficiente, leia Aprendizado GNU Emacs, por Debra Cameron, Bill Rosenblatt e
Eric Raymond.
unixref.mm, v v4.16 (2003/04/02 06:41:29)
141
Parando o sistema
Para parar X, pressione a combinao de teclas Ctrl-Alt-Backspace, que escolhido deliberadamente
assemelhar-se a combinao de teclas Ctrl-Alt-Delete usado para reiniciar a mquina. Ctrl-AltRetrocesso X pra e retorna para o terminal virtual em que voc comeou. Se voc
executado a partir de xdm, ele exibe novamente a tela de login.
Para parar o sistema, utilize o encerramento programa. Para isso, voc precisa ser um membro de
grupo operador.
Por padro, o KDE usa o parar programa. Apenas raiz pode usar este programa, ento voc deve
KDE reconfigurar para usar desligamento. Aps isso, voc pode desligar do KDE com o
combinao de teclas Ctrl-Alt-PageDown.
Neste captulo:
Usurios e grupos
O super-usurio
Processos
Daemons
Processos de parada
A marcao do tempo
Os arquivos de log
Processador de mltipla
apoiar
Dispositivos PC Card
Emulando outros
sistemas
Emulando Linux
Emulando SCO UNIX
Emulando Microsoft
Windows
8
Assumindo o controle
No Captulo 7, vimos os conceitos bsicos de trabalhar com FreeBSD. Nesta parte do livro, vamos
olhar para algumas questes mais especficas do sistema. Este captulo aborda os seguintes tpicos:
Nem todos os usurios so criados iguais. Em particular, a administrao de login do sistema raiz
tem poder sobre todos os outros usurios. Ns olharemos raiz na pgina 146.
Na pgina 159, veremos como o FreeBSD lida com sistemas com mais de um
processador. Isto tambm chamado Simtrica Multiprocessador ou SMP apoiar.
Quase todas as laptop moderno tem como nibus especial para cartes de plugin. Ela costumava ser chamado
PCMCIA, um acrnimo para o nome bastante improvvel Pessoal carto de memria de computador
Associao Internacional. Hoje em dia ele chamado PC Card. Mais tarde foi atualizado para uma
Barramento de 32 bits chamado CardBus. Ns veremos como o FreeBSD suporta carto de PC e
CardBus na pgina 159.
143
O FreeBSD completo
144
A partir da pgina 162, veremos o apoio do FreeBSD para emular outros sistemas operacionais
sistemas.
Outros aspectos do FreeBSD so to extensos que vamos dedicar captulos separados para
eles. Vamos olh-los nos captulos 9 a 15.
Usurios e grupos
J olhou para os usurios no Captulo 7. Neste captulo, vamos dar uma olhada mais profunda.
Na tradicional UNIX, informaes sobre os usurios foi mantido no arquivo / Etc / passwd. Como
nome sugere, ele incluiu as senhas que foram armazenados de forma criptografada. Qualquer
usurio poder ler este arquivo, mas a criptografia era forte o suficiente para que ele no era prtico
descriptografar as senhas. Hoje em dia os processadores so muito mais rpido, e muito fcil de quebrar um
senha. Como resultado, FreeBSD mantm a informao real em um arquivo chamado / Etc/master.passwd, e por motivos de desempenho tambm torna disponvel na forma de banco de dados
/ Etc / pwd.db e / Etc / spwd.db. Nenhum destes arquivos so user-readable. / Etc / passwd restos
por razes de compatibilidade: alguns programas de terceiros acess-lo diretamente para obter informaes
sobre o meio ambiente em que esto em execuo.
Sobrenome (lehey).
Iniciais (GPL).
145
Adicionando usurios
Ns j vimos como usar sysinstall para criar um usurio. No a nica maneira. L
so, pelo menos, dois outros mtodos. Um deles o programa adduser:
# Adduser
Use a opo-verbose'''' se voc quiser ver mais avisos e perguntas
ou tentar reparar os erros.
Digite o nome de usurio [a-z0-9]: yana
Digite o nome completo []: Yana Lehey
Digite o shell bash csh data no sh [Bash]:
aceitar o padro
Uid [1000]:
aceitar o padro
Digite classe login: default []:
aceitar o padro
Entrar grupo yana [yana]: home
Grupo de login '' casa''. Convidar yana em outros grupos: no
[No]: roda
para ser capaz de usar o su
Digite a senha []:
sem eco
Digite a senha novamente []:
sem eco
Nome: yana
Password: ****
Nome Completo: Yana Lehey
Uid: 1000
Gid: 1001 (em casa)
Classe:
Grupos: roda de casa
HOME: / home / yana
Shell: / bin / bash
OK? (Y / n) [y]:
Adicionados pelo usurio'''' yana
Adicionar outro usurio? (Y / n) [y]: n
aceitar o padro
Uma maneira alternativa de adicionar ou remover utilizadores com o vipw programa. Esta mais uma
abordagem tpica UNIX-hackish: vipw comea seu editor favorito e permite que voc edite
o contedo do ficheiro / Etc / master.passwd. Depois de ter terminado, ele verifica o contedo
e reconstri o banco de dados de senha. A Figura 8-1 mostra um exemplo.
Usurios e grupos
146
Voc pode estar se perguntando por que voc nunca quer fazer as coisas desta maneira, e voc pode
acho engraado que os administradores UNIX mais experientes preferem. A razo que voc
ter mais de uma viso geral do que com uma abordagem olho mgico que ambientes grficos dar
voc, mas claro que voc precisa entender o melhor formato. menos confuso, uma vez que
sabe que cada linha representa um nico utilizador, de que as linhas esto divididas em campos (Que
pode estar vazia), e que cada campo separada da seguinte por dois pontos (:). Tabela 8-1
descreve os campos que voc v na linha em que o cursor est posicionado. Voc pode ler
mais sobre o formato de / Etc / master.passwd na pgina de manual passwd (5).
Tabela 8-1: / Etc / formato master.passwd
Campo
yvonne
Significado
Nome de Usurio.
1005
1001
Nmero do grupo.
(Vazio)
/ Home / yvonne
/ Bin / bash
(Jargo)
0
Yvonne Lehey
O super-usurio
FreeBSD tem um nmero de usurios privilegiados para vrias funes de administrao. Alguns
so apenas apresentar-se os proprietrios dos arquivos particulares, enquanto outros, como demnio e
uucp, existem para executar determinados programas. Um usurio est acima de todos os outros,
no entanto: root
pode fazer praticamente qualquer coisa. O kernel d raiz privilgios especiais, e voc precisa para
tornar-se raiz para executar um nmero de funes, incluindo a adio de outros utilizadores. Certificar-se
raiz tem uma senha, se houver qualquer possibilidade de que outras pessoas podem acessar seu sistema (esta
uma necessidade, se voc tem qualquer tipo de acesso dial-up). Alm de que, raiz um usurio como qualquer
outro, mas para citar a pgina do manual su (1):
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)
147
Por padro (a menos que o prompt reposta por um arquivo de inicializao) no prompt de superusurio
definido para # para lembrar um de seu poder incrvel.
Para usar su, voc deve ser um membro do grupo roda. Normalmente voc fazer isso quando voc
adicionar o utilizador, mas, caso contrrio basta colocar o nome do utilizador no fim da linha em
/ Etc / group:
wheel: *: 0: root, grog
BSD trata su um pouco diferente do Sistema V. Primeiro, voc precisa ser um membro do grupo
roda, e em segundo lugar BSD lhe d mais do meio ambiente do que o super-usurio do sistema V. Veja a
pgina de manual para mais informaes.
Ter uma nica raiz senha um risco de segurana em um sistema onde vrias pessoas
saber a senha. Se um deles deixa o projeto, voc precisa alterar a senha.
Uma alternativa o sudo port (/ usr / ports / security / sudo). Ele fornece acesso de granulao fina
a raiz privilgios, todos com base na prpria password do usurio. Ningum precisa saber o
raiz senha. Se um usurio deixa, basta retirar a sua conta, e que cancela seu acesso.
Voc tem que digitar a senha antiga para certificar-se de que alguns transeuntes no mud-lo
para voc enquanto voc estiver longe do seu monitor, e voc tem que digitar a nova senha
duas vezes para se certificar de que voc no erra e se tranca para fora de sua conta. Se esta
acontecer de qualquer maneira, voc pode logar como raiz e alterar a senha: raiz no faz
tem que digitar a senha antiga, e isso pode alterar a senha de ningum. Por exemplo:
O super-usurio
148
# Passwd yana
Alterando a senha local para Yana.
New password:
no ecoa
Confirme a nova senha:
no ecoa
passwd: reconstruir o banco de dados ...
passwd: feito
Neste caso, voc deve especificar o nome do usurio para quem voc alterar a senha.
Se voc estiver alterando o raiz senha, tome cuidado: fcil o suficiente para se tranca para fora
do sistema se voc mexer as coisas, o que poderia acontecer se, por exemplo, digitado incorretamente
a senha duas vezes da mesma maneira (no ria, isso acontece). Se voc est rodando o X, aberta
outra janela e utilizao su para se tornar root. Se voc estiver executando em modo de caracteres,
selecione
outro terminal virtual e faa o login como raiz l. Somente quando voc tem certeza que ainda pode
acessar raiz voc deve sair.
Se voc fazer conseguem perder o raiz senha, nem tudo pode ser perdido. Reinicie a mquina para
modo de usurio nico (ver pgina 535), e digite:
# Mount-u /
# Mount / usr
Root # passwd
Digite a nova senha:
Digite a senha novamente:
# D
Se voc tem um separado / Usr sistema de arquivos (o caso normal), voc precisa mont-lo, bem como,
uma vez que o passwd programa est no diretrio / Usr / bin. Observe que voc deve explicitamente
indicar o nome root: no modo de usurio nico, o sistema no tem o conceito de usurio
IDs.
Processos
Como vimos, o UNIX um sistema operacional multi-usurio, multi-tasking. Em particular,
voc pode executar um programa especfico, mais de uma vez. Ns usamos o termo processo para se referir a um
em particular instncia de um programa em execuo. Cada processo dado um processo de identificao, mais
frequentemente referido como PID, um nmero entre 0 e 99999 que o identifica de forma nica.
H muitas coisas que voc gostaria de saber sobre os processos que esto atualmente
correr, tais como:
149
TT
p0
p1
p1
STAT
+
Ss
R +
TEMPO
0:01.02
0:00.62
0:00.03
COMANDO
-Bash (bash)
-Bash (bash)
ps
O PID do processo.
STAT mostra o estado do processo atual. envolvido e requer uma certa quantidade de
a compreenso de como o kernel funciona para interpret-lo, veja a pgina man para ps para
mais detalhes.
TEMPO o tempo de CPU que o processo foi usado em minutos, segundos e centsimos
de um segundo. Note-se que muitos outros sistemas UNIX, particularmente o System V, apenas mostrar
este campo para o segundo mais prximo.
COMANDO normalmente o comando que voc digitou, mas no contam com isso. Na prxima
seo, voc vai ver que sendmail mudou sua COMANDO campo para dizer o que
fazendo. Voc notar que o comando na ltima linha o ps que executa a
listagem. Devido a algum problema de tempo complicado no kernel, este processo pode ou
no aparecem na listagem.
COMEOU
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
1Jan70
COMANDO DE TEMPO
1406:43.85 (idle: cpu0)
1406:44.64 (idle: cpu1)
0:09.10 / sbin / init 15:04.95 (swi1: net)
21:30.29 (swi6: tty: relgio sio)
2:17.27 (aleatrio)
0:00.00 (swi3: cambio)
0:00.00 (IRQ11: ahc0 uhci0 + +)
39:00.32 (IRQ5: rl0)
7:12.92 (IRQ14: ata0)
0:47.99 (IRQ15: ATA1)
Processos
raiz 24 0.0
raiz 25 0.0
raiz 26 0.0
raiz 27 0.0
raiz 340 0.0
raiz 375 0.0
daemon 408 0.0
raiz 420 0.0
raiz 491 0.0
raiz 551 0.0
raiz 562 0.0
raiz 572 0.0
www 582 0.0
grog 608 0.0
raiz 2600 0.0
raiz 33.069 0,0
grog 33081 0,0
150
0.0
0.0
0.0
0.0
0,1
0.0
0.0
0,1
0,1
0.0
0.0
0.0
0.0
0,1
0.0
0.3
0,1
0
0
0
0
12
12
12
12
280
12
152
308
368
12
216
1124
1192
1136
2648
2432
1336
1252
1180
8
2432
8
1316
720
1180
8
5352
1716
1328
752
?
?
?
?
?
?
?
?
?
?
?
v2
?
v0
v1
?
p8
DL
DL
DL
DL
S
Ss
Ss
Ss
Ss
Ss
IWs +
IW
Eu
IWs +
Ss
+
1Jan70
0:00.08 (usb0)
1Jan70
0:00.00 (usbtask)
1Jan70
0:00.07 (usb1)
1Jan70
0:00.08 (usb2)
18Dec02 16:41.11 nfsd: servidor (nfsd)
18Dec02 0:01.70 / usr / sbin / lpd
18Dec02 0:11.41 / usr / sbin / rwhod
18Dec02 0:04.20 / usr / sbin / sshd
18Dec02 0:38.61 / usr / local / sbin / httpd
18Dec02 0:02.71 / usr / sbin / inetd-WW
18Dec02 0:15.50 / usr / sbin / cron
0:00.00 / usr / libexec / getty Pc
- 0:00.00 / usr / local / sbin / httpd
18Dec02 0:00.04-bash (bash)
0:00.00 / usr / libexec / getty Pc
29Dec02 0:01.30 xterm-name xterm
29Dec02
0:00.09 / usr / local / bin / bash
Esta lista apenas um trecho. Mesmo em um sistema recm instalado, a lista real dos processos ser
ser muito maior, de cerca de 50 processos.
Temos visto um nmero desses campos j. Os outros so:
CPU% uma contagem aproximada da proporo do tempo de CPU que o processo apresenta
vindo a utilizar nos ltimos segundos. Esta a coluna para examinar se as coisas de repente
ficar lento.
VSZ (Tamanho virtual) a quantidade de memria virtual que o processo est a utilizar, medido
em kilobytes.
Daemons
Uma parte significativa do trabalho em um sistema FreeBSD realizado por daemons. Um daemon
No apenas o mascote BSD descrito na pgina 20 tambm um processo que se passa em torno de
o plano de fundo e faz o trabalho de rotina, tais como o envio de e-mail (sendmail), manipulao
conexes de entrada da Internet (inetd), ou trabalhos a partir de determinados momentos (cron).
Para citar o Dicionrio de Ingls Oxford: Demnio Tambm daemon. ME [Na forma e no sentido I, a. L.
daemon (Med. L. demnio) ...] 1a. Na antiga mitologia grega (= ' ): Um ser sobrenatural
um intermedirio entre a natureza dos deuses e dos homens, uma divindade inferior, esprito, gnio (incluindo
as almas das pessoas falecidas, esp heris divinizados). Muitas vezes, por escrito daemon para a distino.
151
cron
Um dos daemons mais teis cron, em homenagem a Pai Tempo. cron executa
funes em horrios especficos. Por exemplo, o sistema executa o script / Etc / periodic / daily
todos os dias s 02h00, o script / Etc / peridica / semanal todos os sbados s 03h30, e os
escrita / Etc / peridica / mensal no primeiro dia de cada ms s 05h30.
Para dizer cron para executar uma funo em um determinado momento, voc precisa de um arquivo chamado crontab.
O sistema mantm o real crontab onde no se pode chegar a ela, mas voc pode manter uma cpia.
uma boa idia de cham-lo crontab bem.
Vamos olhar para o formato padro do sistema crontab, localizado em / etc / crontab:
# / Etc / crontab - crontab do root para FreeBSD
#
# $ Id: crontab, v 1.10 1995/05/27 01:55:21 Exp ache $
# De: Id: crontab, v 1.6 1993/05/31 02:03:57 Exp cgd
#
SHELL = / bin / sh
PATH = / etc :/ bin :/ sbin :/ usr / bin :/ usr / sbin
HOME = / var / log
#
# Minuto hora
mday ms
wDay que
comando
#
* / 5 *
*** Raiz
/ Usr / libexec / atrun
#
# Rodar arquivos de log a cada hora, se necessrio
# 0 *
*** Raiz
/ Usr / bin / newsyslog
#
# Fazer a manuteno diria / semanal / mensal
0 2 *** raiz
/ Etc / dia 2> & 1
30 3
** 6 raiz
/ Etc / semanal 2> & 1
30 5
1 ** raiz
/ Etc / mensal 2> & 1
#
# Tempo de ajuste mudana de fuso para a parede CMOS de relgio,
# Veja adjkerntz (8) para mais detalhes.
1,31 0-4
*** Raiz
/ Sbin / adjkerntz-a
Como de costume, as linhas comeando com # so comentrios. Os outros tm sete campos. Os cinco primeiros
campos especificam a cada minuto, a hora, o dia do ms, o ms e dia do
semana em que deve ser realizada uma ao. O personagem * meio'' cada''. Assim, 0
2 *** (Por / Etc / dia) significa'' 0 minutos, duas horas (no relgio de 24 horas), todos os dias
do ms, a cada ms, a cada dia da semana.''
Nmero do campo seis especial: ela s existe em / Etc / crontab, e no em crontabs privadas. Ele
especifica o utilizador para o qual deve ser realizada a operao. Quando voc escreve o seu
prprio crontab arquivo, no use este campo.
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)
Daemons
152
crontab crontab
instalar um crontab
crontab-l
listar o contedo de um crontab instalado
No edite esse FILE - editar o mestre e reinstalar.
(Crontab instalado em Qua 01 de janeiro 15:15:10 1997)
(Verso Cron - $ Id: crontab.c, v 1.7 1996/12/17 00:55:12 PST Exp $)
0 *** / home / grog / Scripts / gira-log
12? RL
12? RL
12
13
18
20
21
22
23
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0
0
0
0
0
0
0
12
12
12
12
12
12
12
?
?
?
?
?
?
?
WL
WL
WL
WL
WL
WL
WL
Estes processos lidar com interrupes de hardware (IRQ) ou interrupes de software (SWI). O
texto que se segue d uma ideia do que os dispositivos de software ou servios que eles suportam.
topo
Outra ferramenta para investigar o desempenho do sistema parte superior, que mostra uma srie de
critrios de desempenho, incluindo o status dos processos esto usando a maioria dos recursos.
Inici-lo com o nmero de processos que voc deseja exibir. A Figura 8-2 mostra um exemplo.
153
$ Top-S 10
ltima pid: 3992; mdias de carga: 0,59, 0,17, 0,06 por 0 +23:54:49 17:25:13
87 processos: trs em execuo, 73 dormir, 8 de espera, trs de bloqueio
CPU estados: 10,2 user%, 0,0% agradvel, sistema de 18,8%, 1,7% de interrupo, 69,4% idle
Mem: 43M Ativo, INACT 36M, 31M Wired, Cache 7460K, Buf 22M, 2996K grtis
Swap: Total de 512M, 512M grtis
PID
USURIO
raiz
raiz
grogue
raiz
raiz
grogue
raiz
raiz
raiz
raiz
12
1
2854
20
2925
3193
3783
167
25
110
C
TEMPO WCPU
CPU COMANDO
0 23.7H 55,32% 55,32% idle: cpu0
1 23.7H 54,49% 54,49% idle: cpu1
1
0:04 3,88% 3,86% xterm
1 0:08 0,83% 0,83% IRQ14: ata0
1
0:01 0,15% 0,15% make
00:01 0 0,15% 0,15% superior
1
0:00 0,10% 0,05% make
0
01:02 0,00% 0,00% xcpustate
00:28 0 0,00% 0,00% IRQ9: xl0
1
0:26 0,00% 0,00% ntpd
A primeira linha d informaes sobre o ltimo destinou PID (voc pode usar isso para
seguir o nmero de processos sendo criados) ea carga mdia, o que d
informaes sobre quantos processos esto espera de ser agendada.
A linha seguinte d uma viso geral das estatsticas do processo, e em que estado se encontram. A
processo espera por eventos externos para completar, ele espera em um bloqueio, se algum outro processo
tem um recurso do kernel que ele quer.
A terceira linha mostra o percentual de tempo utilizado em modo de usurio, no sistema (kernel)
Modo e por interrupes.
A quinta linha mostra as estatsticas de swap. Quando ocorre a troca de actividade, parece tambm
nesta linha.
Daemons
154
Processos de parada
s vezes voc pode achar que voc quiser parar um processo em execuo. Existem
nmero de maneiras de fazer isso, mas o mais fcil :
Se o processo est sendo executado em um terminal, e ele est aceitando entrada, pressionando a tecla EOF
(Normalmente Ctrl-D), muitas vezes, faz-lo.
Aqui, cron usa 97% do tempo de CPU, e acumulou ao longo de 2 horas de CPU
vez desde esta manh. bvio que doente, e devemos coloc-lo fora de sua misria.
Para par-lo, digite:
# Kill 105
Este comando envia um sinal de chamada SIGTERM (Encerrar) para o processo. Este sinal
d o tempo do processo para arrumar antes de sair, por isso voc deve sempre tentar us-lo
em primeiro lugar. O 105 PID do cron, que temos a partir do ps de comando.
Se o processo no desaparece dentro de alguns segundos, provavelmente ignorando SIGTERM.
Neste caso, voc pode usar a arma definitiva:
# Kill -9 105
O -9 o nmero de SIGKILL, um sinal que no pode ser detectada ou ignorados. Voc pode
encontrar uma lista dos sinais e seus valores numricos em / Usr / include / sys / signal.h, que
parte do pacote de desenvolvimento de software.
FreeBSD tambm tem um script chamado killall. Como o nome indica, ele mata um grupo de
processos, por nome. Se voc achar que voc tem, digamos, um monte de fugitivo sendmail
processos, voc pode salvar o dia escrevendo:
# Killall sendmail
Como veremos em outro lugar, voc tambm pode usar killall para enviar um sinal para um processo nico quando
voc sabe que apenas um est presente. Por exemplo, para causar inetd reler o seu
arquivo de configurao, voc pode escrever:
# Killall -1 inetd
155
A marcao do tempo
FreeBSD um sistema de rede, mantendo assim a hora certa mais importante do que em um
sistema autnomo. Alm do problema bvio de manter o mesmo tempo que a outra
sistemas locais, tambm importante para manter o tempo com os sistemas de outros fusos horrios.
Internamente, o FreeBSD mantm o tempo como o nmero de segundos desde o epoch, a
incio da histria registrada: 00:00:00 UTC, 1 de Janeiro de 1970. UTC o internacional
zona horria da base e meio Tempo Universal Coordenado, apesar das iniciais. Ele
corresponde muito de perto, mas no exatamente, para Greenwich Mean Time (GMT), o local de mdia
tempo na Inglaterra no inverno. Seria inconveniente para manter todas as datas em UTC, de modo que o
sistema entende o conceito de fusos horrios. Por exemplo, em Walnut Creek, CA, o
fuso horrio no inverno chamado PST (Pacific Standard Time), e no vero
PDT (Pacific Daylight Time). FreeBSD vem com um conjunto de arquivos de descrio de fuso horrio em
a hierarquia de diretrio / Usr / share / zoneinfo. Ns j vimos na pgina 95, que quando
voc instalar o sistema, que armazena informaes sobre o fuso horrio local no arquivo
/ Etc / localtime. Se voc mover fusos horrios, voc deve alterar o fuso horrio, e no o tempo,
ou atravs da execuo do tzsetup programa, ou simplesmente copiando o arquivo. Por exemplo, se
viajar com um laptop de Adelaide, Austrlia do Sul, a San Francisco CA, voc faria:
# Cp / usr / share / zoneinfo / America / Los_Angeles / etc / localtime
A varivel de ambiente TZ
Um meio alternativo de descrever o fuso horrio definir a varivel de ambiente TZ,
que ns olhamos na pgina 128. Voc pode usar esta forma, se voc estiver conectado a um
sistema remoto em um fuso horrio diferente, ou talvez apenas para encontrar o tempo em algum outro lugar.
Por exemplo, em Adelaide, SA que eu poderia encontrar:
$ Date
Sun 14 abr 13:31:15 CST 2002
$ TZ = America / Los_Angeles data
Sb 13 abr 2002 21:01:15 PDT
Defina o TZ varivel para o nome da zona de arquivo de informaes do tempo no / Usr / share / zoneinfo
hierarquia. Por exemplo, o valor de TZ para Berlim, a Alemanha Europe / Berlin em
FreeBSD.
A marcao do tempo
156
A primeira linha define o servidor. O valor, neste exemplo, invlido, por isso no tente usar
lo. importante ter um perto de voc: atrasos de rede pode prejudicar significativamente o
exactido dos resultados. ntpd usa o arquivo / Etc / ntp.drift para registrar informaes sobre o
(In) exatido do relgio do sistema local. Voc s precisa da linha final, se voc tiver outros
sistemas na rede que esperar por uma mensagem de difuso. Especifica a transmisso
endereo para a rede e tambm diz ntpd para transmitir neste endereo.
Depois de configurar o arquivo, voc s precisa comear ntpd :
# Ntpd
Para garantir que ntpd iniciada cada vez que voc reiniciar, certifique-se de que voc tem o
seguintes linhas de / Etc / rc.conf :
ntpd_enable = "YES"
157
Voc no pode usar tanto ntpdate e ntpd ao mesmo tempo: ambos usam a mesma porta. ntpd
leva algum tempo para sincronizar, e se o tempo est totalmente fora, no vou nem tentar, ento
muitas vezes uma boa idia para executar ntpdate na inicializao e, em seguida, comear a ntpd manualmente.
Os arquivos de log
Vrios componentes de relatar problemas FreeBSD ou itens de interesse como eles acontecem. Para
exemplo, sempre pode haver problemas com a entrega de correio, para um servidor de correio deve manter
algum tipo de registro do que vem fazendo. Se ocorrerem problemas de hardware, o kernel
deve relat-los. Se algum tenta invadir a mquina, os componentes afetados
deve relatar o fato.
FreeBSD tem um sistema generalizado de registro tais eventos. O syslogd daemon leva
mensagens de vrias fontes e escreve-los para vrios destinos, geralmente arquivos de log
no diretrio / Var / log. Voc pode alterar este comportamento modificando o arquivo
/ Etc / syslog.conf. Veja syslog.conf (5) para mais detalhes. Alm de syslogd, outro
programas escrever diretamente para arquivos nesse diretrio. Os seguintes arquivos so de interesse:
XFree86.0.log contm o arquivo de log para o ltimo (ou atual) X sesso comeou em
exibir 0. Esta a principal fonte de informao, se voc tiver problemas com o X.
auth.log contm informaes sobre a autenticao do usurio. Por exemplo, voc pode
veja:
10 de dezembro 10:55:11 bumble
10 de dezembro 12:00:19 bumble
10 de dezembro 12:00:19 bumble
10 de dezembro 00:06:52 bumble
port 49564 ssh2
10 de dezembro 12:06:58 bumble
Os arquivos de log
158
5
5
5
5
16:00:00
16:05:00
16:05:00
16:10:00
bumble
bumble
bumble
bumble
newsyslog [2668]:
/ Usr / sbin / cron
/ Usr / sbin / cron
/ Usr / sbin / cron
logfile entregue
[2677]: (root) CMD (/ usr / libexec / atrun)
[2678]: (root) CMD (/ usr / libexec / atrun)
[2683]: (root) CMD (/ usr / libexec / atrun)
dmesg.today e dmesg.yesterday so criadas pela cron trabalho em duas horas todos os dias. O
dmesg buffer de mensagens envolve, substituindo as entradas mais antigas, para que eles possam ser de uso.
lastlog um arquivo de gravao de ltima informao de login binrio. Voc normalmente no acess-lo
diretamente.
O arquivo ppp.log contm informaes sobre as conexes PPP. Ns olhamos para ele na pgina
353.
O arquivo wtmp contm informaes sobre logins no sistema. Como lastlog, est em
forma binria. Ver utmp (5) para o formato de dois lastlog e wtmp.
Um grande nmero de arquivos de log mais importantes so mantidos por vrios ciclos. Como o exemplo
acima mostra, cron corre o newsyslog comandar a cada hora. newsyslog verifica o tamanho
dos ficheiros, e se forem maiores do que um certo tamanho, renomeia os antigos dando
lhes uma extenso numrica um maior do que o atual, ento muda o nome do arquivo de base
com uma extenso 0,0 e comprime. O resultado se parece com isso:
-Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -
1
1
1
1
1
1
1
raiz
raiz
raiz
raiz
raiz
raiz
raiz
newsyslog tem um arquivo de configurao / Etc / newsyslog.conf, que discutiremos na pgina 565.
159
Para outras plataformas, voc no precisa APIC_IO. Consulte o Captulo 33 para obter informaes
sobre como
construir um novo kernel.
Dispositivos PC Card
Como j vimos, os dispositivos PC Card so especiais porque pode ser conectada a quente.
Eles tambm se destinam a ser reconhecidos automaticamente. Comeando com verso 5, FreeBSD
reconhece a insero e remoo de cartes no kernel e invoca o driver apropriado para
manipular o evento. Quando voc insere um carto que voc vai ver algo parecido com isso no sistema
console:
ata2 na porta 0x140-0x14f irq 11 funo de configurao 0 1 em pccard0
ad4: 7MB <LEXAR ATA FLASH> [251/2/32] em ata2-master BIOSPIO
Este um carto de memria flash compacto, que o sistema considera como um disco ATA. O kernel
criou as estruturas necessrias, mas no pode saber como montar o dispositivo, para
exemplo. Veremos o que podemos fazer sobre isso na prxima seo.
Dispositivos PC Card
160
anexar declaraes especificar qual ao a ser executada quando um dispositivo conectado. Para
exemplo:
anexar 0 {
device-name "$ scsi-controlador-regex";
ao "CamControl redigitalize tudo";
};
Finalmente, se o kernel no foi capaz de localizar um driver para a placa, ele gera um preo
evento, que tratada pela NoMatch declarao.
Ento, o que faz DEVD fazemos quando inserir o carto compact flash? Por padro, nada. O
Motorista ATA reconhece e configura o carto. Seria bom ter DEVD mont-lo
bem. Isso relativamente simples:
Certifique-se de que voc tem uma entrada para o dispositivo em / Etc / fstab. As cmeras digitais criar um
nico sistema de arquivos MS-DOS em cartes de memria flash. Uma entrada apropriada no / Etc / fstab para esta
dispositivo pode ser:
/ Dev/ad4s1
/ Cmera
msdos
rw, noauto
Este um dispositivo removvel, ento voc deve usar o noauto palavra-chave para parar o sistema
tentando mont-lo na inicializao do sistema.
No opes seo / Etc / devd.conf, adicione uma expresso para reconhecer os nomes de
Controladores ATA:
definir ata-controlador-regex
"Ata [0-9] +";
161
Restart DEVD :
# Killall DEVD
# DEVD
Depois disso, o sistema de arquivos ser montado automaticamente quando voc inserir o carto.
Dispositivos PC Card
162
Emuladores e simuladores
H um certo nmero de maneiras de executar software escrito para uma plataforma diferente. O
mais populares so:
FreeBSD pode emular muitos outros sistemas at um ponto onde as aplicaes escritas para estes
sistemas ser executado sob FreeBSD. A maioria dos emuladores so na coleo de ports no
diretrio / Usr / ports / emuladores.
Num certo nmero de casos, o suporte de emulao em fase experimental. Aqui est um
Resumo:
FreeBSD tambm vai rodar a maioria dos executveis do NetBSD e OpenBSD, embora no muitos
as pessoas fazem isso: mais seguro para recompilar os sob FreeBSD.
FreeBSD executado executveis do Linux com o auxlio do linux kld (Kernel carregvel
mdulo). Veremos como us-lo na prxima seo.
FreeBSD pode rodar executveis COFF SCO com o auxlio do iBCS2 kld. Este apoio
um pouco irregular: embora os executveis ser executado, voc pode ter problemas
causada por diferenas na estrutura de diretrios entre SCO e FreeBSD. Vamos
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)
163
A Microsoft Windows emulador est disponvel. Vamos olhar para ele na pgina 165.
Emulando Linux
Linux um sistema operacional UNIX-like, que em muitos aspectos muito semelhante ao FreeBSD.
Discutimos o assunto na pgina 10. Embora parea muito UNIX-like, muitos dos internos
as interfaces do kernel so diferentes daquelas do FreeBSD e outros sistemas baseados em UNIX. O
Pacote de compatibilidade Linux lida com essas diferenas, e mais software Linux ser executado
em FreeBSD. A maioria das excees usar drivers especficos que no funcionam no FreeBSD,
embora haja um esforo considervel para minimizar ainda nesta categoria.
Para instalar o emulador de Linux, voc deve:
Se voc no quer fazer isso por algum motivo, voc pode inici-lo a partir da linha de comando:
# Kldload linux
Tamanho
1d08b0
a000
3000
E000
Nome
ncleo
ibcs2.ko
ibcs2_coff.ko
linux.ko
Este perfil mostra que a emulao SCO UNIX (iBCS2) tambm foi carregado.
O emulador de Linux e muitos programas Linux esto localizadas na hierarquia de diretrios
/ Usr / compat / linux. Voc normalmente no ir precisar acess-los diretamente, mas se voc pegar um
Programa Linux que inclui as bibliotecas destinadas a / Lib, voc ter que colocar manualmente
los em / Usr / compat / linux / lib. Ser muito cuidado para no substituir os arquivos no / Usr / lib
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)
Emulando Linux
164
hierarquia com as bibliotecas do Linux, o que tornaria impossvel para executar programas do FreeBSD
que dependem deles, e frequentemente muito difcil de recuperar esses problemas.
Note-se que o FreeBSD no tem um diretrio / Lib, portanto, o perigo relativamente menor.
Linux procfs
Sistemas Linux tem um sistema de arquivo chamado procfs, ou processo de sistema de arquivo, que contm
informaes utilizadas por muitos programas. FreeBSD tambm tem um procfs, mas completamente
diferente. Para ser capaz de executar programas Linux que se referem a procfs, coloque o seguinte
entrada no seu / Etc / fstab arquivo:
linproc
rw
Este exemplo deliberadamente mostra uma verso muito antiga do StarOffice: no claro que no
quaisquer binrios modernos que causam esses problemas.
165
# Kldload iBCS2
Um problema com a emulao SCO as bibliotecas compartilhadas SCO. Estes so necessrios para
executar muitos executveis SCO, e eles no so fornecidos com o emulador. Eles so
fornecido com sistemas operacionais da SCO. Verifique a licena SCO para determinar se
voc tem permisso para us-los em FreeBSD. Voc tambm pode ser elegvel para um SCO livre
licena de ver o site SCO para mais detalhes.
Este acessrio tem um tipo MIME inespecficos, 1, mas voc pode imaginar que Microsoft
Formato Word, porque o nome do arquivo termina em . Doc. Isso no faz com que seja mais legvel.
Para l-lo, voc precisa de algo que entendem esse formato. Uma boa escolha
OpenOffice.org, um clone de'' Microsoft Office'' produto. Instalar a partir dos Portos
Collection (/ usr / ports / editores / OpenOffice).
OpenOffice.org no um bom exemplo da forma como UNIX. Ele quebra uma srie de
convenes e, em geral, muito mais difcil de usar do que as ferramentas FreeBSD normais. Sua
nica vantagem real que voc pode processar formatos de documentos Microsoft.
1. Consulte o Captulo 26, Correio eletrnico: clientes, pgina 486, para mais informaes sobre MIME.
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)
Neste captulo:
Como instalar um
pacote
Construo de um porto
Pacote
documentao
Ficando somente binrio
software
Manter as portas
Atualizando as portas
Controlar instalado
portas
Submeter um novo
porto
A coleo de Ports
A Internet est cheia de software livre, que normalmente distribudo na forma de cdigo fonte. Isso pode
ser um problema em si mesmo: o caminho do arquivo fonte que voc se livrar da Internet
ao, instalado, funcionando programa acabado em sua mquina-normalmente chamado portarpode ser um longo e frustrante. Veja o meu livro Portando UNIX Software para mais detalhes
do processo de portabilidade.
Para obter um pacote de software instalado e funcionando em seu sistema, voc precisa passar por mais
destas etapas:
1. Obter os arquivos de origem em sua mquina. Eles so geralmente contido numa arquivo, um arquivo
contendo um certo nmero de outros ficheiros. Arquivos usados para a coleta portas esto
geralmente compactado arquivos, embalados com alcatro e comprimidos com gzip, mas outros
formatos tambm so possveis. Seja qual for o formato, voc normalmente usa ftp para lev-los a
sua mquina.
2. Descompacte o arquivo em um rvore de origem, neste caso usando gunzip e tar.
3. Configure o pacote. A maioria dos pacotes incluem shell scripts para fazer isso. Configurao
realiza uma adaptao triplo do pacote:
1. Ele se adapta-lo para o hardware do sistema.
2. Ele se adapta ao ambiente de software que est em execuo (neste caso, FreeBSD).
3. Ele se adapta-lo s suas preferncias pessoais.
4. Construa o pacote. Para a maioria dos pacotes, isso envolve a compilao dos arquivos de origem e
a criao de arquivos executveis. A principal ferramenta para essa finalidade fazer, que usa um conjunto de
regras, tradicionalmente armazenados em um arquivo chamado Makefile, para decidir como construir o pacote.
H quase sempre um Makefile nas fontes, mas a coleo de ports inclui um
ports.mm, v v4.12 (2003/04/02 06:43:08)
167
O FreeBSD completo
168
O que a rvore de ports, e como compilar e instalar ('' construo'') um pacote. Vamos
olhar para isso na pgina 169.
169
Alternativamente, voc pode instalar os pacotes a partir do sysinstall menu de configurao final
mostrado na Figura 6-1, na pgina 92.
Construo de um porto
A forma mais geral para instalar software de terceiros com um port. O projeto FreeBSD
utiliza o termo porto para descrever os arquivos adicionais necessrios para adaptar um pacote para construir
sob FreeBSD. Faz no incluem o prprio cdigo de fonte, embora o CD-ROM
distribuio inclui muitos arquivos de cdigo no diretrio / Ports / distfiles, distribudos por
vrios dos CD-ROMs.
Antes de comear com as portas, voc precisa instalar as informaes de porta em seu
sistema. Normalmente ser em / Usr / ports. Esta rvore de diretrios freqentemente chamado de
Portas Tree. H um certo nmero de maneiras para instal-los.
Se voc s quer extrair um nico pacote, digamos pousada, que est na categoria notcias, digite:
# Cd / usr
# Tar xzvf / cdrom / portas / portas ports.tgz / news / inn
preciso um tempo surpreendentemente longo para instalar as portas, embora no haja muitos dados no
arquivo, h cerca de 250 mil arquivos nele, e que a criao de muitos arquivos tem um monte de disco
I / O.
Construo de um porto
170
Os diretrios alpha, i386, ia64 e sparc64 conter pacotes (no portas) para o
arquitetura correspondente. distfiles contm um grande nmero de fontes originais para
os pacotes de terceiros, concebida como um ltimo recurso'' localizao'' se voc no pode encontr-los em
outros locais.
O diretrio Local-distfiles usado por pessoas que trabalham na coleo de ports, voc no
normalmente precisa de alguma coisa a partir desses diretrios. Os diretrios importantes para voc
portos, portos atual e portos estvel. Atualmente estes so realmente tudo no mesmo diretrio,
mas as coisas no podem continuar assim.
Voltando ao seu emacs port: voc iria encontr-lo no diretrio / Pub/FreeBSD / ports / ports / editores /. Nota final / em que o nome do diretrio: se voc deix-lo fora, ftp
imprime uma mensagem de erro e sai. Aqui est o que pode acontecer:
$ Ftp ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/ports/editors/
Conectado a ftp.beastie.tdk.net.
220 servidor FTP ftp.beastie.tdk.net (Verso 6.00LS) pronto.
331 visitantes de login ok, envie seu endereo de e-mail como senha.
230 - O espelho FreeBSD no Tele Danmark Internet.
... Muito sinopse omitido
250 comando CWD bem sucedida.
250 comando CWD bem sucedida.
ftp> ls
229 Entering Passive Mode Extended (| | | 55649 |)
ports.mm, v v4.12 (2003/04/02 06:43:08)
171
150 Abertura
total de 704
...
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
...
1006
1006
1006
1006
1006
1006
1006
1006
1006
1006
1006
1006
512
512
512
512
512
512
Maio
Maio
Maio
Maio
Maio
Maio
20
20
20
20
20
20
10:07
10:08
10:08
10:08
10:08
10:08
emacs
emacs20
emacs20-dl
emacs20-mule-devel
emacs21
eshell-emacs20
Isso mostra que os arquivos estaro no diretrio emacs21. Voc pode obt-los com a
ftp mget comando:
ftp> mget emacs21
mget emacs21/files [anpqy?]? um
answera para todos os arquivos
Solicitao de fora, com durao de mget.
ftp:local: emacs21/files: Nenhum tal lima ou diretrio
ftp:local: emacs21/Makefile: Nenhum tal lima ou diretrio
(Etc)
Isso acontece porque voc precisa criar o diretrio de destino manualmente. Tente de novo:
ftp>! mkdir emacs21
criar o diretrio local
ftp> mget emacs21
mget emacs21/files [anpqy?]? um
Solicitao de fora, com durao de mget.
229 Entering Passive Mode Extended (| | | 57074 |)
550 emacs21/files: No um arquivo simples.
229 Entering Passive Mode Extended (| | | 57085 |)
150 Opening BINARY conexo de dados para o modo 'emacs21/Makefile' (2185 bytes).
100% | ************************************* | 2185 2,34 MB / s ETA 00:00
226 Transferncia concluda.
(Etc)
Voc ter um desses para cada arquivo transferido. Mas note a mensagem de erro: no um arquivo simples.
emacs21/files um diretrio, por isso temos de busc-la separadamente:
ftp>! emacs21/files mkdir
ftp> mget emacs21/files
mget emacs21/files/patch-lib-src: Makefile.in [anpqy?]? um
Solicitao de fora, com durao de mget.
229 Entering Passive Mode Extended (| | | 57258 |)
150 Opening BINARY conexo de dados para o modo 'emacs21/files/patch-lib-src: Makefile.in
'(908 bytes).
100% | ************************************* |
908 1.64 MB / s ETA 00:00
226 Transferncia concluda.
(Etc)
Note-se que o ftp comando especifica o URL do diretrio. Ele deve ter uma fuga /,
caso contrrio ftp vai reclamar. Este formulrio suportado pelo FreeBSD ftp, mas muitos outros ftp
clientes vai exigir que voc faz-lo em duas etapas:
Ftp.FreeBSD.org # ftp
Conectado a ftp.beastie.tdk.net.
(Etc)
ftp> cd / pub / FreeBSD / ports / ports / editores
250 comando CWD bem sucedida.
Construo de um porto
172
H um ndice em / Usr / ports / index. Se voc tiver atualizado a rvore de ports, voc pode
fazer o ndice com os seguintes comandos:
# Cd / usr / ports
# Make ndice
Note-se que existem cerca de 1.000 pginas de sada, que se parecem com isto:
Porto:
Caminho:
Info:
Manut:
ndice:
B-deps:
R-deps:
zip-2.3_1
/ Usr / ports / arquivadores / zip
Criar / atualizar arquivos ZIP compatveis com pkzip
ache@FreeBSD.org
archivers
unzip-5.50
Voc pode procurar por uma palavra-chave especfica com a procurar alvo. Por exemplo, para encontrar
portos relacionada com Emacs, voc pode digitar:
# Cd / usr / ports
# Fazer pesquisa key = Emacs | menos
173
Voc pode construir uma srie de quase 10 mil html pginas como esta:
# Cd / usr / ports
# Make readmes
cd / cd4/ports/distfiles
mkdir-p / usr / ports / distfiles
verifique se voc tem um diretrio distfiles
for i in *; fazer
ln-s / cd4/ports/distfiles / $ i / usr / ports / distfiles / $ i
feito
cd / cd4/ports/distfiles
mkdir-p / usr / ports / distfiles
verifique se voc tem um diretrio distfiles
foreach i (*)
ln-s / cd4/ports/distfiles / $ i / usr / ports / distfiles / $ i
final
Isso cria um link simblico para cada arquivo de distribuio, mas se o arquivo para uma porta especfica no
l, a coleo de ports pode busc-lo e armazen-lo no diretrio.
Construo de um porto
174
Construo do porto
Depois de ter os arquivos de esqueleto para a porta, o resto simples. Basta digitar:
# Cd / usr/ports/editors/emacs21
# Make
# Make install
====>
====> Para ativar o suporte menu fontset, definir WITH_MENUBAR_FONTSET
====>
>> Emacs-21.2.tar.gz no parecem existir em / usr / ports / distfiles /.
>> Tentando buscar a partir ftp://ftp.gnu.org/gnu/emacs/.
===> Extrair para emacs-21.2_1
>> Checksum OK para emacs-21.2.tar.gz.
===> Emacs-21.2_1 depende executvel: gmake - encontrado
===> Emacs-21.2_1 depende executvel: autoconf213 - no encontrado
===> Verificando a instalao para autoconf213 em / usr/ports/devel/autoconf213
===> Extrair para autoconf213-2.13.000227_2
>> Checksum OK para autoconf-000227.tar.bz2.
===> Autoconf213-2.13.000227_2 depende executvel: GM4 - no encontrado
===> Verificando a instalao para GM4 em / usr/ports/devel/m4
===> Extrair para m4-1.4_1
>> Checksum OK para m4-1.4.tar.gz.
===> Correo para m4-1.4_1
===> Aplicao de patches do FreeBSD para m4-1.4_1
===> Configurao para m4-1.4_1
a criao de cache. / config.cache
verificao de mawk ... no
(Etc)
uma boa idia para realizar o fazer primeiro passo: make install nem sempre construir o
pacote.
Dependncias do Porto
s vezes, no suficiente para construir uma nica porta. Muitos portos depender de outros portos. Se
voc tem a, up-to-date rvore portas completo instalado em seu sistema, as portas
Coleo vai cuidar disso para voc: ele vai verificar se a outra porta est instalado, e se
no , ele ir instal-lo para voc. Por exemplo, a tkdesk depende tk. tk depende tcl. Se
voc no tem nenhum deles instalado, e voc tentar construir tkdesk, ele vai de forma recursiva
instalar tk e tcl para voc.
Documentao do pacote
Depois de ter instalado a sua porta, voc vai querer us-lo. Em quase todos os casos, isto
exige documentao. A maioria dos pacotes tem documentao, mas infelizmente no
sempre bvio onde ele est. Em alguns casos, a porta no instala toda a documentao.
Mais geralmente, existem as seguintes possibilidades:
175
Cd / var / db / pkg
Pkg_info-L emacs-21.2_1 | grep / homem /
Usr/local/man/man1/ctags.1.gz
Usr/local/man/man1/emacs.1.gz
Usr/local/man/man1/etags.1.gz
Usr/local/man/man1/gfdl.1.gz
Voc no precisa mudar o diretrio para / Var / db / pkg, mas se voc fizer isso, voc pode usar o arquivo
nome completo para terminar o nome do pacote. Usamos / Man / como a busca
string, e no simplesmente homem, porque seno os outros arquivos pode corresponder bem.
Se o pacote inclui GNU Informaes pginas, voc pode usar o mesmo mtodo para procurar
eles:
$ Pkg_info-L emacs-21.2_1 | grep / info /
/ Usr / local / info / ada-mode
/ Usr / local / info / autotype
/ Usr / local / info / ccmode
/ Usr / local / info / cl
(Muitos mais)
Isto normalmente no necessrio, no entanto: se voc estiver usando o GNU info, a pgina ndice
ser atualizado para incluir o pacote.
176
Manter as portas
Depois de instalar uma porta, voc pode considerar que seja o fim da histria. Isso raramente
o caso. Por exemplo:
Talvez seja necessrio substituir uma porta com uma nova verso. Como voc faz isso? Vamos
olha isso abaixo.
Um dia, voc pode encontrar o seu disco enche, ento voc vai olhar para os portos antigos que no fazem
usar mais. Ns vamos olhar para alguns comandos utilitrios na pgina 178.
Atualizando as portas
De tempos em tempos, novas verses do software ir aparecer. H um certo nmero de
abordagens para a atualizao:
Voc pode remover a verso antiga do porto e instalar uma nova verso. O problema
aqui que a remoo da verso antiga pode remover todos os arquivos de configurao tambm.
Voc pode instalar uma nova verso sem remover a verso antiga. O problema aqui
que voc acaba com duas entradas no banco de dados de pacotes / Var / db / pkg:
$ Pkg_info | grep emacs
emacs-21.1_5 GNU edio de macros
emacs-21.2_1 GNU edio de macros
claro que voc no precisa emacs-21.1_5 mais. Na verdade, ele no est completo mais,
porque o programa / Usr / local / bin / emacs foi substitudo pela nova verso.
Mas voc no pode remov-lo ou: que iria remover componentes do emacs-21.2_1,
que voc deseja manter. Por outro lado, se voc no remov-lo, voc deixado com
cerca de 50 MB de espao em disco utilizado no diretrio / Usr/local/share/emacs/21.1.
Voc pode usar portupgrade, um programa que faz parte da atualizao automaticamente.
Ns vamos olhar para isso abaixo.
Usando portupgrade
Portupgrade o que mais?-A porta. Instalar-lo da maneira habitual:
# Cd / usr / ports / sysutils / portupgrade
# Make install
Antes de executar a atualizao, voc deve primeiro fazer backup / Var / db / pkg, em seguida, construir uma
banco de dados com as portas pkgdb. A construo tpica pode ter esta aparncia:
177
# Cd / var / db
# Tar czvf db.pkg.tar.gz pkg /
#-F pkgdb
[Atualizao do <format:bdb1_btree> pkgdb em / var / db / pkg ... - 181 pacotes
encontrado (-5 +92) (...) ...................................... .. feito]
Verificar a origem do AbiWord 1.0.3Verificar a origem do ImageMagick-5.5.1.1
Verificar a origem da rbita-0.5.17
...
Verificar a origem da xv-3.10a_3
Verificar a origem do zip-2.3_1
Verificao de origem duplicatas
Verificando-AbiWord 1.0.3
Verificando ImageMagick-5.5.1.1
Dependncia Stale: ImageMagick-5.5.1.1 -> ghostscript-gnu-7.05_3:
ghostscript-gnu-6.52_4 (pontuao: 64%)? ([Y] es / [n] o / [a] ll) [no] y
Corrigido. (-> Ghostscript-gnu-6.52_4)
Verificando ORBit-0.5.17
Verificando XFree86-4.2.0_1, 1
...
Verificando bonobo-1.0.21_1
Dependncia Stale: bonobo-1.0.21_1 -> ghostscript-gnu-7.05_3:
ghostscript-gnu-6.52_4? ([Y] es / [n] o / [a] ll) [sim] Entrar prensado
Corrigido. (-> Ghostscript-gnu-6.52_4)
Verificando cdrtools-1.11.a28
...
Verificando xv-3.10a_3
Verificando zip-2.3_1
Regenerao + REQUIRED_BY arquivos
Verificao de dependncias cclicas
Neste exemplo, a porta ghostscript-gnu-7.05_3 tinha sido substitudo pela verso anterior
ghostscript-gnu-6.52_4, desde ghostscript Release 7 tem alguns bugs irritantes. O
dilogo mostra como pkgdb reconhecida a discrepncia, e como ele recuperado a partir dela.
Agora voc pode iniciar o upgrade. Para atualizar uma porta especfica, basta especificar o nome base,
sem o nmero da verso. Este exemplo utiliza o -V opo para mostrar adicional
informaes:
# Portupgrade-v biso
---> Atualizao de desenvolvimento / bison comeou em: Mon, 4 de novembro de 2002 13:20:52 1030
---> Atualizao 'bisonte-1.35_1' para 'bisonte-1.75 "(devel / bisonte)
---> Construir de desenvolvimento / bison comeou em: Mon, 04 de novembro de 2002 13:20:52 1030
... sada normal construir porto
===> Instalao Registrando para bison-1.75
limpais emitido pelo portupgrade
===> Limpeza de libiconv-1.8_2
===> Limpeza de gettext-0.11.5_1
...
---> Remover os arquivos de backup temporrios
---> Instalao de desenvolvimento / bison terminou em: Mon, 4 de novembro de 2002 13:23:00 1,030 (consumir
d 00:00:06)
---> Retirar as dependncias obsoletos
---> Limpeza de bibliotecas compartilhadas obsoletos
---> Atualizao de desenvolvimento / bison terminou em: Mon, 04 de novembro de 2002 13:23:01 1,030 (consumido 00:
2:08)
---> A comunicao dos resultados (+: sucesso / -: ignorado / *: ignorado /: failed)
+ Devel / bison (bisonte-1.35_1)
Atualizando as portas
178
Note-se que as duas ltimas entradas neste exemplo mostram que as duas verses olmo so
instalado. Isso no pode estar certo, isso acontece quando voc instala uma nova verso, sem
remover a verso antiga e sem correr portupgrade. Vamos discutir este assunto
mais abaixo.
Se voc tem a rvore de ports instalado, voc pode usar pkg_version para verificar se o seu
portas so at data. pkg_version um pouco enigmtica em sua sada:
AbiWord-gnome
ImageMagick
ORBit
Wingz
XFree86
...
x2x-1.28
=
<
<
=
<
?
179
<
>
?
*
!
H duas maneiras de remover a porta: se voc tiver construdo a partir da fonte, e voc est no
diretrio de construo, voc pode escrever:
# Make desinstalar
Alternativamente, voc pode remover qualquer pacote instalado com pkg_delete. Por exemplo, a
da lista acima mostra duas verses do olmo Mail User Agent. Para retirar o velho
um, entramos:
# Pkg_delete elm-2.4ME 22
File '/ usr/local/man/man1/answer.1' realmente no existe.
No foi possvel remover completamente o arquivo '/ usr/local/man/man1/answer.1'
File '/ usr/local/man/man1/checkalias.1' realmente no existe.
No foi possvel remover completamente o arquivo '/ usr/local/man/man1/checkalias.1'
... etc
No foi possvel excluir totalmente pacote (talvez a lista de embalagem
especificada incorretamente?)
Neste caso, parece que algum tentou remover os arquivos antes, ento
pkg_delete no poderia faz-lo.
Outro problema com pkg_delete que ele pode apagar arquivos com o mesmo nome que
foram substitudos por novos pacotes. Depois de realizar esta operao, buscamos:
$ Elm
bash: elm: comando no encontrado
Ops! Ns tentamos apagar a verso antiga, mas excluda pelo menos parte do novo
verso. Agora precisamos instal-lo novamente.
A moral desta histria que as coisas no so to simples quanto poderiam ser. Quando voc
instalar uma nova verso de um pacote, voc pode querer test-lo antes de se comprometer com
us-lo o tempo todo. Voc no pode simplesmente ir e apagar a verso antiga. Uma possibilidade
seria instalar o novo pacote, e experiment-lo. Quando voc tiver terminado o teste,
excluir tanto pacotes e re-instalar o que voc deseja manter.
180
10
Neste captulo:
Permisses de arquivo
Mandatory Access
Controle
Ligaes
Hierarquia de diretrios
Tipos de sistemas de arquivos
Arquivo de montagem
sistemas
Dispositivos FreeBSD
Terminais virtuais
Sistemas de arquivos e
dispositivos
Um dos conceitos mais revolucionrios do sistema operacional UNIX foi o seu sistema de arquivos,
o modo pelo qual ele armazena os dados. Embora a maioria dos outros sistemas operacionais j copiei
desde ento, incluindo as plataformas da Microsoft, nenhum deles chegou perto de a elegncia com
qual aplicado. Muitos aspectos do sistema de arquivos no so imediatamente bvios,
alguns deles nem mesmo para usurios do UNIX experientes.
J olhou para convenes de nomenclatura de arquivo na pgina 125. Na prxima seo, vamos
olhar para o arquivo de sistema de acesso, estrutura e hierarquia, e na pgina 195 veremos como
o sistema de arquivos trata de dispositivos de hardware como arquivos.
Permisses de arquivo
Um sistema UNIX pode, potencialmente, ser usado por muitas pessoas, por isso UNIX inclui um mtodo de
proteger os dados contra acesso por pessoas no autorizadas. Cada arquivo tem trs itens de
informaes associadas a ele que descrever quem pode acess-lo de que maneira:
A lista do que o proprietrio, o grupo e outras pessoas podem fazer com o arquivo. O
aes possveis so ler, escrever ou executar.
181
Permisses de arquivo
182
Por exemplo, voc pode ter um programa que acessa dados privados, e voc quer ser
certeza de que s voc pode execut-lo. Voc pode fazer isso definindo as permisses para que somente o
proprietrio pode execut-lo. Ou voc pode ter um documento de texto em desenvolvimento, e voc quer
para ter certeza de que voc a nica pessoa que pode mudar isso. Por outro lado, as pessoas
que trabalham com voc tem a necessidade de ser capaz de se referir ao documento. Voc define o
permisses para que somente o proprietrio pode escrev-lo, que o proprietrio eo grupo pode l-lo, e,
porque ele ainda no est pronto para publicao, voc no permita que outras pessoas acess-lo.
Tradicionalmente, as permisses so representados por trs grupos de rwx: r stands para ler
permisso, w stands para escrever permisso, e x stands para executar permisso. Os trs
grupos representam as permisses para o dono, o grupo e outros, respectivamente. Se o
permisso no for concedida, ela representada por um hfen (-). Assim, as permisses para o
programa eu discutimos acima seria r-x ------ (Eu posso ler e executar o programa,
e ningum pode fazer nada com ele). As permisses para o projecto de documento seria
ser rw-r ----- (Eu posso ler e escrever, o grupo pode ler, e os outros no podem acess-lo).
Permisses tpicas de acesso a arquivos do FreeBSD so rwxr-xr-x para os programas e rw-r - r para outros arquivos do sistema. Em alguns casos, no entanto, voc ver que as outras permisses so
necessria. Por exemplo, o arquivo ~ /. Rhosts, que usado por alguns programas de rede para
validao do usurio, pode conter a senha do usurio de forma legvel. Para ajudar a garantir que
outras pessoas no l-lo, os programas de rede recusar-se a l-lo, a menos que suas permisses
so rw -------. A grande maioria dos problemas no sistema de UNIX pode ser atribuda a
permisses incorretas, ento voc deve prestar ateno especial a eles.
Alm destas permisses de acesso, arquivos executveis tambm pode ter dois bits definidos para especificar o
permisses de acesso do processo quando ele executado. Se o setuid (Definir ID de usurio) bit definido, o
processo sempre corre como se tivesse sido iniciada pelo seu proprietrio. Se o setgid (Set group ID) bit
definido, ele executado como se tivesse sido iniciada por seu grupo. Isto freqentemente usado para iniciar sistema
programas que precisam acessar recursos que o usurio no pode acessar diretamente. Vamos ver um
exemplo disto com o ps comando na pgina 185. ls representa o setuid bit por
definindo a terceira letra da string de permisses para s em vez de x, de forma semelhante, representa
o setgid bit, definindo a sexta letra da string de permisses para s em vez de x.
Alm deste acesso informao, as permisses de conter um personagem que descreve
que tipo de arquivo que ele representa. A primeira letra pode ser um - (Hfen), que designa um
arquivo regular, a carta d para o diretrio ou as letras b ou c para um n de dispositivo. Ns olharemos
ns de dispositivos no captulo 11, pgina 195. Existem tambm uma srie de outras letras que so
menos utilizado. Veja a pgina de manual ls (1) para uma lista completa.
Para listar os arquivos e mostrar as permisses, use o ls comando com o -L opo:
$ Ls-l
total de 2429
-Rw-rw-r 1 grogue
drwxrwxr-x
3 grogue
drwx -----4 grogue
-Rw-rw-r 1 grogue
-Rw-rw-r 1 grogue
-Rw-rw-r 1 grogue
-Rw-rw-r 1 grogue
-Rw-rw-r 1 demnio
-Rwxr-xr-x
1 grogue
roda
roda
roda
roda
roda
roda
roda
roda
roda
28204
512
512
149
108
108
Jan
Outubro
Novembro
Dezembro
Dezembro
Dezembro
0 Dezembro
1474560
Dezembro
100
Dezembro
4 14:17
15:26
17:23
4 14:18
4 00:36
4 00:36
4 00:36
14 17:03
19 15:24
1
25
% De backup% ~
2.1.0-951005-SNAP
Correio
Makefile
Makefile.bak
Makefile ~
depender
deppert.floppy
doio
filesys.mm, v v4.17 (2003/04/02 06:43:57)
183
-X-rwxrwxr
-X-rwxrwxr
-Rwxr-xr-x
-Rwxr-xr-x
drwxr-xr-x
drwxrwxrwx
1
1
1
1
2
2
grogue
grogue
grogue
grogue
grogue
grogue
roda
roda
roda
roda
roda
roda
204
204
115
114
512
512
Dezembro
Dezembro
Dezembro
Dezembro
Outubro
Jan
19
19
26
19
16
15:25
15:16
08:42
15:30
1994
3 14:07
doiovm
doiovm ~
dovm
dovm ~
emacs
letras
Em seguida, o contagem de link. Este o nmero de ligaes diretas para o arquivo. Para um arquivo regular,
isto normalmente 1, mas directrios ter pelo menos 2. Ns olhamos para as ligaes na pgina 186.
A data normalmente a data em que o arquivo foi modificado pela ltima vez. Com o -U opo ls,
voc pode listar a ltima vez que o arquivo foi acessado.
Finalmente vem o nome do arquivo. Como voc pode ver a partir deste exemplo, os nomes podem
ser bastante variada.
Para alterar o dono do arquivo, use chown. Por exemplo, para alterar a propriedade do
arquivo deppert.floppy, que na lista acima pertence daemon, raiz digite:
# Chown grog deppert.floppy
Para mudar o grupo de arquivos, use chgrp, que funciona da mesma forma como chown. A
alterar a propriedade do grupo de Lemis, voc deve digitar:
# Chgrp Lemis deppert.floppy
chown Tambm possvel alterar o proprietrio e grupo. Em vez dos dois anteriores
exemplos, voc pode digitar:
filesys.mm, v v4.17 (2003/04/02 06:43:57)
Permisses de arquivo
184
go-w
= Rw, + X
+ X
u = rwx, go = rx
go =
g = u-w
Definir os bits de grupos iguais aos bits do usurio, mas limpar o bit write grupo
185
Permisses possveis
umask
permisses resultantes
Por padro, os arquivos so criados sem a x pedaos, enquanto os diretrios so criados com o
permitido x bits, assim com este umask, um arquivo ser criado com as permisses rwr - r -.
umask um comando shell. Para configur-lo, basta digitar:
$ Umask 022
prefervel definir isto em seu shell de inicializao arquivo consulte a pgina 135 para mais detalhes.
Cuidado com a criao de uma umask demasiado restritiva. Por exemplo, voc vai entrar em um monte de problemas
com a mscara como 377, que cria arquivos que voc s pode ler, e que ningum mais
pode acessar a todos. Se voc no permitir o x (Executvel) bit, voc no ser capaz de acessar
diretrios que voc criar, e voc no ser capaz de executar programas que voc compilar.
Fazendo um programa executvel
Permisses de arquivo permitir um problema que ocorre com tanta frequncia que vale a pena chamar a ateno
a ele. Muitos sistemas operacionais exigem que um programa executvel ter uma nomenclatura especial
conveno, como COMMAND.COM ou FOO.BAT, em que o MS-DOS indica um
tipo especfico de binrio executvel e um arquivo script, respectivamente. Em UNIX, executvel
programas no precisa de um sufixo especial, mas eles devem ter o x bit definido. s vezes, isso pouco
fica reset (desligado), por exemplo se voc copi-lo em toda a rede com FTP. O resultado
parecido com este:
$ Ps
bash: ps: Permisso negada
$ Ls-l / bin / ps
-R - r - r - 1 bin kmem 163840 06 de maio 06:02 / bin / ps
$ Su
voc precisa ser super-usurio para definir permisso ps
Senha:
senha no ecoa
# Chmod + x / bin / ps
torn-lo executvel
# Ps
agora ele funciona
PID TT STAT
COMANDO DE TEMPO
226 p2 S
0:00.56 su (bash)
239 p2 R +
0:00.02 ps
146 V1 +
0:00.06 / usr / libexec / getty Pc ttyv1
147 v2 +
0:00.05 / usr / libexec / getty Pc ttyv2
# D
sair su
$ Ps
ps: / dev / mem: Permisso negada
hey! ele parou de trabalhar
Huh? Ele s trabalhou sob su, e parou de funcionar quando eu me tornei um mero mortal
de novo? O que est acontecendo aqui?
H um segundo problema com programas como ps: algumas verses precisam ser capazes de acessar
arquivos especiais, neste caso / Dev / mem, um arquivo especial que aborda a memria do sistema. A
fazer isso, preciso definir o setgid bit, s, o que exige cada vez superusurio novamente:
filesys.mm, v v4.17 (2003/04/02 06:43:57)
Permisses de arquivo
186
$ Su
voc precisa ser super-usurio para definir permisso ps
Senha:
senha no ecoa
# Chmod g+ s / bin / ps
definir o bit setgid
# Ls-l / bin / ps
veja o que parece
-R-xr-sr-x 1 bin kmem 163840 06 de maio 06:02 / bin / ps
# D
sair su
$ Ps
agora ele ainda funciona
PID TT STAT
COMANDO DE TEMPO
0:00.56 su (bash)
226 p2 S
239 p2 R +
0:00.02 ps
0:00.06 / usr / libexec / getty Pc ttyv1
146 V1 +
0:00.05 / usr / libexec / getty Pc ttyv2
147 v2 +
Ligaes
No UNIX, os ficheiros so definidos pela inodes, estruturas em disco que voc no pode acessar diretamente.
Eles contm o metadados, todas as informaes sobre o arquivo, como proprietrio, permisses
e data e hora. O que eles no contm so as coisas que voc pensa de como fazer backup de um arquivo:
eles no tm quaisquer dados, e que eles no tm nomes. Em vez disso, o inode contm
informaes sobre o local onde os blocos de dados esto localizados no disco. Ele no sabe
nada sobre o nome: esse o trabalho dos diretrios.
Um diretrio simplesmente um tipo especial de arquivo que contm uma lista de nomes e inode
nmeros: por outras palavras, eles atribuir um nome para um inodo, e, assim, a um ficheiro. Mais do que
um nome pode apontar para o mesmo inode, ento os arquivos podem ter mais de um nome. Este
ligao entre um nome e um inodo chamado link, por vezes, confusa difcil
link. Os nmeros de inode se relacionam com o sistema de arquivos, para que os arquivos devem estar no mesmo
sistema de arquivos
filesys.mm, v v4.17 (2003/04/02 06:43:57)
187
Hierarquia de diretrios
Embora as plataformas Microsoft tem uma estrutura de diretrios hierrquica, h pouco
padronizao dos nomes de diretrio: difcil saber onde um determinado programa
ou arquivo de dados pode ser. Sistemas UNIX tm uma hierarquia de diretrios padro, embora cada
vendedor gosta de mud-la um pouco para garantir que eles no so absolutamente compatveis.
No decorrer de sua evoluo, UNIX mudou sua hierarquia de diretrio vrias vezes.
ainda melhor do que a situao no mundo Microsoft. O mais recente e, provavelmente,
mudanas mais profundas, ocorreram mais de dez anos com o Sistema V.4 e 4.4BSD,
ambas feitas alteraes quase idnticos.
Quase todas as verses do UNIX prefere ter pelo menos dois sistemas de arquivos, / (O de arquivos raiz
sistema) e / usr, mesmo que eles s tm um nico disco. Este arranjo considerado
mais confivel do que um nico sistema de arquivos: possvel para um sistema de arquivos para bater tanto que
ele no pode ser montado mais, e voc precisa ler em uma fita de backup, ou usar programas
como fsck ou fsdb para junt-los. Ns j discutimos este assunto na pgina
68, onde eu recomendo ter / Usr no mesmo sistema de arquivos /.
Diretrios padro
O layout fsico dos sistemas de arquivos no afeta os nomes ou os contedos do
diretrios, que so padronizados. Tabela 10-2 fornece uma viso geral do padro
Diretrios do FreeBSD, veja a pgina man hier (7) para mais detalhes.
Hierarquia de diretrios
188
Uso
Sistema de arquivos raiz. Contm um par de diretrios do sistema e
pontos de montagem para outros sistemas de arquivos. Ele no deve conter
qualquer outra coisa.
/ Bin
/ Boot
/ Cdrom
/ Compat
/ Dev
/ Etc
/ Home
Por conveno, colocar os arquivos do usurio aqui. Apesar do nome, / Usr para
arquivos do sistema.
/ Mnt
/ Proc
/ Root
/ Sbin
/ Sys
Se estiver presente, este geralmente um link simblico para / Usr / src / sys, o
fontes do kernel. Este um derivado de tractor BSD 4.3.
/ Tmp
/ Usr
189
Diretrio
nome
/ Usr/X11R6
Uso
O Sistema X Window.
/ Usr/X11R6/bin
/ Usr/X11R6/include
/ Usr/X11R6/lib
/ Usr/X11R6/man
/ Usr / bin
/ Usr / compat
/ Usr / games
Jogos.
/ Usr / include
/ Usr / lib
/ Usr / libexec
/ Usr / libdata
/ Usr / local
/ Usr / obj
/ Usr / ports
A coleo de ports.
/ Usr / sbin
/ Usr / share
/ Usr / src
/ Var
Um sistema de arquivos para dados que muda com freqncia, tais como e-mail, notcias,
e os arquivos de log. Se / Var no um sistema de arquivos separado, voc deve
criar um diretrio em outro sistema de arquivos e links simblicos / Var a ele.
/ Var / log
/ Var / mail
Diretrio
nome
/ Var / spool
/ Var / tmp
190
Uso
Dados transitrios, tais como correio de sada, os dados de impresso e annimo
FTP.
Arquivos temporrios.
UFS o UNIX Arquivo system.1 Todos os sistemas de arquivos do disco nativas so deste tipo. Desde
FreeBSD 5.0, voc tem uma escolha de duas verses diferentes, UFS 1 e UFS 2. Como
nomes sugerem, UFS 2 o sucessor UFS 1. Ao contrrio UFS 1, UFS dois sistemas de arquivos so
no limitado a 1 TB (1024 GB). UFS 2 relativamente novo, a menos que voc precisa
sistemas de arquivos muito grandes, voc deve manter a UFS 1.
cd9660 9660 o formato de CD-ROM ISO com o assim chamado Rock Ridge Extensions
que permitem que os nomes de arquivo UNIX-like para ser usado. Use este tipo de sistema de arquivos para todos os CDROMs, mesmo se eles no tm as extenses Rock Ridge.
NFS o Network File System, um meio de compartilhar sistemas de arquivos atravs de uma rede.
Vamos olhar para ele no captulo 25.
opo de montar
cd9660
udf
ext2fs
MSDOSFS
ntfs
NWFS
smbfs
1. Paradoxalmente, embora BSD no pode ser chamado de UNIX, seu sistema de arquivo chamado o sistema de arquivos UNIX. O
Grupo sistema Unix, os desenvolvedores do sistema UNIX V.4, adotada UFS como sistema de arquivos padro para SysTEM V e deu-lhe este nome. Anteriormente, ele foi chamado de Berkeley Rpido File System, ou FFS.
filesys.mm, v v4.17 (2003/04/02 06:43:57)
191
Soft updates
Soft updates mudar a forma como o sistema de arquivos realiza I / O. Eles permitem metadados ser
escrita com menos freqncia. Isso pode dar origem a melhorias de performance em
certas circunstncias, tais como a excluso do arquivo. Especifique soft updates com o -U opo quando
a criao do sistema de arquivos. Por exemplo:
# Newfs-U / dev/da1s2h
Se voc esquecer esta bandeira, voc pode ativ-los mais tarde, com tunefs:
# Tunefs-n enable / dev/da1s2h
Snapshots
Um dos problemas com o backup de sistemas de arquivos que voc no tem uma viso consistente
do sistema de arquivos: quando voc copia um arquivo, outros programas podem ser modific-lo, de modo que
voc comea na fita no uma viso precisa do arquivo a qualquer momento. Snapshots so um
mtodo para criar uma viso unificada de um sistema de arquivos. Eles mantm um arquivo relativamente pequeno em
o prprio sistema de arquivos que contm informaes sobre o que mudou desde que o instantneo foi
feita. Quando voc acessa o instantneo, voc obter esses dados, em vez de os dados atuais para
as partes do disco que mudaram, de modo a obter uma viso do sistema de arquivos como era no
o tempo do instantneo.
Criando instantneos
Voc pode criar snapshots com o montar comando eo -O snapshot opo. Para
exemplo, voc pode digitar
# Mount-u-o snapshot / var/snapshot/snap1 / var
Voc pode ter vrios instantneos em um sistema de arquivos, at o limite atual de 20.
Eles so atualizados automaticamente quando nada est escrito no sistema de arquivos. O ponto de vista
do sistema de arquivos no muda, mas essa atualizao necessria para manter a
'' Velho'' vista do sistema de arquivos.
Eles se parecem com os sistemas de arquivos normais. Voc pode mont-los com o md motorista. Vamos
olha que na pgina 193.
Provavelmente a coisa mais til que voc pode fazer com um snapshot fazer um backup dele. Vamos
olhar para backups na pgina 253.
filesys.mm, v v4.17 (2003/04/02 06:43:57)
192
No momento da escrita, snapshots ainda esto em desenvolvimento. possvel que voc possa
ainda tenho problemas com eles, em particular, com os impasses que s podem ser apuradas por
reinicializao.
Demora cerca de 30 segundos para criar um instantneo de um sistema de arquivo de 8 GB. Durante os ltimos cinco
segundo, a atividade do sistema de arquivos est suspenso. Se h um monte de atividade de atualizao suave acontecendo
no sistema de arquivos (por exemplo, ao excluir um monte de arquivos), desta vez a suspenso pode
tornar-se muito mais tempo, at vrios minutos. Para remover o mesmo instantneo leva cerca de
dois minutos, mas no suspender a atividade do sistema de arquivos em tudo.
somente se no existe
Quando o sistema inicializado, ele chama o script de inicializao / Etc / rc, que entre outras coisas
monta automaticamente os sistemas de arquivos. Tudo que voc precisa fazer fornecer as informaes:
o que para ser montado, e onde? Isto , o arquivo / Etc / fstab. Se voc vem de uma
Ambiente System V, voc vai perceber diferena significativa no formato consulte a pgina man
fstab (5) a histria completa. Um tpico / Etc / fstab pode parecer:
/ Dev/ad0s1a /
/ Dev/ad0s1b nenhum
/ Dev/ad0s1e / usr
/ Dev/da1s1e / src
/ Dev/da2s1 / linux
/ Dev/ad1s1 / C:
proc / proc
linproc / compat / linux / proc
/ Dev/cd0a / cdrom
presto :/ / presto / root
presto :/ usr / presto / usr
presto casa :/ / presto / home
presto :/ S / S
/ / Guest @ samba / public / smb
ufs
trocar
ufs
ufs
ext2fs
msdos
procfs
linprocfs
cd9660
NFS
NFS
NFS
NFS
smbfs
rw 1 1
sw 0 0
rw 2 2
rw 2 2
rw 2 2
rw 2 2
rw 0 0
rw 0 0
ro 0 0
rw 0 0
rw 0 0
rw 0 0
rw 0 0
rw, noauto 0
193
A primeira coluna indica o nome do dispositivo (se um sistema de arquivos real), a palavra-chave para
alguns sistemas de arquivos, como proc, ou o nome do sistema de arquivos remoto para montagens NFS.
A terceira coluna especifica o tipo de sistema de arquivos. Sistemas de arquivos locais no disco rgido so
sempre ufs, e sistemas de arquivos em CD-ROM so cd9660. Sistemas de arquivos remotos so
sempre NFS. Especificar as parties de swap com swap, eo proc sistema de arquivo com proc.
A quarta coluna contm rw para sistemas de arquivos que podem ser lidos ou escritos, ro para o arquivo
sistemas (como CD-ROM) que s podem ser lidos e sw para parties swap. Tambm pode
conter opes como o noauto na linha de fundo, que conta a inicializao do sistema
scripts para ignorar a linha. Est l para que voc possa usar a notao abreviada montar
/ Smb quando voc quer montar o sistema de arquivos.
As colunas quinto e sexto so utilizados pelo despejar e fsck programas. Voc no vai
normalmente necessrio alter-los. Entrar 1 para um sistema de arquivos raiz, 2 por outro arquivo UFS
sistemas, e 0 para tudo o resto.
s vezes de interesse para acessar o contedo de um instantneo, por exemplo, para verificar
os contedos.
Depois de criar uma imagem ISO para gravar em CD-R, voc deve verificar se ele vlido.
Alm disso, depois de baixar uma imagem ISO a partir da Net, voc pode apenas querer acessar o
contedo, e no criar um CD-R em tudo.
Em cada caso, a soluo a mesma: voc monta os arquivos como um vnode com o dispositivo md
motorista.
O md controlador cria um certo nmero de diferentes tipos de pseudo-dispositivo. Veja a pgina de manual
md (4). Usamos o vnode dispositivo, um arquivo especial que refere-se a apresentar os arquivos do sistema. Suporte para
md est includo no kernel GENERIC, mas se voc construiu um kernel sem a md unidade,
voc pode carreg-lo como um kld. Se voc no tiver certeza, tente carregar o kld de qualquer maneira.
No exemplo a seguir, associamos um dispositivo vnode com a imagem ISO iso-imagem
usando o programa mdconfig:
# Kldload md
kldload: no pode carregar md: O arquivo j existe
# Mdconfig-a-t vnode-f iso-imagem
md0
# Mount-t cd9660 / dev/md0 / mnt
194
Depois disso, voc pode acessar a imagem em / Mnt como um sistema de arquivos normal. Voc pode especificar -T
cd9660 neste caso, porque o sistema de arquivos em que a imagem um sistema de arquivos CD9660. Voc
no especificar isso, se voc estiver montando um sistema de arquivos UFS, por exemplo, uma imagem instantnea.
Verses antigas do FreeBSD usou o vn motorista, que usou a sintaxe diferente. Linux usa
montagens de ala, que FreeBSD no suporta.
Antes de desmontar um sistema de arquivos, umount cheques que ningum est usando. Se algum
us-lo, ele se recusa a desmont-lo com uma mensagem como umount: / cd1: Dispositivo ocupado.
Esta mensagem ocorre muitas vezes porque voc mudou o diretrio para um diretrio no
sistema de arquivos que voc deseja remover. Por exemplo (que tambm mostra a utilidade de se ter
nomes de diretrio no prompt):
=== Root @ freebie (/ dev/ttyp2)
umount: / cd1: Dispositivo ocupado
=== Root @ freebie (/ dev/ttyp2)
=== Root @ freebie (/ dev/ttyp2)
=== Root @ freebie (/ dev/ttyp2)
195
Dispositivos FreeBSD
UNIX refere-se a dispositivos da mesma maneira em que se refere aos arquivos normais. Em contraste com
normal ('' normal'') arquivos, eles so chamados arquivos especiais. Eles no so realmente arquivos em tudo:
eles esto informaes sobre o suporte a dispositivos no kernel, eo termo n de dispositivo mais
preciso. Convencionalmente, eles so armazenados no directrio / Dev. Alguns dispositivos no tm
ns de dispositivos, como por exemplo as interfaces Ethernet: eles so tratados de forma diferente pelo ifconfig
programa.
Sistemas UNIX tradicionais distinguir dois tipos de dispositivo, dispositivos de bloco e carter
dispositivos. FreeBSD no tem mais dispositivos de bloco, discutimos as razes para isso na pgina
35.
Em sistemas UNIX tradicionais, incluindo FreeBSD at a verso 4, foi necessrio
criar ns de dispositivos manualmente. Isso causou uma srie de problemas quando eles no correspondem
o que estava no sistema. Release 5 do FreeBSD tem resolvido este problema com o dispositivo
sistema de arquivos, tambm conhecido como devfs. devfs um sistema de pseudo-arquivo que cria dinamicamente
ns de dispositivos para exatamente aqueles dispositivos que esto no kernel, o que torna desnecessrio
para criar manualmente os dispositivos.
ad0
bpf0
Primeiro ata unidade de disco (IDE ou similar). Consulte o Captulo 2, pgina 38, para um
lista de nomes de unidade de disco completo.
Berkeley filtro de pacotes.
cd0
ch0
consol
cuaa0
cuaia0
Primeira porta serial em modo de texto explicativo, estado inicial. Observe a letra Eu para inicial.
cuala0
Primeira porta serial em modo de texto explicativo, estado de bloqueio. Observe a letra l para bloquear.
da0
Primeira unidade de disco SCSI. Consulte o Captulo 2, pgina 38, para obter uma lista completa de disco
conduzir nomes.
Primeira unidade de fita SCSI, ejetar o modo perto.
esa0
Dispositivos FreeBSD
196
Dispositivo Descrio
Descritor de arquivo pseudo-dispositivos: Um diretrio contendo pseudo-dispositivos que,
quando aberto, retornar uma cpia do descritor de arquivo com o mesmo
nmero. Por exemplo, se voc abrir / Dev/fd/0, voc comea uma outra ala
seu stdin fluxo (descritor de arquivo 0).
A primeira unidade de disquete, acessado como um sistema de arquivos.
fd0
fd
kmem
lpt0
mem
nsa0
nulo
O bit bucket''.'' Enviar dados para este dispositivo se voc nunca quer v-lo
novamente.
PS / 2 mouse.
psm0
acaso
SA0
sysmouse
tty
Sistema de rato, controlada pela moused. Ns vamos olhar para isso de novo na pgina
516.
Terminal de controle atual.
ttyd0
ttyid0
ttyld0
ttyp0
ugen0
ukbd0
ulpt0
ptyp0
ttyv0
197
Dispositivo Descrio
Primeiro dispositivo de armazenamento em massa USB.
umass0
ums0
uscanner0
vinum
Diretrio para ns de dispositivos Vinum. Consulte Captulo 12, para mais detalhes.
zero
Voc vai notar um nmero de diferentes modos associados com as portas seriais. Ns olharemos
eles novamente no captulo 19.
Terminais virtuais
Como vimos, o UNIX um sistema operacional multitarefa, mas um PC geralmente s tem
uma tela. FreeBSD resolve esse problema com terminais virtuais. Quando em modo texto,
pode variar entre um mximo de 16 diferentes telas com a combinao da Alt chave
e uma tecla de funo. Os dispositivos so nomeados / Dev/ttyv0 atravs / Dev/ttyv15, e
corresponder s teclas Alt-F1 atravs Alt-F16. Por padro, os trs terminais virtuais
so ativos: / Dev/ttyv0 atravs / Dev/ttyv2. O console do sistema o terminal virtual
/ Dev/ttyv0, e isso o que voc v quando voc iniciar a mquina. Para ativar adicional
terminais virtuais, edite o arquivo / Etc / ttys. L voc encontra:
ttyv0
ttyv1
ttyv2
ttyv3
Pc
Pc
Pc
Pc
"
"
"
"
cons25
cons25
cons25
cons25
em
em
em
fora
proteger
proteger
proteger
proteger
As palavras-chave em e fora referem-se ao estado do terminal de: permitir que um, para definir o seu estado
diante. Para ativar terminais virtuais extras, adicione uma linha com o nome do
terminal correspondente, em
a gama / Dev/ttyv4 a / Dev/ttyv15. Depois de ter editado o / etc / ttys, voc precisa dizer ao
sistema de rel-lo, a fim de iniciar os terminais. Faa isso como raiz com este comando:
# Kill -1 1
Pseudo-terminais
Alm de terminais virtuais, FreeBSD oferece uma classe adicional de terminais chamados
pseudo-terminais. Eles vm em pares: um dispositivo mestre, tambm chamado de pta (Pronuncia-se
pena) usado apenas por processos que utilizam a interface, e tem um nome como / dev/ptyp0. O
dispositivo escravo parece um terminal, e tem um nome como / Dev/ttyp0. Qualquer processo pode abrir
isto sem qualquer conhecimento especial da interface. Estes terminais so usados para a rede
ligaes tais como xterm, telnet e rlogin. Voc no precisa de um getty por pseudoterminais. Desde o FreeBSD Verso 5.0, pseudo-terminais so criados conforme necessrio.
filesys.mm, v v4.17 (2003/04/02 06:43:57)
Neste captulo:
Adicionando um disco rgido
Usando sysinstall
Faz-lo da maneira mais difcil
Criando sistemas de arquivos
Movendo sistemas de arquivos
Recuperando-se de disco
erros de dados
11
Discos
Uma das partes mais importantes da gesto de qualquer sistema de computador a manipulao de dados no disco.
J olhou para manipulao de arquivos UNIX no captulo 10. Neste captulo, veremos
em duas maneiras de adicionar outro disco para seu sistema, e que voc deve colocar sobre eles. Em
Alm disso, vamos discutir a recuperao de erros de disco na pgina 218.
Mal possivelmente, formatar o disco. Sem exceo, os discos modernos vm prformatado, e voc s precisa formatar um disco se ele tem defeitos ou se antiga. Em
muitos casos, o assim chamado programa'''' formato realmente no formato de todo.
199
200
Se voc deseja compartilhar com outros sistemas operacionais, criar uma tabela de partio no estilo PC
o disco. Olhamos para os conceitos na pgina 63.
201
Este resultado mostra dois adaptadores SCSI Symbios / dev / (sym0 e / Dev/sym1), trs
unidades de fita / dev / (SA0, / Dev/sa1 e / Dev/sa2), uma unidade de CD-ROM / dev / (cd0), uma fita
Trocador / dev / (pass4), e tambm uma unidade de disco / Dev/da0 em 3 ID, que chamado um alvo em
estas mensagens. O disco ligado ao segundo adaptador de acolhimento, e os outros dispositivos
esto ligados primeira placa de acolhimento.
A instalao de um dispositivo SCSI externo
Dispositivos SCSI externos tm dois conectores de cabo: um vai para o adaptador de host e
outra para o dispositivo seguinte. A ordem dos dispositivos na cadeia no precisa
tem nada a ver com o ID SCSI. Este mtodo chamado encadeamento. No final
da cadeia, o conector extra pode ser conectado com um terminador, um conjunto de resistncias
projetado para manter o rudo fora do nibus. Alguns dispositivos tm terminadores internos, no entanto.
Ao instalar um dispositivo externo, voc ter que fazer o seguinte:
Se voc estiver instalando um primeiro dispositivo externo (um ligado diretamente ao cabo
conector do backplane do adaptador host), voc tem que garantir que o
dispositivo fornece terminao. Se voc j tem pelo menos um dispositivo interno, o anfitrio
adaptador no ser mais em uma extremidade da cadeia, para que voc tambm vai ter que parar de
fornecimento de resciso. Adaptadores host SCSI modernas pode decidir se eles precisam
terminar, mas adaptadores de host mais velhos tm pacotes de resistncia. Neste ltimo caso, a remover estes
pacotes de resistor.
Se voc estiver adicionando um dispositivo externo adicional, voc tem duas opes: voc pode
remover um cabo no meio da cadeia e lig-lo em seu novo dispositivo. Voc
em seguida, conectar um novo cabo do seu dispositivo para o dispositivo a partir do qual voc removeu o
cabo original.
Alternativamente, voc pode adicionar o dispositivo no final da cadeia. Retire o terminator
ou desligar a resciso, e conecte o cabo na tomada de reposio. Insira o
terminator no seu dispositivo (ou rode resciso por diante).
Voc pode adicionar dispositivos SCSI externos para um sistema em execuo, se eles so hot-pluggable. Poderia
funcionar mesmo se eles no so hot-pluggable, mas no estritamente a coisa certa a fazer, e
h o risco de que voc pode danificar alguma coisa, talvez irremediavelmente. Depois de ligar
os dispositivos, alimentando-os e esperando por eles para vir pronto, execute CamControl
nova pesquisa. Por exemplo, se voc adicionar uma segunda unidade de disco para o segundo adaptador de host no
exemplo acima, voc pode ver:
202
Neste captulo, veremos duas formas de instalar uma unidade em uma cadeia SCSI existente. Ns
poderia ser uma surpresa: a identificao do dispositivo temos para a nova unidade depende do que
actualmente na cadeia. Por exemplo, considere o nosso exemplo acima, onde temos uma cadeia
com uma nica unidade em que:
da0 em SYM1 bus 0 target 3 lun 0
da0: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto Fixo dispositivo SCSI-2
da0: 20.000MB transferncias / s (10.000MHz, offset 15, 16 bits), Tagged Filas Ativado
da0: 4095MB (8.386.733 setores de 512 bytes: 255H 63S / T 522C)
Esta movimentao no alvo (ID) 2. Se colocarmos a nossa nova unidade em 0 alvo e reiniciar, vemos:
da0 em SYM1 bus 0 target 0 lun 0
da0: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto Fixo
da0: 20.000MB transferncias / s (10.000MHz, offset 15, 16 bits),
da0: 4095MB (8.386.733 setores de 512 bytes: 255H 63S / T 522C)
da1 em SYM1 bus 0 target 3 lun 0
da1: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto fixo
da1: transferncias 20.000MB / s (10.000MHz, offset 15, 16 bits),
da1: 4095MB (8.386.733 setores de 512 bytes: 255H
Dispositivo SCSI-2
Tagged Filas Ativado
Dispositivo SCSI-2
Tagged Filas Ativado
63S / T 522C)
primeira vista, isso parece razovel, mas isso s porque ambos os discos so da mesma
tipo. Se voc olhar para os nmeros de destino, voc vai perceber que o novo disco / Dev/da0, no
/ Dev/da1. O ID de destino do novo disco inferior ao ID do alvo do disco antigo, de modo que o
sistema reconhece o novo disco como / Dev/da0, e nossa anterior / dev/da0 tornou
/ Dev/da1.
203
Esta mudana de ID do disco pode ser um problema. Uma das primeiras coisas que voc faz com um novo disco
a criao de novos rtulos de discos e sistemas de arquivos. Ambos oferecem excelentes oportunidades para atirar
no prprio p se voc escolher o disco errado: o resultado certamente seria o
perda completa de dados sobre esse disco. Mesmo para alm de tais catstrofes, voc vai ter que editar
/ Etc / fstab antes que voc pode montar todos os sistemas de arquivos que esto no disco. As alternativas so
para conectar os nomes de dispositivos, ou para alterar os IDs SCSI. No FreeBSD 5.0, fio
para baixo os nomes de dispositivos e nibus, adicionando entradas no arquivo de configurao de inicializao
/ Boot / device.hints. Veremos que na pgina 568.
A formatao do disco
A formatao o processo de reescrever todos os setores no disco com um padro de dados especfico,
que a eletrnica acha mais difcil de reproduzir: se eles podem ler esse padro, eles
pode ler qualquer coisa. Microsoft chama isso de baixo nvel format.1 Obviamente que destri qualquer
dados existentes, de modo
Se voc tem alguma coisa que voc deseja manter, faa um backup antes
formatao.
A maioria dos discos modernos no precisam de formatao, a menos que eles esto danificados. Em particular,
formatao no vai ajudar se voc est tendo problemas de configurao, se voc no pode ficar de PPP
trabalhar, ou voc est ficando sem espao em disco. Bem, vontade resolver o problema do espao de disco, mas
no da maneira que voc provavelmente deseja.
Se voc precisar formatar um disco SCSI, use CamControl. CamControl um programa de controle
para dispositivos SCSI, e inclui uma srie de funes teis que voc pode ler na
pgina de manual. Para formatar um disco, use a seguinte sintaxe:
# CamControl formato da1
204
Usando sysinstall
Se voc puder, use sysinstall para particionar seu disco. Olhando para o dmesg sada para o nosso
novo disco, vemos:
da1 em SYM1 bus 0 target 0 lun 0
da1: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto Fixed SCSI-2 dispositivo
da1: 20.000MB / s transferncias (10.000MHz, offset 15, 16 bits), Tagged colocao em fila Ativado
da1: 4095MB (8.386.733 setores de 512 bytes: 255H 63S / T 522C)
Voc ver a tela de instalao padro (ver Captulo 5, pgina 60). Selecionar Index, em seguida,
Partition, e voc ver a seguinte tela:
A primeira comea no deslocamento de 0, e tem um comprimento de 63. Isto no no utilizado, no importa o que
a descrio diz. a tabela de partio, preenchido com o comprimento de uma faixa''.''
Queremos uma partio FreeBSD, no uma partio Microsoft. Neste ponto, temos um nmero
de opes:
205
Se estamos usando este disco apenas para FreeBSD, no tem que perder mesmo tanto
espao. Existe uma opo'' usar o disco inteiro para FreeBSD,'' o chamado'' perigosamente
dedicado modo''. Este termo vem parcialmente de superstio e em parte porque
algumas BIOS esperar encontrar uma tabela de partio no primeiro setor de um disco, e eles
no pode acessar o disco, se no encontrar um. Se a sua BIOS tem esse bug, voc vai encontrar este
um muito rapidamente quando voc tenta arrancar. Se no falhar no primeiro boot, ele
no vai falhar, mas quase impossvel que voc pode ter problemas se voc mov-lo para um
sistema com diferentes BIOS. Se voc quiser usar este mtodo, use os indocumentados
f de comando.
Para usar o disco inteiro, primeiro apagar a partio atual: ns pressione o cursor para baixo chave
at que destaca a partio FreeBSD. Depois, pressione d, e as trs parties so
juntou-se uma, marcada no utilizado.
Usando sysinstall
206
O prximo passo o de criar uma nova partio usando todo o disco. Se pressionarmos f, obtemos a
seguinte mensagem:
Ns no receber esta mensagem se usarmos o um comando: ele assume apenas automaticamente Sim.
Neste caso, ns decidimos usar todo o disco, por isso mova o cursor para a direita para No e
imprensa Enter. Isso nos d uma tela de seleo do gerenciador de inicializao:
207
Este no um disco de boot, por isso no precisa de nenhum registro de inicializao, e no faz qualquer
diferena que ns selecionamos. mais arrumado, porm, para selecionar Nenhum conforme indicado. Depois, pressione
q para sair do editor de parties, voltar para o ndice de funo e selecione Label. Vemos:
Usando sysinstall
208
Em seguida, pressione c novamente para criar uma nova partio. Desta vez, ns aceitamos a oferta do resto
do espao no disco, 7338157 sectores, podemos seleccionar Um sistema de arquivos, e ns somos
presenteado com mais um cardpio pedindo o nome do sistema de arquivos. Entramos no
nome, neste caso / S:
209
Por fim, pressione W para dizer ao editor rtulo de disco para executar a funo. Ns temos uma
tela de aviso adicional:
Estamos fazendo isso on-line, de modo que OK. Ns selecionamos Sim, e sysinstall cria o arquivo
sistema e monta tanto um como a partio swap. Isso pode demorar um pouco. No tente
para fazer qualquer coisa com a unidade at que seja concludo.
Ns chamamos este sistema de arquivos / Newhome para us-lo como um exemplo de movimento sistemas de arquivos
novos discos. Na pgina 218, vamos ver como mover os dados de dimetro.
210
O tipo de partio que o fdisk chamadas SYSID. Este um nmero que descreve a
partio usado. Parties FreeBSD tem partio do tipo 165, e moderno (MSDOS verso 4 ou posterior) parties Microsoft tem tipo 6.
211
Voc vai notar que fdisk decidiu que no h uma partio FreeBSD na partio 4. Que
acontece mesmo se o disco novo. Na verdade, esta uma caracterstica menos desejvel de fdisk: ela
'' Sugere'' esta partio, no realmente l, o que pode ser muito confuso. Este
impresso, no entanto, dizem-nos que fdisk acha que existem 611 setores por cilindro, de modo que
2197152 dividir por 611 e obter 3.423,327 cilindros. Ns arredondar para baixo a 3.423 cilindros,
o que prova ser 2091453 setores. Este o comprimento que damos primeira partio.
Usamos o espao restante para a partio FreeBSD. Quanto? Bem, dmesg diz-nos
que existem 8386733 setores, mas se voc olhar para a geometria que fdisk sadas, h
so 13.726 cilindros com 13 cabeas (faixas) por cilindro e 47 setores por trilha. 13726
13 47 8386586. Este arredondamento para baixo a explicao para a falta de dados no
final do disco que vimos na pgina 204. A melhor maneira de se calcular o tamanho da
FreeBSD partio levar o nmero de cilindros e multiplicar pelo nmero de
trilhas por cilindro. A partio do FreeBSD comea atrs da divisria Microsoft, por isso
vai de cilindro para cilindro 13725 3423, inclusive, ou 10303 cilindros. Na 611 setores
por cilindro, temos um total de 6295133 setores da partio. Nosso resultado
informao :
disks.mm, v v4.17 (2003/04/02 06:44:17)
212
Divisria
tipo
6
165
0
0
Comea
Tamanho
r
setor
2091453
1
6295133
2091453
0
0
Em seguida, execute fdisk a srio, especificando a -I opo. Durante este tempo, voc pode ver
mensagens no console:
da1: invlido tabela de partio primria: nenhuma mgica
A mensagem nenhuma mgica no quer dizer que fdisk est fora de fumaa roxa. Refere-se
fato de que ele no encontrou o chamado nmero mgico, que identifica a tabela de partio.
Ns no temos uma tabela de partio, no entanto, assim que esta mensagem no de estranhar. tambm completamente
inofensivo.
fdisk prompts interativamente quando voc especificar o -I bandeira:
# Fdisk-i da1
******* Trabalho sobre o dispositivo / dev/da1 *******
parmetros extrados a partir de volume de disco no interior do ncleo :
cilindros = 13.726 cabeas = 13 setores / trilha = 47 (611 blks / cilindro)
As figuras abaixo no funcionar com BIOS para parties no em cilindros 1
parmetros a serem utilizados para os clculos do BIOS so:
cilindros = 13.726 cabeas = 13 setores / trilha = 47 (611 blks / cilindro)
Voc quer mudar a nossa ideia sobre o que pensa BIOS? [N]
Entrar prensado
Tamanho do setor de mdia de 512
Aviso: BIOS setor numerao comea com o setor 1
Informaes do DOS bootblock :
Os dados para a partio 1 :
sysid 165, (FreeBSD/NetBSD/386BSD)
iniciar 0, tamanho 8.386.733 (4095 Meg), bandeira 80 (ativo)
implorar: cyl 0 / head 0 / setor 1;
end: cyl 522 / cabea 12 / setor 47
Voc quer mudar isso? [N] y
Fornecer um valor decimal para "sysid (165 = FreeBSD)" [0] 6
Fornecer um valor decimal para o "start" [0]
Entrar prensado
Fornecer um valor decimal para o "tamanho" [0] 2091453
Explicitamente especificar o endereo implorar / end? [N]
Entrar prensado
sysid 6 (Primrio 'big' DOS (> 32MB))
iniciar 0, tamanho 2.091.453 (1021 Meg), bandeira 0
implorar: cyl 0 / head 0 / setor 1;
end: cyl 350 / cabea 12 / setor 47
Estamos felizes com essa entrada? [N] y
Os dados para a partio 2 :
<UNUSED>
Voc quer mudar isso? [N] y
Fornecer um valor decimal para "sysid (165 = FreeBSD)" [0] 165
Fornecer um valor decimal para o "start" [0] 2091453
Fornecer um valor decimal para o "tamanho" [0] 6295133
Explicitamente especificar o endereo implorar / end? [N]
Entrar prensado
sysid 165, (FreeBSD/NetBSD/386BSD)
disks.mm, v v4.17 (2003/04/02 06:44:17)
213
Mesmo que criamos parties vlidas 1 e 2, que cobrem toda a unidade, fdisk
nos deu a 4 partio fantasma, que abrangeu todo o disco, e tivemos que remover
lo.
214
O problema aqui overflow: era uma vez, o valor mximo do cilindro foi
1023, e fdisk ainda acha que este o caso. Os nmeros que estamos vendo aqui so os
restante deixado pela diviso do nmero de cilindros reais por 1024.
Rotulagem do disco
Uma vez que temos uma tabela de parties vlida BIOS do PC, preciso criar sistemas de arquivos. Ns
no vai olhar para a partio Microsoft em mais detalhes, mas ainda precisamos fazer alguns
mais trabalho na nossa fatia FreeBSD (fatia ou PC partio BIOS 2). Isso vai facilitar a vida
aqui lembrar algumas coisas:
A partir de agora, estamos apenas olhando para a fatia, o que podemos pensar como um disco lgico.
Nomes como rtulo de disco realmente referem-se a fatia, mas muitos termos padro usar a palavra
disco, por isso vamos continuar a us-los.
A primeira coisa que precisamos a (fatia) rtulo de disco, que fornece informaes gerais sobre
a fatia:
O tamanho da fatia.
A nica informao que precisa para a entrada o tipo, tamanho e localizao das parties. Em
Neste caso, ns decidimos criar um sistema de arquivos na partio h ( / Dev/da1s2h) e swap
um espao na partio b / Dev / (da1s1b). O espao de troca ser de 512 MB, eo sistema de arquivos
vai ocupar o resto da fatia. Isto principalmente tradio: tradicionalmente discos de dados utilizar o
h e no a partio um partio, por isso vamos manter essa tradio, embora no h nada
para impedi-lo de usar o um partio, se voc preferir. Alm disso, preciso definir o c
de partio, que representa toda a fatia. Em resumo, a fatia FreeBSD queremos
criar se parece com:
215
Disklabel
O programa que escreve a etiqueta do disco chamado (esperar por ele) disklabel. No to enrugadas como
fdisk, mas ele ainda pode dar-lhe um prazo para seu dinheiro. Hoje em dia voc pode ignorar a maioria dos
a complexidade, no entanto. Voc pode normalmente criar um rtulo de disco com o nico comando:
# Disklabel-w-r / dev/da1s2 auto
Isto cria o rtulo com uma nica partio, c. Voc pode olhar para o rtulo com disklabel
sem opes:
# Disklabel / dev/da1s2
# / Dev/da0s2:
Tipo: SCSI
disk: SEAGATE
label:
flags:
bytes / setor: 512
setores / trilha: 47
faixas / cilindro: 13
setores / cilindro: 611
Cilindros: 10303
setor / unidade: 6295133
rpm: 3600
intercalam: 1
trackskew: 0
cylinderskew: 0
headswitch: 0
# Milissegundos
caminhos-de-track buscar: 0 # milissegundos
drivedata: 0
8 parties:
# Tamanho
c: 6295133
compensar
0
fstype
[Fsize bsize bps / cpg]
no usado
0
0 # (Cyl.
0-10302)
Somente nos ltimos trs linhas so de interesse. O resto informao histrica que irrelevante
e que pode ser simplesmente errado, como o rpm valor de 3600, um valor tpico de 20 anos atrs.
Hoje em dia at os discos mais baratos correr a 5400 rpm.
Neste momento, a nica partio que voc tem o'' todo'' disco de partio c. Voc ainda precisa
para parties b e h e especificar sua localizao e tamanho. Faa isso com disklabel-e, que
inicia um editor com a sada que voc v acima. Basta adicionar parties adicionais:
8 parties:
# Tamanho
compensar
c: 6295133
0
b: 1048576
0
h: 5246557 1048576
fstype
[Fsize bsize bps / cpg]
no usado
0
0 # (Cyl.
trocar
0
0 # (Cyl.
no usado
0
0 # (Cyl.
0-10302)
0-10302)
0-10302)
Voc no precisa manter qualquer ordem particular, e voc no precisa especificar que
divisria h ser um sistema de arquivos. Na prxima etapa, newfs vai fazer isso por voc
automaticamente.
216
Esta mensagem pode ser o resultado do kernel ter informaes out-of-date sobre o
fatia na memria. Se este for o caso, uma reinicializao pode ajudar.
Nmero mgico rtulo ou checksum est errado! diz que disklabel pensa que
tem um rtulo, mas invlido. Isto poderia ser o resultado de uma tentativa anterior incorrecto
para rotular o disco. Pode ser difcil de se livrar de um rtulo incorreto. A melhor coisa a
no reparticionar o disco com a etiqueta em uma posio diferente, e, em seguida, copiar
/ Dev / zero para que o rtulo a ser utilizado. Depois, voc pode reparticionar novamente do jeito que voc
quero t-lo.
escrever: somente leitura do sistema de arquivos significa que voc est tentando fazer algo
invlido com um rtulo de disco vlido. FreeBSD write protege o rtulo do disco, razo pela qual
voc receber essa mensagem.
Isto forma inimitvel de disklabel de lhe dizer que ela quer que voc digite da1s2, no
/ Dev/da1s2.
Em tempos antigos, disklabel s vezes, no conseguiu criar um sistema de arquivos com o automtico
palavra-chave. Em tal caso, necessrio para descrever a geometria do disco no arquivo
/ Etc / disktab. Este problema no ocorreu durante um longo tempo. Se isso acontece com voc, voc
pode contorn-la, definindo o disco em / Etc / disktab (Veja a pgina man disktab (5)
para mais detalhes) e, em seguida, referenciar a definio na invocao de disklabel:
217
O -U flag diz newfs para habilitar as atualizaes suaves, que ns olhamos na pgina 191.
Isso parece bom, mas quando voc reiniciar o sistema, / Newhome eo swap adicional ser
ter ido embora. Para garantir que eles so montados aps a inicializao, voc precisa adicionar o seguinte
para linhas / Etc / fstab:
/ Dev/da1s2b
/ Dev/da1s2h
nenhum
/ Newhome
trocar
ufs
sw
rw
0
0
0
0
218
Copie os arquivos:
# Cd / home
# Tar cf -. | (Cd / newhome; tar xvf - 2> / var / tmp / tarerrors)
Este escreve as mensagens de erro para o arquivo / Var / tmp / tarerrors. Se voc no fizer isso, qualquer
erros vai se perder.
Verifique / var / tmp / tarerrors e certifique-se de que os arquivos realmente fez para a direita
lugar!
Neste caso, / Home era um link simblico, por isso precisamos de remov-lo e criar um
diretrio chamado / Home:
# Rm / home
# Mkdir / home
Voc no precisa fazer isso se / Home j era um diretrio (por exemplo, se voc estiver
movendo-se de um sistema de arquivo completo).
/ Home
ufs
rw
219
Ao mesmo tempo, a fiabilidade foi acima, mas os discos esto ainda relativamente pouco fiveis dispositivos.
Voc pode alcanar a mxima fiabilidade, mantendo-legal, mas mais cedo ou mais tarde voc
vai se deparar com algum tipo de problema. Um tipo devido a irregularidades da superfcie: o disco
no pode ler uma parte especfica da superfcie.
Discos modernos tomar providncias para a recuperao de tais erros, atravs da atribuio de um suplente
setor para os dados. Drives IDE fazer isso automaticamente, mas com drives SCSI voc tem a
opo de ativar ou desativar a realocao. Normalmente realocao ativado quando voc
comprar o disco, mas s vezes no . Ao instalar um novo disco, voc deve verificar se
os parmetros ARRE (Auto Read Realocao Ativar) e AWRE (Auto Escrever
Realocao de Habilitao) esto ligados. Por exemplo, para verificar e definir os valores para disco
/ Dev/da1, voc deve digitar:
# CamControl modepage da1-m 1-e
Os valores para AWRE e ARRE Ambos devem ser 1. Se eles no so, como no presente caso, em que
AWRE 0, alterar os dados com o editor, escrev-lo de volta, e sair. CamControl escreve o
dados de volta para o disco e permite a opo.
Observe as duas ltimas linhas neste exemplo. Eles do o nmero de tentativas reais de que este
unidade tem realizado. Voc pode redefinir esses valores tambm se quiser, eles sero atualizados se
a unidade realiza quaisquer tentativas adicionais.
Neste captulo:
Objetos Vinum
Criando Vinum
unidades
Comeando Vinum
Configurando Vinum
Configurao Vinum
banco de dados
Instalando o FreeBSD
em Vinum
Recuperando-se de
falhas no disco
Migrando para um Vinum
nova mquina
Coisas que voc no deve
fazer com Vinum
12
O volume Vinum
Gerente
Vinum um Volume Manager, um driver de disco virtual que aborda estas trs questes:
Do ponto de vista do usurio, Vinum parece quase exactamente o mesmo que um disco, mas para alm
os discos existe um programa de manuteno.
Objetos Vinum
Vinum implementa uma hierarquia de quatro nveis de objetos:
Volumes so compostos de plexos, cada uma das quais representa o espao de endereo total de
um volume. Este nvel na hierarquia, portanto, fornece a redundncia. Pense em como plexos
Discos individuais de uma matriz espelhada, cada um contendo os mesmos dados.
Vinum existir dentro da estrutura de armazenamento de disco da UNIX, de modo que seria possvel usar
Parties UNIX como o bloco de construo para plexes multi-disco, mas na verdade isso acaba
221
222
ser demasiado inflexvel: discos UNIX podem ter apenas um nmero limitado de parties.
Em vez disso, Vinum subdivide uma nica partio UNIX (o dirigir) em reas contguas
chamado subdiscos, que ele usa como blocos de construo para plexos.
Subdiscos residir em Vinum unidades, divisrias atualmente UNIX. Unidades Vinum pode
conter qualquer nmero de subdiscos. Com a excepo de uma pequena rea no incio
da unidade, que usada para armazenar a informao de configurao e de estado, a toda
est disponvel para a unidade de armazenamento de dados.
Plexos pode incluir vrios subdiscos distribudos por todas as unidades na configurao Vinum, para
o tamanho de uma unidade individual no limitar o tamanho de um complexo e, portanto, de um volume.
Disco 2
Disco 3
Disco 4
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Objetos Vinum
223
Disco 2
Disco 3
Disco 4
0
4
8
12
16
20
1
5
9
13
17
21
2
6
10
14
18
22
3
7
11
15
19
23
O impacto no desempenho. Escreve deve ser realizada para ambas as unidades, de modo que eles ocupam
duas vezes a largura de banda de um volume no espelhado. L no sofrem de um
penalidade de desempenho: voc s precisa ler a partir de um dos discos, por isso, em alguns casos,
eles podem mesmo ser mais rpido.
O mais interessante das solues de paridade o nvel de RAID 5, normalmente chamado RAID-5. O
layout do disco semelhante a organizao listrado, exceto que um bloco em cada faixa contm
a paridade dos restantes blocos. A localizao dos blocos de paridade muda a partir de um
listra para o outro para equilibrar a carga sobre as unidades. Se qualquer uma das unidades falhar, o motorista pode
reconstruir os dados com a ajuda das informaes de paridade. Se uma unidade falhar, a matriz
continua a operar em degradante modo: uma leitura a partir de um dos restantes acessveis
unidades continua normalmente, mas um pedido de leitura da unidade no satisfeita por
recalcular o contedo de todas as unidades restantes. Escreve simplesmente ignorar os mortos
dirigir. Quando a unidade for substitudo, Vinum recalcula o contedo e escreve-los de volta
para a nova unidade.
Na figura a seguir, os nmeros nos blocos de dados indicam o bloco relativo
nmeros.
224
Disco 1
Disco 2
Disco 3
Disco 4
0
3
6
Paridade
12
15
1
4
Paridade
9
13
16
2
Paridade
7
10
14
Paridade
Paridade
5
8
11
Paridade
17
A maior vantagem de listras plexos (RAID-0) que eles reduzem os pontos quentes: por
escolher uma faixa de tamanho ideal (entre 256 e 512 kB), voc pode at mesmo fora do
carregar nas unidades que o compem. A desvantagem dessa abordagem a restrio
subdiscos, que devem ser todos do mesmo tamanho. Estendendo um complexo listrado, adicionando novo
subdiscos to complicado que Vinum atualmente no implement-lo. A listrado
complexo deve ter pelo menos dois subdiscos: caso contrrio, indistinguvel de um
concatenado complexo. Alm disso, h uma interao entre a geometria da UFS
e Vinum que torna aconselhvel no ter um tamanho de faixa que uma potncia de 2: isso
o fundo para a meno de uma kB tamanho da faixa 292 no exemplo acima.
RAID-5 plexos so efetivamente uma extenso de plexos listradas. Comparado com listrado
plexos, que oferecem a vantagem de tolerncia a falhas, mas as desvantagens de um pouco
maior custo de armazenamento e desempenho significativamente pior gravao. Como plexos listradas,
RAID-5 plexos deve ter subdiscos de igual tamanho e atualmente no pode ser prorrogado.
Vinum impe um mnimo de trs subdiscos para um RAID-5 complexo: qualquer nmero menor
no faria qualquer sentido.
vinum.mm, v v4.19 (2003/04/09 19:56:42)
Objetos Vinum
225
Vinum tambm oferece RAID-4, embora esta organizao tem algumas desvantagens e no h
vantagens quando comparado ao RAID-5. A nica razo para incluir este recurso
que era uma adio trivial: necessrio apenas duas linhas de cdigo.
concatenado
Mnimo
Lata
subdiscos adicionar
subdiscos
1
sim
Deve ser
igual
Aplicao
tamanho
no
Armazenamento de dados grande com o mximo de
flexibilidade de posicionamento e moderada
desempenho.
listrado
no
sim
RAID-5
no
sim
Tipo Plex
fstype
[Fsize bsize bps / cpg]
no usado
0
0 # (Cyl.
trocar
0
0 # (Cyl.
vinum
0
0 # (Cyl.
0-10302)
0-10302)
0-10302)
Comeando Vinum
Vinum vem com a base do sistema como um kld. Ele ser carregado automaticamente quando voc executa
o vinum de comando. possvel construir um kernel especial que inclui Vinum, mas esta
no recomendada: neste caso, no ser capaz de parar Vinum.
226
FreeBSD Release 5 inclui um novo mtodo de partida Vinum. Coloque as seguintes linhas no
/ Boot / loader.conf :
vinum_load = "YES"
vinum.autostart = "YES"
A primeira linha instrui o carregador para carregar o Vinum kld, ea segunda diz-lhe para comear
Vinum durante os testes do dispositivo. Vinum ainda suporta o mtodo mais antigo de definir o
varivel start_vinum em / Etc / rc.conf, mas este mtodo pode ir embora em breve.
Configurando Vinum
Vinum mantm uma base de dados de configurao que descreve os objectos conhecidos para uma
sistema individual. Voc pode criar o banco de dados de configurao de um ou mais configurao
arquivos com o auxlio do vinum programa utilitrio. Vinum armazena uma cpia da sua configurao
banco de dados em cada unidade Vinum. Esta base de dados atualizada a cada mudana de estado, de modo que a
reiniciar restaura com preciso o estado de cada objeto Vinum.
O arquivo de configurao
O arquivo de configurao descreve objetos Vinum individuais. Para definir um volume simples,
voc pode criar um arquivo chamado, por exemplo, config1, contendo as seguintes definies:
dirigir um dev/da1s2h dispositivo /
myvol volume de
complexo org concat
sd comprimento 512m rgido de um
O conduzir linha descreve uma partio de disco (drive) e sua localizao em relao
subjacente de hardware. dado o nome simblico a. Esta separao do
nomes simblicos a partir dos nomes de dispositivo permite que os discos a ser movido de um local
para outro, sem confuso.
Configurando Vinum
227
/ Dev/da1s2h
Volumes de 1:
V myvol
Plexos:
1 Tamanho:
512 MB
Subdiscos:
1 Tamanho:
512 MB
1 plexos:
P myvol.p0
1 subdiscos:
S myvol.p0.s0
Estado: at
Estado C: up
Estado: at
A: 3582/4094 MB (87%)
D: um
Tamanho:
512 MB
Este resultado mostra a breve listagem em formato de vinum. Ela representada graficamente em
Figura 12-4.
0 MB
Subdisco
myvol.p0.s0
volume
endereo
espao
512 MB
Plex 1
myvol.p0
228
Este volume especial no tem nenhuma vantagem especfica sobre uma partio de disco convencional. Ele
contm um nico complexo, por isso no redundante. O complexo contm um nico subdisco, ento no
h diferena na alocao de armazenamento a partir de uma partio de disco convencional. A seguir
sees ilustrar vrios mtodos de configurao mais interessantes.
Neste exemplo, que no era necessrio para especificar uma definio de unidade um de novo, porque
Vinum mantm o controle de todos os objetos em seu banco de dados de configurao. Aps o processamento deste
definio, a configurao semelhante a:
2 unidades:
D um
D b
Estado: at
Estado: at
/ Dev/da1s2h
/ Dev/da2s2h
2 volumes:
V myvol
V espelho
Estado: at
Estado: at
Plexos:
Plexos:
3
P
P
P
plexos:
myvol.p0
mirror.p0
mirror.p1
3
S
S
S
subdiscos:
myvol.p0.s0
mirror.p0.s0
mirror.p1.s0
Estado C: up
Estado C: up
C Estado: inicializar
Estado: at
Estado: at
Estado: vazio
A: 3070/4094 MB (74%)
A: 3582/4094 MB (87%)
1 Tamanho:
2 Tamanho:
512 MB
512 MB
Tamanho:
Tamanho:
Tamanho:
512 MB
512 MB
512 MB
Configurando Vinum
229
0 MB
Subdisco 1
mirror.p0.s0
volume
Subdisco 2
endereo
espao
mirror.p1.s0
512 MB
Plex 1
Plex 2
mirror.p0
mirror.p1
D: b
Tamanho:
512 MB
Revivendo um volume grande pode levar um tempo muito longo. Quando voc cria um volume, o
contedos no esto definidos. Ser que realmente importa se o contedo de cada complexo so diferentes?
Se voc s vai ler o que voc escreveu em primeiro lugar, voc no precisa se preocupar muito.
Neste caso, voc pode usar o setupstate palavra-chave no arquivo de configurao. Vamos ver um
exemplo disto a seguir.
Para ver o que aconteceu, use a opo de listagem recursiva -R pela lista comando:
Vinum -> l-r myvol
V myvol
Estado: at plexos: 2
P myvol.p0
Estado C: up
Subdiscos: 1
P myvol.p1
C Estado: inicializar
Subdiscos:
S myvol.p0.s0
Estado: at D: a
S myvol.p1.s0
Estado: vazia D: b
Tamanho: 1024 MB
Tamanho: 512 MB
1 Tamanho: 1024 MB
Tamanho:
512 MB
Tamanho: 1024
230
0 MB
myvol.p0.s0
volume
endereo
myvol.p0.s1
myvol.p1.s0
espao
1024
Plex 1
Plex 2
myvol.p0
myvol.p1
Configurando Vinum
231
Subdiscos:
Tamanho: 1024 MB
Tamanho: 1024 MB
1 Tamanho: 1024 MB
Tamanho:
512 MB
Tamanho:
512 MB
Tamanho: 1024
Na verdade, ele est em to boa forma como sempre tem sido. A primeira metade do myvol ainda contm o
sistema de arquivos que colocamos sobre ele, e o mais acessvel do que nunca. O problema aqui que no
nada nos outros dois subdiscos, que so mostradas sombreadas na figura. Vinum no pode
sei que isso aceitvel, mas o que fazemos. Neste caso, usamos alguma manuteno
comandos para definir os estados de objeto correto:
Vinum -> setstate up myvol.p0.s1 myvol.p0
Vinum -> l-r myvol
V myvol
Estado: plexos at:
P myvol.p0
Estado C: up
Subdiscos:
P myvol.p1
Estado C: com defeito
Subdiscos:
S myvol.p0.s0
Estado: at D: a
S myvol.p0.s1
Estado: at D: c
S myvol.p1.s0
Estado: velho D: b
Vinum -> saveconfig
2 Tamanho:
2 Tamanho:
1 Tamanho:
Tamanho:
Tamanho:
Tamanho:
1024
1024
1024
512
512
1024
MB
MB
MB
MB
MB
MB
Volumes de 1:
V myvol
Plexos:
2 Tamanho:
1024
Subdiscos:
Subdiscos:
2 Tamanho:
1 Tamanho:
1024
1024
Dois plexos:
P myvol.p0
P myvol.p1
3
S
S
S
subdiscos:
myvol.p0.s0
myvol.p1.s0
myvol.p0.s1
Estado: at
Estado C: up
Estado C: up
Estado: at
Estado: at
Estado: at
D: um
D: b
D: c
Tamanho:
Tamanho:
Tamanho:
512 MB
1024
512 MB
232
A mensagem dizendo que myvol.p1.s0 se vem aps o alerta, para que a prxima
comando no tem um prompt. Neste ponto, voc tem um totalmente espelhado, funcional
de volume, 1 GB de tamanho. Agora, se voc olhar para o contedo, no entanto, que voc v:
# Df / mnt
Filesystem 1048576-blocos Capacidade Disponvel Usado Montado em
/ Dev / vinum / myvol 503
1 461
0%
/ Mnt
O volume agora 1 GB de tamanho, mas o sistema de arquivos no volume ainda de apenas 512 MB.
Para expandi-lo, use growfs:
# Umount / mnt
# Growfs / dev / vinum / myvol
Ns recomendamos fortemente que voc faa um backup antes de crescer o Sistema de Arquivos
Ser que voc faa backup de seus dados (Sim / No)? Sim
systemsize novo arquivo : 524288 frags
Aviso: 261920 setor (s) no pode ser alocado.
growfs: 896.1MB (1.835.232 setores) Tamanho de bloco 16384, tamanho do fragmento de 2048
usando sete grupos de cilindros de 128.02MB, 8.193 quadras, 16.512 inodes.
backups super-bloco (por fsck-b #) em:
1048736, 1310912, 1573088
# Mount / dev / vinum / myvol / mnt
# Df / mnt
Filesystem 1048576-blocos Capacidade Disponvel Usado Montado em
/ Dev / vinum / myvol 881
1 809
0%
/ Mnt
Otimizar o desempenho
Os volumes espelhados no exemplo anterior so mais resistentes a falhas do que
volumes no espelhado, mas seu desempenho menor: cada gravao para o volume requer um
escrever para ambas as unidades, utilizando-se uma maior proporo da largura de banda total do disco.
Consideraes sobre o desempenho exigem uma abordagem diferente: ao invs de espelhamento, os dados so
distribudos em tantas unidades de disco possvel. A configurao a seguir mostra uma
volume com um complexo distribudos em quatro unidades de disco:
unidade de dispositivo / dev/da3s2h c
conduzir d device / dev/da4s2h
volume stripe
complexo org 480k listrado
sd comprimento unidade de 128m
sd comprimento 128m unidade b
sd comprimento 128m unidade c
sd comprimento 128m unidade d
Ao criar plexos listradas para o sistema de arquivos UFS, verifique se o tamanho do bloco uma
mltipla do sistema de tamanho de bloco (normalmente 16 kB), mas no uma potncia de 2. UFS
freqentemente atribui grupos de cilindros com comprimentos que so uma potncia de 2, e se voc alocar
listras, que tambm so uma potncia de 2, voc pode acabar com todos os inodes na mesma unidade,
que afetaria significativamente o desempenho em algumas circunstncias. Os arquivos so
alocados em blocos, de modo que tem um tamanho de distribuio que no um mltiplo do tamanho do bloco pode
causar fragmentao significativa de pedidos e conseqente queda no desempenho de I / O. Ver
a pgina de manual para mais detalhes.
vinum.mm, v v4.19 (2003/04/09 19:56:42)
Configurando Vinum
233
Vinum requer que um complexo listrado tem um nmero inteiro de listras. Voc no tem que
calcular o tamanho exactamente, embora: se o tamanho do complexo no um mltiplo do tamanho do bloco,
Guarnies Vinum fora da faixa parcial restante e imprime uma mensagem de console:
vinum: remoo 256 blocos de faixa parcial no final do stripe.p0
Como antes, no necessrio para definir as unidades que so j conhecidos para Vinum. Depois
processar esta definio, a configurao semelhante a:
4
D
D
D
D
unidades:
um
b
c
d
Estado:
Estado:
Estado:
Estado:
3
V
V
V
volumes:
myvol
espelho
tira
Estado: at
Estado: at
Estado: at
5 plexos:
P myvol.p0
P mirror.p0
C Estado:
C Estado:
P mirror.p1
P myvol.p1
P stripe.p0
C Estado:
C Estado:
S Estado:
8
S
S
S
S
S
S
S
S
S
subdiscos:
myvol.p0.s0
mirror.p0.s0
mirror.p1.s0
myvol.p1.s0
myvol.p0.s1
stripe.p0.s0
stripe.p0.s1
stripe.p0.s2
stripe.p0.s3
Estado:
Estado:
Estado:
Estado:
Estado:
Estado:
Estado:
Estado:
Estado:
para
cima
para
cima
para
cima
para
cima
para
cima
para
cima
inicializar
para
cima
para
cima
para
cima
para
cima
vazio
para
cima
para
cima
para
cima
para
cima
para
cima
para
cima
/
/
/
/
Dev/da1s2h
Dev/da2s2h
Dev/da3s2h
Dev/da4s2h
A:
A:
A:
A:
2942/4094
2430/4094
3966/4094
3966/4094
MB
MB
MB
MB
(71%)
(59%)
(96%)
(96%)
Plexos:
Plexos:
Plexos:
2 Tamanho:
2 Tamanho:
1 Tamanho:
1024
512 MB
511 MB
Subdiscos:
Subdiscos:
1 Tamanho:
1 Tamanho:
512 MB
512 MB
subdiscos:
Subdiscos:
Subdiscos:
D:
D:
D:
D:
D:
D:
D:
D:
D:
um
um
b
b
c
um
b
c
d
1 Tamanho:
512 MB
1 Tamanho:
1024
4 Tamanho:
511 MB
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
512
512
512
1024
512
127
127
127
127
MB
MB
MB
MB
MB
MB
MB
MB
MB
Resilincia e desempenho
Com hardware suficiente, possvel construir os volumes que mostram tanto aumentada
resilincia e maior desempenho em comparao com parties UNIX padro. Espelhado
discos de sempre dar um melhor desempenho do que o RAID-5, para um arquivo de configurao tpica
poderia ser:
unidade e dispositivo / dev/da5s2h
unidade de dispositivo f / dev/da6s2h
unidade g dispositivo / dev/da7s2h
unidade h dev/da8s2h dispositivo /
conduzir i dev/da9s2h dispositivo /
unidade j dispositivo / dev/da10s2h
volume de RAID10 setupstate
complexo org 480k listrado
sd comprimento unidade 102480k um
sd comprimento 102480k unidade b
vinum.mm, v v4.19 (2003/04/09 19:56:42)
234
stripe.p0.s0
stripe.p0.s1
stripe.p0.s2
stripe.p0.s3
Plex 1
stripe.p0
c
d
e
f
g
h
Eu
j
Neste exemplo, ns adicionamos mais cinco discos para o segundo complexo, de modo que o volume
distribudos em dez eixos. Temos tambm utilizado o setupstate palavra-chave de modo a que todos
componentes vm para cima. O volume parecido com este:
Vinum -> l-r RAID10
V RAID10
Estado: at
P raid10.p0
Estado S: up
P raid10.p1
Estado S: up
S raid10.p0.s0
Estado: at
S raid10.p0.s1
Estado: at
S raid10.p0.s2
Estado: at
S raid10.p0.s3
Estado: at
S raid10.p0.s4
Estado: at
S raid10.p1.s0
Estado: at
S raid10.p1.s1
Estado: at
S raid10.p1.s2
Estado: at
S raid10.p1.s3
Estado: at
S raid10.p1.s4
Estado: at
Plexos:
Subdiscos:
Subdiscos:
D: um
D: b
D: c
D: d
D: e
D: f
D: g
D: h
D: i
D: j
2 Tamanho:
5 Tamanho:
5 Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
499
499
499
9
9
9
9
9
9
9
9
9
9
MB
MB
MB
MB
MB
MB
MB
MB
MB
MB
MB
MB
MB
Configurando Vinum
Plex
sd
sd
sd
sd
sd
Plex
sd
sd
sd
sd
sd
235
Os subdiscos do segundo complexo so compensadas por duas unidades das do primeiro complexo: isto
ajuda a garantir que a falha de uma unidade no causar a mesma parte de ambos os plexos de
tornar-se inacessvel, o que destruiria o sistema de arquivos.
Figura 12-8 representa a estrutura deste volume.
. P0.s0
. P1.s0
. P0.s1
. P1.s1
. P0.s2
. P1.s2
. P0.s3
. P1.s3
. P0.s4
. P1.s4
Plex 1
Plex 2
raid10.p0
raid10.p1
236
Dispositivo / dev/da2s2h
Criado em bumble.example.org a ter 26 nov 2002 14:35:27
Configurao ltima actualizao ter 26 nov 2002 16:12:35
Tamanho: 4293563904 4094 bytes (MB)
volume de Estado myvol up
Plex nome myvol.p0 estado up org concat vol myvol
Plex nome myvol.p1 estado up org concat vol myvol
sd nome myvol.p0.s0 rgido de um complexo myvol.p0 len 1048576s driveoffset estado 265s se ple
xoffset 0s
sd nome myvol.p1.s0 unidade b complexo myvol.p1 len 2097152s driveoffset estado 265s se ple
xoffset 0s
sd nome myvol.p0.s1 unidade c complexo myvol.p0 len 1048576s driveoffset estado 265s se ple
xoffset 1048576s
237
arquivos
da0s3f: / var sistema de
arquivos
fstype
[Fsize bsize bps / cpg]
4.2BSD
2048 16384 94
# (* Cyl. 871 - 1729 *)
trocar
# (Cyl.
0 * - 871 *)
no usado
0
0 # (Cyl. 0-13726 *)
4.2BSD
2048 16384 89
# (Cyl. 1729 * - 8594 *)
4.2BSD
2048 16384 89
# (Cyl. 8594 * - * 13726)
Para converter a Vinum, use disklabel com a -E Opo (rtulo de edio) para criar um volume de
tipo vinum que mapeia o c partio:
h: 8386733
vinum
# (Cyl.
0-13726 *)
238
arquivos
da0s3f: / var sistema de
arquivos
94
89
89
Em seguida, reinicie para o modo single-user, comece Vinum e executar fsck contra os volumes, com o
-N opo para contar fsck no para corrigir eventuais erros que encontra. Voc deve ver algo como
isto:
vinum.mm, v v4.19 (2003/04/09 19:56:42)
239
Se houver erros, eles sero provavelmente porque voc calculou mal o tamanho ou
offset. Voc ver algo parecido com isto:
# Fsck-n-t ufs / dev / vinum / usr
** / Dev / vinum / usr (sem escrita)
No foi possvel encontrar o superbloco do sistema de arquivos
/ Dev / vinum / usr: no consigo descobrir o arquivo de sistema PARTITION
Voc precisa fazer isso em modo de usurio nico, porque os volumes so sombreamento sistemas de arquivos,
e normal para sistemas de arquivos abertos a falhar fsck, j que alguns do estado no cache do buffer.
Se tudo estiver bem, remontar o sistema de arquivos raiz de leitura e escrita:
# Mount-u /
Em seguida, edite / Etc / fstab para apontar para os novos dispositivos. Para este exemplo, / Etc / fstab poder
inicialmente conter:
# $ Id: fstab, v 1.3 2002/11/14 06:48:16
# Dispositivo
Mountpoint
/ Dev/da0s4a /
/ Dev/da0s4b nenhum
/ Dev/da0s4e / usr
/ Dev/da0s4f / var
grog Exp
Fstype
ufs
trocar
ufs
ufs
$
Opes
rw
sw
rw
rw
Despejar
1
0
1
1
Passe #
1
0
1
1
grog Exp
Fstype
trocar
ufs
ufs
ufs
$
Opes
sw
rw
rw
rw
Despejar
0
1
1
1
Passe #
0
1
1
1
Em seguida, reiniciar novamente para montar o sistema de arquivos raiz de / Dev / vinum / root. Voc tambm pode
opcionalmente, remover todas as parties UFS exceto a partio raiz. O carregador no
saber sobre o Vinum, por isso deve iniciar a partir da partio UFS.
Depois de ter chegado a esta fase, voc pode adicionar plexes adicionais aos volumes, ou voc
pode estender os plexos (e, portanto, o tamanho do sistema de arquivos), adicionando subdiscos
plexos, como discutido na pgina 229.
240
Se voc tem hot-conectado a unidade, ela deve ter o mesmo ID, o drive Vinum
devem estar na mesma partio, e deve ter o mesmo tamanho.
Se voc teve que parar o sistema para substituir a unidade, a unidade antiga no ser
associado a um nome de dispositivo, e voc pode coloc-lo em qualquer lugar. Criar um Vinum
partio que pelo menos grande o suficiente para tomar todas as subdiscos em seu formato original
posies sobre a unidade. Vinum atualmente no tem espao livre compacto quando
substituio de uma unidade. Uma maneira fcil de garantir isso fazer com que a nova unidade, pelo menos,
grande como a unidade antiga.
Se voc quer ter essa liberdade com uma unidade hot-pluggable, voc deve parar Vinum
e reinici-lo.
3. Se voc tiver reiniciado Vinum, criar uma nova unidade. Por exemplo, se a substituio
conduzir data3 sobre a diviso fsica / Dev/da3s1h, criar um arquivo de configurao, digamos
configfile, com a nica linha
conduzir data3 dispositivo / dev/da3s1h
Em seguida, digite:
# Vinum criar configfile
4. Inicie os plexos que estavam para baixo. Por exemplo, a lista vinum poder exibir:
Vinum - test> l-r
V teste
P test.p0
P test.p1
S test.p0.s0
S test.p1.s0
Estado: at
Estado C: up
Estado C: com defeito
Estado: at
Estado: obsoleto
Plexos: 2
Subdiscos: 1
Subdiscos: 1
PO:
PO:
0B
0B
Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:
30
30
30
30
30
MB
MB
MB
MB
MB
241
No utilize o ResetConfig comando, a menos que voc realmente no quer ver nenhum de
sua configurao novamente. Existem outras alternativas, tais como o rm, que remove
objetos individuais ou grupos de objetos.
242
Estado: at
Estado: at
/ Dev/da1s1h
/ Dev/da1s2h
A: 3582/4094 MB (87%)
A: 3582/4094 MB (87%)
No coloque mais de uma unidade em um disco fsico. Cada unidade contm duas cpias de
a configurao Vinum, e tanto a atualizao da configurao e comear Vinum
diminuir como resultado. Se voc quer mais do que um sistema de arquivos para ocupar espao em um
unidade fsica, criar subdiscos, no dirige.
Neste captulo:
Criao de um
Imagem ISO-9660
Gravar o CD-R
Cpia de CD-ROMs
13
Gravao de CD-Rs
No FreeBSD, os dados armazenados nos discos rgidos convencionais, armazenado na UNIX File System ou
UFS formato. CD-ROM e CD-Rs usar um sistema de arquivos diferente, o ISO 9660 formato,
que seja compatvel com outros sistemas. Isto no um problema quando se montar um CDROM: FreeBSD inclui somente leitura do sistema de arquivos ISO 9660. Quando voc quiser escrever um
CD-R, no entanto, as coisas so um pouco mais complicado: o meio requer que voc escreva
o sistema de arquivo inteiro de uma vez, e uma vez que o sistema de arquivos armazenado em um formato diferente, voc
no pode simplesmente copiar o sistema de arquivos UFS. Em vez disso, voc deve primeiro criar uma imagem do arquivo
sistema que voc deseja colocar no CD-R, e depois copi-lo. Ns vamos olhar para estes passos
em maior detalhe abaixo.
243
244
Usar -B se voc quer ser capaz de inicializar a partir do CD, como um CD de boot do FreeBSD.
No caso do FreeBSD, use a imagem 2.88 MB disquetes / boot.flp o qual construdo como
parte do processo de liberao. Note que este arquivo obrigao estar em um dos diretrios
includo na imagem, eo nome relativo ao diretrio raiz do CD.
O -F opo diz mkisofs para seguir links simblicos. Se voc no especificar esta opo
e voc tem os links simblicos no diretrio a partir do qual voc cria a imagem, a
imagem de CD-ROM resultante ir conter apenas um link simblico em vez do arquivo em si.
Se o arquivo para o qual o link simblico aponta abaixo do nvel superior (raiz) do diretrio, esta
a melhor maneira de fazer as coisas, porque economiza espao, mas se ele aponta fora do
CD-ROM, o arquivo no aparecer no CD-ROM em tudo. Use esta opo se voc tiver
links simblicos para arquivos fora do diretrio que voc est usando para a raiz do CDSistema de arquivos ROM.
O -J opo faz com que o CD compatvel com Microsoft da Joliet formato. Voc no
precisam para FreeBSD, mas no custa muito, por isso uma boa idia para inclu-lo se
h uma chance de que o CD vai ser usado em um ambiente Microsoft.
Use o -O opo para especificar o nome da imagem ISO resultante. Esta imagem o
tamanho do CD resultante, por isso poderia ser de at 700 MB.
O -P opo especifica o ID preparador, outro campo de cabealho ISO 9660 para especificar
quem fez o CD-ROM.
O -R opo especifica o Rock Ridge Extensions que so usados para armazenar arquivo UNIX
nomes. Ele faz uma srie de suposies sobre as permisses e proprietrios, ver o
pgina de manual para mais detalhes. Ele leva sem parmetros.
O -T opo diz mkisofs para incluir um arquivo de traduo TRANS.TBL em cada diretrio
para uso por sistemas que no suportam as extenses Rock Ridge. Para cada nome de arquivo
no diretrio, TRANS.TBL contm um nome compatvel Microsoft (at oito
caracteres, um ponto (.) e at mais trs caracteres). Os nomes tm uma ligeira
semelhana com os nomes originais.
Se voc no gosta do nome TRANS.TBL, voc pode especificar um nome diferente com o
-Table-name opo, o que implica -T. Por exemplo, se voc escrever-table-name
. MAP voc ir gerar nomes que no vai aparecer com uma normalidade ls de comando.
245
Isso um monte de coisas para escrever em todos os tempos. mais fcil escrever um Makefile e usar fazer:
APPLID =
"Aplicativo fictcio"
Boot =
# Para torn-lo inicializvel, coloque algo como isto:
# Note-se que a-b opo existe assim
# Boot =
"-B disquetes / boot.flp"
ISO =
/ Var / tmp / isoimage
PREPARADOR =
"Me"
Volid =
"Volume 0000"
DIR =
.
cdrom:
mkisofs-A APPLID $ {} $ {BOOT}-J-o $ {ISO}-f \
-P $ {} PREPARADOR-r-T-V volid $ {} $ {DIR}
Por exemplo, para fazer um CD-R da liberao FreeBSD, voc deve primeiro realizar
o tornar o mundo e fazer lanamento. Assumindo que o diretrio de liberao / home / release,
voc vai encontrar as rvores de diretrio para o primeiro de dois CD-ROMs em / Home/release/R/cdrom/disc1 e / Home/release/R/cdrom/disc2. Voc pode fazer isso:
# Make cdrom DIR = / home/release/R/cdrom/disc1
mkisofs-A "aplicao Manequim"-J-o .. / iso-table-name. MAP-p "Greg Lehey"-r-T
-V "Volume 0000".
6,40% feito, estimar acabamento Sun 27 agosto 2000 13:34:54
12,79% feito, estimar acabamento Sun 27 agosto 2000 13:35:02
19,19% feito, estimar acabamento Sun 27 agosto 2000 13:35:05
25,57% feito, estimar acabamento Sun 27 agosto 2000 13:35:10
31,97% feito, estimar acabamento Sun 27 agosto 2000 13:35:10
38,36% feito, estimar acabamento Sun 27 agosto 2000 13:35:10
44,75% feito, estimar acabamento Sun Aug 27 13:35:10 2000
51,15% feito, estimar acabamento Sun 27 agosto 2000 13:35:12
57,54% feito, estimar acabamento Sun 27 agosto 2000 13:35:12
63,94% feito, estimar acabamento Sun 27 agosto 2000 13:35:12
70,34% feito, estimar acabamento Sun 27 agosto 2000 13:35:11
76,72% feito, estimar acabamento Sun 27 agosto 2000 13:35:13
83,12% feito, estimar acabamento Sun Aug 27 13:35:12 2000
89,52% feito, estimar acabamento Sun Aug 27 13:35:13 2000
95,90% feito, estimar acabamento Sun 27 agosto 2000 13:35:13
Traduo total tamanho da tabela: 35119
Total de rockridge atributos bytes: 59724
Total de bytes diretrio: 104448
Tamanho da tabela Path (bytes): 256
Max brk espao usado 86224
78.211 extenses escritas (152 Mb)
Os relatrios so bastante chato hoje em dia, tendo em vista que todo o processo s
leva um par de minutos, mas o resumo das informaes na parte inferior pode ser de interesse.
Testando o CD-R
Ento agora voc tem uma imagem ISO. Como que voc sabe que correto? apenas um nico arquivo, e
poderia ter qualquer coisa sobre ele. Voc pode gravar um CD, claro, mas se lixo, voc
tem outra montanha-russa. Se voc no tiver certeza, melhor olhar para dentro primeiro. Voc pode fazer isso por
utilizando-o como a base para uma md vnode dispositivo.
O md controlador cria um certo nmero de diferentes tipos de pseudo-dispositivo. Veja a pgina de manual
md (4) para mais detalhes. Usamos o vnode dispositivo, um arquivo especial que se refere ao sistema de arquivo
arquivos. Suporte para md est includo no kernel GENERIC, mas se voc construiu um kernel
burncd.mm, v V4.13 (2003/04/02 06:46:59)
246
sem o md driver, voc pode carreg-lo como um kld. Se voc no tiver certeza, tente carregar o kld
de qualquer maneira. Ento voc associar um dispositivo vnode com a imagem ISO iso-imagem usando o
programa mdconfig:
# Kldload md
kldload: no pode carregar md: O arquivo j existe
# Mdconfig-a-t vnode-f iso-imagem
md0
# Mount-t cd9660 / dev/md0 / mnt
Aps isso, voc ser capaz de acessar a imagem em / Mnt como um sistema de arquivos normal. No
se esquea de desmontar e desconfigurar o arquivo quando terminar:
# Umount / mnt
# Mdconfig-d-u 0
Verses mais antigas do FreeBSD usou o vn motorista, que usou a sintaxe diferente.
Gravar o CD-R
Depois de ter uma imagem ISO criado e testado, voc pode copi-lo para CD-R. Para SCSI
queimadores, voc pode usar cdrecord , ATA (IDE) gravadores de CD-R que voc usa burncd. No seguinte
sees vamos olhar para ambos os programas.
burncd tem duas bandeiras e comandos. Para nossos propsitos, as bandeiras mais importantes so:
O -Q opo diz burncd ficar quieto e no para imprimir mensagens de progresso. Na verdade,
no muito detalhado de qualquer maneira.
247
dados ou mode1 escrever trilhas de dados, tambm conhecido como mode1 faixas, para os arquivos de imagem
chamado na linha de comando.
Se burncd no reconhece um comando, ele assume que um nome de arquivo. Se isso acontecer, ele assume
no um nome de arquivo. Isso pode ser confuso: existem outros comandos no mencionadas no
da lista acima, por exemplo cru. Se voc tem um arquivo ISO chamado raw, voc vai ter que mudar o nome
lo antes de queim-lo com burncd.
Antes de comear, voc deve decidir sobre a velocidade de gravao. Se a sua mquina rpido
o suficiente, use a velocidade de gravao nominal. No caso do exemplo da mquina, que um 8x
velocidade (ou seja, ele grava a oito vezes a velocidade a que um CD de udio normal tocada).
Antes de fazer isso, porm, voc deve certificar-se de que seu sistema pode manter um nmero suficiente de
taxa de dados de modo a que haja sempre disponveis dados para transferir para o CD-R. Se ele no pode manter-se,
voc vai ter uma encaixe, uma lacuna nos dados, e seu CD-R intil (a montanha-russa).
Para se certificar de que voc no faz coasters, voc deve fazer um teste. O sistema vai
atravs de todos os movimentos, mas no realmente escrever alguma coisa para o CD-R em branco.
No entanto, ele testa todos os aspectos da queimadura, por isso voc deve ter um CD-R em branco vlido no
unidade, caso contrrio, a tentativa falhar. Para testar queimar uma imagem chamada iso, digite:
# Burncd-f / dev/acd0c-t-v-s 8 dados iso fixate
adicionando o tipo 0x08 iso tamanho 184.576 KB 92.288 blocos
prximo gravvel LBA 0
addr = 0 size = 189005824 blocos = 92288
escrever a partir do arquivo iso tamanho 184.576 KB
escrito esta faixa 6880 KB (3%) no total 6.880 KB
Neste ponto, burncd substitui a linha com indicaes de progresso at que esteja terminado.
Finalmente, voc v:
escrito esta faixa 184.576 KB (100%) no total 184.576 KB
fixando CD, por favor aguarde ..
burncd: ioctl (CDRIOCFIXATE): entrada / sada erro
Esta ltima linha aparece um pouco alarmante. No realmente grave, no entanto: o CD no tem
realmente foi escrito, por isso no possvel ler a partir dele. Um certo nmero de unidades de CD-R regresso
condies de erro sob estas circunstncias.
Se estava tudo bem no teste, voc pode repetir o comando sem o -T bandeira:
# Burncd-f / dev/acd0c-v-s 8 dados iso fixate
A sada idntica, mas desta vez voc no deve receber a mensagem de erro.
Gravar o CD-R
248
Disk 'N491'
Esta sada no dizer exatamente quais os dispositivos so CD-Rs, e tambm no olha para
qualquer, exceto o primeiro barramento SCSI. Alternativamente, voc pode usar o utilitrio padro do sistema
CamControl:
# CamControl devlist
<MATSHITA CD-R
CW-7503 1,06>
<TEAC CD-ROM CD-532S 1.0A>
<SONY SDT-10000 0101>
<QUANTUM QM318000TD-SW N491>
<EXABYTE EXB-8505SMBANSH2 0793>
<Quantum DLT4000 CC1E>
<AIWA GD-8000 0119>
<NRC MBR-7 110>
<NRC MBR-7 110>
<NRC MBR-7 110>
<NRC MBR-7 110>
<NRC MBR-7 110>
<NRC MBR-7 110>
<NRC MBR-7 110>
em
em
em
em
em
em
em
em
em
em
em
em
em
em
scbus0
scbus0
scbus0
scbus0
scbus1
scbus1
scbus1
scbus1
scbus1
scbus1
scbus1
scbus1
scbus1
scbus1
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
alvo
0
1
4
8
1
3
4
6
6
6
6
6
6
6
lun
lun
lun
lun
lun
lun
lun
lun
lun
lun
lun
lun
lun
lun
0
0
0
0
0
0
0
0
1
2
3
4
5
6
(Pass0, cd0)
(Pass1, CD1)
(SA0, pass2)
(Pass3, da0)
(Sa1, pass4)
(Sa2, pass5)
(Sa3, pass6)
(Pass7, CD2)
(Pass8, CD3)
(Pass9, CD4)
(Pass10, cd5)
(Pass11, cd6)
(Pass12, CD7)
(Pass13, CD8)
De qualquer forma, preciso reconhecer o dispositivo de CD-R, que neste caso relativamente fcil:
a Matsushita CW-7503 ('' MATSHITA'') no incio de cada lista. cdrecord
refere-se a este dispositivo como 0,0,0 (Bus 0, alvo 0, LUN 0).
A prxima coisa a olhar a velocidade de gravao. Se a sua mquina rpido o suficiente, use o
avaliaram a velocidade de gravao. No caso do exemplo de mquina, que uma velocidade de 8x (ie
registros em 8 vezes a velocidade com que um CD de udio normal tocada). Antes de fazer isso,
porm, voc deve certificar-se de que seu sistema pode manter uma taxa de dados suficientes para que
sempre h dados disponveis quando ir no CD. Se voc no pode manter-se, voc receber um
encaixe, uma lacuna nos dados, e seu CD-R intil (a montanha-russa).
249
Para se certificar de que voc no faz coasters, voc deve fazer uma corrida fictcia. O sistema vai
atravs de todos os movimentos, mas no realmente escrever alguma coisa para o CD-R em branco.
No entanto, ele testa todos os aspectos da queimadura, por isso voc deve ter um CD-R em branco vlido no
unidade, caso contrrio, a tentativa falhar. Para gravar uma imagem chamada iso, digite:
# Cdrecord-dummy-v dev = 0,0,0-speed = 8 iso
Cdrecord 1.9 (i386-unknown-freebsd5.0) Copyright (C) 1995-2000 Jrg Schilling
TOC Tipo: 1 = CD-ROM
scsidev: '0, 0,0 '
SCSIBUS: 0-alvo: 0 lun: 0
Usando a verso libscg 'Schily-0.1'
atapi: 0
Tipo de dispositivo : Removable CD-ROM
Verso: 2
Formato de resposta: 2
Capacidades: SYNC LIGADO
Vendor_info: 'MATSHITA'
Identifikation: 'CD-R
CW-7503 '
Reviso: '1 .06 '
Dispositivo parece ser: MMC genrica CD-R.
Usando genrico SCSI-3/mmc CD-R driver (mmc_cdr).
Bandeiras motorista
: SWABAUDIO
Tamanho FIFO
: 4194304 = 4096 KB
Track 01: Dados 152 MB
Tamanho total:
175 MB (17:22.84) = 78213 setores
Caipira comear:
175 MB (17:24 / 63) = 78213 setores
Secsize atual: 2048
Informaes ATIP do disco:
Indicado poder da escrita: 5
No irrestrito
No apagvel
ATIP incio de liderana em: -11080 (97:34 / 20)
ATIP incio de levar para fora: 335100 (74:30 / 00)
Tipo de disco:
Tipo long estratgia (Cianina, AZO ou similar)
Facturao. ndice: 11
Fabricante: Mitsubishi Chemical Corporation
Blocos total: 335.100 blocos atuais: 335.100 blocos restantes: 256887
Total de RBlocks: 342.460 RBlocks atuais: RBlocks 342.460 restantes: 264247
Comeando a escrever CD / DVD com velocidade 8 no modo simulado para uma nica sesso.
ltima chance de parar de fumar, comear write fictcios em um segundo.
Esperar para o processo leitor para preencher buffer de entrada ... memria intermdia de entrada imediata.
Iniciando uma nova pista no setor: 0
Track 01: 0 de 152 MB por escrito (FIFO 100%).
Neste ponto, cdrecord sobrescreve a ltima linha com indicaes de progresso at que seja
acabado. Se voc est assistindo, manter um olho sobre o fifo informao no final da linha.
Isso lhe d uma idia de quo bem o sistema est acompanhando o queimador. Se o
utilizao cai para 0, voc receber um encaixe, eo branco teria se tornado um
russa se isso fosse de verdade.
Finalmente, voc v:
Track 01: 152 de 152 MB por escrito (FIFO 100%).
Track 01: Total de bytes de leitura / escrita: 160176128/160176128 (78211 setores).
Escrevendo tempo: 136.918s
Fixando ...
AVISO: Algumas unidades no gosta fixao no modo simulado.
Tempo de fixao:
35.963s
cdrecord: fifo tinha 2.523 e 2.523 puts recebe.
cdrecord: fifo era 0 vezes vazio e 2.451 vezes completo, min preenchimento foi de 96%.
Gravar o CD-R
250
O resumo das informaes no final mostra que em algum momento o fifo caiu abaixo
100% completo, mas isto est longe de ser um problema. Se, por outro lado, houve uma grande quantidade de
atividade do disco, ao mesmo tempo, voc pode encontrar o nvel fifo caindo muito menor.
Quando voc tiver certeza de que voc no ter nenhum problema, voc pode fazer a coisa real: basta
repita o comando sem a -Dummy opo. A sada quase idntica.
Cpia de CD-ROMs
Freqentemente voc vai querer fazer uma cpia exata de um outro CD. H direitos autorais
implicaes aqui, claro, mas muitos CD-ROMs no so restritas. Em particular, voc
pode fazer cpias do FreeBSD CD-ROMs para o seu uso pessoal.
CD-ROMs j esto no formato ISO, claro, de modo a obter um arquivo iso, como nos exemplos
acima, voc pode simplesmente executar uma cpia literal com dd :
# Dd if = / dev/cd0c of = iso bs = 128k
O bs = 128k diz dd copiar em blocos de 128 kB. No estritamente necessrio, mas se voc
omiti-lo, ele ir executar uma transferncia separada para cada setor, e em uma mquina lenta, isso pode
ser muito menos eficiente.
H uma maneira ainda mais fcil, porm, se voc tiver duas unidades de CD-ROM: voc pode freqentemente
copie diretamente de um disco para o outro, sem armazenar em disco em tudo. Para fazer isso,
Claro, voc precisa estar muito certo de que a unidade de CD-ROM rpido o suficiente. Em particular, se
ele gira para baixo durante a cpia, voc quase certamente ter dficits e um intil
copiar. Seja muito certo para fazer uma corrida fictcia primeiro. Vamos supor que o seu segundo CD-ROM
unidade / Dev/cd1c (Uma unidade SCSI). Para drives IDE, escreva:
# Burncd-f / dev/acd0c-t-v-s 8 dados / dev/cd1c fixate
Neste captulo:
Fazer o backup de seus dados
O uso de disquetes
no FreeBSD
14
Tapes, backups e
disquetes
No captulo 11 ns olhamos para discos rgidos. Neste captulo, vamos considerar como se proteger
contra perda de dados, e como transferir dados de um local para outro. So
funes que UNIX tradicionalmente realiza com as fitas, e ns vamos olh-los na prxima
sees. Porque FreeBSD executado em PCs, no entanto, voc no pode escapar completamente flexvel
discos, apesar de que seria uma excelente ideia. Ns vamos olhar para disquetes na pgina 256.
251
252
O meio de backup?
Tradicionalmente, os PCs usam disquetes como um meio de armazenamento removvel. Ns olharemos
disquetes abaixo, mas voc pode somar a seo em uma declarao: no utilizar disquetes.
Os disquetes so particularmente inadequadas como um meio de backup para computadores modernos.
Considere ainda um sistema mnimo com um disco rgido de 2. Armazenar 2 GB de dados em disquetes
requer cerca de 1.500 disquetes, que, em 0,30 dlares cada, iria custar-lhe US $ 450. Copiando o
dados para um disquete leva cerca de 50 segundos por disquete, por isso o tempo de backup matria seria
cerca de 21 horas, mais o tempo que voc leva para mudar os disquetes, que poderia facilmente ter
outras trs horas ou mais. Durante esse tempo, voc tem que sentar-se ao computador jogando
disk jockey, um total de trs dias de trabalho durante o qual voc no podia fazer mais nada.
Quando voc tenta ler os dados novamente, h quase uma certeza de que um dos disquetes
tem um erro de dados, especialmente se voc l-los com uma unidade diferente.
Por outro lado, uma nica fita DDS ou Exabyte armazena vrios gigabytes e custa cerca de
US $ 6. O tempo de autonomia para 2 GB de cerca de 90 minutos e a operao pode ser realizada
completamente autnoma.
Um certo nmero de unidades de fita mais baratos tambm esto disponveis, tais como fitas Travan. FreeBSD
apoia-los, mas, por uma razo ou outra, no so populares. FreeBSD usado uma vez para
tem suporte para'' fita flexvel'', fugir um controlador de disquete, mas estas fitas eram muito
confivel, e eles no so mais suportados.
Voc tambm pode usar'' gravvel CD-ROMs'' (CD-Rs) para fins de backup. Por moderno
padres, os meios de comunicao so pequenos (at 700 MB), mas tm a vantagem de ser
prontamente acessveis a outros sistemas. Olhamos para CD-Rs no captulo 13.
Dispositivos de fita
Dispositivos de fita FreeBSD tem nomes como / Dev/nsa0 (Ver pgina 196). Cada letra tem um
significado:
SA stands para acesso serial, e sempre SCSI. Voc tambm pode obter as unidades de fita ATAPI,
que so chamados / Dev/ast0 e / Dev/nast0, e as mais velhas fitas QIC-02 interface so
chamado / Dev/wst0 e / Dev/nwst0.
0 o nmero de unidade. Se voc tiver mais de uma fita, o prximo ser chamado
/ Dev/nsa1, e assim por diante.
tapes.mm, v v4.10 (2003/04/02 06:47:36)
253
O software de backup
FreeBSD no requer software especial'' backup.'' O sistema operacional de base
fornece todos os programas que voc precisa. O driver de fita faz parte do kernel, eo sistema
inclui uma srie de programas de backup. Os mais populares so:
tar, o archiver fita, tem sido em torno de mais tempo do que qualquer um pode lembrar.
particularmente til para a troca de dados, j que todo mundo tem. H ainda verses
de alcatro para as plataformas da Microsoft. tambm um programa de backup adequada.
cpio um programa de backup alternativa. Sobre a sua nica vantagem sobre alcatro que ele
pode ler cpio formatar arquivos.
pax um outro programa de backup alternativa. Tem a vantagem de que ele pode tambm ler
e escrever alcatro e cpio arquivos.
despejar voltado mais para backups do que para arquivamento. Pode manter
vrios nveis de backup, cada um dos quais faz backup apenas dos arquivos que foram alterados
desde o ltimo backup do prximo mais alto (numericamente inferior) nvel. menos adequado
para o intercmbio de dados, pois seus formatos so muito especficos para BSD. Mesmo mais velho
verses do FreeBSD no consegue ler dumps criados no FreeBSD Release 5.
Estratgias de backup so frequentemente objecto de guerras religiosas. Eu pessoalmente acho que alcatro
faz tudo o que eu quero, mas voc vai encontrar muitas pessoas que recomendam despejar ou
amanda em vez disso. Na seo seguinte, vamos olhar para os fundamentos do uso tar. Veja o
pgina de manual dump (8) Para mais informaes sobre despejar.
alcatro
tar, o archiver fita, executa as seguintes funes:
Criao de um arquivo, que pode ser um dispositivo de srie, como uma fita, ou um arquivo em disco, a partir de
o contedo de um certo nmero de directrios.
254
CVF so as opes. c stands para criar um arquivo, v especifica verboso operao (em
Neste caso, isso causa alcatro para produzir a lista de arquivos que esto sendo arquivados), e f especifica
que o prximo parmetro o nome do arquivo.
Existe uma maneira mais simples, no entanto: se voc no especificar um nome de arquivo, alcatro olha para o
varivel de ambiente TAPE. Se ele encontrar, ele interpreta como o nome da unidade de fita.
Voc pode fazer coisas muito mais fceis, definindo a seguinte linha no arquivo de configurao para
seu shell ( . Perfil para sh,. bashrc para bash,. logon para csh e tcsh):
FITA TAPE = / dev/nsa0 exportao
setenv TAPE / dev/nsa0
para sh e festa
para csh e tcsh
255
Listando um arquivo
Para listar um arquivo, use a opo t:
# Tar t
usr / src / sys /
usr / src / sys / CVS /
usr / src / sys / CVS / Root
usr / src / sys / CVS / Repository
usr / src / sys / CVS / Entries
usr / src / sys / compile /
usr / src / sys / compile / CVS /
usr / src / sys / compile / CVS / Root
(Etc)
# Tar TVF-fonte arquivo.tar
drwxrwxrwx root / bin
0 Outubro 25
drwxrwxrwx root / bin
0 Outubro 25
-Rw-rw-rw-root / wheel
9 Setembro 30
-Rw-rw-rw-root / wheel
17 Setembro 30
-Rw-rw-rw-root / bin
346
Outubro 25
drwxrwxrwx root / bin
0 Outubro 27
drwxrwxrwx root / bin
0 Julho 30
(Etc)
a partir de fita
15:07
15:08
23:13
23:13
15:08
17:11
10:52
a
1997
1997
1996
1996
1997
1997
1997
partir do disco
usr / src /
usr / src /
usr / src /
usr / src /
usr / src /
usr / src /
usr / src /
sys
sys
sys
sys
sys
sys
sys
/
/
/
/
/
/
/
CVS /
CVS / Root
CVS / Repository
CVS / Entries
compile /
compile / CVS /
Este exemplo mostra a utilizao do v Opo (verbose) com t. Se voc no us-lo, alcatro
exibe apenas os nomes dos arquivos (primeiro exemplo, a partir de fita). Se voc us-lo, alcatro tambm
exibe as permisses, posses, tamanhos e data da ltima modificao na forma
lembra ls-l (Segundo exemplo, que a partir do arquivo em disco fonte-arquivo.tar).
Extraindo arquivos
Para extrair um arquivo a partir do arquivo, utilize o x opo:
# Tar xv usr / src / sys / Makefile
usr / src / sys / Makefile
a partir de fita
confirma que o arquivo foi extrado
Tal como acontece com o c opo, se voc no usar o v opo, alcatro no listar os nomes de arquivos. Se
voc omitir os nomes dos arquivos para extrair, alcatro extrai o arquivo completo.
Arquivos compactados
Voc pode combinar gzip com alcatro especificando o z opo. Por exemplo, para criar o
arquivo fonte-archive.tar.gz em formato comprimido, escreva para:
# Tar czf fonte-archive.tar.gz / usr / src / sys
256
Voc tem uma unidade de disquete. Voc no pode ter uma unidade de fita. Antes de voc sair e comprar
todos os disquetes, porm, considerar que poderia ser mais barato comprar uma unidade de fita e
algumas fitas em vez.
Voc precisa trocar dados com as pessoas que utilizam as plataformas da Microsoft, ou com pessoas
que no tm o mesmo tipo de fita, como voc faz.
Nas sees seguintes, veremos como lidar com disquetes no FreeBSD, com
nomeadamente em matria de coexistncia com a Microsoft. Aqui est um resumo:
Formate disquetes antes de us-los em seu sistema pela primeira vez, mesmo se
eles foram formatados antes. Veremos isso na prxima seo.
Apenas ocasionalmente, voc precisa criar um sistema de arquivos UNIX em disquete. Veremos que
na pgina 257.
Ao trocar com os usurios da Microsoft, voc precisa criar um sistema de arquivos Microsoft.
Veremos que na pgina 259.
Ao trocar com outros usurios do UNIX, seja FreeBSD ou no, use alcatro ou cpio.
Veremos como fazer isso na pgina 259.
A formatao de um disquete
Mesmo se voc comprar disquetes pr-formatados, uma boa idia para reformat-las. Seguir
alinhamento pode variar significativamente entre os disquetes individuais, e o resultado pode ser
que a unidade no escreve muito em cima das faixas pr-escritas. Eu vi ler
taxas to altas quanto 2% em disquetes pr-formatados de falha: em outras palavras, depois de escrever 100
disquetes com dados valiosos, as chances so de que dois deles tm erros de leitura. Voc pode
reduzir este problema formatando o disquete no drive em que est a ser escrito, mas
voc no pode elimin-lo.
Nas plataformas da Microsoft, voc formatar disquetes com a FORMAT programa, que
desempenha duas funes diferentes quando invocadas em disquetes: ele executa tanto a de baixo nvel
formato, que reescreve a informao do sector fsico, e, em seguida, ele realiza o que chama de
um de alto nvel formato, que grava as informaes necessrias para as plataformas da Microsoft para
us-lo como um sistema de arquivos. UNIX chama a segunda operao de criao de um sistema de arquivos. No
sempre necessrio ter um sistema de arquivos no disquete, de fato, como veremos, pode ser um
tapes.mm, v v4.10 (2003/04/02 06:47:36)
257
desvantagem. Alm disso, o FreeBSD oferece diferentes tipos de sistema de arquivos, por isso realiza
as duas funes de diferentes programas. Nesta seo, veremos fdformat, que
executa a formatao de baixo nvel. Veremos como criar um UFS ou arquivo Microsoft
sistema na prxima seo.
Para formatar um disquete no primeiro drive de disquete, / Dev/fd0, voc deve digitar:
$ Fdformat / dev/fd0
Formato 1440k floppy '/ dev/fd0'? (Y / n): y
Processamento ----------------------------------------
Cada caractere hfen (-) representa duas faixas. Como o formato de produto, os hfens
mudar individualmente a um F (Formato) e depois V (Verificar), por sua vez, por isso no final da linha
l
Processamento VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV feito.
258
A primeira chamada de volume de disco, com a -W opo, escreve um volume de disco para o disquete,
que fornece informao suficiente para newfs para criar um UFS sistema de arquivos nele.
Ns j vimos montar , na pgina 192. Neste caso, podemos us-lo para montar o disquete
no sistema de arquivos / A.
O df programa mostra o espao mximo e disponvel em um sistema de arquivos. Por
padro, df exibe o uso em blocos de 512 bytes, um tamanho inconveniente. Neste
exemplo, o ambiente varivel BLOCKSIZE foi criado em 1024 para exibir o uso de
em 1 KB (1024 byte) blocos. Consulte a pgina 128 para mais detalhes sobre variveis de ambiente.
A sada do df parece terrvel! Nosso disquete s tem 1.213 kB deixadas para os dados do usurio normais,
mesmo que no haja nada sobre ele e at mesmo df alegaes de que ele realmente pode armazenar 1.319 kb.
Isto porque UFS mantm um padro de 8% do espao livre por razes de desempenho.
Voc pode mudar isso, no entanto, com tunefs, o programa de ajuste do sistema de arquivos: 1
# Umount / A
primeiro desmontar o disquete
# Tunefs-m 0 / dev/fd0
e mudar o mnimo livre a 0
tunefs: percentual mnimo de mudanas de espao livre de 8% para 0%
tunefs: deve otimizar o espao com minfree <8%
# Mount / dev/fd0 / A
montar o sistema de arquivo novamente
# DF / D
e ter um outro olhar
Filesystem 1024-blocks
Usado Capacidade Disponvel Montado em
/ Dev/fd0 1319
0 1319
0%
/ D
Ainda assim, isso est muito longe do armazenamento de um disco de dados do Microsoft afirmou. Na verdade, o Microsoft
discos no pode armazenar o total de 1,4 MB ou: eles tambm precisam de espao para armazenar os diretrios e
tabelas de alocao. A moral da histria: use apenas sistemas de arquivos em disquete, se voc no
tem alguma alternativa.
1. Para citar a pgina de man: Voc pode ajustar um sistema de arquivos, mas voc no pode ajustar um peixe.
tapes.mm, v v4.10 (2003/04/02 06:47:36)
259
Voc pode especificar o nmero de faixas com a -T opo, eo nmero de setores com
o -S opo. Para especificar explicitamente um disquete com 80 trilhas e 18 setores (norma
3 "1,44 MB disquete), voc pode digitar:
$ Mformat-t-s 80 18 A:
Note-se tambm o ponto solitrio (.) No fim da linha de comando. Esse o nome do
diretrio atual, e isso que voc est fazendo backup. Note-se tambm a opo M, o que
abreviado para - Multi-volume. H uma boa chance de que voc vai ficar sem espao em um
disquete, e esta opo diz que voc tem uma quantidade suficiente de disquetes para realizar a
completar backup.
Para extrair os dados novamente, utilizar alcatro com a x opo:
$ Tar xvfM / dev/fd0
. /
. Xfmrc
. X6530modkey
. Uwmrc
Etc ...
Veja a pgina de manual tar (1) para outras coisas que voc pode fazer com tar.
tapes.mm, v v4.10 (2003/04/02 06:47:36)
260
IO SYS 33430
4-09-91 05:00 a
MSDOS SYS
37394 4-09-91
05:00 um
COMANDO COM
47845 12-23-92 5:22 p
NFS <DIR>
12-24-92 11:03 de
DOSEDIT COM
1728 10-07-83 07:40 a
CONFIG SYS
792 10-07-94 7:31 p
AUTOEXEC BAT
191 12-24-92 11:10 a
MOUSE <DIR>
12-24-92 11:09 de
12 arquivo (s)
82.944 bytes livres
mudar para o diretrio A: \ NFS
$ Mcd nfs
$ Mdir
e listar o diretrio
Volume na unidade A confuso OS
Directory para um :/ NFS
. <DIR>
12-24-92 11:03 de
.. <DIR>
12-24-92 11:03 de
HOSTS 5985
10-07-94 07:34 p
BAT NETWORK
103 12-24-92 0:28 p
DRIVES BAT
98 11-07-94 05:24 p
E muitos mais ...
82.944 bytes livres
51 arquivo (s)
$ Mtype drives.bat
Digite o contedo do DRIVES.BAT
net use c: presto :/ usr / dos
c:
cd \ nfs
Use # net f: porsche :/ dos
# Net use g: porsche :/ usr
$ Mcopy a: anfitries.
copy a: HOSTS para o diretrio UNIX local
Copiando HOSTS
e list-la
$ Ls-l anfitries
-Rw-rw-rw-1 root wheel
5985 28 de janeiro anfitries 18:04
Voc deve especificar a letra da unidade para mcopy, porque usa esta indicao para decidir
se o nome do arquivo um nome de arquivo Microsoft um UNIX ou. Voc pode copiar arquivos de
FreeBSD para o disquete, bem como, claro.
Uma palavra de advertncia. UNIX usa um formato diferente de texto de dados da Microsoft: em UNIX,
linhas de fundo com um nico personagem, chamado Newline, e representado pelos personagens \ N em
a linguagem de programao C. Corresponde ao carter ASCII Line Feed
(Representado por J). Microsoft usa dois personagens, um Retorno de carro (M), seguido pela
um Line Feed. Esta diferena infeliz provoca uma srie de compatibilidade inesperada
problemas, uma vez que ambos os caracteres so geralmente invisvel na tela.
tapes.mm, v v4.10 (2003/04/02 06:47:36)
261
Isto pode parecer relativamente inofensiva, mas confunde alguns programas, incluindo o C
compilador e pagers como mais, o qual pode reagir de forma confusa. Voc pode remover
os com a -T opo de mcopy:
$ Mcopy-t a: drives.bat.
Transferncia de arquivos na outra direo mais provvel a causar problemas. Por exemplo, a
voc pode editar esse arquivo no FreeBSD e depois copi-lo de volta para o disquete. Os resultados
dependem do editor, mas assumindo que mudou todas as ocorrncias da palavra porsche a
liberdade, e, em seguida, copiou o arquivo de volta para o disquete, a Microsoft
pode, em seguida, encontrar:
C:> digite drives.bat
net use c: presto :/ usr / dos
c:
cd \ nfs
Use # net f: a liberdade dos :/
# Net use g: liberdade :/ usr
Neste captulo:
Configurao da impressora
Iniciando o spooler
Testando o spooler
Soluo de problemas
Usando o spooler
PostScript
PDF
15
Impressoras
Neste captulo, vamos olhar para alguns aspectos do uso de impressoras com FreeBSD. Como usurio, voc
no acessar impressoras diretamente. Em vez disso, uma srie de processos, a chamada colectivamente
spooler, gerenciar dados de impresso. Um processo, lpr, grava os dados de impresso do usurio para o disco,
e outro,
LPD, copia os dados de impresso para as impressoras. Este mtodo permite que os processos de impresso para
escrever
dados, mesmo se as impressoras esto ocupados e garante a disponibilidade ideal da impressora.
Nesta seo, vamos olhar brevemente para o que voc precisa fazer para configurar impressoras. Para mais
detalhes, consulte a seo de ajuda online em impresso.
lpd o processo spooler central. responsvel por uma srie de coisas:
Ele permite que os usurios enviem arquivos para serem impressos. Estas observaes so conhecidos como empregos.
Ele pode imprimir as pginas de cabealho, tambm conhecida como banner ou pginas de ruptura, assim os usurios podem
Ele impede que vrios usurios acessem uma impressora ao mesmo tempo, mantendo uma
fila para cada impressora.
facilmente
encontrar empregos que foram impressas em uma pilha de impresses.
Ela cuida de parmetros de comunicao para impressoras conectadas em portas seriais.
Ele pode enviar trabalhos atravs da rede para outro spooler em outro host.
Ele pode executar filtros especiais para trabalhos de formato a ser impresso para vrias linguagens de impressora ou
recursos da impressora.
263
O FreeBSD completo
264
Atravs de um arquivo de configurao, e fornecendo os programas especiais de filtro, voc pode ativar
o spooler de fazer tudo ou algum subconjunto do acima para uma grande variedade de hardware da impressora.
Isto pode soar como um exagero, se voc for o nico usurio do sistema. Ele possvel
acessar a impressora diretamente, mas no uma boa idia:
O spooler imprime trabalhos no fundo. Voc no tem que esperar por dados a serem
copiado para a impressora.
O spooler pode convenientemente executar um trabalho a ser impresso atravs de filtros para adicionar cabealhos ou
converter formatos especiais (como PostScript) em um formato que a impressora vai entender.
A maioria dos programas que proporcionam um recurso de impresso de esperar para falar com o spooler em seu
sistema.
Configurao da impressora
H trs maneiras utilizadas para conectar uma impressora a um computador:
Sistemas UNIX mais velhos freqentemente usado impressoras seriais, mas eles no esto mais em
uso comum. Impressoras seriais raramente transmitir mais de 1.920 caracteres por segundo,
o que demasiado lento para impressoras modernas.
A maioria das impressoras ainda esto ligados por uma porta paralela. As portas paralelas permitir mais rpido
comunicao com a impressora, de at cerca de 100.000 bytes por segundo. Tais velocidades
pode ainda no ser suficiente para PostScript ou bit-mapped imagens complexas. A maioria paralelo
portos exigem interveno da CPU atravs de uma interrupo para cada caractere transmitido, e
100 mil interrupes por segundo pode usar todo o poder de processamento de uma mquina rpida.
Impressoras mais modernas possuem interfaces USB ou Ethernet, que permitem que eles se conectem
para vrias mquinas ao mesmo tempo a velocidades muito mais elevadas. A carga sobre o computador host
tambm muito menor.
muito simples para conectar uma impressora paralela. Voc no precisa fazer nada
especial para configurar o driver de impressora de linha lpt: no kernel por padro. Tudo que voc precisa
a fazer ligar o cabo entre a impressora eo computador. Se voc tiver mais de
uma interface paralela, claro, voc ter que decidir qual usar. Impressora paralela
dispositivos so chamados / dev / LPTn, onde n o nmero, a comear 0. Dispositivos USB tm
nomes como / Dev / ulptn. Consulte a Tabela 10-4 na pgina 195 para mais detalhes.
Configurando uma impressora Ethernet conectada mais complicado. Voc, obviamente, precisa de um
Endereo IP, o que configura a impressora. A maioria das impressoras modernas ento aparecer como um
computador remoto para o spooler. Ns olhamos para o spool para computadores remotos na pgina 266.
265
Testando a impressora
Quando voc tiver conectado e ligado uma impressora de porta paralela, execute o teste built-in se
um fornecido: normalmente h uma funo que produz uma impresso que descreve o
recursos da impressora. Depois disso, verificar a comunicao entre o computador eo
impressora.
# Lptest> / dev/lpt0
Se voc tiver uma impressora PostScript puro, aquele que no pode imprimir mais nada, voc no vai conseguir
qualquer sada. Mesmo aqui, no entanto, voc deve ver alguma reao na tela de status.
Linhas de continuao requerem uma barra invertida (\). Observe particularmente que
necessita pontos no final de uma linha contnua, e outra no incio do
seguindo a linha.
A primeira linha de cada entrada especifica uma srie de nomes que voc pode usar para especificar
esta impressora quando se fala de lpr ou LPD. Os nomes so separados por barras verticais
smbolos |. Por tradio, o ltimo nome uma descrio mais detalhada, e voc
normalmente no us-lo para conversar com os programas.
A primeira entrada define uma impressora local, chamado lp, lj, ps e LaserJet locais 6MP
impressora. Por que tantos nomes? lp o padro, ento voc deve t-lo em algum lugar.
lj freqentemente usado para conversar com as impressoras que entendem linguagem LaserJet da HP (hoje
PCL), e ps pode ser usado para falar com uma impressora que compreende PostScript. A final
nome mais do que uma descrio.
Configurao da impressora
266
sd diz o spooler o diretrio no qual deseja armazenar trabalhos aguardando impresso. Este
diretrio deve existir, o spooler no cri-lo.
O parmetro mx diz lpd o tamanho mximo de um trabalho carretel em kilobytes. Se o trabalho for
maior do que este valor, lpd recusa-se a imprimir. No nosso caso, no queremos limitar a
tamanho. Fazemos isso atravs da criao mx a 0.
se diz lpd para aplicar um filtrar para o trabalho antes de imprimir. Ns vamos olhar para isso abaixo.
sh uma bandeira dizendo lpd omitir uma pgina de cabealho. Se voc no tem isso, cada trabalho ser
ser precedida por uma pgina descritor. Em um ambiente pequeno, isso no faz sentido
e apenas um desperdcio de papel.
Na entrada de impressora remota, rm = freebie diz lpd para enviar os dados para o aparelho
chamado freebie. Este poderia ser um nome de domnio totalmente qualificado, claro.
Impresso remota
Em uma rede, voc no precisa ter uma impressora em cada mquina, voc pode imprimir em outro
mquina (que pode ser uma impressora) na mesma rede. H um par de coisas para
considerar:
Existem duas mquinas envolvidas na impresso remoto, o cliente ('' local'') e mquina
o servidor (remoto'''') mquina.
Na mquina cliente, voc tambm deve criar o diretrio de spool, / Var/spool/outcolocar / freebie no exemplo acima.
Na mquina do servidor, voc no precisa fazer nada especial com o / Etc / printcap
arquivo. Voc precisa de uma entrada para a impressora especificada na mquina do cliente rp entrada, da
curso.
Na mquina do servidor voc deve permitir o acesso spooler da mquina cliente. Para um
Mquina BSD, voc adiciona o nome da mquina para o arquivo / Etc / hosts.lpd em uma linha
si.
267
Filtros Spooler
Provavelmente a entrada menos inteligvel no arquivo de configurao na pgina 265 foi o se entrada.
Ele especifica o nome de um filtro de entrada, um programa atravs do qual o lpd passa o completo
imprimir dados antes de imprimir.
O que isso? Pode haver uma srie de razes. Talvez voc tenha dados em um
formato que no est apto para imprimir. Por exemplo, pode ser PostScript, e sua impressora pode
No entendo PostScript. Ou poderia ser o contrrio: sua impressora entende
apenas PostScript, ea entrada no PostScript.
H uma razo mais provvel para exigir um filtro, porm: a maioria das impressoras ainda emular o antigo
teletypes, para que eles exigem um caractere de retorno de carro (Ctrl-M ou M) para iniciar a
incio da linha, e um caractere de nova linha (Ctrl-J ou J) para avanar para a prxima linha.
UNIX usa apenas J, ento se voc copiar os dados a ele, voc est sujeito a ver um
efeito escada. Para
exemplo, ps pode dizer-lhe:
$ Ps
PID
2252
2287
2346
TT
p1
p1
p1
STAT
Ss
IW
R +
TEMPO
0:01.35
0:04.77
0:00.05
COMANDO
/ Bin / bash
e / etc / printcap
ps
COMANDO DE TEMPO
2252 p1 Ss
Voc pode ser capaz de configurar a impressora para interpretar Ctrl-J tanto como nova linha e
voltar, e ignorar Ctrl-M. Verifique seu manual da impressora.
Voc pode ser capaz de emitir uma seqncia de controle para a impressora para cont-la para interpretar CtrlJ tanto como nova linha e voltar ao incio da linha, e para ignorar Ctrl-M. Para
exemplo, LaserJets e compatveis HP vai fazer isso se voc enviar-lhes o controle
seqncia ESC & K2G.
Voc pode escrever um filtro de entrada que transforma o trabalho de impresso para um formato que a impressora
entende. Ns vamos olhar para essa opo abaixo.
Configurao da impressora
268
Iniciando o spooler
Como vimos acima, o daemon de impressora de linha lpd responsvel por imprimir os trabalhos em spool.
Por padro, ele no iniciado no momento da inicializao. Se voc raiz, voc pode inici-lo pelo nome:
# Lpd
Normalmente, no entanto, voc vai querer que ele seja iniciado automaticamente quando o sistema iniciado
up. Voc pode fazer isso definindo a varivel lpd_enable em / Etc / rc.conf :
lpd_enable = "YES"
Voc normalmente no precisa desta linha. Veja a pgina de manual para lpd para obter detalhes sobre as bandeiras.
Testando o spooler
Para testar o spooler, voc pode executar o lptest programa novamente. Desta vez, contudo, em vez de
envi-la diretamente para a impressora, voc envi-lo para o spooler:
269
Lptest $ 80 5 | lpr
Soluo de problemas
Aqui est uma lista dos problemas mais comuns e como resolv-los.
Tabela 15-1: Problemas comuns da impressora
Problema
A impressora imprime, mas o ltimo
pgina no aparecer. O estado
mostra que a impressora ainda tem
dados no buffer. Depois de vrias
minutos, a ltima pgina pode
aparecer.
Causar
Seus dados de sada no ejetar a ltima pgina. O
impressora est configurada para esperar por uma explcita
pedido de ejeo (o ASCII Avano de personagem, CtrlL) ou para ejectar depois de um certo perodo de tempo.
Soluo de problemas
Problema
O texto era legvel, mas deu
nenhuma relao com o que voc
quer,
ed para imprimir.
270
Causar
Uma possibilidade que voc est enviando PostScript
sada para a sua impressora. Veja a discusso na pgina
271 para verificar se ele PostScript. Se for, a sua impressora
no interpret-lo corretamente, ou porque ele
no entende PostScript, ou porque tem
sido confundido (veja a discusso na pgina 268 para
uma razo).
Voc pode estar enviando um texto normal para um PostScript
impressora que no entende o texto normal. Neste
caso, tambm, voc vai precisar de um filtro para converter o texto em
PostScript o oposto do problema anterior.
Alternativamente, sua porta de impressora podem no ser interrupting corretamente. Isso no vai parar a impressora
impresso, mas pode demorar at 20 minutos para imprimir uma
pgina. Voc pode corrigir isso emitindo o seguinte
de comando, o qual coloca a impressora / Dev/lpt0 em
modo de polling:
# Lptcontrol-p
Usando o spooler
Usando o spooler relativamente simples. Em vez de enviar dados diretamente para a impressora,
voc tubo para o spooler lpr de comando. Por exemplo, aqui o mesmo comando de impresso,
Primeira impresso diretamente para a impressora, e em segundo lugar atravs do spooler:
# Ps Waux> / dev/lpt0
$ Ps Waux | lpr
Observe a diferena de prompt: voc tem que ser raiz escrever diretamente para a impressora, mas
normalmente, qualquer um pode escrever para o spooler. O spooler cria um trabalho a partir destes dados. Voc
pode olhar para a fila de impresso atual com o lpq programa:
$ Lpq
espera de lp para ficar pronto (offline?)
Posio
Arquivos de Trabalho
Proprietrio
313 (entrada padro)
1 grog
30 (entrada padro)
2 grog
31 (entrada padro)
3 yvonne
0 (entrada padro)
4 raiz
Tamanho Total
9151 bytes
3319 bytes
3395 bytes
2611 bytes
271
A primeira linha um aviso de que lpd atualmente no possvel imprimir. Levar a srio. Neste
exemplo, a impressora foi deliberadamente desligado para que a fila no mudar de um
exemplo para o outro.
Normalmente, os nmeros das tarefas aumentar sequencialmente: Neste exemplo particular veio de trs
mquinas diferentes. Voc pode obter mais detalhes com o -L opo:
$ Lpq-l
espera de lp para ficar pronto (offline?)
grog: 1
(Entrada padro)
[Trabalho 313freebie.example.org]
9151 bytes
(Entrada padro)
[Trabalho 030presto.example.org]
3319 bytes
Yvonne: 3
(Entrada padro)
[Trabalho 031presto.example.org]
3395 bytes
root: 4
[Trabalho 000bumble.example.org]
2611 bytes
grog: 2
(Entrada padro)
Tamanho Total
9151 bytes
3395 bytes
2611 bytes
Se a impressora estiver desligada, pode demorar algum tempo para o lprm para ser concludo.
PostScript
Ns encontramos o termo PostScript vrias vezes. uma Descrio da pgina
Linguagem. Com ele, voc pode transmitir documentos detalhados como este livro eletrnico
e imprimi-los exatamente da mesma forma elsewhere.1 PostScript muito popular
formato da World Wide Web, e web browsers como Netscape geralmente imprimir em
Formato PostScript.
1. Esta , de facto, a forma como este livro foi enviado para as impressoras.
printers.mm, v v4.17 (2003/04/02 06:48:05)
PostScript
272
A maioria dos outros formatos de documentos descrevem os recursos de impresso especiais com seqncias de escape,
comandos especiais que comeam com um caractere especial. Por exemplo, a HP LaserJet e
Formatos PCL usar o ASCII ESC personagem (0x1b) para indicar o incio de uma fuga
seqncia. PostScript usa a abordagem oposta: a menos que definido em contrrio, o contedo
de um arquivo PostScript so comandos, e os dados de impresso est entre parnteses.
Documentos PostScript comear com algo como:
% PS-Adobe-3.0
%% Creator: groff verso 1.10
%% CreationDate: Sex Out 31 18:36:45 1997
%% DocumentNeededResources: Smbolo da fonte
%% + Fonte Courier
%% + Fonte Times-Roman
%% DocumentSuppliedResources: imagens de arquivo / vipw.ps
%% Pages: 32
%% PageOrder: Ascend
%% Orientao: Retrato
%% EndComments
%% BeginProlog
Voc pode olhar para ele com gv, que est na Coleo de Ports. Ns vamos olhar para esta opo
abaixo.
Muitas impressoras entender PostScript e imprimi-lo diretamente. Se isso acontecer, voc provavelmente
sabe sobre ele, j que uma opo cara. Em caso de dvida, consulte a sua impressora
manual.
Exibir com gv
gv parte do porto estao de trabalho imediato que discutimos na pgina 93. Para visualizar um arquivo
com gv, basta inici-lo:
Gv $ filename &
Se voc no especificar um nome de arquivo, voc recebe uma tela em branco. Voc pode abrir um arquivo
janela pressionando o, aps o qual voc pode selecionar os arquivos e exibi-los. Figura 15-2
mostra a exibio de uma verso preliminar desta pgina com uma janela aberta sobreposta no topo
direita. O Abrir Arquivo janela contm um campo na parte superior na qual voc pode digitar o nome
de um arquivo. Alternativamente, as colunas abaixo, com barras de rolagem, permite que voc navegue na
diretrio atual e os diretrios pais.
A janela abaixo mostra o texto da pgina anterior (aproximadamente) no lado direito.
Em vez das barras de rolagem, existe uma zona de deslocamento abaixo do texto Salvar Marcado. Voc pode rolar
a imagem em todas as direes, marcando a caixa com o boto esquerdo do mouse e movendo
printers.mm, v v4.17 (2003/04/02 06:48:05)
273
ao redor. No canto superior esquerdo esto os botes de menu que voc pode selecionar com o boto esquerdo do mouse. Nota
Tambm o boto 1.414 na parte superior da janela de: esta a ampliao da imagem.
Voc pode mud-lo, selecionando este boto: um menu aparece e lhe d uma gama de
ampliaes para escolher.
A coluna direita destes botes uma lista de nmeros de pgina. Voc pode selecionar uma pgina
nmero com o boto do meio do mouse. Voc tambm pode obter uma exibio alargamento da
rea de texto ao redor do cursor do mouse, pressionando o boto esquerdo.
PostScript
274
Esta entrada define uma impressora chamada ps. O comentrio afirma que uma HP OfficeJet, mas
isso s um comentrio. Obviamente, voc deve escolher um comentrio que corresponda impressora
voc realmente tem.
A impressora est conectada a / Dev/lpt0, a primeira impressora paralela. Spool dados so coletados em
o diretrio / Var / spool / output / cor. Voc deve criar esse diretrio, ou a impresso
falhar, e dependendo do que voc usar para imprimir, voc no pode mesmo ver as mensagens de erro.
Eles tambm no aparecem no arquivo de log, que neste caso / Var / log / LPD-erra.
A entrada importante na ltima linha, que se refere entrada do filtro / Usr/local/libexec/psfiltrar. Este arquivo contm as instrues para converter o PostScript em algo que o
impressora pode entender. Por exemplo, para a HP OfficeJet que estamos falando aqui,
contm:
#! / Bin / sh
/ Usr / local / bin / gs-sDEVICE = PCL3-q-sPaperSize = a4-dNOPAUSE-sOutputFile = -
Usar ghostscript dispositivo PCL3. Este o driver para escolher para mais Hewlett Packard
impressoras jato de tinta. Vamos ver alternativas para outras impressoras abaixo.
O arquivo de sada stdin (Ver pgina 127). Por conveno, uma srie de programas de utilizar o
carter - para representar o stdout stream.
-Q meios silencioso. Normalmente ghostscript gera uma mensagem no arranque, e que muitas vezes
sadas de outras mensagens informativas tambm. Neste caso, estamos usando-o como um filtro, para
ns no queremos qualquer sada, exceto o que ns imprimimos.
No faa pausas entre as pginas. Se voc no especificar este parmetro, ghostscript espera
para uma tecla no final de cada pgina.
Qual driver?
O exemplo anterior usou o driver para a HP DeskJet. Bem, para ser mais preciso,
utilizado um de uma infinidade de drivers disponveis. Voc pode encontrar mais informaes no HTML
documentao do driver em / Usr/local/share/ghostscript/7.05/doc/Devices.htm. A 7.05 em
o nome refere-se liberao de ghostscript, que vai mudar.
A documentao no o mais fcil de ler. Provavelmente mais velha do que sua impressora, assim
h uma boa chance de que ele no vai mencionar o seu modelo de impressora especfica. Voc pode precisar
experimentar um pouco antes de fazer as coisas funcionarem do jeito que voc quiser.
printers.mm, v v4.17 (2003/04/02 06:48:05)
275
Hewlett Packard fornecer seus prprios drivers. Alm de ghostscript, eles requerem
software de servidor que voc pode instalar a partir da coleo de ports (/ usr / ports / impresso / hpijs).
Em seguida, vem o genrico PCL3 condutor que foi usado no exemplo acima. No
mencionadas na documentao.
Finalmente, UniPrint uma estrutura completamente diferente para o condutor de um nmero de diferentes
marcas de impressora. Ela exige uma linha de comando ligeiramente diferente, e vamos olhar para ele
separadamente abaixo.
Se voc estiver usando uma DeskJet, voc tem a escolha. Infelizmente, no h nenhuma maneira de saber
o que melhor at que tentei todos eles. Consideraes semelhantes se aplicam a outras marcas de
impressora.
motoristas UniPrint
O UniPrint motoristas tm um tipo um pouco diferente da interface. Eles esto descritos
para o fim da mesma Devices.htm arquivo. Para us-los, mudar o driver
especificao como no exemplo a seguir, que se refere a uma impressora Epson
#! / Bin / sh
/ Usr / local / bin / gs @ stc500ph.upp-q-sPaperSize = a4-dNOPAUSE-sOutputFile = --- c quit
A linha termina com um comando para o prprio (-c sair) condutor. O significado exato
no documentadas, embora seja fcil de adivinhar.
Quais drivers?
Outro problema que voc pode encontrar que possvel especificar os controladores que deseja
na sua ghostscript executvel quando voc construir o porto. bem possvel que o
condutores descritos Devices.htm no existem em seu sistema. Para descobrir, correr ghostscript
interativamente com o -H (Ajuda) opo:
$ Gs-h
GNU Ghostscript 7,05 (2002-04-22)
Copyright (C) 2002 artofcode LLC, Benicia, CA. Todos os direitos reservados.
Uso: gs [opes] [file1.ps file2.ps ...]
Mais frequentemente utilizados parmetros: (voc pode usar # no lugar de =)
-DNOPAUSE sem pausa aps pgina
|-Q
'Tranquilos', menos mensagens
-G <width> x <height> tamanho da pgina em pixels
|-R <res> pixels / polegada resoluo
-SDEVICE = <devname> dispositivo select | exit-dBATCH aps o ltimo arquivo
-SOutputFile = <file> selecione o arquivo de sada: - para stdout, | comando para tubo,
printers.mm, v v4.17 (2003/04/02 06:48:05)
PostScript
276
PDF
PDF, ou descrio de pgina Format, um formato mais recente para a transferncia de documentos de impresso.
Como PostScript, se trata da Adobe, e est se tornando cada vez mais importante como um
formato de intercmbio de documentos na Internet.
H duas maneiras de lidar com PDF:
Ao contrrio de PostScript, um editor est disponvel para PDF (Acrobat, o irmo mais velho do Acrobat
Reader). Infelizmente, proprietria e no livre, e pior ainda, ele no est disponvel para
FreeBSD.
Neste captulo:
Rede de camadas
A rede fsica
conexo
Ethernet
LANs sem fio
A referncia
rede
16
Redes e os
Internet
Nesta parte do livro vamos olhar para a parte de mais rpido crescimento da indstria: redes,
e, nomeadamente, o Internet.
A indstria tem visto muitos tipos diferentes de software de rede:
IBM introduziu seu Systems Network Architecture, SNA, dcadas atrs. ainda
continua forte em lojas da IBM. FreeBSD tem suporte mnimo para ele no Token Ring
pacote que est sendo desenvolvido no FreeBSD-CURRENT.
Mquinas UNIX incio tinha uma espcie primitiva de rede chamado UUCP, para UNIX para
UNIX Copy. Ele correu atravs de linhas telefnicas discadas ou conexes seriais dedicadas. Sistema
V ainda chama este sistema Utilitrios de Rede Bsica, ou BNU. Apesar de sua primitividade e, apesar da Internet, ainda existem algumas aplicaes onde UUCP
faz sentido, mas este livro discute-lo mais longe.
277
O FreeBSD completo
278
Como configurar os servios de nome de domnio no captulo 21, O Servio de Nome de Domnio.
No captulo 25, Acesso rede bsica: servidores vamos dar uma olhada no final do servidor da mesma
servios. Alm disso, veremos Samba, um servidor de Internet comum da Microsoft
File System, ou CIFS.
O correio eletrnico to importante que ns dedicamos dois captulos a ele, Captulo 26,
Correio eletrnico: clientes e do captulo 27, Correio eletrnico: servidores.
A maioria dos servios de rede vm em pares, um cliente que solicita o servio, e um servidor
que fornece. No captulo 24, Acesso rede bsica: clientes vamos olhar para o cliente
lado da World Wide Web ('' navegador''), a execuo do comando sobre a rede,
incluindo ssh e telnet, copiar arquivos atravs da rede, e montagem de arquivos remoto
sistemas com NFS.
279
Rede de camadas
Um dos problemas com as redes que elas podem ser olhados a partir de um nmero de
diferentes nveis. Os usurios finais de PCs acessar a World Wide Web (WWW), e muitas vezes
suficiente que eles chamam de Internet. Isso simplesmente errado. No outro extremo da escala est
o Link Layer, o ponto de vista que voc vai ter quando voc cria uma conexo para outro
mquina.
Anos atrs, a International Standards Organization surgiu com a idia de uma criana de sete
modelo de camadas de redes, muitas vezes chamado de Modelo de referncia OSI. Por OSI e no ISO?
OSI stands para Interconexo de sistemas abertos. Desde o seu lanamento, tornou-se claro
que no mapeia muito bem para redes modernas. W. Richard Stevens apresenta melhor
camadas em TCP / IP Illustrated, Volume 1, pgina 6, mostrado aqui na Figura 16-1.
Camada de aplicao
Camada de transporte
Camada de rede
Camada de enlace
O Camada de Aplicao define o formato usado por aplicaes especficas, tais como e-mail
ou na web.
Rede de camadas
280
A camada de enlace
Os dados sobre a Internet dividido em pacotes, tambm chamados datagramas, que pode ser
transmitida de forma independente um do outro. O camada de enlace responsvel por obter pacotes
entre dois sistemas que esto ligados uns aos outros. O caso mais trivial, um ponto-arede de pontos, uma conexo fsica, onde todos os dados enviados pela linha chega ao
outra extremidade. Mais geralmente, no entanto, vrios sistemas esto ligados rede, como em
uma rede Ethernet. Isso causa um problema: como que cada sistema sabe o que destinado para isso?
IP resolve este problema atravs da incluso de um cabealho do pacote em cada pacote IP. Considere o
cabealho algo como a informao que voc escreve do lado de fora de um envelope:
endereo para enviar, endereo de retorno, instrues de entrega. No caso de IP, os endereos
so dgitos de 32 bits, que so convencionalmente representados decimal notao: o valor
de cada byte convertido em decimal. Os quatro valores so escritos separados por pontos.
Assim, o endereo hexadecimal 0xdf932501 seria normalmente representada como
223.147.37.1.
UNIX usa a notao 0x num nmero que representa um nmero hexadecimal. O uso vem
da linguagem de programao C.
Como veremos no captulo 23, que torna a depurao muito mais fcil se entendermos o
estrutura dos datagramas, ento vou mostrar algumas das mais comuns neste captulo.
A Figura 16-2 mostra a estrutura de um cabealho de IP.
0
0
4
8
12
16
31
Verso
Cabealho
Tipo de servio
IP
comprim
identificao
ento
compensar fragmento
Protocolo
Header Checksum
Endereo IP de origem
Endereo IP de destino
O Verso campo especifica a verso atual do IP. Esta atualmente 4. A mais recente
padro IPv6, Nmero da verso 6, que est atualmente em uma rpida implementao
fase. Cabealhos IPv6 so muito diferentes das mostradas aqui.
O tempo para viver campo especifica quantas vezes o pacote pode ser transmitido de uma
sistema para o outro. Cada vez que passada para um outro sistema, este valor
decrementado. Se chegar a 0, o pacote descartado. Isto evita que os pacotes
circulante no lquido para sempre como o resultado de um lacete de encaminhamento.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
281
A camada de rede
A principal finalidade da camada de rede o de assegurar que os pacotes so entregues ao
corrigir receptor quando no est directamente ligado ao remetente. Esta funo geralmente
chamado roteamento.
Imagine-roteamento para ser semelhante a um sistema postal: se voc quiser enviar uma carta a algum
voc no v muitas vezes, voc coloca a carta em uma caixa de correio. As pessoas ou mquinas que lidam
a letra olhar para o endereo e quer entreg-la pessoalmente ou encaminh-lo para algum
outra pessoa que est mais prxima do receptor, at que, finalmente, algum entrega.
Alguma vez voc j recebeu uma carta que foi postado meses atrs? Ser que voc quer saber onde
eles esconderam todo esse tempo? As chances so de que tem sido enviado em crculos algumas vezes.
Isso o que pode acontecer na Internet, se a informao de roteamento incorreta, e isso
por isso todos os pacotes tm um tempo para viver campo. Se ele no pode entregar um pacote, o Internet Protocol
simplesmente cai (esquece-la). Voc pode encontrar paralelos com correio fsico tambm.
Geralmente no aceitvel a perda de dados. Vamos ver como podemos evitar faz-lo na prxima
seco.
A camada de transporte
O camada de transporte responsvel pela comunicao end-to-end. O endereo IP apenas
identifica a interface para o qual os dados so enviados. O que acontece quando chega l? L
pode haver um grande nmero de processos que utilizam a ligao. O cabealho de IP no contm
informaes suficientes para entregar mensagens para usurios especficos dentro de um sistema, por isso dois
protocolos adicionais foram implementadas para lidar com os detalhes de comunicao
entre os usurios finais''.'' 1 Esses usurios finais se conectam rede atravs de portos, ou
Os pontos finais de comunicaes, no interior de mquinas individuais.
TCP
O Transmission Control Protocol ou TCP, o chamado protocolo confivel: garante
que os dados chega a seu destino, e se isso no acontecer, ele envia outra cpia. Se ele no pode ficar
por meio depois de um grande nmero de pases (14 tentativas e cerca de 10 minutos), d-se, mas
no tem a pretenso de dados consegui. Para executar este servio, o TCP tambm conexo
orientado : Antes que voc possa enviar dados com TCP, voc deve estabelecer uma conexo, que
conceitualmente semelhante a abrir um arquivo.
Para implementar este protocolo, os pacotes TCP incluem um Cabealho TCP aps o cabealho de IP, conforme
mostrado na Figura 16-3. Este nmero ignora as possveis opes que seguem o cabealho IP.
O deslocamento do cabealho do TCP, mostrado como 20, realmente especificado pelo valor do PI
1. Na prtica, esses usurios finais so processos.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
Rede de camadas
282
Comprimento do campo de cabealho, no primeiro byte do pacote. Este apenas um campo de 4 bits, por isso
contados em palavras de 32 bits: para um cabealho de 20 bytes, que tem o valor de 5.
0
0
31
Verso
4
8
Cabealho
Tipo de servio
IP
comprim
identificao
ento
compensar fragmento
Header Checksum
Endereo IP de origem
Endereo IP de destino
16
porta de origem
20
porto de destino
nmero de seqncia
24
nmero de confirmao
28
36
flags
Protocolo
12
32
TCP Header
comprim
ento
reservado
Checksum TCP
flags
tamanho da janela
ponteiro urgente
O nmero de seqncia deslocado do ltimo byte o byte que foi enviado para o outro
lado.
O tamanho da janela o nmero de bytes que podem ser enviados antes um reconhecimento
necessria.
Estes trs valores so utilizados para assegurar a transmisso eficiente e confivel de dados. Para cada
conexo, o TCP mantm uma cpia do nmero de reconhecimento recebido maior
do outro lado, e uma cpia de todos os dados que o outro lado ainda no reconhecido receptora.
Ele no envia mais de tamanho da janela bytes de dados para alm deste valor. Se isso no acontecer
receber uma confirmao dos dados transmitidos dentro de um perodo de tempo predeterminado, normalmente um
segundo, ele envia todos os dados no reconhecidos e outra vez em cada vez maior
intervalos. Se ele no pode transmitir os dados aps cerca de dez minutos, ele desiste e fecha a
ligao.
283
UDP
O User Datagram Protocol, ou UDP, diferente: um protocolo no confivel. Ele envia
dados para fora e nunca se importa se ele chega ao seu destino ou no. Ento, por que us-lo se
confivel? mais rpido e, portanto, mais baratos. Consider-lo um lixo Mail Delivery Agent: quem
se importa se voc tem CD-ROM junk AOL desta semana ou no? Haver outro em
correio da prxima semana. Uma vez que no precisa responder, UDP sem conexo: voc pode apenas
enviar uma mensagem off com UDP sem se preocupar em estabelecer uma conexo pela primeira vez. Para
exemplo, a rwhod daemon transmisses de informaes resumidas sobre um sistema na
LAN a cada poucos minutos. No caso improvvel de que uma mensagem se perde, no grave:
outro vir em breve.
0
0
4
8
31
Verso
Cabealho
Tipo de servio
IP
comprim
identificao
ento
Protocolo
compensar fragmento
Header Checksum
Endereo IP de origem
12
Endereo IP de destino
16
20
porta de origem
porto de destino
24
nmero de seqncia
verificao
Rede de camadas
284
Este ficheiro tem um formato relativamente simples: a primeira coluna um nome de servio, e o segundo
coluna contm o nmero da porta e o nome do servio (quer tcp ou UDP).
Opcionalmente, nomes alternativos para o servio podem seguir. Neste exemplo, smtp pode tambm
ser chamado mail e http tambm pode ser chamado www.
Quando o sistema iniciado, ele inicia os daemons especficos. Por exemplo, se voc estiver executando
e-mail, voc pode comear a se sendmail como um daemon. Quaisquer pedidos de correio chegando na porta 25
(SMTP) ser, ento, encaminhado para sendmail para processamento.
As conexes de rede
Voc pode identificar uma conexo TCP com exclusividade por cinco parmetros:
O endereo IP de origem.
O nmero da porta de origem. Estes dois parmetros so necessrios de modo que a outra extremidade
a conexo pode enviar respostas de volta.
O endereo IP de destino.
O protocolo (TCP).
Quando voc configura uma conexo, voc especificar o endereo IP de destino eo nmero da porta,
e implicitamente tambm o protocolo. Seu sistema fornece o endereo IP de origem, que
bastante bvio. Mas onde que o nmero da porta de origem vem? O sistema
literalmente pega um fora de um chapu, que escolhe um nmero de porta no utilizado em algum lugar acima do
'' Mgica'' valor de 1024. Voc pode olhar para esta informao com netstat:
$ Netstat
Proto Recv-Q Send-Q Local Address
tcp4 0
0 presto.smtp
tcp4 0
0 presto.3312
tcp4 0
0 presto.2593
tcp4 0
0 presto.smtp
Endereo estrangeiro
203.130.236.50.1825
andante.ssh
hub.freebsd.org.ssh
www.auug.org.au.3691
(Estado)
ESTABELECIDO
ESTABELECIDO
ESTABELECIDO
ESTABELECIDO
Como voc pode ver, esta a viso de um sistema chamado presto. Vamos ver presto novamente na nossa
rede exemplo abaixo. Normalmente voc vai ver um monte mais conexes aqui. Para cada
conexo, o protocolo tcp4 (TCP sobre IPv4). A primeira linha mostra a ligao ao
porto smtp em presto a partir da porta 1825 em uma mquina com o endereo IP 203.130.236.50.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
285
IP 223.147.37.2
Porto 25
TCP
IP 150.101.248.57
Porto 3691
www
Os padres da Internet definir uma srie de blocos de endereos IP como no roteveis. Nestes
casos, teremos que traduzir pelo menos os endereos IP para estabelecer a conexo. Este
tcnica , portanto, chamado Network Address Translation ou NAT E veremos
para ele no Captulo 22, na pgina 393.
Por razes de segurana, no pode ser aconselhvel fazer ligaes diretas para os servidores atravs
a Internet. Em vez disso, o nico acesso pode ser via uma sesso criptografada em um diferente
port. Esta tcnica chamado tunelamento, e vamos olhar para isso no Captulo 24, na pgina
422.
A escolha mais popular para Redes Locais Ethernet, que transfere dados
entre uma srie de computadores a uma velocidade de 10 Mb / s, 100 Mb / s ou 1000 Mb / s (1
Gb / s). Veremos na seo seguinte.
Uma alternativa cada vez mais popular para Ethernet rede sem fio, especificamente
redes locais baseadas no padro IEEE 802.11. Vamos olh-los na pgina 291.
FDDI stands para Fiber Distributed Data Interface, e foi originalmente atropelado vidro
fibras. Em contraste com a Ethernet, ele correu a 100 Mb / s em vez de 10 Mb / s. Hoje em dia
Ethernet funciona a 100 Mb / s, bem como, e FDDI corre sobre o fio de cobre, de modo que o maior
diferena o protocolo. FreeBSD suporta FDDI, mas ns no vamos olhar para isso aqui.
Token Ring mais uma variedade de LAN, introduzido pela IBM. Nunca foi muito
popular no mundo UNIX. FreeBSD tem algum suporte para ele, mas um pouco
desigual, e no vamos olhar para ele neste livro.
1. Talvez ele no vai. Por exemplo, voc pode usar sem fio Ethernet, que transmite no rdio microondas
espectro.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
286
Provavelmente a conexo mais comum para a Wide Area Network atravs de um telefone
com um modem ou com DSL. Modems tm a vantagem de que voc tambm pode us-los
para conexes no-IP, tais como UUCP e com ligao directa (consulte a pgina 338), mas eles so
muito mais lento do que o DSL. Se voc usar um modem para se conectar Internet, voc quase
certamente usar o Protocolo Ponto a Ponto, PPP, que ns olhamos na pgina 339. Em
alguns casos obscuros que voc pode precisar usar o Serial Line Internet Protocol, SLIP, mas
realmente obsoleto.
Uma alternativa ao ADSL ou modem linhas rede de cabo, que usa cabo
servios de fornecimento de conectividade com a Internet. Em muitos aspectos, parece que Ethernet.
Em algumas partes do mundo, links de satlite so de interesse. Na maioria dos casos, eles so
unidirecional: eles transferir dados a partir da Internet para o seu sistema (o downlink) e
exigir alguma outra conexo para obter dados de volta para a Internet (o uplink).
Se voc tem uma grande exigncia de Internet, voc pode encontr-lo adequado para se conectar
Internet atravs de um Linha dedicada, uma linha telefnica que fica permanentemente conectado. Este um
opo relativamente caro, claro, e no vamos discutir isso aqui, especialmente no que
As opes variam muito de pas para pas e de regio para regio.
A deciso sobre qual conexo WAN voc usar depende principalmente do sistema que voc
est se conectando, em muitos casos, uma Provedor de Servios de Internet ou ISP. Ns vamos olhar para ISPs
no Captulo 18.
Ethernet
No incio de 1970, a Xerox empresa fretou um grupo de pesquisadores em seu Palo Alto
Research Center (PARC) para debater o Office of the Future. Este grupo inovador
criou o mouse, a metfora da interface de janela e um sistema integrado, orientado a objeto
ambiente de programao chamada Smalltalk. Alm disso, um jovem engenheiro do MIT no
grupo chamado Bob Metcalfe surgiu com o conceito de que a base da moderna locais
rede de rea, o Ethernet. O protocolo Ethernet um pacote de difuso de baixo nvel
sistema de entrega que empregou a idia revolucionria que era mais fcil para reenviar os pacotes
que no chegou do que era para se certificar de todos os pacotes chegaram. H outra rede
sistemas de hardware l fora, a arquitetura do IBM Token Ring e Fiber Channel, para
exemplo, mas, de longe, o mais popular o sistema Ethernet em seus vrios hardware
encarnaes. Ethernet , de longe, a forma de rede de rea local mais comum. Tem
trs tipos:
287
Ethernet
288
Voc tambm freqentemente ouvimos o termo Endereo MAC. MAC stands para Media Access
Controle e significa, portanto, o endereo usado para acessar a camada de enlace de rede. Para redes Ethernet I
preferem usar o termo mais exato Endereo Ethernet.
O facto de vrias mquinas so na mesma rede d origem a um problema:
obviamente apenas um nico sistema pode transmitir em qualquer momento, ou os dados iro ser ilegvel. Mas
como voc sincronizar os sistemas? Em redes Ethernet tradicionais, a resposta simples, mas
possivelmente surpreendente: tentativa e erro. Antes de qualquer interface transmite, ele verifica que o
rede inactivo in a especificao de Ethernet, isto chamado Carrier Sense.
Infelizmente, isto no suficiente: dois sistemas pode comear a enviar ao mesmo tempo. A
resolver este problema, ao mesmo tempo que envia, cada sistema verifica em seguida se pode ainda reconhecer o que
envio. Se ele no pode, ele assume que outro sistema comeou a enviar ao mesmo tempo
este denominado coliso. Quando ocorre uma coliso, ambos os sistemas parar de enviar, espere um
perodo de tempo aleatrio e tente novamente. Voc ver este mtodo conhecido como CSMA / CD
(Carrier Sense Acesso / Coliso mltipla Detect).
H um certo nmero de problemas com esta abordagem:
A interface precisa ouvir durante o envio, por isso no pode receber coisa alguma, embora seja
envio: ele est funcionando em half-duplex modo. Se pudesse enviar e receber ao mesmo
tempo (modo full-duplex), o throughput da rede poderia ser o dobro.
Quanto mais ativo da rede, as colises mais provvel ser. Isto atrasa as coisas
para baixo tambm, por vezes, at um ponto em que a rede transmite quase nenhum trfego.
Os sistemas mais na rede, menos a largura de banda disponvel para cada sistema.
Com as conexes ponto-a-ponto em uma rede baseada em UTP, voc pensaria que seria
ser possvel mudar um pouco isso. Afinal de contas, as conexes se parecem muito com o
mesmo fio que une dois modems juntos, e modems no tm colises, e eles
so executados em modo full-duplex. O problema o hub: se voc enviar um pacote para um hub, ele
no sabe qual conector para envi-lo para baixo, para que ele envia para todos eles, assim
imitando o antigo Ethernet. Para envi-lo apenas para o destino, seria necessrio analisar a
Endereo Ethernet em todos os pacotes e saber para onde envi-lo.
Isto o que um switch faz: ele aprende os endereos Ethernet de cada interface no
rede e utiliza esta informao para enviar pacotes para apenas a linha para a qual a interface
est ligado. No poderia ser mais do que um, se interruptores so em cascata. Isto significa tambm
que a linha pode ser executado em modo full-duplex.
Hoje em dia a diferena de preo entre os switches e hubs muito pequena; entrar em um
mercado de computadores e voc ver que os preos se sobrepem. Se possvel, compre um switch.
Transmisso de dados da Internet atravs de uma rede Ethernet tem um outro problema. Ethernet evoluiu
independentemente dos padres da Internet. Como resultado, a Ethernet podem transportar diferentes tipos
de trfego. Em particular, a Microsoft usa um protocolo chamado NetBIOS e Novell usa um
protocolo chamado IPX. Alm disso, endereos Internet so apenas 32 bits e seria
impossvel mape-los para endereos Ethernet, mesmo se eles eram do mesmo comprimento. O
resultar? Voc adivinhou, outro cabealho. A Figura 16-5 mostra um pacote de Ethernet levando um
Datagrama IP.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
289
Cabealho IP
comprimento
Tipo de quadro
Tipo de servio
identificao
Tempo para viver
Protocolo
compensar fragmento
Header Checksum
Endereo IP de origem
Endereo IP de destino
porta de
origem
porto de destino
nmero de seqncia
nmero de confirmao
TCP Header
comprimento
reservado
flags
tamanho da janela
Checksum TCP
ponteiro urgente
Dados
Ethernet
290
1 00 1 00 11
00 1 00 1 0 1
00000101
Endereo IP
11 1 11111
1 11 1 11 11
11 1 11 1 1 1
00000000
Mscara de rede
11 0 11111
1 00 1 00 11
00 1 00 1 0 1
00000000
Endereo Net
Classes de endereos
Quando os protocolos da Internet foram introduzidas pela primeira vez, incluram o conceito de um padro
mscara de rede. Estas categorias de endereo foram chamados classes de endereos. As seguintes classes
so definidos no RFC 1375:
291
216-219
220-221
222-223
224-239
240-255
(Reservado)
255.255.255.248
255.255.255.254
(Multicast)
(Reservado)
Rede
Hospedeiro
endereo endereo Nmero de
pedaos peda sistemas
os
/8
16777216
24
/ 16
65536
/ 24
16
256
/ 28
8
16
4
/ 29
/ 31
3
1
8
2
Este mtodo no mais utilizado para especificar mscaras lquidas, apesar de o software ainda defaults
estes valores, mas utilizado para alocar redes. Alm disso, voc vai ouvir com frequncia
o termo Rede de classe C para se referir a uma rede com 256 endereos no intervalo de 192-223.
Este uso remonta a antes RFC 1375.
Endereos roteado
Na ocasio, voc pode querer ter endereos que no so visveis na Internet global,
ou por razes de segurana ou porque voc quer correr Network Address Translation (ver
pgina 393). RFC 1918 prev trs faixas de endereos que no devem ser encaminhados:
10.0.0.0 / 8 (Com ltimo endereo 10.255.255.255), 172.16.0.0/12 (Com ltimo endereo
172.31.255.255) e 192.168.0.0/16 (com ltimo endereo
192.168.255.255).
Eles so geralmente cartes PCMCIA (PC Card), apesar de algumas placas PCI tambm esto disponveis.
Atualmente voc est sujeito a se deparar com os seguintes tipos de cartes:
292
802.11 DSSS Cartes (Discrete Sequence Spread Spectrum), que tambm so executados em at 2
Mb / s. Estes tambm so obsoletos.
802.11a cartes, que so executados em 54 Mb / s. Eles usam uma modulao chamada Ortogonal
Frequency Division Multiplexing ou OFDM, e correr na banda de 5 GHz. Eles no so
compatvel com cartes antigos. No momento da escrita, eles no tm conseguido
penetrao de mercado significativo. FreeBSD no apoi-los, no entanto, apesar de que pode
ter mudado com o tempo voc ler isto.
Normalmente, eles interagir com um ponto de acesso, tambm chamado de uma estao de base. A base
estao normalmente conectado a uma rede externa, de modo que tambm funciona como um gateway.
Ao contrrio de redes Ethernet, no entanto, todo o trfego na rede passa atravs da estao de base. Este
arranjo chamado Basic Service Set ou BSS.
As redes podem ter vrias estaes de base que so normalmente ligados entre si por um
Ethernet com fio. Se a mquina com o fio se move em torno do carto, as estaes de base
negociar com a mquina para decidir qual estao base controla o carto. Neste
maneira, as mquinas podem cobrir grandes distncias sem perder conexo de rede.
Este arranjo chamado de Estendida Basic Service Set ou EBSS.
Este modo de operao, com ou sem um EBSS, chamado modo gerenciado,
modo de infra-estrutura ou Modo BSS.
Em redes menores, os cartes podem interagir diretamente. Este modo de operao chamada
-ponto a ponto, modo ad-hoc ou Modo IBSS (Por Independent Basic Service Set).
Finalmente, alguns cartes de suportar um mtodo chamado Modo ad-hoc demonstrao Lucent, que alguns
Implementaes BSD usados para chamar modo ad-hoc. Mas no o mesmo que o anterior
mtodo, e que o princpio o mesmo, eles no podem interoperar. Este modo
no padronizada, e h problemas significativos de interoperabilidade com ele, por isso mesmo, se
disponvel, voc deve usar o modo IBSS.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
293
Cartes em uma determinada rede precisa ter uma maneira de identificar o outro.
802.11 resolve esta questo, exigindo uma identificao de rede, chamado de Service Set
Identificador ou SSID. Todas as redes tm um SSID, estaes de base vai embora freqentemente
aceitar conexes de cartes que fornecem um SSID em branco. SSIDs no oferecem qualquer
melhoria na segurana: seu nico propsito a identificao da rede.
Cartes em uma determinada rede precisam se proteger contra a espionagem por pessoas que
no pertencem rede.
O padro 802.11 oferece uma soluo parcial para este problema, opcionalmente, criptografar o
pacotes. Vamos olhar para esta questo abaixo.
Encryption
Como mencionado acima, a segurana um grande problema em redes sem fio. A criptografia
fornecida chamado Wired Equivalent Privacy ou WEP, e no muito bom. Todo o mundo
conexo com a rede precisa saber a chave WEP, por isso, se algum perde a permisso para
acessar a rede (por exemplo, quando mudar de emprego), as chaves WEP precisa ser
alteradas, o que constitui um srio problema administrativo. Em alguns casos, completamente
impraticvel: se voc quiser acessar uma rede sem fio em um aeroporto ou um caf (onde
eles esto se tornando cada vez mais comum), no prtico usar uma chave WEP. Na verdade,
quase todas essas redes de acesso pblico no usar a criptografia em tudo.
Como se isso no fosse ruim o suficiente, o algoritmo WEP falho. Dependendo do
circunstncias, pode levar menos de 10 minutos para quebr-la. No confiar nele.
Ento, como voc se proteger? A melhor soluo , evidentemente, no usar wireless
redes para o trabalho confidencial. Se voc tem que usar uma rede sem fio, certifique-se de que
nada confidenciais so criptografados end-to-end, por exemplo, com um ssh tnel, que
veremos na pgina 422.
netintro.mm, v v4.16 (2003/04/02 06:48:55)
294
A rede de referncia
Um dos problemas em falar sobre as redes que existem tantos tipos diferentes de
conexo de rede. Para simplificar as coisas, este livro baseia em uma das mais freqentes
ambientes: um nmero de computadores ligados entre si por uma LAN Ethernet com um
nica porta de entrada para a Internet. Figura 16-7 mostra o layout da rede para que
se referir no resto deste livro.
Rede sem fio 802.11b
acessar
ponto
andante
laptop
wi0 192.168.27.17
xl0 192.168.27.1
freebie
bumble
presto
rl0 223.147.37.1
dc0 223.147.37.2
Ethernet local
Endereo 223.147.37.0
Domnio example.org
xl0 223.147.37.3
esperar
fxp0 223.147.37.4
dc0 223.147.37.5
gw
Router
modem
tun0 139.130.136.133
Conexo rede
223.147.38.0
modem
ppp0 139.130.136.9
modem
ppp3 139.130.136.129
router
free-gw
rl0 139.130.237.117
Ethernet do ISP
Endereo 139.130.237.0
Domnio example.net
xl0 139.130.237.65
de entrada
porta
igw
xl0 139.130.237.3
ns
fddi0 139.130.249.201
a Internet
295
Esta figura contm uma grande quantidade de informaes, que vamos examinar em detalhe no curso de
o texto:
As ligaes dos sistemas para a Ethernet so identificadas por dois valores de: a
esquerda o nome de interface, e direita o endereo associado com a interface
nome.
Mais abaixo, o diagrama o roteador, gw. Ele tem duas interfaces: DC0 interfaces para
a Ethernet, e tun0 interfaces para a linha de PPP para o ISP. Cada interface tem um
endereos diferentes.
presto tem um ponto de acesso sem fio conectado a ele. O diagrama mostra um laptop,
andante, ligado atravs de uma interface de NAT.
Neste captulo:
Rede
com configurao
sysinstall
Manual da rede
configurao
Automtico
com configurao
DHCP
Configurando o PC Card
placas de rede
Configurando wireless
networking
Roteamento
Configurao de rota do
ISP
Olhando para o
tabelas de roteamento
Encaminhamento de
pacotes
Configurao
resumo
17
Configurando o local de
rede
297
298
299
Especifique o nome do host local totalmente qualificado. Quando voc guia para a Domnio: campo, o
domnio preenchido automaticamente. Optamos por chamar essa mquina presto, eo
domnio example.org. Em outras palavras, o nome completo da mquina -presto.exam
ple.org. O endereo IP 223.147.37.2. Nesta configurao, todo o acesso parte externa
mundo passa por gw.example.org, que tem o endereo IP 223.147.37.5. O nome
servidor est localizado no mesmo hospedeiro, presto.example.org. Se o nome do servidor no est em execuo
quando esta informao necessria, preciso especificar todos os endereos em formato numrico, como
mostrado.
O que acontece se voc no tem um nome de domnio? Se voc est se conectando ao global
Internet, voc deve sair e comear uma pgina 318. Mas, entretanto, no falso
lo. Basta deixar os campos em branco. Se voc no est se conectando Internet, claro,
no faz muita diferena o nome que voc escolher.
Como habitual para uma rede classe C, a mscara de rede 255.255.255.0. Voc no precisa preencher
nesta informao, se voc deixar este campo sem preencher-lo, sysinstall insere-lo para
voc. Normalmente, como neste caso, voc no precisa de quaisquer opes adicionais para ifconfig.
sysinstall salva as informaes de configurao no / Etc / rc.conf. Quando o sistema iniciado, a
scripts de inicializao usar esta informao para configurar a rede. Tambm, opcionalmente, o inicia
Interface imediatamente. Na prxima seo, veremos os comandos que ele usa para executar
esta funo.
Ela torna mais fcil para criar e manter os arquivos de configurao, se voc sabe o que
acontecendo nos bastidores.
Isso torna mais fcil modificar algo'' on the fly.'' Voc no tem que reiniciar apenas
porque voc mudou sua configurao de rede.
Com esta informao, voc pode editar os arquivos de configurao diretamente em vez de usar o
interface do menu, o que economiza muito tempo.
Ns gastamos muito tempo discutindo esse ponto nas listas de discusso do FreeBSD. Uma coisa certa:
nenhum mtodo de configurao perfeito. Tanto a configurao do menu baseado e baseado em texto de arquivo
esquemas de oferecer ampla oportunidade de atirar no prprio p. Mas, no momento, a
sistema de arquivo de configurao mais fcil de verificar se voc entender o que est acontecendo. Essa a razo
para o resto deste captulo.
Nesta seo, veremos a maneira manual de fazer as coisas primeiro, e depois vamos ver como a
coloc-lo nos arquivos de configurao para que ele seja feito automaticamente na prxima vez. Voc pode encontrar
um resumo dos arquivos de configurao e de seus contedos na pgina 545.
300
Na verdade, isso mais do que voc normalmente precisa. O inet diz a interface para usar Internet
Protocol Version 4 (o padro) e para cima diz-lhe para lev-la (o que faz de qualquer maneira). Em
Alm disso, esta uma classe C endereo de rede, de modo que os padres de mscara de rede para 255.255.255.0.
Como resultado, voc pode abreviar isso:
# Ifconfig dc0 223.147.37.5
Note que isso diferente do que o Linux requer. Com o Linux voc deve fornecer explicitamente
mscara de rede e transmisso de especificaes de endereos.
Como vimos na pgina 290, tornou-se tpico para abreviar mscaras lquidas para o personagem /
seguidas pelo nmero de um conjunto de bits de mscara de rede. ifconfig entende isso
uso, por isso, se voc quisesse definir uma mscara de rede no-padro de, digamos, 255.255.255.240,
que tem 28 bits definidos, voc pode escrever:
# Ifconfig dc0 223.147.37.5/28
Interfaces de ponto-a-ponto
Com uma interface ponto-a-ponto, o software atualmente exige que voc especifique o IP
endereo da outra extremidade da ligao, bem. Como veremos no captulo 20, no h
boa razo para fazer isso, mas ifconfig insiste nisso. Alm disso, temos a mscara de rede
para um meio de no difuso. O valor bvia: uma pode chegar a exatamente um endereo na
a outra extremidade, de modo que deve ser 255.255.255.255. Com essa informao, poderamos
configurar a interface PPP em gw:
1. Bem, voc pensaria que era bvio. Vamos ver na pgina 345 que algumas pessoas pensam que deve ser outra coisa.
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
301
Na verdade, isso quase nunca necessrio, no captulo 20, veremos que o software PPP
geralmente define a configurao automaticamente.
A interface loopback
Os protocolos IP exigem que voc use um endereo para se comunicar com todos os sistemas, mesmo
seu prprio sistema. Teoricamente, voc pode se comunicar com seu sistema via uma
Interface Ethernet, mas isso relativamente lento: os dados teriam que passar pelo
pilha de rede. Em vez disso, existe uma interface especial para comunicao com outros
processos no mesmo sistema, a interface loopback. O seu nome lo0, e tem o
endereo 127.0.0.1. bastante simples de configurar:
# Ifconfig lo0 127.0.0.1
Na verdade, porm, voc nem precisa fazer tanto trabalho: o sistema define automaticamente
-lo no momento da inicializao.
O dc0 interface tem tanto um endereo IPv4 (inet) e um endereo IPv6 correspondente
(Inet6). Tambm especifica o endereo Ethernet (ter 00:80: C6: f9: d3: fa).
capaz de negociar 10 Mb / s, 100 Mb / s half-duplex e 100 Mb / s full duplex.
conectado a um switch, por isso actualmente a correr 100 Mb / s full duplex.
302
Os arquivos de configurao
Os scripts de inicializao do sistema resumir essas informaes de configurao em um nmero de
variveis de configurao. Consulte o Captulo 29 para obter mais detalhes. No momento, a seguir
variveis so de interesse para ns:
Anteriormente, o FreeBSD tambm necessrio definir uma varivel network_interfaces, uma lista de
os nomes das interfaces a ser configurado. Esta varivel agora o padro o valor
automtico para especificar que todas as interfaces deve ser configurado. Voc s precisa mudar se
voc quer especificamente para excluir uma interface de configurao.
Para gw, colocamos as seguintes informaes no arquivo / etc / rc.conf :
hostname = "gw.example.org"
ifconfig_dc0 = "inet 223.147.37.5"
Ns no configurar o tun0 Interface aqui, como veremos no captulo 20, a configurao PPP
funciona de forma diferente.
303
Cliente DHCP
Para se ter uma configurao, voc corre dhclient. Nas verses anteriores do FreeBSD, dhclient
impressas informaes sobre os endereos que recebeu. Na verso 5, ele no imprime
nada. Basta inici-lo com o nome da interface:
# Dhclient dc0
Para atribuir um endereo automaticamente no momento da inicializao, coloque o valor especial DHCP no
ifconfig_dc0 varivel:
ifconfig_dc0 = DHCP
Servidor DHCP
Requer um servidor DHCP. O servidor no includo como parte do sistema de base, em vez disso,
instalar o net/isc-dhcp3 port:
# Cd / usr/ports/net/isc-dhcp3
# Make install
Para configurar dhcpd, edite o arquivo de configurao / usr / local / etc / isc-dhcpd.conf. Aqui est um
exemplo:
ddns-update-style ad-hoc;
100 Mb / s Ethernet
subnet 223.147.37.0 netmask 255.255.255.0 {
variar 223.147.37.90 223.147.37.110;
servidores de nomes de domnio opo freebie.example.com, presto.example.com;
option domain-name "example.com";
opo routers gw.example.com;
opo subnet-mask 255.255.255.0;
opo de transmisso endereo 223.147.37.255;
default-lease-time 86400;
max-lease-time 259.200;
use-host-decl-names on;
usar o nome especificado como o nome do host
hospedeiro andante {
hardware ethernet 00:50: da: cf: 07:35;
}
}
304
use-host-decl-names diz dhcpd usar o nome no hospedeiro linha que o nome do host
do sistema. Caso contrrio, voc precisaria de um adicional opo host-name especificao
o para cada sistema. Para uma mquina que no faz muita diferena, mas se voc tiver
vinte dessas mquinas, voc vai notar a diferena.
Um dos problemas com dhcpd que, por padro, ele no aloca um endereo IP esttico.
Teoricamente voc poderia anexar um laptop para o mesmo servidor DHCP e obter um diferente
abordar todas as vezes, mas na verdade dhcpd faz o seu melhor para manter o mesmo endereo, e
s vezes voc pode achar que impossvel mudar a sua mente. Neste arquivo de configurao,
porm, temos dito explicitamente dhcpd sobre andante, que reconhecido por sua Ethernet
endereo. Isso funciona relativamente bem para mquinas fixas, mas h um problema com laptops
e placa PC Card: dhcpd reconhece o interface de rede, e no a mquina, e se voc trocar
a placa de interface, o endereo IP muda-se para a nova mquina.
Iniciando dhcpd
O dhcpd port instala um arquivo de inicializao de amostra no diretrio / Usr / local / etc / rc.d.
chamado isc-dhcpd.sh.sample, um nome que garante que ele no ser executado. Este arquivo
normalmente no requer qualquer configurao, basta copi-lo para isc-dhcpd.sh na mesma
diretrio. Isso permite que a inicializao do sistema para encontr-lo e comear a dhcpd.
Para comear dhcpd durante a operao normal do sistema, basta executar o mesmo script:
# / Usr / local / etc / rc.d / isc-dhcpd.sh incio
Marco 14 15:45:09 freebie dhcpd: Internet Software Consortium DHCP Servidor V3.0rc10
Marco 14 15:45:09 freebie dhcpd: Copyright 1995-2001 Internet Software Consortium.
Marco 14 15:45:09 freebie dhcpd: Todos os direitos reservados.
Marco 14 15:45:09 freebie dhcpd: Para informaes, por favor visite http://www.isc.org/products/DHCP
Marco 14 15:45:09 freebie dhcpd: Escreveu 0 decls acolhimento excludos para arquivo arrendamentos.
Marco 14 15:45:09 freebie dhcpd: Escreveu 0 novos decls host dinmico para arquivo de arrendamentos.
Marco 14 15:45:09 freebie dhcpd: Escreveu 14 locaes de arquivo arrendamentos.
Marco 14 15:45:09 freebie dhcpd: Ouvir em BPF/xl0/00: 50: da: cf: 07:35 / 223.147.37.0/24
Marco 14 15:45:09 freebie dhcpd: Envio em
BPF/xl0/00: 50: da: cf: 07:35 / 223.147.37.0/24
Marco 14 15:45:09 freebie dhcpd: Envio em
Soquete / fallback / fallback-net
Quando voc alterar o arquivo de configurao / Usr / local / etc / isc-dhcpd.conf, voc deve reiniciar
dhcpd:
# / Usr / local / etc / rc.d / isc-dhcpd.sh reiniciar
305
Na insero de um dispositivo PC Card, voc ver algo parecido com isso no console:
Identificao do fabricante: 01015751
Verso do produto: 5.0
Nome do produto: 3Com Corporation | 3CCFE575BT | LAN CardBus | 001 |
Funes: Adaptador de Rede, Memria
Leitura CIS feito
cardbus0: Recurso no especificado no CIS: id = 14, size = 80
cardbus0: Recurso no especificado no CIS: id = 18, size = 80
xl0: <3Com 3c575B rpido Etherlink XL> port 0x1080-0x10bf mem-0x88002400 0x8800247
f, 0x88002480-0x880024ff IRQ 11 no dispositivo 0.0 em cardbus0
xl0: endereo Ethernet: 00:10:04 b: f8: FD: 20
miibus0: <MII bus> em xl0
tdkphy0: <TDK mdia 78Q2120 interface> em miibus0
tdkphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
A placa est l, mas no est configurado. FreeBSD utiliza o DEVD daemon para executar
configurao do espao de usurio depois que um carto foi anexado. Ns j olhou DEVD em
pgina 159. Quando DEVD estabelece que o carto uma placa de rede, ele chama
/ Etc / pccard_ether configur-lo. A seguir, vamos ver como / Etc / pccard_ether
configura nossa xl0 interface. Ele executa os seguintes passos:
Se um arquivo / Etc/start_if.xl0 existe, ele executa. Aps fazer isso, ele continua.
Isso um monte de escolha. O que voc usa quando? Isso depende do que voc quer fazer.
A primeira coisa a notar que nada acontece a no ser que seu nome interface no
varivel removable_interfaces, ea varivel ifconfig_xl0 existe. A questo
, o que voc colocar em ifconfig_xl0?
Em princpio, o mesmo que com outras placas de rede: ou endereo IP e outras
opes, ou DHCP. A terceira alternativa importante, no entanto. Vamos considerar o caso
onde voc deseja iniciar uma srie de servios, quando o sistema est conectado. Voc pode
deseja executar ntpdate, em seguida, iniciar o ntpd e rwhod, e voc pode querer montar um NFS
sistemas de arquivos. Voc pode fazer tudo isso na inicializao com placas de rede normais, mas
/ Etc / pccard_ether no inteligente o suficiente para fazer tudo isso. Em vez disso, crie um arquivo chamado
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
306
No se esquea de comear DHCP ou no definir o endereo IP, porque este mtodo ignora
as startups padro.
Alm disso, voc colocar isso em / Etc / rc.conf :
devd_enable = YES
ifconfig_xl0 = NO
removable_interfaces = "wi0 xe0 xl0"
Os valores da ltima linha s precisa incluir xl0, claro, mas bom para colocar em cada
nome da interface que voc possivelmente iria usar.
Se a varivel ifconfig_xl0 est definido para DHCP, / Etc / pccard_ether pra o dhclient
processo, o que seria de outra forma de loop para sempre.
Se voc viajar para outro lugar com um laptop e suspender o sistema, certifique-se de desmontar
todos os sistemas de arquivos NFS primeiro. Voc no pode faz-lo uma vez que voc no est mais ligado
rede, e possvel que as coisas vo ficar tentando acessar arquivos NFS montado.
Ser que a rede que voc esto se juntando aceite conexes com um SSID em branco? Se no, o que
o seu SSID?
O modo que voc est correndo em? o modo de BSS, o modo IBSS, ou Lucent demonstrao adhoc?
307
Se voc estiver executando em IBSS ou modo de demonstrao Lucent ad-hoc, voc precisa saber o
frequncia (canais), na qual a rede est em execuo.
Se voc estiver executando em modo IBSS, voc j tem uma IBSS, ou a sua mquina
vo ser os IBSS?
Voc est preocupado com o consumo de energia? Se voc estiver executando no modo BSS, voc pode
reduzir significativamente o consumo de energia da placa girando sobre economia de energia
modo, mas pode retardar algumas coisas.
Cada um destes traduz-se numa ifconfig de comando. Aqui esto alguns exemplos tpicos:
ifconfig
ifconfig
ifconfig
ifconfig
ifconfig
wi0
wi0
wi0
wi0
wi0
Exemplo ssid
mdia autoselect mediaopt-adhoc
canal 3
wepmode em
wepkey 0x42726f6b21
Ao definir opes de mdia, voc tambm deve selecionar a mdia, mesmo que seja inalterada, assim
o mdia autoselect no exemplo acima.
Voc tem uma escolha de onde colocar essas especificaes. Por exemplo, se voc fosse
ligao ao Exemplo rede, que IBSS, voc poderia colocar isso no seu
/ Etc / rc.conf :
devd_enable = YES
ifconfig_wi0 = "192.168.27.4 ssid Exemplo mdia autoselect mediaopt adhoc \
canal 3 wepmode em wepkey 0x42726f6b21
removable_interfaces = "wi0 xe0 xl0"
Voc no precisa fazer nada de especial para se tornar um mestre IBSS em uma rede IBSS: se
no h nenhum mestre j, e sua placa suporta ele, o sistema vai se tornar o IBSS
mestre.
Se, por outro lado, voc se conectar a uma rede no-criptografada, voc no faria
Preciso da chave WEP, e voc pode digitar:
ifconfig_wi0 = "192.168.27.4 ssid Exemplo mdia autoselect mediaopt IBSS-master channe
l 3 wepmode off "
308
Roteamento
Olhando para trs, nosso exemplo de rede na pgina 294, vamos reconsiderar um problema que nos conhecemos
a: quando um sistema recebe um pacote de dados normal, o que ele faz com ela? Tem
quatro possibilidades:
1. Se o pacote um pacote de broadcast, ou se est dirigida a um dos seus endereos de interface,
ele entrega-lo localmente.
2. Se dirigida a um sistema ao qual ele tem uma conexo direta, ele envia-lo para que
sistema.
3. Se no dirigida a um sistema ao qual ele est diretamente conectado, mas sabe
sistema que sabe o que fazer com o pacote, ele envia o pacote para esse sistema.
4. Se nenhum destes casos se aplicam, ele descarta o pacote.
Tabela 17-1: A tabela de roteamento
Destino
127.0.0.1
223.147.37.0
139.130.136.129
omisso
Porta de
entrada
Mscara de
rede
127.0.0.1
255.0.0.0
139.130.136.133
139.130.136.129
255.255.255.0
255.255.255.255
0.0.0.0
Tipo
Interface
Hospedeiro lo0
dc0
Dirigir
Hospedeiro tun0
tun0
Porta de
entrada
A primeira entrada o loopback entrada: mostra que o host local pode ser alcanado pelo
interface lo0, que o nome para a interface de loopback em todos os sistemas UNIX.
Embora esta entrada especifica um nico host, a mscara de rede permite 16.276.778 anfitries.
Os outros endereos no so utilizados.
A segunda entrada para o Ethernet local. Neste caso, temos uma conexo direta,
por isso no precisa especificar um endereo de gateway. Devido mscara de rede
255.255.255.0, essa entrada responsvel por todos os endereos de 223.147.37.0 a
223.147.37.255.
Esta entrada tambm enfatiza a diferena entre a sada do ifconfig e a
tabela de roteamento. ifconfig mostra o endereo da interface, o endereo necessrio para alcanar
nosso sistema. Para a interface Ethernet, 223.147.37.5. A tabela de roteamento mostra
os endereos que podem ser alcanados de Neste sistema, para que ele mostre o endereo base do
Ethernet 223.147.37.0.
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
309
A terceira entrada representa a interface PPP. uma entrada de host, como o loopback
entrada. Esta entrada permite que o acesso outra extremidade da ligao PPP apenas, de modo que o lquido mscara
est definido para 255.255.255.255 (Apenas um sistema).
E isso tudo que existe para ela! Bem, mais ou menos. Em nossa configurao de exemplo, estamos escondidos em
um canto da Internet, e s h um caminho para o resto da rede. Coisas
olhar diferente quando voc est conectado a mais de uma rede. Na pgina 310 vamos
olhar para as diferenas que precisamos para o ISP example.net. No meio da Internet,
as coisas so ainda mais extrema. Pode haver dezenas de interfaces, bem como a escolha de um
de rota de um determinado endereo pode ser muito mais complicada. Em tal ambiente,
dois problemas ocorrer:
Provavelmente existem vrias maneiras para rotear pacotes destinados a um sistema especfico.
Obviamente, voc deve escolher a melhor rota. Mas o que acontece se falhar ou se torna
congestionado? Ento no o melhor caminho mais. Esse tipo de mudana acontece
freqentemente o suficiente para que os seres humanos no pode manter-se com ele, voc precisa executar roteamento
software para gerenciar a tabela de roteamento.
O endereo do porta de entrada que encaminha os dados para esta faixa de endereos. O gateway
um sistema conectado diretamente, de modo que tambm figura na tabela de roteamento.
Roteamento
310
Durante a inicializao do sistema, o script / Etc / rc.network realiza esta operao automaticamente se
voc definir a seguinte varivel em / Etc / rc.conf :
defaultrouter = "223.147.37.5"
Note que digitar o endereo do roteador padro como um endereo IP, e no um nome. Este
comando executado antes do nome do servidor est sendo executado. Ns no podemos mudar a seqncia
em que comeamos os processos: dependendo de onde o nosso servidor de nomes , talvez seja necessrio
ter a rota no lugar para acessar o servidor de nomes.
Sobre o sistema gw, a rota padro passa atravs da tun0 interface:
# Defaultrouter = "139.130.136.129" # Configure a porta de entrada padro (ou NO).
gateway_enable = "YES" # definido para SIM se este host ser um gateway.
Esta uma interface PPP, assim voc no precisa de um defaultrouter entrada, se o fizesse, seria
parecido com a entrada comentada acima. Na pgina 347, vamos ver como PPP define a
rota padro.
Precisamos habilitar a funcionalidade de gateway deste sistema, uma vez que recebe os pacotes de dados em
nome de outros sistemas. Vamos olhar para esta questo com mais profundidade na pgina 313.
igw.example.net
gw.example.org
interface de ppp0 locais
A primeira linha informa ao sistema que a rota padro via gw.example.org. O segundo
mostra que a rede com o endereo IP base 223.147.37.0 (Example.org) pode ser
alcanado atravs do endereo do gateway 139.130.136.133, que o terminal remoto da PPP
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
311
A varivel static_routes contm a lista das rotas estticas que so para ser
configurado.
Para cada rota, uma varivel correspondente ao nome da rota especificada no STATic_routes, com o texto route_ prefixado. Ao contrrio das interfaces, voc pode atribuir
qualquer nome que voc deseja para eles, contanto que comea com route_. Faz sentido para eles
estar relacionado com o nome de domnio, mas no precisa. Por exemplo, seria
gostado de ter chamado a nossa rede freebie.org, mas h uma boa chance de que isso
nome foi tomado, ento ns o chamamos example.org em vez disso. O nome antigo vive em
o nome do trajecto route_freebie. No caso de biguser.com, que chamamos
o percurso varivel route_biguser.
=
=
=
=
Porta de entrada
gw
localhost
link # 2
00:00: c0: 44: A5: 68
0: a0: 24:37: d: 2b
0:60:97:40: fb: e1
08:00:20: e: 2c: 98
0:60:97:40: fb: e1
ff: ff: ff: ff: ff: ff
Netif vencimento
rl0
lo0
rl0
lo0
rl0
rl0
rl0
rl0
1151
645
1195
645
A primeira coluna o nome de uma mquina ou de uma rede de pacotes que podem ser enviados ou
a palavra-chave padro.
312
Vamos olhar para as bandeiras abaixo. Os mais importantes a serem observados so G (Gateway) e H
(Host).
Os campos Refs, use e Expirar so apenas de interesse quando voc estiver executando um roteamento
protocolo. Veja a pgina de manual netstat (1) para mais detalhes.
Netif o nome da interface atravs da qual a porta de entrada pode ser alcanado. No caso
de uma ligao, isto a interface, de modo que o Netif campo est vazio.
A ordem das entradas no importante. O sistema de procura na tabela para um melhor ajuste,
no um primeiro ajuste.
Voc tambm ter alguma sada adicional para o IPv6 (Internet6''''). Se voc no estiver usando
IPv6, voc pode ignor-lo. Se ele recebe em seus nervos, voc pode limitar a sua opinio sobre IPv4 por
digitando o comando netstat-rfinet. A-f flag especifica quais endereo
famlia voc est interessado, e inet especifica IPv4.
Bandeiras
Em comparao com verses anteriores do netstat, a verso atual apresenta muitos mais bandeiras.
A tabela a seguir apresenta uma viso geral.
Tabela 17-2: netstat-r valores bandeiras
Bande Nome
ira
RTF_PROTO1
1
2
3
B
b
C
c
D
G
H
L
M
R
S
RTF_PROTO2
RTF_PROTO3
RTF_BLACKHOLE
RTF_BROADCAST
RTF_CLONING
RTF_PRCLONING
RTF_DYNAMIC
RTF_GATEWAY
RTF_HOST
RTF_LLINFO
RTF_MODIFIED
RTF_REJECT
RTF_STATIC
Significado
Protocolo bandeira encaminhamento especfico 1
Bandeira de roteamento protocolo especfico 2
Protocolo bandeira encaminhamento especfico 3
Apenas descartar pkts (durante as atualizaes)
A rota representa um endereo de broadcast
Gerar novas rotas em uso
Protocolo especificado gerar novas rotas em uso
Criado dinamicamente (por redirecionar)
Destino requer o encaminhamento por intermdio
Entrada de host (lquido de outra forma)
Protocolo vlido de ligao traduo de endereos
Modificadas dinamicamente (por redirecionar)
Anfitrio ou inacessvel net
Adicionados manualmente
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
313
U
W
X
RTF_UP
RTF_WASCLONED
RTF_XRESOLVE
Utilizvel rota
Rota foi gerado como resultado da clonagem
Daemon externo traduz proto a ligao entre o endereo
Encaminhamento de pacotes
Vimos acima que quando o sistema recebe um pacote que no se destina a si, parece
para uma rota para o destino. Na verdade, isso nem sempre o caso: por padro, o FreeBSD apenas
silenciosamente descarta o pacote. Isto desejvel por razes de segurana, e de fato exigido
pela RFC 1122, mas se voc quiser acessar a Internet atravs de outra mquina no seu local de
net, menos do que conveniente.
A razo para isto que a maioria dos sistemas s so conectados a uma rede, e
No faz sentido ter o encaminhamento de pacotes ativado. Sistemas anteriores fizeram deste um
opo do kernel, de modo que desativar o encaminhamento de pacotes tambm fez o kernel fracionada
menor. Nas verses atuais do FreeBSD, o cdigo est sempre l, mesmo se ele est desativado.
simples o suficiente para configurar o seu aparelho como um roteador (ou gateway): voc pode configur-lo
com a sysctl comando:
# Sysctl-w net.inet.ip.forwarding = 1
net.inet.ip.forwarding: 0 -> 1
Resumo da configurao
No decorrer deste captulo, ns discutimos uma srie de configuraes diferentes. Em
Nesta seo, vamos resumir a configurao para gw.example.net livre, uma vez que o
mais complicado. Voc digita as seguintes informaes em sua / Etc / rc.conf :
Para cada interface, especificar endereos IP e mscaras possivelmente lquido de cada interface em
a mquina:
ifconfig_rl0 = "inet 139.130.237.117"
As interfaces PPP so configurados de forma independente, por isso no vamos olh-los aqui, mas
podemos precisar seus endereos de rotas estticas. O endereo da interface local para ppp0
139.130.136.9 eo endereo do local para ppp3 139.130.136.129.
netsetup.mm, v v4.15 (2003/04/02 06:50:16)
Resumo da configurao
314
Decidir sobre uma rota padro. Neste caso, a mquina gateway igw.example.net,
com o endereo 139.130.237.65:
defaultrouter = "139.130.237.65" # Configure a porta de entrada padro (ou NO).
Decidir sobre outras rotas. Neste caso, temos dois, para example.org e biguser.com.
Inclu-los na varivel static_routes:
static_routes = "freebie biguser" # Definir a lista de rota esttica
Para cada rota esttica, crie uma varivel que descreve a rota:
route_freebie = "-net 223.147.37.0 139.130.136.133"
route_biguser = "-net 223.147.38.0-iface ppp0"
Neste captulo:
O fsico
conexo
Estabelecendo-se
na Internet
Escolhendo um Internet
Service Provider
Quem esse ISP?
Fazendo o
conexo
18
Conectando-se ao
Internet
Para implementar a rede de referncia mostrado no captulo anterior, preciso fazer um monte de
coisas que fazem interface com o mundo exterior. Eles podem levar algum tempo, por isso, devemos olhar
para eles em primeiro lugar:
Que tipo de conexo fsica devemos usar? Vamos considerar que na prxima
seco.
Podemos querer registrar um domnio. Muitas pessoas no, mas eu recomendo fortemente.
Descobre que, na pgina 317.
Tambm pode querer registar-se numa rede. Em nosso exemplo, ns usamos a rede
223.147.37.0. Na vida real, no podemos escolher nossa prpria rede: tomamos o que dado
para ns. Ns vamos olhar para isso na pgina 318.
Precisamos encontrar uma Provedor de Servios de Internet. Veremos o que isso implica na pgina
319.
A conexo fsica
Apenas dois ou trs anos atrs, a maneira de se conectar com o mundo exterior era simples: um telefone
linha. Desde ento, as coisas mudaram um pouco, e voc pode ter uma escolha bastante:
315
A conexo fsica
316
melhor. Voc pode executar PPP ou SLIP sobre este tipo de linha, embora hoje em dia a maioria dos ISPs
suportam apenas PPP.
ISDN stands para Rede Digital Sistemas Integrados. o novo, melhor, lavasistema de telefone mais branco que est substituindo POTS (Plain Old Telephone Service), em
alguns pases, nomeadamente na Europa. O FreeBSD suporta ISDN com o isdn4bsd
motorista. No vamos olhar para ISDN ainda mais neste livro.
Linhas alugadas formar a espinha dorsal da Internet. Eles so invariavelmente mais caros
de linhas discadas, mas eles podem fornecer bastante altas velocidades-nos EUA, um T1 linha ser
dar-lhe 1536 kbps, e no resto do mundo, uma E1 vai lhe dar 2.048 kbps.
As linhas alugadas so cada vez menos interessante, e ns no vamos olhar para eles com mais detalhes
neste livro.
Modems de cabo usar as redes de TV a cabo existentes para fornecer uma conexo de alta velocidade, at
a vrios megabits por segundo. Eles usam a cabo como um meio de transmisso, mais ou menos como
uma Ethernet, e sofrem com os mesmos problemas de carga: voc compartilha a velocidade com o
outros usurios do cabo. Existem tambm alguns problemas de segurana a considerar, mas se voc
ter um servio de cabo em sua rea, voc provavelmente vai achar que superior a telefones. O
modem de cabo efectivamente uma ponte entre o cabo e uma rede Ethernet. Do
Ponto de vista do FreeBSD, o cable modem parece apenas mais um dispositivo Ethernet.
DSL (Digital Subscriber Line) a reao das companhias telefnicas para os modems de cabo.
At recentemente, o L representava Loop, no de linha. Um lao o termo de telecomunicaes para o par de condutores
entre a troca (ou Escritrio Central) e instalaes do assinante.
Em algumas partes do mundo, ligaes por satlite so uma alternativa vivel. Estes
costumo usar uma linha telefnica para dados de sada e um receptor de satlite para entrada
dados. Os preos variam de muito barato a muito caro, mas se voc no pode ficar de cabo ou
DSL, esta pode ser sua nica opo.
317
Estabelecendo-se na Internet
A primeira coisa que voc precisa decidir a extenso de sua presena na rede. Tem
vrias possibilidades:
Voc pode obter um servio dial-up, onde voc usa seu computador apenas para se conectar
ISP e executar funes de rede, tais como ler e-mails e notcias sobre o ISP
mquina (a conta shell). muito mais rpido para executar essas funes em seu prprio pas
mquina, e voc tem todo o software que voc precisa para faz-lo, por isso esta opo no muito
desejvel. Esta opo est se tornando cada vez mais raro.
Voc pode executar todas as funes na sua mquina, mas usando nomes e endereos
que lhe foi atribudo pelo ISP.
Voc pode executar todas as funes na sua mquina, usando os endereos atribudos a
pelo ISP, mas voc poderia usar o seu prprio nome de domnio.
Voc comea o seu prprio espao de endereo e usar o seu prprio nome de domnio.
Ser que isso importa? Isso para voc decidir. certamente uma boa idia de ter seu prprio
nome de domnio. Conforme o tempo passa, o seu endereo de e-mail se tornar mais e mais
importante. Se voc receber um mail como 4711@flybynight.net, e vai Flybynight
quebrou, ou se voc decidir mudar para um provedor diferente, o seu endereo de email est desaparecido, e voc tem
explicar isso para todo mundo que queira entrar em contato com voc. Se, por outro lado, a sua
nome Jerry Dunham, e voc registrar um domnio dunham.org, voc pode atribuir a si mesmo
qualquer endereo de e-mail em que domnio.
Mas como voc vai fazer sobre isso? Uma forma seria para pagar o seu ISP para fazer isso por voc. Voc
no precisa fazer isso: fcil o suficiente para fazer-se no World-Wide Web. Voc deve
estar ligado Internet para realizar essas etapas. Isto implica que voc deve primeiro
conectar usando o nome do domnio do seu provedor, em seguida, estabelecer o seu nome de domnio, e mudar para
esse domnio.
Estabelecendo-se na Internet
318
O nome deve estar disponvel, no entanto, existem algumas implicaes legais que sugerem
que, embora voc pode ser capaz de registrar um domnio, como microsoft.edu, poderia
no ser bom para voc, se voc faz. Na verdade, microsoft.edu j foi registrado no
BISPL escola de negcios em Hyderabad, na ndia, provavelmente no de acordo com
Microsoft.
Voc deve ser capaz de especificar dois servidores de nome para ele, consulte o Captulo 21 para obter mais
detalhes sobre os servidores de nomes.
Em seguida, tentar encontrar um registro respeitvel. Imediatamente aps a transferncia de agentes de registo a partir de
InterNIC, a nica empresa a oferecer este servio foi a Network Solutions, mas agora no
so muitos. Eu no recomendo a Network Solutions: eles so caros e incompetente.
Se, como eu recomendo, necessrio configurar o servidor de correio de recusar-mail de servidores sem
reverter mapeamento, voc no ser capaz de se comunicar com eles, pois eles no tm
DNS reverso em seus servidores de correio, e eles usam nomes no registrados por eles. Juiz de
mesmo que isso diz sobre a sua competncia tcnica.
Um registro que muitas pessoas usam FreeBSD Gandi (http://www.gandi.net/), que
ligeiramente associado com o projeto FreeBSD. At agora ningum encontrou nada de negativo
para dizer sobre eles. Ao contrrio de solues de rede, suas pginas da web tambm so relativamente simples
de entender.
Obter endereos IP
Era uma vez, foi possvel obter endereos IP de InterNIC, mas esta prtica
agora restrita a grandes alocaes para provedores. Em vez disso, obter os endereos a partir do seu ISP.
Consideraes de roteamento tornam impraticvel para mover os endereos IP de um lugar para
outro. Se voc mover uma longa distncia, voc deve esperar para mudar seus endereos IP em
da mesma forma que voc iria mudar seu nmero de telefone.
isp.mm, v v4.10 (2003/04/02 03:09:55)
319
Perguntas a um ISP
Assim como voc escolher um ISP? No se esquea do valor do boca-a-boca o mais
forma comum de encontrar um ISP. Se voc conhece algum muito tcnico, de preferncia um
FreeBSD usurio, que j est conectado, pedir-lhe-Ele vai certamente ser capaz de dizer-lhe
sobre o seu ISP. Caso contrrio, muito depende do seu nvel de conhecimento tcnico.
fcil de saber mais sobre os aspectos tcnicos da Internet do que o seu ISP, mas no
muitas vezes ajudam a obter um bom servio. Aqui esto algumas perguntas a fazer qualquer potencial ISP:
isp.mm, v v4.10 (2003/04/02 03:09:55)
320
Voc tem um custo mais barato para os dados de sua prpria rede?
Muitos ISPs manter caches web proxy, arquivos FTP e rede de notcias. Se eles cobram por
de volume, alguns lhe dar acesso livre sua prpria rede. No subestime o valor de
esses dados livres.
321
Quantos assinantes voc tem? Qual o tempo mdio que se conectam por
semana?
Para alm da informao bvia, verifique se eles mantm esse tipo de estatsticas. Eles so
importante para o crescimento.
Qual o seu registro de up-tempo? Voc mantm estatsticas de disponibilidade? Quais so elas?
ISPs so sempre nervoso para publicar suas estatsticas. Eles nunca to bom quanto Eu gostaria.
Mas se eles public-los, voc pode supor que esse fato por si s torna-los melhor do que o seu
concorrentes.
Voc pode fornecer DNS primrio ou secundrio para mim? Quanto custa?
Eu recomendo fortemente usar o seu prprio nome de domnio para o correio. Dessa forma, se as suas dobras do ISP,
ou voc tem alguma outra razo para querer mudar, voc no precisa mudar seu e-mail
ID. Para fazer isso, voc precisa ter as informaes disponveis a partir de um servidor de nomes de 24 horas por
dia. DNS pode gerar uma grande quantidade de trfego, e se voc no estiver conectado rede 100%
do tempo, e-mail para que voc pode se perder se o sistema no pode encontrar as informaes de DNS. Mesmo se voc
est conectado 100% do tempo, uma boa idia ter um DNS de backup do outro lado da
o link. Lembre-se, porm, que ele no tem que ser o seu ISP. Alguns ISPs fornecem gratuitamente
secundrios para quem pede para eles, e voc pode ter amigos que tambm o far
para voc.
O ISP tambm podem oferecer para realizar as formalidades de registo de domnio para voc, para uma taxa.
1. BSD / OS um sistema operacional comercial intimamente relacionada com FreeBSD. Se voc tiver alguns milhares de dlares para
sobra, voc pode at achar que melhor do que o FreeBSD. Confira http://www.wrs.com/ para mais detalhes.
isp.mm, v v4.10 (2003/04/02 03:09:55)
322
Voc pode facilmente fazer isso sozinho: consulte a pgina 318 para mais detalhes. Verifique a taxa,
porm: em alguns pases, o ISP pode obter um desconto para as taxas de registro de domnio. Se
grande o suficiente, registrando atravs do ISP pode, eventualmente, ser mais barato do que faz-lo sozinho.
Voc pode encaminhar uma rede de classe C para mim? Qual o custo?
Se voc est se conectando a uma rede local Internet, informaes de roteamento deve ser
propagadas para o lquido. ISPs freqentemente consideram esse uso seja'' comercial'', e pode
fazer subir os preos consideravelmente como resultado.
Alternativas para uma rede de classe C inteira so um grupo de endereos estticos (por exemplo, 8 ou 16) para fora do
Aborda prpria rede atribudo de ISP. No h nenhum problema em particular com a tomada esta rota.
Se voc mudar ISPs, voc vai ter que alterar os endereos, mas contanto que voc tem seu prprio
nome de domnio, que no deve ser um problema.
Outra possibilidade seria usar Aliasing IP. Consulte a pgina 393 para mais detalhes.
323
Fazendo a conexo
Depois de chamar alguns ISPs, voc deve ser capaz de tomar uma deciso com base em suas respostas ao
estas questes. O prximo passo reunir as informaes necessrias para se conectar. Use a Tabela
18-1 para coletar as informaes que voc precisa. Consulte o Captulo 20 para obter informaes sobre
autenticao, nome de usurio e senha.
Tabela 18-1: Informaes para configurao ISP
Informaes
Endereo IP do seu final do link
O endereo IP da outra extremidade da
ligao
Tipo de autenticao (CHAP, PAP,
Entrar)
Usurio ou nome do sistema
Senha ou chave
O nome do servidor de nomes primrio
Nome principal endereo IP do
servidor
O nome do servidor de nome
secundrio
Nome secundrio endereo IP do
servidor
Pop (Mail) Name Server
Notcias Nome do Servidor
Neste captulo:
Terminologia
Assncrona e
sncrono
comunicao
As portas seriais
Modems
Comandos de modem
19
Serial
comunicaes
UNIX sempre teve um alto nvel de suporte para linhas seriais, mas o seu propsito tem
mudou dramaticamente. No incio dos anos 70, o padro de terminal'''' era um teletipo KSR35, um
10 caracteres por segundo impressora serial com teclado. Cedo apoio linha serial UNIX foi
voltadas para apoiar estes dispositivos, seja diretamente conectado, ou atravs de um modem.
Mesmo no incio dos anos 80, quando 4.2BSD introduziu o suporte de rede, as coisas no mudam
muito: o suporte de rede usado hardware diferente. Por esta altura, os Teletypes tinha sido
substitudo ttys vidro, por outras palavras, em srie, com terminais de um monitor, em vez de um
impressora. As velocidades tinha subido do 110 bps do teletipo para 9600 bps, mas a
princpios subjacentes no tinham mudado.
No foi at os ltimos 10 anos que os ttys de vidro foram substitudas por placas de vdeo diretamente
ligado ao barramento do sistema, ou por outras mquinas ligadas por Ethernet. O papel do
porta serial mudou completamente: hoje em dia, eles so usados principalmente para camundongos e discadas
Conexes com a Internet.
Esta mudana no uso invalidou alguns conceitos bsicos. Apenas alguns anos atrs, o
modem'' padro'' de alta velocidade era um V.22bis bps modem 2400, mesmo assim muito lento para um
Ligao Internet. A linha de comunicao de dados padro foi de 56 kb / s, e foi
invariavelmente uma linha alugada. Como resultado, a Internet cresceu assumindo que as ligaes foram
linhas alugadas, e, portanto, permanentemente conectado. Ainda hoje, os protocolos da Internet fazer
no lidam bem com o acesso dial-up.
Por outro lado, UUCP se usar o acesso dial-up. Como resultado, as provises para acesso discado
em UNIX tendem a ser derivados UUCP. Isso no faz para uma integrao harmoniosa.
modems.mm, v v4.10 (2003/04/02 03:11:02)
325
O FreeBSD completo
326
Neste captulo, vamos olhar para a forma como lida com FreeBSD comunicao serial, a forma como
modems funcionam, e como os dois se encaixam.
Terminologia
Qualquer conexo serial tem duas extremidades, que podem ser computadores, terminais, impressoras ou
modems. Na terminologia do modem, os computadores so Equipamento terminal de dados ou DTE
(Esta terminologia surgiu num momento em que o dispositivo conectado a um modem era geralmente um
terminal) e modems so Data Communication Equipment ou DCE. Voc tambm vai
s vezes ouvir o nome dataset por um modem.
Comunicao assncrona
Comunicao assncrona antecede computadores. Ele foi originalmente desenvolvido para ser executado
teletypewriters, mquinas de escrever eltricas que foram executadas fora de um fluxo de dados serial, o mais
conhecido dos quais foram feitos pelo teletipo corporao. Estas mquinas eram
freqentemente usado para fornecer uma transcrio remota de que algum estava digitando quilmetros de distncia,
para que eles normalmente imprimir um carter de cada vez, parar e esperar pelo prximo. No
primeiros dias do UNIX, o terminal padro era um modelo teletipo KSR35, geralmente apenas
chamado teleimpressor ou tty (Pronuncia-se'' peitinho'').
Aqui est uma foto de uma codificao de byte tpico:
Bit 1 Bit 2
327
Antes que o personagem comea, a linha est ociosa, o que mostra como um alto nvel: indica
ao teletipo que a linha continua ligada.
Primeiro vem a start bit. Nos tempos antigos, este bit ligou o motor do teletipo
mecanismo. Agora, ele sinaliza que os dados esto chegando.
Em seguida, vem a bit de paridade. Para detectar eventuais erros de transmisso, este personagem codificado
com paridade. O bit de paridade definido para 1 se o personagem contm um nmero mpar de
bits, e aos 0 caso contrrio, o que garante que o personagem, incluindo o bit de paridade,
tem sempre um nmero par de bits. Se um nico bit corrompidos durante a transmisso,
o personagem vai chegar com paridade mpar, eo receptor ir detectar um erro.
Em seguida, vm os bits do personagem, passado pouco antes. Ns representamos 1 com um nvel baixo e
0 com um nvel elevado.
Por fim, vm um ou dois bits de parada. Os bits de parada foram originalmente destinados a dar ao
tempo de teletipo para parar o motor, mas so agora em grande parte suprfluo. Voc precisava de dois
bits para um teletipo parar, mas hoje em dia voc deve sempre usar um.
Este exemplo mostra tambm algo mais importante: existe um nmero de maneiras
para codificar o personagem. Quantos bits? Quantos bits de parada? Paridade mpar? Mesmo
paridade? Sem paridade? Mark paridade (sempre um 1 bit)? Paridade Space (sempre um 0 bit)?
Quanto tempo de um bit para a prxima (que taxa de bit)? Eles esto todos definidos com a stty
programa (veja a pgina man stty (1)), mas se voc coloc-las de forma errada, voc vai ter problemas.
A codificao no muito eficiente. Para cada personagem que voc enviar, voc tambm enviar um comeo
bits e um bit de paragem. A maioria das comunicaes j no usam o bit de paridade, mas isso ainda
significa que voc tem uma sobrecarga de 25% sobre comunicao: para cada 8 bits, voc envia
10, e voc pode enviar at 12, como neste exemplo. Vamos ver o que sncrono
comunicao no tem esse problema. Usurios de comunicao sncrona
protocolos muitas vezes referem-se a comunicao assncrona como start-stop comunicao.
A comunicao sncrona
Em contraste com a comunicao assncrona, comunicao sncrona vem
mundo do mainframe, e assume que os dados no vem um byte de cada vez. Em vez disso,
que transmite os dados em blocos. Cada bloco precedida por um ou dois SYN personagens que contam
o receptor que os dados esto chegando, e que lhe permitem determinar a orientao correta de
os bits de dados.
Todos os modems modernos usam a comunicao sncrona na linha telefnica, pois
mais eficiente, e a base de protocolos como SNA e X.25, mas voc vai quase
nunca vejo qualquer outro uso em sistemas UNIX.
328
As portas seriais
Hoje em dia, todos os computadores vm equipados com duas portas seriais, que so chamados COM1: e
COM2: no mundo DOS. UNIX nomes so diferentes, e FreeBSD chama esses mesmos
dispositivos sio0 e sio1. possvel conectar at quatro portas seriais diretas sobre a
PC padro, mas devido ao desenho do tabuleiro, cada um requer uma linha de IRQ separado. Se
voc colocar duas portas seriais na mesma linha de interrupo, nenhum deles vai funcionar.
Os dois primeiros dispositivos, sio0 e sio1, normalmente utilizam as IRQs padro 4 e 3. Por padro, o
No entanto, os fabricantes de PC colocar COM3: e COM4: Tambm no IRQ 4 e 3. Como isso pode
funciona? No pode, se voc tambm tem COM1: e COM2: habilitado para essas IRQs. No entanto,
DOS tende a fazer apenas uma coisa de cada vez, para que voc possa usar portas diferentes em momentos diferentes
no mesmo IRQ, enquanto as interrupes no est activado em mais do que uma das portas de
uma vez. Esta restrio inaceitvel para UNIX, por isso temos de coloc-los em algum lugar
pessoa. A nica interrupo no utilizadas para placas de 8 bits IRQ 5, originalmente planejado para
uma segunda porta de impressora paralela.
H uma boa chance de que IRQ 5 j estar ocupada. O que voc pode fazer? Se
uma das placas possui uma interface de 16 bits ou melhor, voc pode verificar se uma das interrupes de 10
a 15 est disponvel. Todos EISA e placas PCI se encaixam nesta categoria, e assim fazer placas ISA
com dois conectores na placa-me. Infelizmente, uma grande quantidade de placas seriais ISA s
tem uma interface 8 bits. A nica alternativa uma placa de srie inteligente que s
ocupa uma nica interrupo. Neste caso, voc provavelmente ter que construir um kernel personalizado.
Veja a pgina de manual sio (4).
Conexo porta
Teoricamente, uma linha serial pode consistir em apenas trs fios: a Receber Dados linha, muitas vezes
abreviada RxD, um de transmisso de dados A linha (TxD), e um Sinal de terra line (SG). Na verdade,
possvel obter uma ligao para trabalhar como este, mas h uma srie de problemas:
Como sabemos quando o outro lado capaz de aceitar dados? Ele pode estar ocupado
processamento de dados que j recebeu.
Ns resolvemos essas questes, e mais, com o uso de linhas adicionais. O mais comum
padro RS-232, tambm conhecida como EIA-232, um padro para o DCE para DTE ligao. Em
Europa, s vezes confundido com o CCITT V.24 padro, embora no em V.24
fato correspondem exatamente RS-232. A maioria dos modems externos exibir alguns desses sinais
em LED, mas os fabricantes de modem gostam de criar abreviaturas alternativas para o sinal
nomes. Estes so os sinais que RS-232 define, com alguns dos mais comuns
abreviaturas que voc pode ver em modems externos.
329
Modem
Diodo
emissor
de luz
D1 TD
Propsito
Terra de proteo. Usado apenas para aterramento eltrico.
Dados transmitidos: os dados vindos do DTE para o
modem.
RxD
RTS
CTS
Limpar para enviar. Indica que o dispositivo pode receber uma entrada.
DSR
SG
DCD
CD M5
DTR
20
DTR S1
Terminal de dados
RD D2
MR PW
ON
pronto.
computador est pronto para conversar com o modem.
RI
22
AA
AA
HS
MNP
OH
PW
A linha DCD conta a DTE que o modem estabeleceu uma conexo. Ns olharemos
como usar essas informaes na pgina 335.
Em adio a estes sinais, os modems sncronos fornecer relgios nos pinos 17 e 19. Para
mais detalhes sobre a RS-232, consulte RS-232 Made Easy por Martin Seyer.
modems.mm, v v4.10 (2003/04/02 03:11:02)
As portas seriais
330
Modems
A modem um dispositivo que transfere os dados digitais para uma forma apropriada para a transmisso atravs de um
A linha de transmisso, que geralmente uma linha telefnica. As linhas telefnicas esto limitados a um
frequncia de cerca de 3,6 kHz, e esta limitada a velocidade de modems mais antigos a cerca de 1200
bits por segundo. Modems modernos utilizam muitas tcnicas sofisticadas para aumentar o
acelerar muito alm disso. Modems atuais transmitir em 56 kilobits por segundo.
Vamos considerar a conexo de modem na rede de referncia na pgina 294, o que
Repetiu na figura 19-2. Como podemos ver, existem trs conexes:
Voc tambm vai notar um outro valor especificado aqui: a conexo entre os modems
2400 baud. No um baud a mesma coisa que um bit por segundo? No, nem sempre. O termo
baud uma representao da frequncia dos dados numa linha em srie. Nas ligaes
entre os sistemas eo modem, que lidar com dados digitais brutos, que corresponde
taxa de bits. Na linha de modem, isso no acontece. Aqui, indica que 2.400 unidades de dados so enviados
por segundo.
modems.mm, v v4.10 (2003/04/02 03:11:02)
331
Infelizmente, muitas pessoas usam o termo baud onde taxa de bits devem ser utilizadas. Isso no
fazer alguma diferena nos velhos tempos com modems simples, onde a taxa de bits e taxa de transmisso
eram os mesmos, mas hoje em dia confuso.
DTE
DCE
DCE
DTE
gw
Router
modem
modem
ISP
router
Velocidades de modem
Dois factores que determinam a velocidade de transmisso de dados de um modem: o protocolo eo uso
de compresso de dados. Tabela 19-2 na pgina 332 fornece uma viso geral dos protocolos de modem e
suas velocidades.
Atualmente, o protocolo de modem mais popular o V.90. V.90 empurra tecnologia de modem para
ao limite, e que s funciona quando a outra extremidade da ligao uma ligao digital (RDIS).
Voc no pode obter uma conexo de 56 kb / s com qualquer tipo de modem analgico na outra extremidade.
Como resultado, eles so realmente apenas adequado para conexo a um site grande ISP. Alm disso, o
velocidade real da conexo depende muito da qualidade da linha de telefone, para que o
diferena entre um modem V.90 e V.34bis pode no ser to grande quanto parece.
Compresso de dados
Alm disso, voc geralmente tem a opo de compresso de dados: V.42bis ou MNP-5. O
a escolha depende do que o modem na outra extremidade da linha faz. Voc pode definir mais
modems para negociar ou protocolo. Estes protocolos incluem a correo de erro relacionado
padres, chamado V.42 ou MNP2-4 respectivamente. Se voc acredita que as reivindicaes de vendas, estas
protocolos de compresso vai lhe dar at 100% de aumento na taxa de transferncia de dados. Considerar
este o limite superior, uma grande quantidade de dados binrio, e quando FTP'ing um arquivo tpico compactado,
voc provavelmente ter quase nenhuma melhoria de velocidade.
Modems
332
A compresso de dados tem um lado negativo: aumenta a taxa de dados, mas tambm aumenta
latncia, o tempo que leva para obter dados a partir do DTE local remoto para o DTE. Os dados
no demorar tanto tempo na linha, mas passa mais tempo nos modems sendo comprimida
e descompactado. Se voc estiver executando um protocolo como PPP que fornece opcional
compresso no software, voc pode achar que vantajoso para desativar a compactao.
Ns vamos olhar para isso de novo no captulo 20, Configurando o PPP.
Tabela 19-2: Protocolos de modem e velocidades
Protocolo
Bell 203
V.21
Bell 212
V.22
V.22bis
V.32
V.32bis
V.34
V.34bis
V.90
Velocidade (bps)
300
300
1200
1200
2400
9600
14400
28800
33600
56000
A velocidade do link
O hardware serial padro PC pode rodar em velocidades que so uma frao de 115.200 bps (em
Ou seja, 115.200 separados por um pequeno nmero inteiro). Isto d as seguintes combinaes:
Tabela 19-3: Velocidades de linha de srie
Divisor
1
2
3
4
5
6
Velocidade (bps)
115200
57600
38400
28800
23040
19200
Voc vai notar que no pode ser executado em 33.600 ou 56.000 bps. Alm disso, olhando para o exemplo acima,
voc vai notar que todos os trs links correr em velocidades diferentes. Como isso pode funcionar? Apenas uns poucos
anos atrs, no o faria, mas modems modernos podem tamponar dados. Por exemplo, o ISP pode
enviar dados para o modem mais rpido do que o modem pode envi-lo para o outro modem. Ele
armazena os dados na memria interna, at que possam ser transmitidos. Isso tambm pode acontecer no
outra extremidade. Se voc misconfigure sua linha de modo que a ligao local executado em 9600 bps, as coisas
ainda ir funcionar, mas claro que a velocidade total a velocidade do elo mais fraco, neste caso
9600 bps.
modems.mm, v v4.10 (2003/04/02 03:11:02)
333
Essa flexibilidade traz um problema com ele: o modem no pode saber de antemo o quo rpido o
conexo com o computador . Ela precisa de uma maneira de descobrir. O modem resolve o
questo de velocidade de linha local, um truque: todos os comandos comeam com AT ou em (Voc no est
deixou-se misturar os casos, como o aT ou At). Ele pode reconhecer esses personagens, mesmo que eles
chegam
na velocidade errada e, assim, ela pode determinar a velocidade da conexo.
Discando
Hoje em dia, todos os modems so capazes de marcar. Isso no era sempre o caso, e em alguns
documentao antiga voc pode encontrar referncias a um Unidade de Auto-Call ou ACU, que simplesmente
a parte de discagem de um modem conectado atravs de uma porta separada. Tipicamente, um ACU poderia
servir vrios modems.
Quase todos os modem moderno usa um conjunto de comando desenhado por Hayes Corporation, que
assim chamado Hayes Comando Conjunto. Veremos na seo seguinte. tambm
s vezes chamado de Conjunto de comandos AT, pois quase todos os comandos comeam com a
seqncia AT. O CCITT tambm criou uma recomendao de discagem automtica, V.25, que estava
ocasionalmente implementadas, mas agora parece estar morto.
Comandos de modem
Modems modernos armazenar seu estado em nmero de registros, chamado S registra. O cadastro
utilizao varia um pouco de fabricante para fabricante, mas a maioria dos modems tm uma
nmero em comum. Eles armazenam um valor de um byte, que varia entre 0 e 255.
Aqui est uma lista dos mais importantes para a Rockwell V.34 chip set. O nome do
chip set no o mesmo que o nome do modem. Voc vai notar que um dos comandos
permite-lhe descobrir a verso do conjunto de chips, como veremos no exemplo que se segue.
Tabela 19-4: Selected S registra
Nmero de registo Propsito
S0
Nmero de toques at auto-resposta. 0 desativa auto-resposta. Defina como 0
S2
S6
Comandos de
modem
334
Propsito
Nmero de registo
O nmero de segundos para esperar depois de marcar antes DCD deve ser
S7
afirmava (antes que uma conexo estabelecida). Se isso for muito curto,
no ser capaz de estabelecer uma ligao. Se for muito longo, voc vai
perder tempo quando no houver resposta ou a linha est ocupada.
S11
O AT conjunto de comandos diz ao modem para fazer algo especfico. Aqui esto alguns dos
mais importantes.
Tabela 19-5: Selecionado comandos AT
Comando
A /
ATA
ATDnumber
ATEnumber
ATH0
ATInumber
ATLnumber
ATMnumber
ATO0
ATP
ATQnumber
Significado
Rediscar o ltimo nmero.
Atender uma chamada manualmente. Esta uma alternativa de auto-resposta
definindo S0.
Discar nmero. Este comando possui um grande nmero de opes, mas se o seu
modem est configurado corretamente, voc provavelmente no vai precisar de nenhum deles.
Ativar comando echo se nmero 1, desativ-lo se nmero 0. O
definio deste parmetro pode ser importante para alguns scripts de chat, que
pode no responder corretamente o contrrio.
Desconecte a linha.
Mostrar identificao modem. Os valores de nmero variar de um
modem para a prxima. Ver os exemplos abaixo.
Defina o volume do altifalante. nmero varia de 0 a 3. 0 significa'' alto-falante
off'', 3 o mais alto.
Determinar quando o alto-falante est ligado. 0 significa'' sempre desligado,'' um meio
'' Alto-falante em at conectar,'' 2'' meios orador sempre'', e trs meios
'' Alto-falante durante a discagem e receber.''
Voltar on-line a partir do modo de comando. Voc no precisa desse comando
ao discar: o modem entra automaticamente quando a conexo on-line
estabelecida.
Escolha discagem de pulso. Se a sua troca no entende DTMF (tom)
discagem, voc deve definir este modo. Nunca us-lo se a sua troca
entende DTMF: discagem por pulso (tambm conhecido como Marcao de vapor) muito
mais lento.
Se nmero 0, suprimir os cdigos de resultado (como Ok depois de cada comando). Se
nmero 1, habilit-los. Este valor pode ser de importncia para bate-papo
scripts.
modems.mm, v v4.10 (2003/04/02 03:11:02)
335
Comando
ATSR = n
Significado
Defina o valor de S registo r a n.
ATSnumber?
ATT
ATVnumber
ATXnumber
ATZ
AT & Knumber
AT & Rnumber
AT & Tnumber
AT & V
AT & Wnumber
AT & Ynumber
Discar manualmente
Nesta seo, vamos olhar para o que precisa ser feito para estabelecer uma conexo dial-out.
Voc normalmente no fao isso sozinho: alguns software vai fazer isso por voc automaticamente.
til para saber o que se passa, no entanto: ele pode ser de grande ajuda na resoluo de conexo
problemas.
H duas coisas distintas que voc quer fazer com o modem: em primeiro lugar, voc envia
comandos para o modem para configurar o link. Uma vez que a ligao estabelecida, voc no quer
para falar com o modem mais, voc quer falar com o sistema na outra extremidade do link.
Nos velhos tempos, o sistema utilizado um ACU separado para estabelecer a conexo, eo
soluo era simples: o sistema emitiu os comandos de discagem para o ACU e abriu o
modem de uma tal maneira que a abertura no completar at uma ligao tinha sido
estabelecida. Hoje em dia, o modem lida com a marcao eo estabelecimento de
ligao. Mas, para isso, o sistema tem que abrir o modem antes da comunicao tem
modems.mm, v v4.10 (2003/04/02 03:11:02)
Comandos de modem
336
foi estabelecida.
O parmetro de terminal clocal permite a comunicao com um dispositivo que no est
afirmando DCD (Tal como um modem que no tenha estabelecido uma ligao ainda). Quando
iniciado, o software define clocal. Quando ele terminou de falar com o modem e quer
esperar para que a conexo seja estabelecida, ela redefine (desliga) clocal e aguarda DCD.
Voc pode verificar isso com o stty comando:
# Stty-f /-a dev/cuaa2
disco ppp, a velocidade de transmisso 57600, 0 linhas, colunas 0;
lFlags:-ICANON-ISIG-iexten-echo-echoe-echok-ECHOKE-ECHONL
-Echoctl-echoprt-altwerase-NOFLSH-tostop-FLUSHO-Pendin
-Nokerninfo-extproc
iFlags-istrip-ICRNL-INLCR-IGNCR-ixon-ixoff-ixany-imaxbel ignbrk
-Brkint-inpck IGNPAR-PARMRK
oflags:-OPOST-onlcr-oxtabs
cflags: CREAD cs8-parenb-parodd hupcl-clocal-cstopb crtscts-dsrflow
-Dtrflow-mdmbuf
cchars: descartar = O; DSUSP = Y; eof = D; eol = <undef>;
eol2 = <undef>; erase =;? intr = C; matar = U; lnext = V;
min = 1; quit = \; reimpresso = R; start = Q, status = T;
stop = S; susp = Z, o tempo = 0; werase = W;
Neste exemplo, tirada quando o modem est conectado, mostra clocal reajustados. Como voc pode ver,
isto indicado pelo texto -Clocal.
H aqui um problema: o que se esta linha tambm est habilitado para conexo discada? Como veremos em
pgina 338, haver uma getty processar no processo de abertura da linha. Ele no vai
sucesso at DCD afirmado, para que possamos marcar sem nenhum problema. Mas, quando a conexo
estabelecida, como que vamos parar getty de estar l em primeiro lugar?
A soluo do FreeBSD criar dispositivos separados para cada caso. Para a segunda srie
porto, sio1, o sistema cria um arquivo / dev/cuaa1 para discar para fora, e / Dev/ttyd1 para discar
Se dentro cuaa1 est aberto, uma abertura no ttyd1 no concluir quando a conexo estabelecida.
Discando-um exemplo
Para um exemplo do que voc pode olhar, vamos considerar uma conexo discada manual para um ISP. Este
assume que voc est usando o usurio PPP (ver pgina 348), e que tem uma entrada ISP na sua
/ Etc / ppp / ppp.conf. Se voc no tem uma entrada para um provedor, voc ainda pode testar o modem, mas
neste caso, voc no ser capaz de discar. Neste caso, simplesmente omitir o texto ISP.
# Ppp ISP
Processo usurio PPP. Escrito por Toshiharu OHNO.
Usando a interface: tun0
O modo interativo
ppp ON freebie> prazo
entrar em modo de conexo direta
Entrar no modo terminal.
Tipo '~?' Para ajuda.
em
sincronizar com o modem
Ok
olhar para o perfil de modem
at & v
Perfil ativo:
B0 E1 L0 M1 N1 Q0 T V1 W0 X4 Y0 & C1 & D2 & G0 e J0 e K4 & Q5 & R1 & S0 e T5 & X0 e Y0
S00: 000 S01: 000 S02: 043 S03: 013 S04: 010 S05 008 S06: 002 S07: 060 S08: 002 S09: 006
S10: 014 S11: 090 S12: 050 S18: 000 S25: 005 S26: 001 S36: 007 S37: 000 S38 020 S44: 020
S46: 138 S48: 007 S95: 000
modems.mm, v v4.10 (2003/04/02 03:11:02)
337
O perfil armazenado 0:
B0 E1 L0 M1 N1 Q0 T V1 W0 X4 Y0 & C1 & D2 & G0 e J0 e K4 & Q5 & R1 & S0 e T5 & X0
S00: 000 S02: 043 S06: 002 S07: 060 S08: 002 S09: 006 S10: 014 S11: 090 S12: 050 S18: 000
S36: 007 S37: 000 S40: 104 S41: 195 S46: 138 S95: 000
Perfil armazenado 1:
B0 E1 L1 M1 N1 Q0 T V1 W0 X4 Y0 & C1 & D2 & G0 e J0 & K3 & Q5 & R1 & S0 e T5 & X0
S00: 000 S02: 043 S06: 002 S07: 060 S08: 002 S09: 006 S10: 014 S11: 090 S12: 050 S18: 000
S36: 007 S37: 000 S40: 104 S41: 195 S46: 138 S95: 000
TELEFONES:
0 = T1234567890
2 =
1 =
3 =
Ok
1 =
3 =
Ok
O perfil ativo inclui o parmetro & Y0, de modo que o AT & W comando grava de volta para
o perfil armazenado 0.
O AT & V comando no mostra todos os registros S. Alguns deles referem-se a corrente
modems.mm, v v4.10 (2003/04/02 03:11:02)
Comandos de modem
338
ats86?
012
Com este pano de fundo, podemos agora avanar para estabelecer uma conexo:
basta discar
atd1234567
CONNECT 57600
ppp ON freebie>
PPP ON freebie>
Discando
Tradicionalmente, UNIX distingue entre os terminais seriais locais e terminais ligados
por modem por se afirmar a DCD sinal. Ele inicia um getty (Por Obter TTY ) Processo
para cada linha. getty abre a linha, mas para modems o estado da linha definida de tal forma que
a chamada abrir no concluir at o DCE afirma DCD. Isto feito atravs da reposio
a bandeira clocal. Se voc olhar para o estado da linha com o stty programa, ele vai mostrar
-Clocal se o flag zerado.
Para criar uma linha para discar, adicionar informaes sobre a linha no arquivo / Etc / ttys. O
arquivo padro contm um nmero de linhas como:
ttyd0
desconhecido refere-se ao tipo de terminal. Este o valor para o qual getty define o
varivel de ambiente TERM. Se voc sabe que s as pessoas com terminais VT100 discar
, voc pode alterar essa seqncia de vt100, mas voc deve fazer isso com cuidado. Pode
provocar uma verdadeira baguna na tela, e at mesmo torn-lo impossvel trabalhar com ele.
Os campos restantes podem ocorrer em qualquer ordem. fora meios'' no iniciar o getty depois
tudo.'' Se voc quiser executar um getty nessa linha, mudar essa string para diante.
proteger significa que somente as pessoas que voc confia podem acessar essa linha, para que possa permitir uma
raiz Entre nesta linha. Isso bom para um terminal de conexo direta na mesma sala,
por exemplo. No uma boa idia para um modem para o qual qualquer pessoa pode discar. Se o
linha no seguro, basta omitir a string.
Depois de mudar / Etc / ttys, envie o init (Processo 1) um sinal HUP para dizer-lhe para voltar a ler / Etc / ttys:
modems.mm, v v4.10 (2003/04/02 03:11:02)
339
# Kill -1 1
Neste captulo:
Configurao rpida
Como funciona PPP
A informao que voc
precisa saber
Configurando o usurio PPP:
o caminho mais rpido
Configurao do kernel
PPP
Coisas que podem dar
errado
20
Configurando o PPP
Dois protocolos suportam conexo com a Internet via modem: SLIP (Serial Line Internet
Protocol) e PPP (Point to Point Protocol). Como o nome sugere, SLIP suporta apenas
IP. um protocolo antigo, menos acidentado. A sua vantagem a de que apenas pode ser disponibilizada
onde PPP no . Se voc tem a escolha, ter sempre PPP: ele difere do SLIP por ser
capaz de lidar com vrios protocolos simultaneamente, e tambm usado em muitas ligaes DSL
(PPP over Ethernet ou PPPoE). Neste captulo, vamos olhar apenas para PPP.
PPP pode executar uma srie de funes:
Ele disca e estabelece uma conexo de telefone, se necessrio. Estritamente falando, isso no
parte da especificao do PPP, mas no suportado pela maioria implementaes PPP.
Ele executa autenticao para garantir que voc est autorizado a usar a conexo.
Ele pode executar monitoramento da qualidade da linha para assegurar que os modems so capazes de
entender um ao outro.
Ele executa negociao para decidir que tipo de protocolo a ser usado sobre o link. Voc
poderia pensar,'' tudo bem, eu s estou usando IP'', mas, na verdade, h uma srie de diferentes
maneiras de transmitir datagramas IP atravs de um link PPP. Alm disso, a outra extremidade pode ser
capaz de lidar com os protocolos no-Internet, como X.25, SNA e IPX da Novell.
339
O FreeBSD completo
340
Apesar do kernel PPP mais eficiente, tambm freqentemente mais difcil de depurar. Como
Consequentemente, FreeBSD tambm fornece uma aplicao conhecido como usurio PPP ou iijppp, depois
o Instituto de Internet do Japo, que forneceu o cdigo base original. Ele usa o
motorista tnel para transmitir pacotes IP at um processo do usurio. mais fcil de configurar e
depurar, e embora no seja to eficiente, a diferena no geralmente um problema. Vamos
olhar para esta aplicao na pgina 348.
Se voc tem uma ligao DSL, voc no tem a opo de verso: atualmente, apenas usurio PPP
suporta PPPoE.
Configurao rpida
As sees a seguir ir em algum detalhe sobre como funciona o PPP. No completamente
necessrio saber tudo isso para configurar PPP. Se voc estiver com pressa, voc pode passar para a
resumos de configurao na pgina 348 para o usurio PPP, ou pgina 359 para o kernel PPP.
Configurar uma conexo serial entre os dois sistemas. Este poderia ser um fio direto
conexo, mas normalmente um modem dial-up ou uma ligao ISDN ou DSL.
Para uma ligao de modem, estabelecer a conexo, tradicionalmente chamada discagem na outra extremidade.
Os modems em seguida, criar um link e afirmar DCD (Data Carrier Detect) para contar a
mquinas a que esto ligados de modo a ligao do modem est
estabelecida.
Comece PPP. PPP seleciona uma interface de rede a ser usado para esta conexo.
Os dois processos de PPP negociar detalhes como endereo IP, protocolo e autenticao
protocolos.
As interfaces
A maioria das interfaces de rede so dedicados ao networking. Por exemplo, um adaptador Ethernet
no podem ser utilizados para outra finalidade. Linhas seriais so diferentes: voc tambm pode us-los para
conectar um mouse ou at mesmo um terminal remoto. H outra diferena, tambm: voc acessa
linhas seriais atravs de seus nomes de dispositivos. Voc pode acessar as interfaces de rede atravs do ifconfig
programa, porque eles geralmente no tm nomes-no jargo tcnico de dispositivos, eles esto em um
separado espao de nomes a partir de arquivos. Como que vamos resolver este conflito?
A soluo pode parecer um pouco surpreendente: PPP utiliza dois dispositivos diferentes para cada
ligao. Voc decide qual a linha de srie que voc deseja usar, eo software escolhe um
ppp.mm, v v4.12 (2003/04/02 03:12:15)
341
interface de rede para voc, mas voc pode substituir essa opo se voc estiver usando o usurio PPP.
Por exemplo, a linha serial pode ser chamado / Dev/cuaa0, / dev/cuaa1 ou / Dev/cuaa2,
enquanto sua interface ser chamado tun0 ou tun1 (Para o usurio PPP), ou ppp0 ou ppp1 (Por
do kernel PPP). possvel conectar-se a uma linha DSL, sem PPP, mas quando voc usa
PPPoE, voc tambm tem dois dispositivos, a interface Ethernet e tun0 (Kernel PPP no
apoiar PPPoE).
O dispositivo de tnel usa um dispositivo interface chamado / Dev / tunn, onde n um dgito, e a ler
escrever para o outro lado da interface de rede correspondente.
Usurio PPP executado no espao do usurio, por isso faz requerem um nome de dispositivo da interface de rede,
por exemplo tun0. Ele usa este dispositivo para ler e escrever para o back-end do tnel
interface.
Discagem
Se voc estiver executando uma conexo PPP atravs de uma ligao dial-up, voc precisa estabelecer uma
ligao telefnica, que ainda chamado marcao. Isso uma funo de modem, claro,
e no est definido no padro PPP.
Usurio PPP inclui built-in de marcao de apoio e suporte de discagem externa, enquanto o ncleo
PPP fornece apenas o ltimo. Na prtica, a nica diferena a forma como a sua configurao
arquivos olhar. Ns vamos olhar para estes, quando discutimos as implementaes individuais.
Voc no precisa discar para uma ligao DSL.
Negociao
Uma vez que a conexo estabelecida e os processos de PPP podem falar uns com os outros, eles
negociar o PPP apresenta eles vo use.1 A negociao bem sucedida se os dois lados
pode concordar com um subconjunto funcional das caractersticas tanto gostaria de ter.
Para cada recurso do link PPP negociao pode realizar-se s duas aes. Usurio PPP
utiliza os seguintes termos para descrev-los, visto do local final de um link:
A negociao bem sucedido se cada extremidade aceita todas as caractersticas que do outro lado tem
ativado. Em alguns casos, no entanto, os sistemas de PPP tm uma alternativa. Por exemplo, se
PAP aceitar e negar CHAP, um roteador pode solicitar primeiro CHAP, e quando voc neg-lo, ele
poder ento solicitar PAP. Voc pode fazer isso, permitindo que tanto PAP e CHAP em seu PPP
arquivos de configurao.
1. Anos atrs, voc pode ter primeiro tiveram que realizar uma UNIX login normal ('' autenticao de login''). Este
foi geralmente tratado pelo script de discagem ('' chat script''). Microsoft no suportam este tipo de autenticao de
o, por isso praticamente obsoleto, embora no h nada de errado com a idia.
ppp.mm, v v4.12 (2003/04/02 03:12:15)
342
LQR, Pedidos qualidade da ligao, lhe dar uma viso geral da sua qualidade de linha, se seu
modem no usa correo de erros. Se ele usar a correo de erro, ele ir esconder qualquer
Problemas LQR. Ocasionalmente pacotes LQR pode confundir a implementao PPP, de modo
no permitir que se voc no pretende us-lo.
ppp.mm, v v4.12 (2003/04/02 03:12:15)
343
Dados e compresso de cabealho. Voc tem uma escolha aqui: modems modernos oferecem
vrios tipos de compresso de dados, assim como as implementaes de PPP. Como vimos
na pgina 331, a compresso modem aumenta a taxa de transferncia de dados, mas tambm aumenta
a latncia. Se o seu ISP suporta o mesmo tipo de compresso de dados como o PPP
software, voc pode achar que ele melhora as questes para desativar a compactao de dados do modem.
Ambas as implementaes apoiar Van Jacobson, deflate e Predictor 1 compresso,
e kernel do PPP tambm suporta Compresso BSD.
Qual voc escolhe? Van Jacobson compresso trabalha no nvel TCP. Ele
comprime apenas os cabealhos (consulte a pgina 280 para mais detalhes), eo outro
esquemas de compresso de trabalhar ao nvel de quadros. Voc sempre pode permitir Van Jacobson
compresso. Na medida em que os outros esto em causa, utilizar qualquer outro lado oferece.
Em caso de dvida, permitir que todos os tipos de compresso disponveis e permitir PPP para negociar
a melhor combinao.
Compresso negociao tratada pelo Compression Control Protocol, geralmente
conhecido como CCP. Ele utiliza o seu prprio nmero de protocolo de modo a que ele possa ser diferenciado de
outros protocolos que o sistema remoto pode oferecer, como IP, X.25, SNA e IPX.
Proxy ARP. Alguns sistemas podem compreender no estando na outra extremidade de uma ligao PPP.
Voc pode engan-los, dizendo que o roteador para responder ARP pedidos de mquinas no
a outra extremidade do elo. Voc no precisa desse subterfgio em FreeBSD.
Autenticao
Quase todos os link PPP requer algum tipo de identificao para confirmar que voc
autorizado a usar o link. Em sistemas UNIX, a autenticao tradicionalmente consistia
do UNIX login procedimento, que tambm permite que voc dialup ou a um shell ou uma PPP
sesso, dependendo do que o ID de usurio que voc usa. Autenticao de login normalmente realizada
pelo dial-up bate-papo script.
Microsoft mudou muitas coisas nesta rea. Suas plataformas normalmente no suportam
daemons, e em alguns casos nem mesmo os vrios usurios, de modo que o mtodo de login UNIX
difcil de implementar. Em vez disso, voc se conectar diretamente a um servidor PPP e realizar
autenticao directamente com ele. Existem dois mtodos de autenticao diferentes atualmente
disponvel, PAP (Password Authentication Protocol) e CHAP (Handshake Desafio
Authentication Protocol). Ambas desempenham funes semelhantes. Do ponto de vista de PPP,
Voc s precisa saber qual deles voc est usando. O ISP deve dizer isso
informaes, mas um nmero surpreendente no parecem saber. Em caso de dvida, aceitar ou
deles.
S para complicar as coisas, a Microsoft implementou protocolos de autenticao de sua prpria,
como MS lanman, MS CHAP verso 1 (tambm conhecido como PACS tipo 0x80) e MS
CHAP verso 2, tambm conhecido como PACS tipo 0x81. Usurio PPP suporta ambos os tipos.
344
Se voc estiver usando PAP ou CHAP, voc precisa especificar um nome de sistema e uma autenticao
chave. Estes termos podem parecer complicado, mas eles so realmente apenas um nome fantasia para um usurio
nome e uma senha. Veremos como especificar esses valores quando olhamos para o
software individual.
Como voc decide se voc usa PAP ou CHAP? Voc no precisa aceitar a ambos e
deixar a outra extremidade decidir que tipo de usar.
Em ambos os casos, exceto para o teste, muito improvvel que voc nunca vai querer abordar um
pacote diretamente para o roteador, e igualmente improvvel que o roteador saberia o que
fazer com a maioria dos tipos de pacotes, se eles so dirigidos a si mesmo. Ento, ns realmente no precisa
se preocupam com o endereo.
O que se configurar o endereo errado para o outro lado do link? Olhe para o router
gw.example.com na rede de referncia, na pgina 294. A sua ligao PPP tem local
endereo 139.130.136.133, e a outra extremidade tem o endereo 139.130.136.129. O que
acontece se obter o endereo misturados e especificar a outra extremidade como 139.130.129.136?
Considere os comandos que podem entrar se estivssemos configurar a interface manualmente
(Compare com a pgina 300):
# Ifconfig tun0 139.130.136.133 139.130.129.136 mscara de rede 255.255.255.255
# Route add default 139.130.129.133
345
Voc precisa especificar a mscara, porque seno ifconfig escolhe uma base na
endereo de rede. Neste caso, um endereo de classe B, de modo que seria escolher 255.255.0.0.
Este informa o sistema de que a outra extremidade da ligao 139.130.129.136, que
incorreto. Ele, ento, diz que o sistema de rotas todos os pacotes que no podem ser roteadas para outros lugares
este endereo (rota padro). Quando um tal pacote chega, o sistema verifica a
tabela de roteamento, e achar que 139.130.129.136 pode ser alcanado atravs do envio do pacote para fora
a partir da interface tun0. Ele envia o pacote para baixo da linha.
Neste ponto, qualquer memria do endereo 139.130.129.136 (Ou, para essa matria,
139.130.136.129) est desaparecido. O pacote chega na outra extremidade, e o roteador examina
lo. Ele ainda contm apenas o endereo de destino original, e as rotas do roteador ele
em conformidade. Em outras palavras, o roteador nunca descobre que o pacote foi enviado para o
incorreto'' outro'' endereo final, e as coisas funcionam muito bem.
O que acontece na outra direo? Isso depende de sua configurao. Para quaisquer
pacote para chegar ao seu sistema a partir da Internet, o encaminhamento em toda a Internet deve
apontar para o seu sistema. Agora, quantos endereos IP que voc tem? Se for apenas um nico IP
endereo (o endereo do seu fim da ligao PPP), deve ser correta. Considere o que
que aconteceria se voc acidentalmente trocou os dois ltimos octetos de seu endereo IP local:
# Ifconfig tun0 139.130.133.136
139.130.129.136
346
347
Discagem automtica
A ligao PPP over modem normalmente custa dinheiro. Normalmente voc vai pagar algumas ou mesmo todas
dos seguintes encargos:
Telefone acusaes de configurao de chamada, uma acusao feita uma vez por chamada. Ao contrrio dos outros encargos,
estes tornam vantajoso ficar ligado tanto tempo quanto possvel.
Telefonema acusaes de durao. Em alguns pases, voc paga por unidade de tempo (por
exemplo, por minuto), ou voc paga um valor fixo por unidade de tempo varivel.
Tipicamente, o custo principal depende da durao da ligao. Para limitar este custo, tanto PPP
implementaes de fornecer mtodos para discar automaticamente e desligar quando a linha
ficou inativa por um perodo de tempo predeterminado.
Qual dispositivo fsico que ser utilizado para a conexo. Para um modem, que normalmente um
porta serial como / Dev/cuaa0. Para PPPoE, um adaptador Ethernet, por exemplo xl0.
Se for uma conexo de modem, a quem voc vai chamar? Obter o nmero de telefone
completa com todos os cdigos de rea necessrias, exatamente no formato do modem precisa
discar. Se o seu modem est conectado a um PABX, no se esquea de incluir o cdigo de acesso para
uma linha externa.
Alm disso, alguns ISPs podem dar-lhe informaes sobre os endereos IP e de rede
mscaras, especialmente se voc tiver um endereo esttico. Voc deve ter recolhido tudo isso
informaes na tabela na pgina 323.
348
Ainda / Etc / ppp / ppp.conf, verifique se o dispositivo est correto. O padro / dev/cuaa1.
Se voc est se conectando a uma linha de srie diferente, altere o nome do dispositivo em conformidade. Se
voc est rodando PPPoE, dizer sobre a interface Ethernet xl0, mude para:
definir PPPoE dispositivo: xl0
Modificar / Etc / rc.conf. Primeiro, verifique se as configuraes de PPP em / etc / defaults / rc.conf. Atualmente
eles so os seguintes:
# Configurao de ppp usurio.
ppp_enable = "NO" #
Comece user-ppp (ou NO).
ppp_mode = "auto" #
Escolha de "auto", "ddial", "direta" ou "dedicado".
# Para mais detalhes consulte a pgina man para o ppp (8). O padro auto.
ppp_nat = "YES" #
Use a traduo de endereos de rede interna do PPP ou NO.
ppp_profile = "papchap" #
Que perfil para usar a partir de / etc / ppp / ppp.conf.
ppp_user = "root" #
Qual o usurio para rodar o ppp como
Se voc tiver uma conexo permanente (em outras palavras, voc no quiser
desconectar a linha), voc tambm deve adicionar a seguinte linha / Etc / rc.conf :
ppp_mode = ddial
Depois disso, o PPP ser iniciado automaticamente na inicializao do sistema e ir se conectar sempre que necessrio.
Se voc no estiver planejando reiniciar, voc pode comear a PPP imediatamente com a seguinte
comando:
349
Se isso funciona para voc, voc est feito. Caso contrrio, continue a ler.
Note o formato: rtulos comear no incio da linha, e outros trabalhos devem ser
recortado por uma personagem.
A linha default: identifica a entrada padro. Esta entrada sempre executado quando PPP
comea.
O definir o log linha especifica quais os eventos a registar. Isso pode ser til se voc tiver
problemas.
O ident A linha especifica o que o sistema de identificao ir apresentar para a outra extremidade
da ligao. Voc no precisa mudar.
O definir dispositivo A linha especifica o dispositivo que deve usar o PPP a estabelecer o
ligao, neste caso, a segunda porta serial, / Dev/cuaa1. Para conexes PPPoE,
utilizar o nome da interface Ethernet, prefixado pelo texto PPPoE.
definir PPPoE dispositivo: xl0
Para conexes via modem, a definir a velocidade linha define a velocidade da ligao entre o
modem e o computador. Alguns PCs mais velhos tiveram problemas em 115.200 bps, mas voc
no deve ter qualquer necessidade de alterar mais nada, especialmente porque a prxima velocidade mais baixa
hardware para PC convencional 57.600 bps, que muito lento para usar o completo
largura de banda quando a compresso ativada.
Tambm apenas para modems, definir discar descreve um bate-papo roteiro, uma srie de respostas e
comandos a serem trocadas com o modem.
350
permitir dns diz PPP para obter informaes sobre servidores de nomes ao configurar o
link. Se o site remoto fornece essas informaes, voc no precisar configur-lo manualmente.
Voc deve remover esta linha se voc estiver executando um servidor de nome local, o que eu fortemente
recomendo. Consulte o Captulo 21, O Domain Name Service, para mais detalhes.
PPP chama a esta entrada perfil. papchap o perfil fornecido na instalao padro.
Voc pode mudar o nome, por exemplo, para o nome do seu ISP. Isto particularmente
til se voc se conectar a mais de um ISP (por exemplo, com um laptop). Nestes
exemplos, vamos ficar com papchap.
Como o comentrio estados, substituir os textos PHONE_NUM, username e SENHA com
informaes especficas. Se voc estiver usando PPPoE, substituir o aparelho de telefone A linha com uma
definir dispositivo A linha como discutido acima.
As duas ltimas linhas pode ou no ser necessrio. A linha definir ifaddr especifica endereos
atribuir a cada extremidade do link, e que eles podem ser substitudos. Esta linha raramente
necessrio, at mesmo para endereamento esttico: o ISP quase sempre alocar o correto
endereo. Vamos olhar para esta questo novamente abaixo quando discutirmos endereos dinmicos.
Finalmente, a ltima linha diz ppp para definir uma rota padro nesta interface quando a linha vem
up. HISADDR uma palavra-chave indicando a outra extremidade do elo. Esta a nica forma de
especificar o caminho para lidar com dinmica, mas funciona muito bem para endereamento esttico.
Se a sua conexo primria com a Internet atravs de uma interface diferente, remover esta entrada.
Negociao
Como vimos na pgina 342, voc precisar decidir quem comea a negociao. Por padro, o usurio PPP
comea a negociao. Se a outra extremidade precisa comear a negociao, adicione a seguinte linha
seu / Etc / ppp / ppp.conf :
definir openmode passiva
351
Solicitando LQR
Por padro, o usurio desativa PPP LQR, porque foi encontrado para causar problemas em
certas circunstncias, mas aceita-a para linhas de modem. Se voc quiser ativ-lo, incluir
a seguinte linha em sua entrada de discagem:
permitir lqr
Autenticao
A sintaxe do arquivo de configurao a mesma para PAP e CHAP. Normalmente, o seu ISP atribui
voc tanto nome do sistema e chave de autorizao. Assumindo que o seu nome do sistema FREEBIE,
e sua chave X4dWg9327, voc deve incluir as seguintes linhas em sua configurao
entrada:
definir FREEBIE authname
definir authkey X4dWg9327
Usurio PPP aceita pedidos de PAP e CHAP automaticamente, ento isso tudo
que voc precisa fazer, a menos que voc pretende autenticar a outra extremidade, o que no normal com
ISPs.
/ Etc / ppp / ppp.secret
O nome do sistema de PPP e chave de autenticao para PAP ou CHAP so dados importantes.
Qualquer pessoa que tenha esta informao pode se conectar ao seu ISP e usar o servio em seu
despesa. Claro, voc deve definir as permisses de seu / Etc / ppp / ppp.conf a
-R -------- e que o proprietrio raiz, mas fcil e caro para cometer um erro quando
a alterao da configurao. H uma alternativa: armazenar as chaves no arquivo
/ Etc / ppp / ppp.secret. Aqui est um exemplo:
# SysName
oscar
FREEBIE
gw
352
A ltima linha uma senha para conexo com o ppp processar localmente: voc pode conectar
para o processo, comeando:
# Telnet localhost 3000
A entrada de senha local corresponde ao nome do host. Veja a pgina de manual ppp (8) para
mais detalhes.
Configurao de IP dinmico
Se voc tem que aceitar endereos IP dinmicos, o usurio PPP pode ajudar. Na verdade, o que proporciona bem
controle sobre o que trata de aceitar e que voc no faz. Para permitir a negociao de
Endereos IP, voc pode especificar quantos bits dos endereos IP em cada extremidade so de interesse para
voc. Para endereos estticos, voc pode especific-los exatamente:
definir ifaddr 139.130.136.133 139.130.136.129
Normalmente, pode manter um certo controlo sobre a tratar, por exemplo, para garantir que
os endereos atribudos no entrem em conflito com outras conexes de rede. Os endereos
que lhe foi atribudo quando o link aparece so quase invariavelmente parte de uma nica sub-rede.
Voc pode especificar que sub-rede e permitir a negociao da parte do host do endereo. Para
exemplo, voc pode dizer:'' Eu no me importo qual endereo eu recebo, enquanto os trs primeiros bytes so
139.130.136, bem como o endereo do outro lado comea com 139.'' Voc pode fazer isso por
especificando o nmero de bits que voc interesse aps o endereo:
definir ifaddr 139.130.136.133/24 139.130.136.129 / 8
Este diz que prefere os endereos Estado, mas que necessita nas primeiras 24
bits do endereo interface local e os oito primeiros bits do endereo interface remota para
ser como indicado.
Se voc realmente no me importo com o que voc tem endereo, especifique o endereo IP local como 0:
definir ifaddr 0 0
Se voc fizer isso, voc no pode usar o -Auto modos, porque voc precisa enviar um pacote para o
interface para disparar marcao. um dos mtodos anteriores nesta situao.
353
Voc notar que o prompt (ppp) muda para maisculas (PPP) quando a conexo
em funcionamento. Ao mesmo tempo, ppp escreve algumas mensagens para o arquivo de log
/ Var / log / ppp.log:
02 de setembro 15:12:38
02 de setembro 15:12:38
02 de setembro 15:12:47
02 de setembro 15:13:08
02 de setembro 15:13:11
02 de setembro 15:13:11
02 de setembro 15:13:11
02 de setembro 15:13:11
02 de setembro 15:13:11
02 de setembro 15:13:11
30.136.129
02 de setembro 15:13:11
02 de setembro 15:14:11
A: 1
freebie
freebie
freebie
freebie
freebie
freebie
freebie
freebie
freebie
freebie
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
ppp [23679]:
Fase:
Fase:
Fase:
Fase:
Fase:
Fase:
Fase:
Fase:
Fase:
Link:
Voc vai notar um par de mensagens que se parecem com os erros. Na verdade, eles no so: Desconhecido
protocolo 0x8207 significa que a outra extremidade solicitados um protocolo ppp no sabe
(E, na verdade, no est no RFC. Este um exemplo real, eo protocolo , de facto,
Da Novell IPX). A outra mensagem Erros HDLC -> FCS: 0 ADDR: 0 Comd: 0
PROTO: 1. Na verdade, isso se relaciona com o mesmo problema''''.
Agora, a nossa conexo PPP est instalado e funcionando. Como que vamos parar com isso de novo? H dois
possibilidades:
354
Para parar a conexo, mas para deixar o ppp processo ativo, insira fechar:
PPP ON freebie> close
ppp ON freebie>
H um par de problemas com este mtodo: em primeiro lugar, uma conexo com um ISP geralmente
custa dinheiro proporcional ao tempo que voc est conectado, ento voc no quer ficar
ligado mais do que o necessrio. Por outro lado, voc no quer que a conexo
a cair, enquanto voc estiver usando. Usurio PPP aborda esses problemas com uma
compromisso: quando a linha estiver ocioso por um determinado tempo (em outras palavras, quando no
dados passou em ambos os sentidos durante este tempo), ele desconecta. Este tempo chamado
o Tempo limite ocioso e, por padro configurado para 180 segundos. Voc pode configur-lo explicitamente:
definir o tempo limite 300
Automatizando o processo
Finalmente, a configurao da conexo dessa maneira tem um monte de tempo. Voc pode automatizar-lo em um
de diversas formas:
Se voc tiver uma conexo permanente, voc pode dizer de usurio PPP para se manter o tempo todo.
Use o -Ddial modificador:
$ Ppp-ddial papchap
Se voc quer ser capaz de se conectar rede automaticamente sempre que voc tem
algo a dizer, use o -Auto modificador:
$ Ppp-auto papchap
Neste caso, o utilizador PPP no marcar imediatamente. Assim que voc tentar enviar dados
rede, no entanto, ele disca automaticamente. Quando a linha estiver ocioso para o idle
perodo de tempo limite, ele desconecta novamente e aguarda mais dados antes de marcar. Isso s
faz sentido para endereos estticos ou quando voc sabe que h conexes IP permanecem
viva aps a linha desconecta.
355
Da mesma forma, voc pode criar um arquivo / Etc / ppp / ppp.linkdown com comandos para serem executados
quando a ligao cai. Voc pode encontrar arquivos de exemplo no diretrio / Usr/share/examples / ppp.
Se as coisas do errado
As coisas nem sempre funcionam'' out of the box.'' Voc poderia correr em uma srie de problemas.
Veremos os mais comuns na pgina 361.
356
Quando o kernel do PPP iniciado, ele l a configurao a partir do arquivo / Etc / ppp / options. Aqui est uma
exemplo tpico:
# Arquivo de opes para o DPF
defaultroute
crtscts
modem
desinflar 12,12
Predictor1
vj-max-slots de 16
user FREEBIE
travar
O defaultroute linha diz ao kernel PPP para definir a rota padro atravs desta interface
depois estabelece uma ligao.
O crtscts linha diz-lhe para usar o controle de fluxo de hardware (necessrio para evitar a perda de
caracteres). Voc tambm pode especificar XONXOFF, que usa o controle de fluxo de software, mas
controle de fluxo de hardware prefervel.
O modem linha diz para monitorar o modem DCD (Carrier Detect) linha. Se o
conexo for perdida, sem negociao adequada, a nica maneira que kernel do PPP pode saber
sobre isso por causa da queda na DCD.
A linha esvaziar diz kernel do PPP para solicitar esvaziar de compresso, o que pode aumentar
a largura de banda efetiva.
O usurio linha diz kernel do PPP o ID do usurio de usar. Se voc no especificar isso, preciso
o nome do sistema.
travar diz kernel do PPP para criar um lock-estilo UUCP na linha serial. Isto impede
outros programas, como o getty, de tentar abrir a linha enquanto ele est executando PPP.
vj-max-entalhes especifica quantos slots para usar Van Jacobson compresso de cabealho
Sion. Ter mais slots podem acelerar as coisas.
Nenhuma dessas opes so necessrias para executar pppd, embora voc provavelmente vai precisar de uma usurio
entrada
para estabelecer a ligao. uma boa idia para definir as opes indicadas, no entanto.
Autenticao
Vimos que / Etc / ppp / options contm um nome de usurio, mas nenhuma senha. As senhas
so armazenados em ficheiros separados, / Etc / ppp / chap-secrets para CHAP ou / etc / ppp / pap-secrets para
PAP. O formato de cada arquivo :
nome de usurio systemname senha
357
Para combinar com qualquer nome do sistema, definir systemname a *. Por exemplo, para autenticar o
FREEBIE vimos na pgina 351, que deve digitar o seguinte no arquivo:
FREEBIE * X4dWg9327
Alm disso, voc deve adicionar um domnio linha para especificar o seu domnio para autenticao
propsitos:
domnio example.org
Discagem
Kernel PPP no realiza a discagem, ento voc precisa para comear um programa que faz a marcao.
No exemplo a seguir, usamos bate-papo, um programa derivado do UUCP destina exatamente
para esta finalidade. Algumas pessoas usam Kermit, que na verdade um sistema de comunicao completo
Programa de computador para um protocolo, para executar esta funo, mas este requer o manual
interveno. bate-papo faz todo o trabalho para voc.
Conversar os scripts
bate-papo utiliza um conversar roteiro para definir as funes a serem executadas ao estabelecer uma conexo.
Veja a pgina de manual chat (8) para mais detalhes. O script de chat consiste principalmente de
alternado esperar cordas, o que conversar espera para receber, seguido por enviar cordas, que
bate-papo envia, quando ele recebe o esperar string.
Alm destas cordas, o programa de conversao pode conter outros comandos. Para confundir
coisas, eles so muitas vezes escrita em uma nica linha, embora isto no seja necessrio: bate-papo
no presta nenhuma ateno a quebras de linha. Nosso script de bate-papo, que armazena em
/ Etc / ppp / dial.chat, parece mais inteligvel escrito da seguinte maneira:
# Abortar o script de chat, se o modem responde ocupado ou NO CARRIER
ABORT BUSY
ABORT 'NO CARRIER'
# Esperar at 5 segundos para a resposta a cada uma delas
TIMEOUT 5
'' ATZ
OK ATDT1234567
# Esperar 40 segundos para conexo
TIMEOUT 40
CONNECT
Este script primeiro diz bate-papo para abortar o dial-up em um OCUPADO ou NO CARRIER resposta do
modem. A prxima linha de espera para nada ('') e redefine o modem com o comando
ATZ. A linha a seguir aguarda o modem para responder com OK, e disca o ISP.
Configurao de chamada pode demorar um pouco, quase sempre mais de cinco segundos para o real (analgico)
modems, por isso precisamos de estender o tempo de espera, neste caso a 40 segundos. Durante este tempo,
devemos obter a resposta CONNECT do modem.
358
Configurao de IP dinmico
Por padro, o kernel do PPP realiza negociao dinmica de endereos, por isso voc no precisa fazer
nada de especial para IP dinmico. Se voc tiver endereos estticos, adicione a seguinte linha
/ Etc / ppp / conf :
139.130.136.133:139.130.136.129
Isso inicia kernel do PPP na linha serial / Dev/cuaa1 a 115.200 bps. A opo conectar
diz kernel do PPP que o seguinte argumento o nome de um programa para executar: ele executado
bate-papo com as opes -F / etc / ppp / dial.chat, que diz bate-papo o nome do papo
arquivo.
Depois de executar pppd com estes argumentos, o modem comea a marcao e, em seguida, negocia um
conexo com o seu provedor, que deve terminar dentro de 30 segundos. Durante
negociao, voc pode observar o progresso com a ifconfig comando:
$ Ifconfig ppp0
ppp0: flags = 8010 mtu 1500 <POINTOPOINT,MULTICAST>
neste ponto, a interface ainda no comeou
$ Ifconfig ppp0
ppp0: flags = 8810 mtu 1500 <POINTOPOINT,RUNNING,MULTICAST>
agora a interface foi iniciada
$ Ifconfig ppp0
ppp0: flags = 8811 mtu 1500 <UP,POINTOPOINT,RUNNING,MULTICAST>
inet 139.130.136.133 -> 139.130.136.129 netmask 0xffffffff
agora que a conexo foi estabelecida
359
Automatizando o processo
Voc pode automatizar a configurao da conexo e desconexo de vrias maneiras:
Se voc tiver uma conexo permanente, voc pode dizer do kernel PPP para se manter o tempo todo.
Adicione a seguinte linha ao / Etc / ppp / options:
persistir
Se esta opo estiver definida, kernel PPP disca imediatamente e mantm a conexo se
independentemente de o trfego est passando ou no.
Se voc quer ser capaz de se conectar rede automaticamente sempre que voc tem
algo a dizer, use o demanda opo:
demanda
Neste caso, o ncleo PPP no marcar imediatamente. Assim que voc tentar enviar
de dados para a rede, no entanto, ele disca automaticamente. Quando a linha estiver ocioso para o
perodo de tempo limite ocioso, ele desliga novamente e aguarda mais dados antes de marcar.
Finalmente, voc pode comear de kernel PPP sem qualquer uma destas opes. Neste caso, voc est
conectada imediatamente. Aps o perodo de tempo ocioso, o kernel PPP desconecta e
sadas. Se voc deseja se conectar novamente, voc deve reiniciar o processo.
O ocioso parmetro informa kernel do PPP para desconectar se a linha estiver ocioso para o
determinado nmero de segundos, e se persistir (Ver acima) no foi especificada. Para
exemplo, para desligar depois de cinco minutos, voc pode adicionar a seguinte linha ao
/ Etc / ppp / options arquivo:
ocioso 300
O active-filtro parmetro permite que voc especifique quais os pacotes para contar quando
determinar se a linha estiver ocioso. Veja a pgina de manual para mais detalhes.
O holdoff parmetro informa kernel do PPP quanto tempo esperar antes de remarcao quando o
linha foi desligada para alm de ser ocioso razes. Se a linha
desligado porque estava ocioso, e voc especificou demanda, mostradores to logo
o prximo pacote vlido recebido.
Resumo da configurao
Para resumir os exemplos acima, vamos mostrar as verses do kernel PPP do usurio PPP
exemplos na pgina 348. Como antes, vamos supor que a rede de referncia na pgina 294
usa CHAP autenticao, e ns temos que iniciar. O / Etc / ppp / options se parece com:
ppp.mm, v v4.12 (2003/04/02 03:12:15)
360
definir a rota padro aqui quando a linha vem
usar o controle de fluxo de hardware
usar linhas de controle de modem
especificar o nome de domnio
ficar o tempo todo
usar esvaziar compresso
usar preditor de compresso 1
Van faixas de compresso Jacobson
nome para apresentar ao ISP
especificar os endereos IP de ligao
Com o kernel PPP, no h nenhuma necessidade de desativar PAP: o que acontece automaticamente, se no puder
encontrar uma autenticao para FREEBIE em / Etc / pap-secrets.
A mudana para a abordagem dinmica ainda mais simples. Remova a linha com o IP
endereos da / Etc / ppp / options arquivo:
# Arquivo de opes para o DPF
defaultroute
crtscts
modem
domnio example.org
persistir
desinflar 12,12
Predictor1
vj-max-slots de 16
user FREEBIE
361
Em primeiro lugar, o OH LED ('' fora do gancho'') continua, indicando que o modem est discando. Se esta
no acontea, verifique os cabos e que voc est falando com o dispositivo correto.
Quando o CD (Ou DCD) LED passa, voc tem uma conexo com o sistema remoto. Se
voc no fizer isso, verifique o nmero de telefone.
Se voc chegar at aqui, mas voc ainda no tem uma conexo, verifique os arquivos de log do sistema.
mais provvel que seja uma falha de autenticao. Consulte a pgina 353 para obter um exemplo do
mensagens do usurio PPP. Kernel PPP muito menos detalhado.
Neste captulo:
Domnios e zonas
Criao de um nome
servidor
Uso de DNS passiva
Servidor de nomes em uma
sistema autnomo
Servidor de nomes em uma
rede para o usurio final
A pesquisa reversa
Servidores de nomes escravos
O prximo nvel abaixo:
delegao de zonas
Mensagens de
nomeado
Atualizando uma Verso
4 configurao
Olhando para cima DNS
informao
Verificao DNS para
correo
Segurana do DNS
21
O Domain Name
Servio
A (Address) registros traduzir nomes de host para endereos IP. Por exemplo, um registro de
diz que www.FreeBSD.org (Atualmente) tem o endereo IP 216.136.204.117.
Estes so o que a maioria das pessoas pensa quando se ouve o nome DNS. O nome
especificada no Um registro chamado de cannico nome da interface, e que deveria
ser aquele para o qual o registro PTR (ver abaixo) se refere.
363
O FreeBSD completo
364
PTR (Pointer) registros fornecer uma traduo de endereo IP para nome. Este processo
tambm chamado pesquisa inversa.
MX (Mail Exchange) registros especificar os endereos IP dos servidores de correio para um domnio.
SOA (Start of Authority) registros definir zonas, que correspondem aproximadamente a domnios.
Ns vamos olhar para a distino entre zonas e domnios abaixo.
HINFO (Informaes de Hardware) registros descrever o hardware e software que
executado em um sistema particular.
FreeBSD permite que voc use tanto / Etc / hosts e DNS. Uma razo para isso poderia ser a
tem resoluo de nomes de hosts locais no momento da inicializao: h um problema da galinha e do ovo
com montagem de sistemas de arquivos NFS antes nomeado est em execuo.
As objees comuns ao uso de DNS incluem:
DNS supostamente faz com que um sistema dial-on-demand para marcar o tempo todo.
Estas afirmaes so todas falsas. Vamos olh-los no restante deste captulo como montamos
DNS para a nossa rede de referncia.
Domnios e zonas
Em linguagem de Internet, domnio um grupo de nomes que termina com um especfico nome de domnio.
Ns olhamos para os nomes de domnio no Captulo 18, Conexo Internet, na pgina 318. Nota
que, como os nomes dos arquivos, existem dois tipos de nomes de domnio:
A nome de domnio totalmente qualificado (FQDN) termina em um ponto (.). Este nome de domnio
refere-se ao domnio da raiz. (Um nico perodo).
A nome de domnio em relao refere-se ao domnio actual. Voc vai v-los ocasionalmente
nos arquivos de configurao.
Na maioria das vezes, quando voc escreve um nome de domnio, voc pretende que ele seja totalmente qualificado. Mas se
voc escrev-lo sem o perodo de terminao, DNS freqentemente acrescentar seu prprio
nome de domnio. Por exemplo, se voc especificar um nome como freebie.example.org, DNS no vai
encontrar um nome totalmente qualificado: um erro de ortografia freebie.example.org .. Como resultado, ser
olhar para o nome freebie.example.org.example.org. Ele no vai encontr-lo, claro, mas pode
gastar muito tempo tentando. A moral da histria simples: ao gravar arquivos de configurao do DNS,
sempre colocar um ponto (ponto final), no final de nomes que so totalmente qualificados.
365
Zonas
De muitas maneiras, a zona a mesma coisa que um domnio: o subconjunto do nome DNS
espao que mantida por um conjunto de servidores, em nome DNS-falar, servidores nome
so oficial para a zona. A diferena est principalmente na forma como ele usado. Existe uma
exceo, porm: normalmente, um subdomnio ter um servidor de nome diferente. Este
subdomnio faz parte do domnio, mas no da zona.
Por exemplo, em nossa rede de referncia, os servidores de nome em freebie e presto so
autoridade para example.org. O dono do domnio pode dar permisso para
algum, talvez em um pas diferente, para executar um subdomnio china.example.org, com
servidores de nomes beijing.china.example.org e xianggang.china.example.org. Porque existem
diferentes servidores de nome, h duas zonas: freebie.example.org Seria-authorita
tivo para o fuso example.org, mas no para china.example.org. beijing.china.example.org
e xianggang.china.example.org seria autorizado para a zona china.example.org,
mas no para example.org.
Nos ltimos anos, o BIND sofreu algumas alteraes significativas, principalmente como resultado de
abuso na net. A verso atual a verso 9, mas FreeBSD ainda vem com a verso 8.
As diferenas so relativamente menores: Verso 9 introduz uma srie de novos recursos, mas
o contedo deste captulo igualmente aplicvel para a verso 9. A verso anterior era
Verso 4, e voc ainda vai encontrar um monte de documentao antiga referindo-se a ele. No houve
Verses 5, 6 ou 7, eo arquivo de configurao principal mudou seu formato completamente em
Verso 8, at o nome mudou. Veremos como converter os formatos na pgina 381.
Antes de utilizar a documentao acima, certifique-se que ele se refere a verso correta do
BIND.
366
# Freebie
# Presto
Especificar os endereos IP, e no os nomes, dos servidores de nomes aqui. Este um clssico
problema da galinha e do ovo: voc no pode acessar o servidor de nomes para obter seu endereo at que voc
saber seu endereo.
Com este arquivo no lugar, este aparelho envia todas as solicitaes do servidor de nomes para freebie ou presto.
Veremos como configur-los mais tarde.
367
IN NS
IN PTR
Vamos olhar para o significado deste arquivo na prxima seo. Para cri-lo, voc pode comear
com o arquivo / Etc / namedb / PROTO.localhost.rev, que contm um modelo para esta
arquivo. Substituir @ @ Host com o FQDN do seu host (freebie.example.org neste
exemplo), @ Date @ (O nmero de srie) com a data no formato yyyymmddxx, onde
xx um pequeno nmero inteiro tal como 01,1 e @ Domain @ com example.org .. Certifique-se de que
o FQDNs terminam com um ponto final. Alternativamente, voc pode executar o script
/ Etc / namedb / make-localhost.
139.130.237.17;
zone "0.0.127.in-addr.arpa" {
type master;
arquivo "localhost.rev";
};
/ Etc / namedb / named.conf j deve estar presente em seu sistema tambm. Ele
contm uma grande quantidade de comentrios, mas no final no h uma definio de fuso semelhante, o que voc
pode editar se quiser. Os endereos 139.130.237.3 e 139.130.237.17. so o
Servidor de nomes do ISP aborda. O forwarders linha contm at dez servidor de nome
endereos.
Comear nomeado :
Start # ndc
368
O registro SOA
A primeira coisa que precisamos de um registro que descreve o Start of Authority. Isto define um novo
zona. Escrever:
$ TTL 1d
example.org.
IN SOA
freebie.example.org. grog.example.org. (
2003031801; Serial (data, 2 dgitos verso do dia)
1d; atualizao
2h; repetir
100d; expirar
1h); expirao de cache negativo
A primeira linha, $ TTL 1d, relativamente novo. No estritamente parte do registro SOA, mas
agora obrigados a definir completamente a SOA. Ele especifica a durao do tempo que o nome remoto
servidores deve armazenar em cache os registros a partir desta zona. Durante esse tempo eles no tentaro
outra pesquisa. Nas verses antigas do BIND, este valor foi guardado no ltimo campo da
Registro SOA abaixo.
As linhas restantes definir um nico registro SOA. o nome da esquerda o nome do
zona. A palavra-chave IN meios Internet, em outras palavras, os protocolos da Internet. O BIND
software inclui suporte para vrios tipos de rede, a maioria dos quais foram agora
esquecido. A palavra-chave SOA define o tipo de registro. freebie.example.org o mestre
servidor de nomes.
O campo seguinte, grog.example.org, o endereo do administrador do DNS e-mail. '' Espere um
minutos'', voc pode dizer:'' isso no um endereo de e-mail. Deve haver um @ l, no um ..''
Isso certo, mas infelizmente DNS usa o @ sinal para outros fins, e que seria um
erro de sintaxe nesta posio. Assim, os implementadores recorreu a esta gambiarra. Para gerar
o ID de e-mail, substituir o primeiro. com @, Para lhe dar grog@example.org.
O nmero de srie identifica esta verso da configurao da regio. Servidores de nomes remotos
primeiro recuperar a registro SOA e verifique se o nmero de srie tenha incrementado antes
decidir se deve aceder ao resto da zona, o que poderia ser grande. Certifique-se de
incrementar esta rea cada vez que voc editar o arquivo. Se voc no fizer isso, suas atualizaes no vai
propagar para outros servidores de nomes. uma boa idia usar um formato que reflete a data, como
aqui: o formato d quatro dgitos para o ano, dois dgitos para o ms, dois para o dia,
e dois para o nmero da modificao em um dia em particular. O nmero de srie neste
dns.mm, v v4.17 (2003/04/02 03:15:05)
369
O tentar novamente o tempo o tempo de espera se uma tentativa de carregar a zona de falha.
Nas verses anteriores do BIND, o ltimo campo foi o tempo mnimo para se viver. Agora, o
$ TTL parmetro define que o valor, eo ltimo parmetro especifica o caching negativo
tempo. Se um servidor de nome de autoridade (que mantm a zona) relata que a
registro no existe, ele retorna um registro SOA, bem como para indicar que autoritrio.
O servidor de nome local mantm essas informaes para o perodo de tempo especificado pelo
este campo do registro SOA voltou e no repetir a consulta at o momento tem
expirado. A nica maneira que as coisas podem mudar aqui se as mudanas hostmaster remotas
a configurao do DNS, por isso razovel manter o tempo de cache negativo de cerca de uma
hora.
O expirar o tempo o tempo aps o qual um servidor de nomes escravo vai cair a informao
sobre uma zona que no tenha sido capaz de carreg-lo a partir do servidor de nomes mestre. Voc
provavelmente vai querer fazer esta grande.
Os registros A
O requisito mais bvio so os endereos IP dos sistemas na rede. No
zona example.org, definir os registros A, como este:
localhost
freebie
presto
bumble
esperar
gw
IN
IN
IN
IN
IN
IN
A
A
A
A
A
A
127.0.0.1
223.147.37.1
223.147.37.2
223.147.37.3
223.147.37.4
223.147.37.5
370
Os registros NS
DNS usa um tipo especial de registro para dizer onde esto seus servidores de nome. No nosso caso, estamos
execuo servidores de nomes em freebie e presto. Poderamos escrever:
IN NS
IN NS
freebie.example.org.
presto.example.org.
Isso funcionaria muito bem, mas na verdade ns vamos faz-lo um pouco diferente, como veremos no prximo
seco.
Apelidos
Estamos executando uma srie de servios na rede de referncia, em especial, um servidor web
e um servidor ftp. Por conveno, uma mquina de servidor web chamado www, um servidor ftp
chamado ftp, e um servidor de nomes chamado de ns. Mas ambos esto rodando em mquinas com
nomes diferentes. O que fazemos? Damos nossas mquinas apelidos:
www
ftp
IN CNAME
IN CNAME
freebie
presto
Ns gostaramos de fazer o mesmo com o nome dos servidores, mas infelizmente DNS no gosta disso,
e ir queixar-se sua configurao de DNS em todo o mundo, se voc fizer ns um
CNAME. H uma boa razo para isso: se voc usar registros CNAME para definir seu nome
servidores, sistemas remotos tem que realizar duas pesquisas para encontrar o endereo do nome
servidor, uma para recuperar a CNAME e um para obter o correspondente Um recorde para o
CNAME. Definir novos registros A para eles:
ns
ns1
IN NS
IN NS
ns
ns1
NUM
NUM
223.147.37.1
223.147.37.2
Voc vai notar que estamos usando os nomes de domnio em relao a esses exemplos. Eles so levados
seja em relao ao nome que comea o registro SOA.
Os registros MX
Como veremos na pgina 491, voc pode enviar e-mail para hosts listados em um registro, mas
no uma boa idia. Em vez disso, voc deve ter pelo menos dois registros MX para dizer o SMTP para
fazer com e-mail para o seu domnio. Este mtodo tem uma vantagem adicional: ele permite que voc
renomear mquinas individuais sem ter que mudar IDs e-mail dos usurios. Vamos levar este
conselhos e assumir que todas as mensagens so enviadas para user@example.org. Alm disso, vamos usar a
Servidor de correio do ISP mail.example.net como um backup no caso de nosso servidor de email est em baixo. Que
Assim, quando ele voltar, a entrega ser acelerada. Os registros MX resultantes
parecer:
371
50 bumble.example.org.
100 mail.example.net.
Os registros HINFO
Finalmente, voc pode querer dizer ao mundo sobre o seu hardware e este grande operao
sistema que voc est executando. Voc pode fazer isso com o registro HINFO:
freebie
presto
bumble
esperar
gw
IN
IN
IN
IN
IN
HINFO
HINFO
HINFO
HINFO
HINFO
"Pentium/133"
"Pentium II / 233"
"Pentium/133"
"Pentium Pro 266"
"486/33"
Claro, dizer ao mundo a verdade sobre o seu hardware tambm ajuda biscoitos escolher o
ferramentas para usar se eles querem invadir seu sistema. Se isso te preocupa, no use HINFO.
ainda a exceo ver HINFO registros.
Juntando tudo
Em resumo, o nosso arquivo de configurao / Etc / namedb / db.example.org se parece com:
, A definio de zona example.org
$ TTL 1d
example.org. IN SOA freebie.example.org. grog.example.org. (
2003031801; Serial (data, 2 dgitos verso do dia)
1d; atualizao
2h; repetir
100d; expirar
1h); expirao de cache negativo
, Servidores de nomes
IN NS
IN NS
ns
ns1
, Registros de MX
IN MX
IN MX
50 bumble.example.org.
100 mail.example.net.
ns
ns1
NUM
NUM
223.147.37.1
223.147.37.2
, Hosts
localhost
freebie
presto
bumble
esperar
gw
IN
IN
IN
IN
IN
IN
127.0.0.1
223.147.37.1
223.147.37.2
223.147.37.3
223.147.37.4
223.147.37.5
, Alcunhas
www
ftp
IN CNAME
IN CNAME
A
A
A
A
A
A
freebie
presto
, Informaes do Sistema
dns.mm, v v4.17 (2003/04/02 03:15:05)
IN
IN
IN
IN
IN
HINFO
HINFO
HINFO
HINFO
HINFO
372
"Pentium/133"
"FreeBSD 4.0-CURRENT (BSD 4.4)"
"Pentium II/233" "FreeBSD 3.2 (BSD 4.4)"
"Pentium/133"
"SCO OpenServer"
"Pentium Pro 266" "Microsoft Windows de 95%"
"486/33"
"FreeBSD 3.2 (BSD 4.4)"
Voc notar que as linhas de comentrio comeam com , E no com a parte mais usual #. Alm disso, ns
ter reorganizado os registros MX e os registros A para os servidores de nome. Se colocou o
Registros MX abaixo os registros A para os servidores de nome, eles se referem a
ns1.example.org.
Essa toda a informao que precisamos para a nossa zona example.org. Mas ns ainda no terminamosprecisamos de outra zona. Leia.
A pesquisa reversa
No imediatamente claro que voc pode querer executar de pesquisa inversa, para encontrar o
nome associado a um endereo IP especfico. Na verdade, ele usado um pouco, principalmente para confirmar
que um sistema realmente quem ele diz que . Muitos servidores de e-mail, incluindo FreeBSD.org, insistem
no verso vlido de pesquisa antes de aceitar e-mail. Ns vamos olhar para isso com mais detalhes no
Captulo 27, na pgina 499. No difcil, mas muitos sistemas, especialmente aqueles com
Microsoft, no tm a sua pesquisa inversa configurado corretamente.
/ Etc / hosts um arquivo, para que voc possa executar a pesquisa em qualquer direo. No assim com DNS: como
voc pode saber qual servidor de nomes autoritrio para o domnio se voc no sabe a sua
nome? Voc no pode, claro, ento DNS usa um truque: ele fabrica um nome a partir do endereo.
Para o endereo 223.147.37.4, cria-se um nome de domnio 37.147.223.in-addr.arpa. O
dgitos do endereo so invertidos, eo ltimo dgito est faltando: a parte de host do
endereo. Ele pede que o servidor de nomes para este domnio para resolver o nome 4.37.147.223.inaddr.arpa.
Para resolver os nomes, precisamos de outra zona. Isso significa que um outro arquivo, que chamaremos
/ Etc / namedb / example-reverse. No to complicado como o arquivo para a frente:
$ TTL 1d
@
1
2
3
4
5
IN SOA
IN NS
IN NS
freebie.example.org. grog.example.org. (
2003022601; Serial (data, 2 dgitos verso do dia)
1d; atualizao
2h; repetir
100d; expirar
2h); cache negativa
ns.example.org.
ns1.example.org.
IN
IN
IN
IN
IN
freebie.example.org.
presto.example.org.
bumble.example.org.
wait.example.org.
gw.example.org.
PTR
PTR
PTR
PTR
PTR
Neste caso, o registo SOA idntico quele / Etc / namedb / db.example.org, com dois
excepes: em vez do nome da zona, no incio da linha, temos o @ smbolo,
eo nmero de srie diferente, voc normalmente no precisa atualizar pesquisa inversa
dns.mm, v v4.17 (2003/04/02 03:15:05)
373
domnios com tanta frequncia. Este @ o smbolo representa o nome da zona, neste caso
37.147.223.in-addr.arpa .. Vamos
veja como que trabalho quando fazemos
o
/ Etc / named / named.root arquivo abaixo. Ns tambm usamos as mesmas entradas do servidor de nomes. Desta vez
eles precisam ser totalmente qualificado, porque eles esto em uma zona diferente.
Finalmente, temos os (pesquisa inversa) PTR. Eles especificar apenas o ltimo dgito (o
acolhimento parcial) do endereo IP, ento isso ser colocado no incio o nome da zona. O nome do host no
o fim da linha em forma totalmente qualificado, porque em outra zona. Por exemplo, em
forma totalmente qualificado, a entrada para esperar poderia ser escrito:
4.37.147.223.in-addr.arpa.
IN PTR
wait.example.org.
O arquivo named.conf
At agora, temos dois arquivos, um para cada zona para a qual o nosso servidor de nomes autoritrio. Em
um sistema de grande porte, pode haver muitos mais. O que precisamos agora dizer o nome do servidor
quais arquivos usar. Esse o principal objetivo do named.conf. J h um esqueleto em
/ Etc / namedb / named.conf. Com os comentrios removidos, parece que:
Opes {
diretrio "/ etc / namedb";
forwarders {
127.0.0.1;
};
zone "." {
tipo de sugesto;
arquivo "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
arquivo "localhost.rev";
};
zone "domain.com" {
Tipo de escravo;
arquivo "s / domain.com.bak";
masters {
192.168.1.1;
};
dns.mm, v v4.17 (2003/04/02 03:15:05)
A pesquisa reversa
374
};
zone "0.168.192.in-addr.arpa" {
Tipo de escravo;
arquivo "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
Cada entrada consiste de uma palavra-chave seguido pelo texto entre chaves ({}). Estas entradas tm o
seguinte significado:
A primeira zona o domnio de nvel superior, .. uma dica: ele diz nomeado de olhar para o arquivo
named.root em seu diretrio de configurao. named.root contm os endereos IP dos
os 13 servidores de nomes de nvel superior.
O insinuar entrada especifica o nome do arquivo que descreve os servidores raiz (domain.).
As entradas de zona para domain.com e 0.168.192.in-addr.arpa definir nome de escravo
servidores. Um servidor de nomes escravo aborda todas as consultas a um dos mestre especificada
servidores de nomes. Em verses anteriores do DNS, um servidor de nomes de escravos foi chamado de secundrio
nome do servidor, eo servidor de nomes mestre foi chamado de servidor de nomes primrio. Isto
uso ainda atual fora BIND, mas voc deve esperar que isso mude.
Este arquivo j contm a maioria das informaes que precisamos. As nicas coisas que precisamos
adicionar so as informaes sobre os nomes das nossas zonas e na localizao da descrio
arquivo:
zone "example.org" {
type master;
arquivo "db.example.org";
};
zone "37.147.223.in-addr.arpa" {
type master;
arquivo "exemplo-reverse";
};
Quando fizemos isso, podemos comear o nome do servidor com ndc, o chamado controlar
programa: 1
Start # ndc
Novos PID 86183
375
Iniciar ou reiniciar o servidor de nomes no significa que ele ir funcionar, claro. Se voc fizer uma
erro em seus arquivos de configurao, ele pode no funcionar em todos. Caso contrrio, pode comear, mas
se recusar a carregar zonas especficas. nomeado registros de mensagens com syslog, e se voc estiver usando o
padro syslog configurao, as mensagens sero gravadas no console e para o arquivo
/ Var / log / messages. Depois de iniciar o nome, voc deve verificar o que ele disse. nomeado
produz um nmero de mensagens, incluindo:
18 maro 15:01:57 freebie chamado [69751]: inicial (/ etc / namedb / named.conf). chamado 8.3.
4-REL Qua 18 dez 13:38:28 CST 2002 grog@freebie.example.org usr/obj/src/FreeBSD/5-S :/
TABLE-FREEBIE/src/usr.sbin/named
18 maro 15:01:57 freebie chamado [69751]: zone dica "" (IN) carregado (serial 0)
18 maro 15:01:57 freebie chamado [69751]: master zone "example.org" (IN) carregado (serial
2003031801)
18 maro 15:01:57 freebie chamado [69751]: Zone "0.0.127.in-addr.arpa" (arquivo localhost.re
verso): No TTL (TTL $ <valor>) conjunto padro, utilizando mnimo SOA vez
18 maro 15:01:57 freebie chamado [69751]: master zone "0.0.127.in-addr.arpa" (IN) carregado
(Serial 97091501)
18 maro 15:01:57 freebie chamado [69751]: Listening on [223.147.37.1] 0,53 (rl0)
18 maro 15:01:57 freebie chamado [69751]: escutando [127.0.0.1] 0,53 (lo0)
18 maro 15:01:57 freebie chamado [69752]: pronto para responder a perguntas.
Note-se a sada para aviso 0.0.127.in-addr.arpa: este , obviamente, um arquivo de zona de estilo antigo,
como o nmero de srie tambm sugere. Ele no tem um $ TTL entrada, de modo nomeado padro o
comportamento antigo estilo e usa o ltimo campo (o que costumava ser chamado de'' mnimo'') do
SOA registro em seu lugar. Este aviso no muito grave, mas voc provavelmente quer um mais
TTL padro que voc faz para o cache pesquisas falharam, que o que o campo utilizado para
agora.
O que voc no quer ver so mensagens de erro como:
10 de maio
10 de maio
10 de maio
erros
14:26:37 freebie chamado [1361]: db.example.org: Linha 28: tipo desconhecido: Sistema.
14:26:37 freebie chamado [1361]: db.example.org: 28: erro de banco de dados (System)
14:26:37 freebie chamado [1361]: master zone "example.org" (IN) rejeitada devido a
(Serial 1997010902)
Como os ltimos estados de mensagens, este erro causou a zona a ser rejeitado. Engraado: se voc
olhar para a linha 28 da / Etc / namedb / db.example.org, parece bastante simples:
Informaes do sistema #
brinde em HINFO
presto IN HINFO
"Pentium/133"
"FreeBSD 3.0-CURRENT (BSD 4.4)"
"Pentium II/233" "FreeBSD 2.2.5 (BSD 4.4)"
A pesquisa reversa
376
Embora este seja um servidor de nome de escravo, no h nenhum ponto em ser um escravo para localhost do
reverter o mapeamento, para a ltima entrada ainda uma mestre.
O endereo numrico para freebie.example.org, o servidor de nome a partir do qual a zona
para ser carregado. Usamos o endereo numrico, porque o nome do servidor precisa do endereo
antes que ele possa executar a resoluo. Voc pode especificar vrios servidores de nomes, se quiser.
O arquivo de backup o nome do arquivo onde as informaes de zona deve ser salvo no caso
o nome do servidor reiniciado quando o servidor de nomes mestre no est acessvel.
377
china.example.org
Para o subdomnio china.example.org, as mesmas consideraes se aplicam como em nosso anterior
exemplo: temos um domnio sem subdomnios. Apenas os nomes e os endereos
mudar.
Nos exemplos a seguir, vamos supor que china.example.org tem dois servidores de nomes,
beijing.china.example.org e xianggang.china.example.org. Vamos olhar para os arquivos que
pode ter sobre esses sistemas, comeando / Etc / namedb / db.china.example.org:
, A definio de zona china.example.org
$ TTL 1d
@ IN SOA
beijing.china.example.org. zhang.china.example.org. (
2001061701; Serial (data, 2 dgitos verso do dia)
1d; atualizao
2h; repetir
100d; expirar
2h); cache negativa
, Servidores de nomes
IN NS
IN NS
ns
IN A
ns1
IN A
, Registros de MX
IN MX
IN MX
IN MX
, Hosts
beijing
XIANGGANG
Xangai
guangzhou
gw
IN
IN
IN
IN
IN
, Alcunhas
www
ftp
IN CNAME
IN CNAME
A
A
A
A
A
ns
ns1
223.169.23.1
223.169.23.2
50 xianggang.china.example.org.
70 bumble.example.org.
100 mail.example.net.
223.169.23.1
223.169.23.2
223.169.23.3
223.169.23.4
223.169.23.5
Xangai
Xangai
ns.china.example.org.
, Hosts
1
2
3
4
5
IN NS
ns1.china.example.org.
IN
IN
IN
IN
IN
beijing
XIANGGANG
Xangai
guangzhou
gw
PTR
PTR
PTR
PTR
PTR
378
Esses arquivos se parecem muito com os arquivos correspondentes para example.org. A verdadeira
diferena acontece na configurao para example.org, no para china.example.org. Vamos
olhar para o prximo.
379
};
IN SOA
freebie.example.org. grog.example.org. (
1997090501; Serial (data, 2 dgitos verso do dia)
86400; refresh (1 dia)
7200; repetir (2 horas)
8640000; expirar (100 dias)
86400); mnimo (1 dia)
China
China
IN NS
IN NS
ns.china.example.org.
ns1.china.example.org.
ns.china
ns1.china
NUM
NUM
223.169.23.1
223.169.23.2
Mudamos a informao, por isso tambm alterar o nmero de srie do registro SOA para
que os servidores de nomes secundrios para example.org recarregar as informaes atualizadas.
Precisamos especificar os endereos dos servidores de nomes tambm. Estritamente falando, eles
pertencem zona china, mas precisamos mant-los na zona example.org pai: estes
so os endereos para os quais temos de enviar qualquer tipo de consulta.
Depois de alterar a configurao como esta, que reiniciar o servidor de nomes:
Recarga # ndc
Mensagens de chamada
Uma vez que seu nomeado est instalado e funcionando, ele ainda pode produzir uma srie de mensagens. Aqui
so alguns exemplos:
10 de maio 15:09:06 freebie chamada [124]: AXFR aprovado from [223.147.37.5] 0,2872 para "exame
ple.org "
10 de maio 15:09:06 freebie chamada [124]: transferncia de zona de "example.org" (IN) para [192,109.
197,137] 0,2872
Essas mensagens indicam que outro servidor de nome foi carregado a zona especificada. Este
normalmente ser um de seus servidores de nomes secundrios. Isso deve acontecer com a mesma frequncia
como voc especificou em sua refrescar parmetro para a zona.
dns.mm, v v4.17 (2003/04/02 03:15:05)
Mensagens de chamada
380
18 maro 19:21:53 freebie chamado [69752]: ns_forw: query (tsolyani.com) contm o nosso add
ress (freebie.example.org: 223.147.37.1) aprendidas (A = example.org: NS = 66.47.255.122)
Esta mensagem indica que o servidor indicado pelo o registro nos pediu para encaminhar uma
consulta cujo nome da lista do servidor inclui nossos prprios nomes ou o endereo (es). Isto costumava ser
chamado delegao lame. interessante que o endereo na mensagem (real) foi
a.root-servers.net, um dos servidores de base 13 para o conjunto da Internet, o qual foi provavelmente
encaminhar uma consulta a partir de algum outro sistema. O servidor no verificar a validade do
consultas para a frente, por isso bem possvel que eles sejam em erro.
Maro 19 14:53:32 freebie chamado [13822]: server Lame em '182 .201.184.212 relays.osirus.
oft.com '(in' relays.osirusoft.com?): [195.154.210.134] .53 'ns1-relays.osirusoft.c
om ': aprendi (A = 216.102.236.44, NS = 216.102.236.44)
Esta mensagem indica que um servidor de nomes, listado como autoritrio para uma zona particular,
na verdade, no autorizado para aquela zona.
14 de setembro 03:33:18 freebie chamado [55]: ns_forw: consulta (goldsword.com) pontos NS para CNAME
(Ns-user.goldsword.com :) aprendido (CNAME = 199.170.202.100: NS = 199.170.202.100)
Como vimos acima, o endereo do servidor de nome deve ser um registro. O administrador deste
sistema no sabia disso, e apontou-a para um registro CNAME.
14 de setembro 15:55:52 freebie chamado [55]: ns_forw: query (219.158.96.202.in-addr.arpa) A RR
entrada de cache negativo (ns.gz.gdpta.net.cn :) aprendidas (NODATA = 202.96.128.68: NS = 202.12.28
0,129)
Esta mensagem indica que o servidor de nomes j determinou que o nome do servidor
especificado no pode ser encontrado, e observou esse fato em uma entrada de cache negativo.
381
Observe a mensagem Tentando domnio nulo. Isto vem porque o nome fornecido
no era um nome de domnio totalmente qualificado: o perodo no final estava faltando. hospedeiro
decide que ele se parece com um nome totalmente qualificado, por isso no acrescenta um nome de domnio
ao nome.
382
Para obter uma resposta de um dos servidores de nomes oficiais, ns simplesmente especificar o nome
no final do pedido:
$ Host-v-t soa freebsd.org. ns0.freebsd.org.
host-v-t soa freebsd.org. ns0.sd.org.
Usando o servidor de domnio:
Nome: ns0.freebsd.org
Endereos: 216.136.204.126
rcode = 0 (Sucesso), ANCOUNT = 1
freebsd.org 3600 IN SOA
hostmaster.freebsd.org ns0.freebsd.org (
103031602; serial (verso)
1800, perodo de atualizao
900; repetir atualizar isso muitas vezes
604800; perodo de validade
1800; mnimo TTL
Desta vez, especificou os nomes como FQDNs, para que a mensagem sobre o domnio nulo no
aparece mais. Alm disso, o valor TTL agora o valor correto para o registro, e no vai
mudar. Alm disso, a nica diferena a mensagem que falta que a resposta no
autoritrio. O resto da impresso a mesma.
Voc tambm pode usar o -T opo para procurar um registo especfico:
$ Host-t mx freebsd.org.
obter os registros MX
correio freebsd.org tratado (pri = 10) por mx1.freebsd.org
$ Host-t hinfo hub.freebsd.org.
obter registros HINFO
$ Host-t hinfo freefall.freebsd.org.
freefall.freebsd.org informaes do host Intel FreeBSD
Estas invocaes no usar o -V (Verbose) opo, por isso eles so muito mais curto. Em
nomeadamente, hub.freebsd.org no tem nenhum HINFO registros, por isso temos nenhuma sada em tudo.
383
Segurana do DNS
nomeado foi escrito numa poca em que a Internet foi executado por cavalheiros. Nos ltimos
anos, um nmero relativamente grande de problemas de segurana foram encontrados na mesma. O FreeBSD
projeto corrige esses problemas rapidamente, e voc pode esperar que a verso que voc comea
no tm problemas de segurana conhecidos. Isso pode mudar, porm: manter um olho na segurana
avisos do projeto FreeBSD e atualizar o servidor de nomes, se necessrio.
22
Neste captulo:
Segurana e firewalls
Aliasing IP
Os servidores proxy
Instalando o squid
Proxy do navegador
configurao
Firewalls, IP aliasing
e proxies
A Internet foi desenvolvido por uma comunidade relativamente pequena de cientistas da computao, que
foram para as pessoas responsveis maioria, que muitas vezes no tinham problemas de segurana muito
a srio. Uma vez que a Internet foi aberta para o pblico em geral, trs problemas tm
tornam-se evidentes:
A largura de banda usada por pessoas que baixam as mesmas pginas web vrias vezes.
O que esses problemas tm a ver com o outro? Nada de mais, mas as solues so
relacionada, ento vamos olhar para eles juntos. Mais especificamente, vamos considerar:
Como configurar uma Internet firewall para manter os intrusos fora de sua rede.
Ferramentas de segurana que asseguram que ningum pode roubar a senha de um n atravs de
qual ele passa.
Ferramentas para Aliasing IP, que traduzem endereos IP para faz-los parecer vir de
a mquina gateway. A forma como isso feito torna impossvel estabelecer ligaes
do lado de fora, para que eles tambm representam uma espcie de dispositivo de segurana.
Servidores proxy de armazenamento em cache, o que ambos abordam os vrios problemas de download e fornecer
alguma segurana adicional.
385
386
Segurana e firewalls
Lembre-se do captulo 16, que os pacotes de entrada precisa se conectar a uma porta IP, e que
algum processo na mquina deve aceit-los. Por padro, este processo inetd. Voc
pode limitar a vulnerabilidade da sua mquina, limitando o nmero de servios que ele suporta.
Voc precisa fornecer telnet e rlogin servios? Se no, no permitir o servio. Por
padro, / Etc / inetd.conf j no permite que todos os servios, de modo que este no deve ser um problema.
Obviamente, a configurao do sistema de cuidado pode minimizar sua vulnerabilidade, mas tambm
reduz a sua acessibilidade: os invasores no podem entrar, mas tambm no pode as pessoas que precisam
acessar a mquina.
A melhor soluo uma ferramenta que passa os dados autorizados e se recusa a passar no autorizado
dados. Tal instrumento chamado firewall. Nesta seo, vamos olhar para a filtragem de pacotes
firewalls: o firewall examina cada pacote de entrada e utiliza um conjunto de paredes pr-definidos
para decidir se a pass-lo inalterado, alter-lo ou simplesmente descart-lo. Uma alternativa
uma abordagem firewall proxy, que analisa cada pacote e cria novos pedidos baseados
sobre o seu contedo. Na pgina 396 veremos lula, um servidor proxy cache que fornece
um pouco dessa funcionalidade.
FreeBSD suporta trs diferentes firewalls, FPI, ipfilter e ipfw. Consideramos ipfw aqui;
Voc pode encontrar detalhes sobre IPF e ipfilter e nas respectivas pginas man.
O PADRO FreeBSD kernel no incluem suporte firewall. Se desejar, voc pode
construir um kernel com firewall support-consulte o arquivo / Usr / src / sys / conf / NOTES para uma lista de
parmetros, mas voc no precisa construir um novo kernel. Voc pode carregar o KLD
/ Boot / kernel / ipfw.ko em vez disso:
# Kldload ipfw
IPFW2 inicializado, desviar deficientes encaminhamento, baseado em regras habilitado, o padro para negar
, Log desativado
Antes de fazer isso, verifique se voc tem conexo local direto para o sistema. Se voc comear
este comando remotamente, voc perder imediatamente o acesso ao sistema. Leia a seguir
seo antes de carregar o firewall.
Segurana e firewalls
387
Tabela 22-1 mostra as palavras-chave que voc pode usar para definir os pacotes e as formas que o
Intervalo de endereos IP pode tomar:
Tabela 22-1: ipfw tipos de pacotes
Palavra chave
ip
Descrio
Todos os pacotes IP.
tcp
Pacotes TCP.
udp
Pacotes UDP.
icmp
Pacotes ICMP.
src Intervalo de endereos IP Um pacote com um endereo de origem que corresponda Endereo IP. Ver
dst Intervalo de endereos IP Um pacote com um endereo de destino que corresponda Endereo IP.
via interface
recv interface
Xmit interface
Endereo IP
Endereo IP / pedaos
O recv interface pode ser testado em ambos os pacotes de entrada ou de sada, enquanto que a
Xmit interface pode ser testado apenas em pacotes de sada. Isso significa que voc deve
a palavra-chave especifica fora (E voc no pode especificar in) quando voc usa xmit. Voc
No possvel especificar via juntamente com Xmit ou recv.
388
Um pacote que se origina a partir do host local no tem uma interface de recepo. A
pacote destinado ao host local no tem transmitir interface.
Aes
Quando ipfw encontra uma regra que corresponde a um pacote, ele executa a ao especificada. Mesa
22-2 mostra as possibilidades.
Tabela 22-2: Aes em pacotes
Descrio
Permitir que um pacote para passar. Parar de processar as regras.
Descartar o pacote. Parar de processar as regras.
Descartar o pacote e enviar um ICMP inalcanvel mensagem ao
remetente. Parar de processar as regras.
Descartar o pacote e enviar uma mensagem de reset TCP. Isso pode se aplicar apenas aos
restabelece Pacotes TCP. Parar de processar as regras.
r
Contar o pacote e continuar a processar as regras.
Desviar o pacote para o tomada de desviar ligado porta port. Veja o homem
contar
pgina ipfw (8) para mais detalhes. Parar de processar as regras.
desviar porto
Envie uma cpia do pacote para o tomada de desviar ligado porta port.
Continuar processando as regras.
tee porto
Continuar processando as regras a regra nmero governar.
Palavra
chave
permitir
negar
unreach
skipto governar
Escrevendo regras
A seqncia em que so aplicadas as regras no , necessariamente, a seqncia em que eles so
ler. Em vez disso, cada regra pode ter um nmero da linha entre 1 e 65534. As regras so aplicadas
do menor para o maior nmero de linha. Se voc inserir uma regra sem um nmero de linha,
no entanto, recebe um nmero maior do que 100 a regra anterior.
A regra nmero mais elevado o nmero 65535, que est sempre presente. Normalmente, tem
a forma:
65535 deny all from any to any
Em outras palavras, se no houver outras regras esto presentes, ou no coincidir com o pacote, ipfw gotas
o pacote. Se voc construir um kernel com a opo IPFIREWALL_DEFAULT_TO_ACCEPT,
essa regra muda para o seu oposto:
65535 permitir que todo a partir de qualquer de qualquer
Estes dois conjuntos de regras implicitamente ilustrar duas estratgias bsicas de segurana. Voc pode notar
paralelos com certos sistemas polticos:
Segurana e firewalls
389
Escusado ser dizer que a primeira poltica mais seguro. Se voc cometer um erro com o primeiro
(Mais restritivo) conjunto de regras, voc mais provvel para bloquear as pessoas para fora do seu sistema
acidentalmente do que voc para deix-los quando voc no quer que eles.
Os arquivos de configurao
O arquivo de configurao principal / Etc / rc.firewall. improvvel que corresponde exatamente s suas necessidades.
H duas possibilidades:
Voc pode criar seu prprio arquivo de configurao com as suas regras.
Qual voc escolhe? Se voc estiver fazendo apenas pequenas modificaes, mais fcil edit-lo.
Se voc est levando as coisas a srio, porm, voc vai acabar com algo que j no
tem muita relao com o arquivo original. Upgrades so mais fceis se voc tem o seu
prprio arquivo.
Se voc criar seu prprio arquivo, voc pode dizer / Etc / rc.conf seu nome, e / Etc / rc.firewall vontade
l-lo. De qualquer forma, as regras so as mesmas. Na seo seguinte, vamos passar pelo
omisso / Etc / rc.firewall arquivo. No h nada que impea voc de copi-los para outro
arquivo e edit-los para atender s suas necessidades.
Ler o arquivo um pouco complicado por uma srie de variveis de ambiente que so
definido nos scripts de inicializao do sistema. Vamos ver os mais importantes abaixo. Tambm til para
sabe que $ {Fwcmd} substituda pelo nome do programa de firewall / Sbin / ipfw. O
outros so descritos em / Etc / default / rc.conf :
firewall_enable = "NO"
firewall_script = "/ etc / rc.firewall"
firewall_type = "Desconhecido"
firewall_quiet = "NO"
firewall_logging = "NO"
firewall_flags = ""
#
#
#
#
#
#
Para configurar o firewall, primeiro decidir o tipo de perfil que voc precisa e definir a varivel
firewall_type em conformidade. A verso atual do / Etc / rc.firewall define quatro tipos
do perfil de utilizao:
O abrir perfil efetivamente um firewall desativado. Ele permite que todo o trfego. Voc pode usar
isso, se voc est tendo problemas para configurar o firewall e necessrio desativ-lo temporariamente.
O cliente perfil um bom ponto de partida para um sistema que no oferece muitos
servios de acesso pblico Internet. Veremos na prxima seo.
O simples perfil, apesar do seu nome, destinado a um sistema que faz prever um
nmero de servios de acesso pblico Internet. Vamos olhar para ele na pgina 391.
Alm disso, voc pode definir firewall_type para o nome de um arquivo que descreve o firewall
configurao.
firewall.mm, v v4.12 (2003/04/09 20:40:28)
390
Todas as configuraes comeam com uma chamada para setup_loopback, que adiciona as seguintes regras:
$ {} Fwcmd adicionar 100 passe para from any to any via lo0
$ {} Fwcmd adicionar 200 deny all from any to 127.0.0.0 / 8
$ {} Fwcmd adicionar 300 deny ip de 127.0.0.0 / 8 para qualquer
Estas regras permitem todo o trfego local e trfego parada entrando com um endereo local falso.
O perfil do cliente
No incio do perfil de cliente que voc vai encontrar uma srie de variveis que voc precisa para definir. Em
O exemplo a seguir que est pronto para corresponder freebie.example.org e nossa rede exemplo:
[Cc] [LL] [Ii] [Ee] [Nn] [TT])
# # # # # # # # # # # #
# Este um prottipo de instalao que vai proteger o seu sistema um pouco contra
# Pessoas de fora da sua prpria rede.
# # # # # # # # # # # #
# Set-los para a sua rede e mscara de rede e ip
net = "223.147.37.0"
mask = "255.255.255.0"
ip = "223.147.37.1"
freebie.example.org
Se uma conexo TCP j foi estabelecido, permitir que ele continue. Estabelecer uma
Conexo TCP exige outras regras, que veremos a seguir.
# Permitir fragmentos IP para passar pelo
$ {} Fwcmd adicionar passar tudo from any to any frag
Segurana e firewalls
391
Os ltimos trs regras permitem que os sistemas externos para estabelecer uma conexo TCP para
entrega de mail (primeira regra), mas nada mais (terceira regra). A segunda regra permite a configurao de
Conexes TCP para o mundo exterior.
# Permitir consultas DNS no mundo
$ {} Fwcmd adicionar passar udp de $ {ip} para qualquer 53 keep state
# Permitir consultas NTP no mundo
$ {} Fwcmd adicionar passar udp de $ {ip} para qualquer estado manter-123
# Tudo o resto negado por padro.
Essas duas regras permitem consultas DNS e NTP. A palavra-chave -state manter causas ipfw a
construir uma regra dinmica de curta durao correspondente a essa combinao especfica de pontos finais e
protocolo. Isto significa que no precisamos abrir o trfego na outra direo. Anteriormente,
o conjunto de regras para consultas DNS composta destas duas regras:
$ Fwcmd adicionar udp passe de qualquer 53 a $ {ip}
$ Fwcmd adicionar udp passe de $ {ip} para qualquer 53
Isto permite que todo o trfego de DNS em ambas as direces. Em contraste, -state manter permite apenas a
responder trfego para consultas especficas para passar pelo firewall. Voc no precisa disso para TCP-o
estabelecido palavra-chave que a mesma coisa, mas UDP no tm o conceito de um
conexo, de modo que o firewall precisa manter o controle do trfego.
No h mais regras, de modo que o padro negar regra impede que qualquer outro tipo de trfego.
O perfil simples
Apesar do nome, o simples perfil realmente um perfil de servidor (simples). Ela assume que o
mquina um gateway, e que fornece servios DNS e NTP para o mundo exterior
(Por exemplo, para o cliente mquina que apenas olhou). Este perfil mais adequado
para o sistema gw.example.org, por isso vamos usar os seus endereos.
# Definir estes a sua interface de rede do lado de fora e mscara de rede e ip
OIF = "tun0"
onet = "139.130.136.133"
omask = "255.255.255.255"
PII = "139.130.136.133"
# Definir estes a sua interface de rede interna e mscara de rede e ip
iif = "ep0"
inet = "223.147.37.0"
imask = "255.255.255.0"
pii = "223.147.37.0"
392
Essas duas regras de parar todos os pacotes que pretendem vir a partir da rede local, que chegam
atravs da rede externa, e todos os pacotes que pretendem vir de rede remota
que chegam atravs da interface local. Estes pacotes teria sido falsificada, uma ao conhecida
como spoofing.
# Parar RFC1918 redes na
$ {} Fwcmd adicionar negar tudo a partir de
$ {} Fwcmd adicionar negar tudo a partir de
$ {} Fwcmd adicionar negar tudo a partir de
fora da interface
qualquer para 10.0.0.0 / 8 via $ {OIF}
qualquer para 172.16.0.0/12 via $ {} OIF
qualquer para 192.168.0.0/16 via $ {} OIF
RFC 1918 define as redes que no devem ser roteados. Estas regras impor que
exigncia.
Neste ponto no arquivo h tambm alguns outros endereos que no devem ser roteados. A
verificao feita para a traduo de endereos, porque os endereos no so roteados tipicamente usado por
Ambientes NAT.
# Permite TCP atravs de configurao se conseguiu
$ {} Fwcmd adicionar passar tcp from any to any estabelecido
# Permitir fragmentos IP para passar pelo
$ {} Fwcmd adicionar passar tudo from any to any frag
# Permite configurao de e-mails recebidos
$ {} Fwcmd adicionar passar tcp from any to $ {} 25 OIP configurao
# Permitir o acesso ao
$ {} Fwcmd adicionar passar
$ {} Fwcmd adicionar passar
$ {} Fwcmd adicionar passar
nosso
tcp
udp
udp
DNS
from any to $ {53} OIP configurao
from any to $ {53} OIP
a partir de $ {} OIP 53 para qualquer
Estas regras acrescentar ao que vimos para o cliente Perfil: alm de e-mail, ns permitimos
DNS de entrada e conexes www.
# Rejeitar & Log toda a configurao de conexes de entrada do lado de fora
$ {} Fwcmd adicionar negar log tcp from any to any in via $ {} OIF configurao
# Permite configurao de qualquer outra conexo TCP
$ {} Fwcmd adicionar passar tcp from any to any configurao
Aqui, ns no apenas rejeitar TCP solicitaes de instalao do mundo exterior, ns registr-los como
bem.
# Permitir consultas DNS no mundo
$ {} Fwcmd adicionar passar udp de $ {} para qualquer PII 53 keep state
# Permitir consultas NTP no mundo
$ {} Fwcmd adicionar passar udp de $ {} para qualquer PII 123-state manter
# Tudo o resto negado por padro.
Segurana e firewalls
393
Finalmente, ns permitimos que as consultas de DNS e NTP via UDP, e negar tudo o resto do
fora do mundo.
perfis definidos pelo usurio
Se o perfil no uma das palavras-chave reconhecidos, / Etc / rc.firewall verifica se h um arquivo
com este nome. Se assim for, usa-lo como um arquivo de comando para passar para ipfw:
elif ["$ {firewall}" = "none"-a-r "$ {firewall}!"], ento
Fwcmd $ {} $ {firewall_flags} $ {firewall_type}
Note que voc no pode colocar linhas de comentrio no arquivo definido por $ {Firewall}.
Entradas no / etc / rc.conf
Quando voc decidiu que tipo de configurao de firewall melhor se adapte a sua rede, nota
esse facto no / Etc / rc.conf. Defina o valor de firewall_enable a SIM para ativar o firewall,
e o valor de firewall_type para indicar o tipo de firewall. Para o nosso exemplo
rede cliente , provavelmente, o tipo mais apropriado:
firewall_enable = "YES" # Configure como yes para ativar a funcionalidade de firewall
firewall_script = "/ etc / rc.firewall" # Qual script para configurar o firewall
firewall_type = "cliente" # tipo de Firewall (veja / etc / rc.firewall)
Se voc decidiu escrever seu prprio arquivo ao invs de modificar / Etc / rc.firewall, set
firewall_type para o nome do arquivo.
Aliasing IP
Em nossa rede de referncia na pgina 294, assumimos que a nossa rede local tinha um vlido
endereo IP atribudo. Algumas vezes, isto no possvel. Na verdade, no mundo real muito
bem impossvel obter uma completa rede de classe C para um sistema com apenas cinco sistemas em
lo. Tem a alternativa de obter um subconjunto de uma rede de classe C (neste caso, oito
endereos faria) a partir do seu ISP, ou usando apenas um endereo e executar o software que
faz com que todo o trfego da rede para o mundo l fora olhar como se ele est vindo que
sistema. A ltima abordagem, chamada network address translation (NAT) ou Aliasing IP,
pode ser significativamente mais barato: ISPs geralmente cobram um bom dinheiro para outros endereos. Em
Do lado negativo, NAT restringe voc de alguma forma. Qualquer conexo entre a mquina em uma
Rede NAT e da Internet global deve comear a partir da mquina na rede NAT,
porque a traduo no existe at que a conexo configurada. Isto tambm significa que
voc no pode conectar dois computadores em diferentes redes NAT.
firewall.mm, v v4.12 (2003/04/09 20:40:28)
394
Traduo de endereos de rede envolve trs mquinas: uma no Internet global com o Real
Endereos da Internet, um em uma sub-rede privada com endereos roteado, e um no
meio que realiza a traduo. Em nossa rede de referncia (ver pgina 294), vamos
considerar a conexo andante, o laptop, a Internet com presto atuando como endereo
tradutor. andante no faz parte da rede local, por isso, recebe um endereo de um dos
espaos de endereos especificados pelo RFC 1918 (192.168.0.0 a 192.168.255.255,
172.16.0.0 a 172.31.255.255, ou 10.0.0.0 a 10.255.255.255). Neste exemplo,
ele tem o endereo 192.168.27.17, e podemos assumir que tem este endereo a partir de um
Servidor DHCP na presto. A conexo a um site remoto http://www.FreeBSD.org
pode ter esta aparncia:
192.168.27.17
andante
192.168.27.1
wi0
xl0
2731
80
223.147.37.2
presto
216.136.204.117
dc0
3312
80
www.
FreeBSD
. Org
Software aliasing IP
H um certo nmero de maneiras de realizar IP aliasing no FreeBSD. Se voc est se conectando
para o mundo exterior atravs de Usurio PPP (ver Captulo 20, pgina 348), voc pode usar o -Alias
palavra-chave para que o PPP apelido tudo pacotes provenientes da rede, para o endereo do
interface do tnel. Em nossa rede de referncia, este seria o endereo 139.130.136.133.
Esta forma particular de aliasing IP tem algumas limitaes: ele s funciona para um nico usurio
PPP conexo com o mundo exterior, e global em sua funcionalidade. Uma alternativa consiste
o Network Address Translation Daemon, ou natd, que usa desviar tomadas para traduzir
endereos. Ele funciona bem em conjunto com o software firewall vimos acima.
firewall.mm, v v4.12 (2003/04/09 20:40:28)
Aliasing IP
395
natd
Para configurar natd para o exemplo acima, execute os seguintes passos:
Mesmo se voc no planeja executar um firewall IP, construir e inicializar um kernel personalizado com o
seguintes opes:
opes IPFIREWALL
opes IPDIVERT
Se voc estiver executando um firewall, configure o firewall normalmente, mas no se esquea de incluir
o IPDIVERT opo.
Certifique-se de suas interfaces esto funcionando. Por exemplo, se voc estiver executando Kernel PPP
e voc quer especificar ppp0 como sua interface, iniciar pppd antes de iniciar natd.
O que voc faz em seguida um pouco diferente dependendo se voc tambm est executando um firewall
ou no. Se voc no , voc melhor fora com um script separado, o que se pode chamar
/ Etc / rc.nat, com o seguinte contedo:
/ Sbin / ipfw-f rubor
/ Sbin / ipfw add desviar natd tudo from any to any via dc0
/ Sbin / ipfw add passar tudo from any to any
Se voc quiser combinar NAT com regras de firewall reais, voc precisa apenas a segunda linha de
no exemplo anterior. Configure o firewall como descrito acima, e colocar a linha NAT em
o incio da seco de / Etc / rc.firewall que voc escolheu, para que natd v tudo
pacotes antes de serem descartados pelo firewall. Depois natd traduz o IP
endereos, as regras de firewall so executados novamente no pacote traduzido, com exceo
das normas de desvio. O cliente configurao a mais provvel para atender s suas necessidades
se voc estiver usando NAT. Depois do exemplo da figura 22-1 em 390, voc pode acrescentar:
# Set-los para a sua rede e mscara de rede e ip
net = "192.0.2.0"
mask = "255.255.255.0"
ip = "192.0.2.1"
setup_loopback
/ Sbin / ipfw add desviar natd tudo from any to any via dc0
# Permitir todo o trfego de e para a minha prpria rede.
$ {} Fwcmd adicionar passar tudo a partir de $ {ip} para $ {net}: $ {mscara}
$ {} Fwcmd adicionar passar tudo a partir de $ {net}: $ {mscara} para $ {ip}
396
# Sh / etc / rc.nat
# Firewall_type = client sh / etc / rc.firewall
# Natd dc0
Nunca iniciar esse script a partir de um terminal X ou atravs da rede. Se voc fizer isso, voc pode
se tranca para fora da sesso no meio do script, causando / Etc / rc.firewall a
parar neste ponto, bloqueando todos os acessos ao sistema.
Os servidores proxy
Para algumas finalidades, uma boa alternativa ou complemento para uma filtragem de pacotes de firewall e NAT
um servidor proxy que converte pedidos de protocolos especficos. No exemplo na
seo anterior, que estava acessando um servidor web, que tambm poderia ter executado um proxy
servidor presto. Particularmente em conjunto com servidores web, um servidor proxy tem a
vantagem que pode armazenar em cache dados localmente, reduzindo assim a carga da rede.
H um par de outras diferenas entre os servidores proxy e NAT: natd no faz
sei muito sobre os dados que ele passa. Os servidores proxy sabe muito sobre ele. Isto faz com que de proxy
servidores menos adequados como uma garantia geral ou endereo mecanismo de traduo. Alm disso,
o cliente deve saber sobre o servidor proxy, enquanto que ele no precisa saber nada
sobre NAT e firewalls. A conexo tpica se parece com isso:
192.168.27.17
andante
wi0
2731
192.168.27.1
xl0
8080
223.147.37.2
presto
216.136.204.117
dc0
3312
80
www.
FreeBSD
. Org
Os servidores proxy
397
Instalando o squid
Uma boa escolha de servidor web proxy Lula, que est disponvel na Coleo de Ports.
Instale-o da maneira normal:
# Cd / usr / ports / www / squid
# Make install
lula no a coisa mais fcil do mundo para criar, e prejudicado pela sub-padro
documentao. A pgina o homem lula (8), mas a maior parte da informao est na
arquivo de configurao / Usr / local / etc / squid / squid.conf. Por padro, ele est configurado para no fazer nada. Ele
tem mais de 3.000 linhas de maioria comentrios. Sugiro as seguintes alteraes:
Defina o valor http_proxy para o nmero da porta que voc deseja usar. Por padro, o
lula utiliza a porta 3128, mas muitos proxies usar a porta 8080, e que a porta que mais
navegadores esperar muito. Se voc no estiver executando um servidor web na mquina, voc
Tambm possvel usar o http porto, 80. Adicionar:
http_port 8080 80
A varivel http_access define quem pode acessar o servidor web. Por padro, ele
nega todos os pedidos com exceo do gerente local, por isso voc deve configur-lo se voc espera
obter quaisquer resultados do servidor. Uma configurao apropriada poderia ser:
acl locais src 192.168.27.0/255.255.255.0
acl exampleorg src 223.147.37.0/24
http_access allow locais
http_access allow exampleorg
Isto define duas listas de controle de acesso, um para a rede NAT ns olhamos no
seco anterior (local) e um para a rede globalmente visvel 223.147.37.0
(Exampleorg). O primeiro acl instruo especifica da rede sob a forma advestido / mscara, enquanto que o segundo especifica com o nmero de bits significativos na
mscara de rede. O http_access demonstraes ento permitir o acesso a cada uma delas.
Se voc estiver usando o ftp proxy, provavelmente uma boa idia para mudar o nome padro
com que lula realiza annimo FTP. Por padro, ele Squid @, mas que parece
boba. Mud-la, definindo:
ftp_user squid@example.org
398
lula no espera qualquer linha do ftp arquivo de listagem a ser mais do que 32 caracteres.
Isso muito conservador. Voc pode torn-lo maior, como este:
ftp_list_width 120
Por padro, o lula armazena qualquer objeto menos de 4 MB de tamanho em disco. Se voc estiver fazendo uma
muito ftp trabalhar, isso pode prejudicar seriamente o desempenho de cache para http. Voc pode
reduzi-la para, digamos, 256 kB com:
maximum_object_size 256 KB
O sistema comea a lula como usurio raiz, o que no a melhor para a segurana: procurao
servidores so um alvo popular para os intrusos na Internet. Voc deve alter-lo para correr
como usurio e grupo www:
cache_effective_user www
cache_effective_group www
Iniciando squid
Antes de comear a lula, primeiro voc deve criar os diretrios de cache. Se no, voc pode
inici-lo, e ele no se queixa, mas no executar qualquer um. Mais tarde, voc pode encontrar algo
assim no arquivo de log / Var / log / messages:
21 de dezembro 15:26:51 presto squid [23800]: Squid Parent: processo filho 23802 comeou
21 de dezembro 15:26:53 presto (squid):
Falha ao verificar um dos diretrios de swap
, Check cache.log
para mais detalhes. Run 'squid-z' para criar os diretrios de swap
se necessrio, ou se estiver em execuo Squid pela primeira vez.
21 de dezembro 15:26:53 presto do kernel: pid 23802 (squid), uid 65534: saiu em sinal de 6
21 de dezembro 15:26:53 presto squid [23800]: Squid Parent: processo filho 23802 saiu devido a
sinal de 6
21 de dezembro 15:26:56 presto squid [23800]: Squid Parent: processo filho 23805 comeou
Os arquivos de log esto em / Usr / local / squid / log e os arquivos de cache dever estar em / usr/local / squid / cache. Para cri-los, digite:
# Squid-z
2002/12/21 15:30:35 | Criando diretrios de swap
No reincio do sistema, lula ser iniciada automaticamente a partir do roteiro de / Usr/local / etc / rc.d / squid.sh.
Instalando o squid
399
Neste captulo:
Como abordar
problemas de rede
Camada problemas ligao
Camada de rede
problemas
traceroute
tcpdump
Transportes e
camadas de aplicao
Etreo
23
Depurao de rede
As chances so muito boas que voc vai ter alguns problemas em algum lugar quando voc configura
sua rede. FreeBSD d-lhe um grande nmero de ferramentas com as quais a encontrar e resolver
o problema.
Neste captulo, vamos estudar uma metodologia de depurao de problemas de rede. No
processo, vamos olhar para os programas que ajudam a depurao. Ela vai ajudar a ter o seu dedo
no captulo 16, enquanto a leitura desta seo.
401
402
Neste caso, estamos enviando as mensagens para o sistema bumble.example.org. Por padro, o
pingar envia mensagens de 56 bytes. Com o cabealho IP, o que torna os pacotes de 64 bytes.
Por padro, o pingar continua at que voc pare-notar a C indicando que esta invocao
foi parado por prensagem Ctrl-C.
A informao de que pingar d-lhe no muito, mas til:
Diz-lhe o tempo que leva para cada pacote para chegar ao seu destino e de volta.
Mas e se isso no funcionar? Voc entra no seu pingar comando, e tudo que voc tem :
$ Pingue esperar
PING wait.example.org (223.147.37.4): 56 bytes de dados
C
--- Wait.example.org estatsticas de ping --5 pacotes transmitidos, 0 packets received, 100% packet loss
Obviamente, algo est errado aqui. Vamos olh-la com mais detalhes abaixo. Isto muito
diferente, no entanto, a partir dessa situao:
$ Ping-presto
C
No segundo caso, mesmo depois de esperar uma quantidade razovel de tempo, nada aconteceu
tudo. pingar no imprimir o PING mensagem, e quando ns batemos Ctrl-C no havia mais nenhuma
sada. Isso indicativo de um problema de resoluo de nomes: pingar No possvel imprimir a primeira linha
(Ping presto ...) at que tenha encontrado o endereo IP do sistema, por outras palavras, at se
realizou uma pesquisa DNS. Se esperarmos tempo suficiente, ele ir expirar, e ns temos a
mensagem ping: no pode resolver presto: host desconhecido. Se isso acontecer, use o
Endereo IP em vez do nome. DNS uma aplicao, por isso no vou nem tentar depur-lo
netdebug.mm, v v4.15 (2003/04/02 03:23:15)
403
Se ambos os sistemas esto na mesma rede, um problema da camada de enlace. Veremos que
em primeiro lugar.
Se os sistemas estiverem em duas redes diferentes, pode ser um problema de camada de rede.
Isso mais complicado: no sabemos qual a rede para olhar. Poderia ser
das redes em que os sistemas se encontram, ou tambm pode ser um problema com
uma das redes no caminho. Como voc descobrir onde seus pacotes se perdeu?
Primeiro voc verifique a camada de enlace. Se ele verifica OK, eo problema ainda existe,
continuar com a camada de rede na pgina 405.
Ento, o que pode causar problemas da camada de enlace? H uma srie de possibilidades:
Se voc ver algo como isso em uma interface Ethernet, bastante claro que ele tem uma
cabeamento problema:
xl0: flags = 8943 mtu 1500 <UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST>
options = 3 <RXCSUM,TXCSUM>
inet 192.168.27.1 netmask 0xffffff00 transmisso 192.168.27.255
media: Ethernet autoselect (none)
status: nenhuma transportadora
Neste caso, verifique as conexes fsicas. Se voc estiver usando UTP, verifique se voc
tem o tipo certo de cabo, normalmente um'' direto'' cabo. Se voc acidentalmente
usar um cabo crossover, onde voc precisa de um cabo straight-through, ou vice-versa, voc vai
no obter qualquer conexo. Alm disso, muitos hubs e switches tm uma'' passagem'' interruptor
que atinge o mesmo resultado.
Se voc estiver em um RG-58 Ethernet fino, o problema mais provvel uma pausa no cabeamento.
Voc pode verificar a resistncia esttica entre o pino central ea parte externa do
conector com um multmetro. Ela deve ser de aproximadamente 25. Se 50, ele
indica que existe uma ruptura do cabo, ou que um dos terminadores foi
desconectada.
Se sua interface est configurado corretamente, e voc estiver usando um Mb / s card 10, verifique
se voc est usando a conexo correta para a rede. Alguns Ethernet mais velhos
placas de suportar mltiplas conexes fsicas (por exemplo, tanto o BNC e UTP). Para
404
exemplo, se a sua rede funciona em RG58 fino Ethernet, e sua interface definida como
AUI, voc ainda pode ser capaz de enviar dados sobre o RG58, mas voc no ser capaz de receber
qualquer.
O mtodo de definio da conexo depende da placa que voc est usando. PCI
placas normalmente no so um problema, porque o motorista pode ajustar diretamente os parmetros,
placas ISA, mas pode deix-lo louco. No caso de placas de muito antigos, tais como o
Western Digital 8003, pode ser necessrio definir jumpers. Em outros casos, pode ser necessrio para executar
o utilitrio de configurao sob DOS, e com os outros que voc pode configur-lo com o link bandeiras para
ifconfig. Por exemplo, em um 3Com 3c509'' combinado'' placa, voc pode configurar a conexo
assim:
# Ifconfig ep0-link0
# Ifconfig ep0 link0-link1
# Ifconfig ep0 link0 link1
definir BNC
definir AUI
conjunto UTP
Este exemplo o correto para o ep condutor, mas no necessariamente para outros Ethernet
placas: cada placa tem suas prprias bandeiras. Leia a pgina de manual para a placa para a correcta
flags.
Se a sua interface parece OK, a prxima coisa a fazer ver se voc pode enviar dados para
outras mquinas na rede. Se assim for, claro, voc deve continuar sua busca em
a mquina que no est a responder. Se no estiver trabalhando, voc provavelmente tem um cabeamento
problema.
Em uma rede wireless, voc precisa verificar se h uma srie de problemas adicionais. ifconfig
deve mostrar algo como isto:
wi0: flags = 8843 mtu 1500 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
inet6 fe80 :: 202:2 dff: FE04: 93a% wi0 prefixlen 64 ScopeID 0x3
inet 192.168.27.17 netmask 0xffffff00 transmisso 192.168.27.255
ter 00:02:02 d: 21:54:04 c
media: IEEE 802.11 Ethernet sem fio autoselect (DS/11Mbps)
status: associado
ssid "FreeBSD IBSS" 1 ":"
stationname "FreeBSD WaveLAN / IEEE n"
canal 3 authmode ABERTO powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1
wepkey 2:64-bit 0x123456789a 3:128-bit 0x123456789abcdef123456789ab
Voc tem o mesmo modo de operao? Este exemplo mostra um carto de funcionamento em BSS
ou modo IBSS. Por outro lado, voc pode ver o seguinte:
media: IEEE 802.11 Ethernet sem fio autoselect (DS/11Mbps <adhoc, flag0>)
Neste caso, a interface est a operar em demonstrao chamado'' Lucent ad-hoc modo,''
o que no a mesma coisa que o modo ad-hoc'''' (que por sua vez melhor do chamado IBSS
mode). Modo IBSS ('''' ad-hoc) e modo BSS so compatveis. Modo e IBSS
'' Demonstrao Lucent modo ad-hoc'' no so. Consulte o Captulo 17, pgina 306 para mais detalhes.
405
Depois de verificar todas essas coisas, voc deve ter uma conexo. Mas voc no pode estar em casa
ainda:
Se voc tiver uma conexo, verifique se tudo pacotes chegou l. Pacotes perdidos pode significar linha
problemas de qualidade. Isso no muito provvel em uma Ethernet, mas muito possvel em um
PPP ou DSL link. H uma incerteza sobre a perda de pacotes: voc pode bater CtrlC aps o ltimo pacote saiu, mas antes que ele voltasse. Se a linha muito lenta,
pode perder vrios pacotes. Compare o nmero de seqncia do ltimo pacote que
retorna com o nmero total retornado. Se um a menos, todos os pacotes, exceto os
no final conseguido.
Verifique se cada pacote de volta apenas uma vez. Se no, h definitivamente algo
errado, ou voc tem o ping um endereo de broadcast. Que se parece com isto:
$ Ping 223.147.37.255
PING 223.147.37.255 (223.147.37.255): 56 bytes de dados
64 bytes from 223.147.37.1: icmp_seq = 0 ttl = 255 time = 0.428 ms
64 bytes from 223.147.37.88: icmp_seq = 0 ttl = 255 time = 0.785 ms (DUP!)
64 bytes from 223.147.37.65: icmp_seq = 0 ttl = 64 time = 1.818 ms (DUP!)
64 bytes from 223.147.37.1: icmp_seq = 1 ttl = 255 time = 0.426 ms
64 bytes from 223.147.37.88: icmp_seq = 1 ttl = 255 time = 0.442 ms (DUP!)
64 bytes from 223.147.37.65: icmp_seq = 1 ttl = 64 time = 1.099 ms (DUP!)
64 bytes from 223.147.37.126: icmp_seq = 1 ttl = 255 time = 45,781 ms (DUP!)
Sistemas FreeBSD no respondem a transmitir pings, mas a maioria dos outros sistemas de fazer, ento
isso efetivamente conta o nmero de mquinas no-BSD em uma rede.
Confira os tempos. A pingar atravs de uma rede Ethernet deve ter entre cerca de 0,2 e 2 ms,
um pingar atravs de uma conexo sem fio deve ter entre 2 e 12 ms, um pingar transversalmente
uma conexo ISDN deve levar cerca de 30 ms, um pingar atravs de uma kb / s anlogo 56
conexo deve levar cerca de 100 ms, e um pingar atravs de uma conexo por satlite deve
levar cerca de 250 ms em cada direo. Todos estes tempos so para as linhas ocioso, e o tempo
pode ir at mais de 5 segundos para uma linha lenta transferncia de grandes blocos de dados atravs de uma
linha serial (por exemplo, FTPing um arquivo). Neste exemplo, algum trfego atrasou a linha
resposta a pings individuais.
406
Porta de entrada
gw
localhost
link # 1
00:80: C6: f9: d3: fa
00:50: da: cf: 17: d3
00:80: C6: f9: A6: C8
00:50: da: cf: 07:35
ff: ff: ff: ff: ff: ff
Bandeiras Refs
UGSc
0
UH
2
UC
6
HULW
0
HULW
0
HULW
0
HULW
6
UHLWb
1
A rota padro via gw, o que correto. A primeira coisa a fazer garantir que voc pode
de ping gw, que uma questo de nvel de link, ento vamos supor que voc puder. Mas e se voc tentar
pingar um sistema remoto e voc ver algo parecido com isso?
# Ping rider.fc.net
PING rider.fc.net (207.170.123.194): 56 bytes de dados
36 bytes de gw.example.org (223.147.37.5): Destination Host Unreachable
Vr HL TOS Len ID FLG off TTL Pro cks SRC DST
4 5 00 6800 c5da
0 0000 fe 01 246d 223.147.37.2 207.170.123.194
36 bytes de gw.example.org (223.147.37.5): Destination Host Unreachable
Vr HL TOS Len ID FLG off TTL Pro cks SRC DST
4 5 00 6800 c5e7
0 0000 fe 01 2460 223.147.37.2 207.170.123.194
C
--- Rider.fc.net estatsticas de ping --2 pacotes transmitidos, 0 packets received, 100% packet loss
Estas so as mensagens ICMP de gw o que indica que ele no sabe para onde enviar o
dados. Isto quase certamente um problema de roteamento, em gw voc pode ver algo como:
407
$ Netstat-r
As tabelas de roteamento
Internet:
Destino
localhost
free-gw.example.ne
223.147.37
sat-gw
bumble
chama
wantadilla
presto
freebie
ar-gw
kimchi
223.147.37.127
tatear
Porta de entrada
localhost
exorg-gw.example.
link # 1
00:80: C6: f9: d3: fa
00:50: da: cf: 17: d3
08:00:20:76:6 c: 7b
00:02:44:17: f8: da
00:80: C6: f9: A6: C8
00:50: da: cf: 07:35
00:00: B4: 33:6 d: a2
00:00:21: ca: 6e: f1
link # 1
link # 1
Bandeiras Refs
Use netif vencimento
UH
1
123 lo0
UH
23
0 ppp0
UC
11
0 dc0
HULW
5 1295329 dc0
1027
HULW
2
760.207 dc0 802
HULW
2
426.341 dc0 532
HULW
36 19778224 dc0
1073
HULW
1 1122321 dc0 742
HULW
24
3279563 lo0
HULW
4
2484 dc0 653
HULW
0
1
dc0 829
HULW
0
5
dc0
HULW
3 51246373
dc0
O problema aqui que no h nenhuma omisso percurso. Adicione-o com o rota comando:
# Route add default free-gw.example.net
# Netstat-r
As tabelas de roteamento
Internet:
Destino
omisso
localhost
Etc ...
Consulte o Captulo 17, pgina 310, para obter mais detalhes, incluindo a forma de garantir que as rotas sero
ser adicionados automaticamente no momento da inicializao.
Mas e se as rotas de olhar para a direita, voc no receber mensagens ICMP, e nenhum dado fica
passar? Voc nem sempre recebo mensagens ICMP quando os dados no podem passar. O
prximo local lgico para se olhar free-gw.example.net, mas h um problema com isso: como o
administrador de example.org, voc no tem acesso a mquinas example.net 's. Voc pode
cham-los, claro, mas antes voc fizer isso voc deve estar razoavelmente certo de que o seu
problema. Voc pode encontrar mais informaes com traceroute.
traceroute
traceroute envia pacotes UDP para o destino, mas modifica a time-to-live no campo
o cabealho IP (ver pgina 280) para que, inicialmente, de qualquer forma, eles no ficam l. Como vimos
l, o time-to-viver campo especifica o nmero de saltos que um pacote pode ir antes que seja
descartados. Quando isso acontece, o sistema que descarta deve enviar de volta um ICMP destino
inacessvel mensagem. traceroute usa esse recurso e envia pacotes com time-tovivo para um primeiro conjunto, em seguida, para dois, e assim por diante. Ela imprime o endereo IP do sistema que
envia a mensagem de destino inalcanvel'''' eo tempo que levou, dando assim alguma coisa
como um bidimensional ping. Aqui est um exemplo para hub.FreeBSD.org:
traceroute
408
Hub.freebsd.org $ traceroute
traceroute para hub.freebsd.org (204.216.27.18), 30 hops max, 40 byte packets
1 gw (223.147.37.5) 1.138 ms 0.811 ms 0.800 ms
2 free-gw.example.net (139.130.136.129) ms 131,913 122,231 134,694 ms ms
3 Ethernet1-0.way1.Adelaide.example.net (139.130.237.65) 118,229 120,040 ms ms
118,723 ms
4 Fddi0-0.way-core1.Adelaide.example.net (139.130.237.226) 171,590 117,911 ms ms
123,513 ms
5 Serial5-0.lon-core1.Melbourne.example.net (139.130.239.21) 129,267 226,927 ms
ms 125,547 ms
6 Fddi0-0.lon5.Melbourne.example.net (139.130.239.231) 144,372 133,998 ms 13 ms
6,699 ms
7 borderx2-hssi3-0.Bloomington.mci.net (204.70.208.121) 962,258 482,393 ms 7 ms
54,989 ms
8 Core2-fddi-1.Bloomington.mci.net (204.70.208.65) 821,636 701,920 ms ms *
9 bordercore3-loopback.SanFrancisco.mci.net (166.48.16.1) 424,254 884,033 ms ms
645,302 ms
10 pb-nap.crl.net (198.32.128.20) ms 435,907 438,933 451,173 ms ms
11 E0-CRL-SFO-02-E0X0.US.CRL.NET (165.113.55.2) ms 440,425 430,049 447,340 ms ms
12 T1-CDROM-00-EX.US.CRL.NET (165.113.118.2) 553,624 460,116 ms ms *
13 hub.FreeBSD.ORG (204.216.27.18) 642,032 463,661 ms ms 432,976 ms
Por padro, o traceroute tenta cada hop trs vezes e imprime os tempos como eles acontecem,
por isso, se o tempo reponse mais do que cerca de 300 ms, voc vai perceber como isso acontece. Se houver
nenhuma resposta depois de um perodo de tempo limite (padro por 5 segundos), traceroute imprime um asterisco (*).
Vai tambm ocasionalmente notar um atraso significativo no incio de uma linha, embora o
tempo de resposta parece razovel. Neste caso, o atraso provavelmente causada por uma DNS
pesquisa inversa para o nome do sistema. Se isso se torna um problema (talvez porque
os servidores DNS globais no so acessveis), voc pode desativar o DNS reversa usando o
-N bandeira.
Se voc olhar mais atentamente para os tempos no exemplo acima, voc ver trs grupos de
vezes:
1. As vezes a gw so round 1 ms. Isto tpico de uma rede Ethernet.
2. Os tempos de lpulo 2 a 6 esto na ordem de 100 a 150 ms. Isto indica que o
ligao entre gw.example.org e free-gw.example.net est sendo executado PPP sobre um
linha telefnica. O atraso entre free-gw.example.net e Fddi0-0.lon5.Melbourne.example.net insignificante em comparao com o atraso atravs do link PPP, assim voc
No vejo muita diferena.
3. Os tempos de borderx2-hssi3-0.Bloomington.mci.net a hub.FreeBSD.ORG so
significativamente mais elevado, entre 400 e 1000 ms. Notamos tambm um par de cair
pacotes. Isto indica que a linha entre Fddi0-0.lon5.Melbourne.example.net
e borderx2-hssi3-0.Bloomington.mci.net est sobrecarregado. O comprimento do elo
(Cerca de 13.000 quilmetros) tambm desempenha um papel: uma distncia total de 26,000 km, o que levar
cerca de 85 ms para transferncia. Se esta fosse uma conexo via satlite, as coisas seriam muito
mais lento: a distncia total da estao terrestre para o satlite e de volta para o solo
72,000 km, que tem um total de 240 ms para se propagar.
De volta ao nosso problema. Se vemos algo parecido com a sada no exemplo anterior,
sabemos que no h nenhuma razo para chamar as pessoas ao example.net: no o seu problema.
Isso pode ser apenas uma sobrecarga na Internet global. Por outro lado, o que dizer
isso?
netdebug.mm, v v4.15 (2003/04/02 03:23:15)
409
Hub.freebsd.org $ traceroute
traceroute para hub.freebsd.org (204.216.27.18), 30 hops max, 40 byte packets
1 gw (223.147.37.5) 1.138 ms 0.811 ms 0.800 ms
2 ***
3 ***
C
Voc j corrigido os seus problemas de roteamento, mas voc ainda no pode obter dados fora do sistema. Tem
uma srie de possibilidades aqui:
O link para o prximo sistema pode ser para baixo. A soluo bvia: traz-lo para cima e tentar
novamente.
gw no pode ser configurada como uma porta de entrada. Voc pode verificar isso com:
$ Sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 1
Consulte a pgina 313 para obter mais detalhes, incluindo a forma de garantir que este sysctl definido
corretamente quando o sistema iniciado.
Voc pode estar tentando usar um endereo IP no-roteveis, como aqueles na faixa
192.168.x.x. Voc no pode fazer isso. Se voc no tem o suficiente IP globalmente visvel
endereo, voc vai precisar para executar algum tipo de pacote de aliasing, como NAT. Consulte o Captulo
22, pgina 393, para obter mais detalhes.
Talvez haja algo de errado com encaminhamento rede. Esta uma tarefa difcil
a verificao, mas no caso de a rede de referncia, uma possibilidade a de repetir o
traceroute a partir da mquina gw: endereo externo do gw no tun0 interface
139.130.136.133, que na rede do ISP. Como resultado, eles no so afectados
por um problema de roteamento para a rede 223.147.37.x. Se isto no for o caso,
contacte o seu ISP para resolv-lo.
Talvez haja algo de errado com o outro lado, se tudo o mais falhar, voc pode
tem que chamar os administradores em example.net mesmo se voc no tem provas concretas de que
seu problema.
traceroute
410
Neste caso, temos uma conexo. Mas olhe atentamente para os nmeros de seqncia. Em
um ponto, quatro pacotes em uma linha (seqncia de 19 a 22) se perder. Quo alto uma queda pacote
taxa ainda aceitvel? 1% ou 2%, provavelmente ainda (mal) aceitvel. Com o tempo voc
chegar a 10%, porm, as coisas parecem muito pior. 10% taxa de descarte de pacotes no significa que o seu
conexo diminui em 10%. Para cada pacote descartado, voc tem um atraso mnimo
de um segundo at tentativas TCP-lo. Se esse pacote retried fica cado demais, que ele vai
a cada 10 pacotes descartados se voc tem uma queda de 10% de taxa, a segunda tentativa toma outro
trs segundos. Se voc est transmitindo pacotes de 64 bytes em um kb / s 33,6 ligao, voc pode
costuma receber cerca de 60 pacotes por meio de por segundo. Com 10% de perda de pacotes, o tempo para obter
esses pacotes atravs de cerca de oito segundos, uma perda de rendimento de 87,5%.
Com 20% de perda de pacote, os resultados so ainda mais dramtico. Agora, 12 dos 60 pacotes tm
para ser repetida, e 2,4 deles ser repetida uma segunda vez (durante trs segundos de atraso), e
0.48 deles ser repetida pela terceira vez (seis segundos de atraso). Isto d um total de 22
segundos de atraso, taxa de transferncia de uma degradao de cerca de 96%.
Teoricamente, voc pode pensar que a degradao no seria to ruim para os pacotes grandes,
como voc pode ter com as transferncias de arquivos com FTP. Na verdade, a situao pior ento: em
maioria dos casos, a taxa de queda de pacotes aumenta acentuadamente com o tamanho do pacote, e comum
suficiente que ftp vezes fora completamente antes que ele possa transferir um arquivo.
Para se ter uma melhor viso do que est acontecendo, vamos olhar para outro programa, tcpdump.
411
tcpdump
tcpdump um programa que monitora uma interface de rede e exibe selecionado
informao que passa atravs dele. Ele usa o Berkeley Packet Filter (BPF), um opcional
componente do kernel. Est includo nas verses recentes do GENRICO kernel, mas
possvel remov-lo. Se voc no configurar o filtro de pacotes Berkeley, voc tem uma
mensagem do tipo:
tcpdump: / dev/bpf0: dispositivo no configurado
tcpdump representa um potencial problema de segurana: voc pode us-lo para ler qualquer coisa que vai
sobre a rede. Como resultado, voc deve estar raiz para execut-lo. A maneira mais simples para execut-lo
sem nenhum parmetro. Isso faz com que tcpdump para monitorar e exibir todo o trfego na
primeira interface de rede ativa, normalmente Ethernet:
# Tcpdump
tcpdump: escutando ep0
1: 13:27:57.757157 arp who-tem wait.example.org dizer presto.example.org
2: 13:28:06.740047 00:04 c: a5: 00:00:00 2:0:0:0:45:0 4011 80:
c93c c06d c589 c06d c5ff 007b 007b 0038
5ccb 1d03 06ee 0000 5613 0000 1093 CB15
2512 b7e2 de6b 0ead c000 0000 0000 0000
0000 0000 0000
3: 13:28:06.740117 freebie.example.org.ntp> 223.147.37.255.ntp: v3 bcast Strat 3 p
oll 6 prec -18
4: 13:28:08.004715 arp who-tem wait.example.org dizer presto.example.org
5: 13:28:10.987453 bumble.example.org.who> 223.147.37.255.who: udp 84
6: 13:28:13.790106 freebie.example.org.6000> presto.example.org.1089: P 536925467:
536925851 (384) ack 325114346 vitria 17280 <nop, nop, timestamp 155186 1163778, nop, no
p, [| tcp]> (DF)
7: 13:28:13.934336 arp who-tem freebie.example.org dizer presto.example.org
8: 13:28:13.934444 arp resposta freebie.example.org -at 0: a0: 24:37: d: 2b
9: 13:28:13.935903 presto.example.org.1089> freebie.example.org.6000:. ack 536925
851 win 16896 <nop,nop,timestamp 1.190.189 155186,nop,nop,[|tcp]> (DF)
10: 13:28:13.936313 freebie.example.org.6000> presto.example.org.1089: P 536925851
: 536926299 (448) ack 325114346 vitria 17280 <nop, nop, timestamp 155186 1190189, nop, no
p, [| tcp]> (DF)
A primeira mensagem mostra a interface em que tcpdump escuta. Por padro, ele o
primeira interface de corrida que ele encontra. tcpdump Buscas a lista de interfaces no
seqncia que ifconfig-a monitores. Geralmente, voc pode assumir que ele ir encontrar o
interface Ethernet primrio. Se voc quiser ouvir em outra interface, especific-lo em
na linha de comando. Por exemplo, para escutar em uma interface PPP, voc entraria
# Tcpdump-i tun0
tcpdump
412
A linha 1 mostra um ARP request: sistema presto est procurando o endereo Ethernet
esperar. Parece que espera est no responder, j que no h resposta.
A linha 3 representa uma transmisso ntp mensagem. Olhamos ntp , na pgina 155.
Linha 5, uma mensagem de difuso a partir de bumble no rwho porto, dando informaes
sobre as mdias de carga atuais e quanto tempo ele foi para cima. Veja a pgina de manual
rwho (1) para mais informaes.
A linha 6 de uma conexo TCP entre a porta 6000 em freebie e porta 1089 de
presto. Ele est enviando 384 bytes (com os nmeros de seqncia 536925467 a
536925851, ver pgina 282), e o reconhecimento de que o ltimo byte recebido do
presto tinha o nmero de sequncia 325114346. O tamanho da janela 17280.
Linha 7 outra solicitao ARP. presto est procurando o endereo Ethernet freebie.
Como isso pode acontecer? Acabamos de ver que eles tm uma conexo TCP. Na verdade,
Informaes ARP expira aps 20 minutos. bem possvel que todas as conexes
entre presto e freebie ter sido dormente para este perodo, de modo presto precisa encontrar
O endereo IP do freebie novamente.
A linha 10 mostra um outro 448 bytes de dados a partir de freebie a presto, e reconhece
o mesmo nmero de sequncia presto como na linha 6.
Linha 4 mais uma tentativa por presto para encontrar o endereo IP do esperar.
Linha 9 mostra uma resposta de presto a ligao freebie que vimos na linha 6.
Ele reconhece os dados at o nmero de seqncia 536925851, mas no envia qualquer
si.
ganhar 17520
ganhar 17520
(DF)
ganhar 17520
ganhar 17520
(DF)
(DF)
(DF)
(DF)
413
A primeira linha mostra freebie envio de bytes de 20 a 40 do corrente para bub, e tambm
confirmando o recebimento de tudo para byte 77 do fluxo de hub. Na prxima
linha, cubo envia bytes 77-97 e reconhece receber at 40 byte do fluxo
de freebie. freebie ento envia mais de 20 bytes, e reconhece que recebeu
de hub.
Aps dois segundos, freebie no recebeu uma confirmao cubo que tem a sua dados
foram recebidos, de modo a que a ltima linha envia o pacote novo.
14:16:42.316150 hub.22> freebie.1019: P 97:117 (20) ack 60 win 17520 (DF)
14:16:42.321773 freebie.1019> hub.22:. ack 117 win 17520 (DF)
Este o reconhecimento, que veio faltando um segundo mais tarde, juntamente com alguns
mais dados. freebie reconhece receb-lo, mas no enviar mais dados.
14:16:47.428694
14:16:48.590805
14:16:49.055735
14:16:49.190703
freebie.1019> hub.22:
freebie.1019> hub.22:
freebie.1019> hub.22:
hub.22> freebie.1019:
P
P
P
P
Cinco segundos depois, freebie envia mais dados, at ao byte de 120 hub. cubo responde com a sua
dados prprios um reconhecimento at byte 100. Infelizmente, os dados que enviou (137 bytes
a 157) no se alinham com os ltimos dados anteriormente recebidos (117 byte em
14:16:42.316150): bytes 117-137 esto desaparecidas. freebie assim se repete o anterior
reconhecimento e, em seguida, continua enviando seus dados:
14:16:49.190890 freebie.1019> hub.22:. ack 117 win 17520 (DF)
14:16:49.538607 freebie.1019> hub.22: P 120:140 (20) ack 117 win 17520 (DF)
14:16:49.599395 hub.22> freebie.1019: P 157:177 (20) ack 120 win 17520 (DF)
Aqui, cubo enviou ainda mais dados, agora reconhecendo os dados que freebie enviado
14:16:49.055735. Ele ainda no enviou os dados no intervalo de byte 117 a 136, de modo freebie
reenvia o ltimo reconhecimento de novo e continua a enviar dados:
14:16:49.599538 freebie.1019> hub.22:. ack 117 win 17520 (DF)
14:16:49.620506 freebie.1019> hub.22: P 140:160 (20) ack 117 win 17520 (DF)
14:16:50.066698 hub.22> freebie.1019: P 177:197 (20) ack 140 win 17520 (DF)
Novamente cubo enviou mais dados, ainda sem enviar o pacote falta. freebie tenta ainda
de novo, e, em seguida, continua a enviar dados:
14:16:50.066868
14:16:51.820708
14:16:52.308992
14:16:55.251176
freebie.1019> hub.22:
freebie.1019> hub.22:
hub.22> freebie.1019:
hub.22> freebie.1019:
.
P
.
P
ack 117
140:160
ack 160
117:217
Finalmente, cubo reenvia os dados em falta, com bytes de 117 a 217. freebie agora feliz,
e confirma o recebimento de todos os dados at 217. Isso tudo que transmitiu, ento depois
cerca de 1,5 segundos a dois sistemas de troca de agradecimentos finais:
tcpdump
414
Esta conexo menos do que perfeito. Por qu? Voc pode usar traceroute para descobrir onde
acontecendo, mas a menos que o lugar dentro da rede do ISP, voc no pode fazer muito sobre isso.
Etreo
tcpdump uma ferramenta poderosa, mas os exemplos acima mostram que a potncia no o mais fcil
coisa do mundo para ler. Uma alternativa etreo, um programa na coleo de ports
(/ Usr / ports / net / Ethereal) que exibe os dados em mais detalhes:
415
A parte de cima mostra os pacotes individuais (numerados 51 a 54, neste exemplo). A linha
em vdeo inverso foi selecionado para exibio em mais detalhes.
A janela do meio mostra o pacote cheio. Ao clicar com o mouse sobre as caixas
esquerda, voc pode ampliar ou reduzir a quantidade de informao que est sendo exibido.
Na prtica, voc provavelmente gostaria de escalar a janela muito maior do que neste exemplo.
Esta imagem mostra parte da senha para um telnet sesso de login que est sendo retornado. Ele
ilustra uma das razes pelas quais voc nunca deve usar telnet para conectar atravs da Internet.
Neste captulo:
A World Wide Web
Os navegadores da Web
ssh
O acesso sem
senha
ssh tneis
Configurando o ssh
Soluo de problemas ssh
conexes
telnet
Copiando arquivos
scp
ftp
sftp
rsync
Usando um rsync
servidor
O Network File
Sistema
NFS cliente
NFS estranheza
24
Rede bsica
Acesso: clientes
Finalmente temos um conjunto de conexes de rede, e tudo est funcionando. O que podemos
ver com a rede? Nesta parte do livro, vamos dar uma olhada em alguns dos mais
servios importantes que compem a camada de aplicao.
Os protocolos de Internet realizar a maioria dos servios, com um par de processos: a cliente numa extremidade
do link que pede ativamente dos servios e um servidor na outra extremidade da ligao que
responde aos pedidos e executa a actividade requerida. Estes termos tambm so utilizados para
descrever sistemas de computador, mas aqui estamos falando de processos, e no sistemas. Neste
captulo, vamos olhar para o lado do cliente das coisas, e no captulo 25, Acesso rede bsica:
servidores vamos olhar para os servidores correspondentes.
Provavelmente, o nico servio de rede mais importante a Hypertext Transfer Protocol ou
HTTP, o servio que os navegadores usam para acessar a web. Ns vamos olhar para navegadores
na prxima seo.
O prximo servio mais importante , provavelmente, o Simple Mail Transfer Protocol ou SMTP,
o primeiro servio para envio de mensagens volta da Internet. H tambm o Correio
Protocolo ou POP, que usado pelos sistemas incapazes de executar SMTP. Este tpico to
importante que ns vamos dedicar os captulos 26 e 27 para ele.
Para usar uma mquina remota de forma eficaz, voc precisa de um melhor acesso a esses servidores especializados
pode lhe dar. O acesso mais poderoso , obviamente, quando voc pode executar um shell na
mquina remota, que lhe d efetivamente o mesmo controle sobre a mquina que voc tem
da sua mquina local. Uma srie de servios esto disponveis para fazer isso. Nos velhos
dias, voc usaria telnet ou rlogin para entrar em outra mquina. Estes programas so
netclient.mm, v v4.12 (2003/04/02 03:42:50)
415
O FreeBSD completo
416
ainda conosco, mas preocupaes com a segurana torn-los efetivamente intil fora de um local de confiana
rede. Vamos olh-los brevemente na pgina 428.
A substituio preferida ssh, que significa Secure Shell. Na verdade, no uma concha em
tudo, um servio para se comunicar com um shell remoto. Ele criptografa os dados enviados pela
rede, tornando-se mais difcil para os biscoitos para abusar. Veremos isso em detalhes em
pgina 417.
Outro servio importante a capacidade de mover dados de um sistema para outro. L
h uma srie de maneiras de fazer isso. Os programas mais antigos so rcp e FTP. Estes
programas tm as mesmas preocupaes de segurana como telnet e rlogin, embora ftp ainda tem algum
usa. Programas de cpia mais modernos usam scp, que se baseia em SSH. Ns vamos olhar para arquivo
copiar programas na pgina 429. Alm disso, rsync um programa til para manter
copia os arquivos idnticos em sistemas diferentes. Vamos olhar para ele na pgina 435.
Uma abordagem um pouco diferente o Network File System ou NFS, que monta arquivo
sistemas de outra mquina, como se fossem locais. Ns vamos olhar para clientes NFS na pgina
438.
Os navegadores da Web
A navegador um programa que recupera documentos da Web e os exibe.
O sistema FreeBSD de base no inclui um navegador web, mas um grande nmero so
disponvel na Coleo de Ports. Todos os navegadores parecem ter uma coisa em comum:
eles so buggy. Eles freqentemente falhar quando apresentados com pginas web, destinado a
Microsoft, e em outros casos eles no exibir a pgina corretamente. Em muitos casos isto
devido a pginas da web mal projetados, claro.
Atualmente, os navegadores mais importantes so:
netscape Era uma vez o nico jogo na cidade, mas agora est mostrando a sua idade. Alm disso,
muitos sites s testar seu software com a Microsoft e seus erros causam problemas
com Netscape.
mozilla derivado das mesmas fontes Netscape, mas vem em forma de fonte. Ele
j atingiu o estgio em que menos bugs do que Netscape. Um certo nmero de outros
navegadores, como o galeon e skipstone, so baseados em Mozilla. Eles esto todos disponveis
na Coleo de Ports. galeon est includo no instant-workstation porta descrito
netclient.mm, v v4.12 (2003/04/02 03:42:50)
417
no Captulo 6.
Voc pode notar duas omisses desta lista. Da Microsoft Internet Explorer No est disponvel
para o FreeBSD. Muitas pessoas no tm faltado. Alm disso, mosaico, o navegador original
agora completamente obsoleto, e foi removido do ports.
Alm destes navegadores StarOffice e OpenOffice incluir navegadores integrados.
Voc pode achar que eles preferem.
Este livro no trata de como usar um navegador web: quase todo mundo sabe
usar uma. Voc tambm pode obter ajuda a partir de praticamente qualquer navegador, basta clicar sobre o texto ou
cone marcado Ajudar ou ?.
ssh
ssh um secure shell, um meio de executar programas remotamente usando dados criptografados
transferncias. H um nmero de diferentes aplicaes de ssh: existem dois diferentes
protocolos, e as implementaes so complicadas, tanto por insetos e condies da licena.
FreeBSD vem com uma implementao de ssh chamado OpenSSH, originalmente desenvolvido como
parte do projeto OpenBSD.
Utilizao ssh simples:
$ Ssh freebie
A autenticidade do host 'freebie.example.org (223.147.37.1)' no pode ser estabelecida.
DSA chave impresso digital 08: f7: c4: 14:48:00 b: 14:06:00 e: 2c: 93:4 b: 1F: f6: ce: b5.
Tem certeza de que quer continuar ligando (sim / no)? sim
Aviso: Permanentemente acrescentado "freebie.example.org '(DSA) para a lista de hosts conhecidos.
grog@freebie.example.org 's password:
como de costume, no ecoa
ltimo login: Seg 13 maio 2002 14:21:11
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
Os Regentes da Universidade da Califrnia. Todos os direitos reservados.
FreeBSD 5.0-RELEASE (FREEBIE) # 3: Sun 05 de janeiro 13:25:02 CST 2003
Bem-vindo ao FreeBSD!
$ Tty
/ Dev/ttyp3
$
Uma vez que voc chegar at aqui, voc est conectado mquina em quase da mesma maneira como se
estivesse diretamente ligado. Isto particularmente verdadeiro se voc estiver executando X. Como a sada
do tty mostra de comando, o terminal de'''' um pseudo-tty ou pta (Pronuncia-se'' pena'').
Esta a mesma relao que voc tem com um xterm.
netclient.mm, v v4.12 (2003/04/02 03:42:50)
ssh
418
Vale a pena olhar com mais detalhes a forma como a conexo estabelecida:
A primeira linha (A autenticidade ...) aparece uma vez ssh estabeleceu preliminar
contato com o sistema remoto. Ele indica que voc est conectado, mas que o local de
sistema no tem informaes sobre o sistema remoto. Teoricamente voc poderia ser
conectada a uma mquina diferente que aparece como a mquina que voc deseja se conectar
para. ssh salva a impresso digital em ~ / .ssh / Known_hosts e verifica-lo cada vez que voc
ligar a essa mquina posteriormente.
A referncia s teclas indica que DSA ssh est a utilizar o ssh Protocolo verso 2.
Ns vamos olhar para as diferenas entre os protocolos abaixo.
Quando voc faz logon em via ssh, h uma chance de que seu PRAZO varivel de ambiente definido
incorretamente. Consulte a tabela 7-3 na pgina 130 para obter mais detalhes. Lembre-se que PRAZO descreve
a exibio em sua extremidade do link. No h nenhum indicador na outra extremidade, mas do outro lado
precisa conhecer a termcap parmetros para sua exibio. Se voc estiver executando uma xterm, este
no deve ser um problema: o nome xterm propaga-se para a outra extremidade. Se voc estiver usando um
display de caracteres-oriented (/ dev / ttyvx), no entanto, o seu PRAZO varivel, provavelmente, est definido para
cons25, que muitos sistemas no sei. Se voc tiver problemas em sistemas de recusar-se a
iniciar os modos de tela cheia, quando voc se conectar a partir de um terminal virtual, tente definir o PRAZO
varivel ansi.
Para sair ssh, faa o login para fora. Se voc tiver problemas, no entanto, como uma rede pendurada, voc pode
tambm atingiu a combinao Entrar ~. Enter, que sempre cai a conexo.
419
Por padro, a chave privada para a verso 1 do protocolo armazenado no arquivo ~ / .ssh / Identity,
e a chave pblica armazenada no ficheiro ~ / .ssh / Identity_pub. Para a Verso 2, voc tem um
escolha de dois esquemas de criptografia diferentes, DSA e RSA. O correspondente privada
e chaves pblicas so armazenados nos arquivos ~ / .ssh / Id_dsa, ~ / .ssh / id_dsa.pub, ~ / .ssh / id_rsa e
~ / .ssh / Id_rsa.pub respectivamente. Se voc tem a escolha entre chaves DSA e chaves RSA
para o protocolo verso 2, use chaves DSA, que so considerados um pouco mais seguro. Voc
ainda deve ter um par de chaves RSA, caso voc queira se conectar a um sistema que no
apoiar chaves DSA.
H ainda uma questo de acesso local no autorizado, claro. Para garantir que algum
no comprometer um sistema e, em seguida, us-lo para comprometer os outros, voc precisa de um tipo de
senha para suas chaves privadas. Para evitar confuso, ssh refere-se a isto como um senha. Se
ssh encontra as chaves na ~ /. Ssh diretrio, ele tenta us-los:
$ Ssh hub
Enter passphrase for key '/ home / grog / .ssh / id_rsa': (Sem eco)
ltimo login: Sb 13 de julho de 2002 17:27:33 wantadilla.lemis
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
Os Regentes da Universidade da Califrnia. Todos os direitos reservados.
FreeBSD 5.0-STABLE (HUB) # 7: qui 26 jun 2003 00:44:34 PDT
(Etc)
Antes que voc pode usar essas teclas, voc precisa pegar as chaves pblicas no site remoto no
arquivo ~ / .ssh / Authorized_keys. Verses mais antigas do ssh usado um segundo arquivo, ~ / .ssh/authorized_keys2, para o protocolo verso 2, mas as verses modernas armazenar todas as chaves em um arquivo
netclient.mm, v v4.12 (2003/04/02 03:42:50)
420
~ / .ssh / Authorized_keys. H uma srie de maneiras de obter as chaves nesses arquivos. Se voc
j tem acesso mquina (via autenticao baseada em senha, por exemplo), voc
pode coloc-los l mesmo. Normalmente, porm, voc vai ter que arranjar outra pessoa
envolvido. Para torn-lo mais fcil, as chaves pblicas esto em ASCII, para que voc possa envi-los pelo correio.
As trs chaves pblicas geradas acima parecido com este:
1024 35 1101242842742748033454498238668225412306578450520406221165673293206460199556
751223553035331118710873315456577313425763305854786629592671460454493321979564518976
839276314768175285909667395039795936492323578351726210382756436676090411475643317216
92291413130012157442638303275673247163400686283060339457790686649 grog@bumble.exampl
e.org
ssh-dss AAAAB3NzaC1kc3MAAACBAIltWeRXnqD9HqOLn5kugPSWHicJiu1r0I9dHg8F5m2PpmupyRYSmDzs
cAcsxifo50 um yXk3Vf4P1 + EDsAwkyqFlujuMVeKoTYcOi1yrnLDWIDiAeIzt1BQ6ONwbXqxwWKCq1eo1tXxO
rTxw84VboHUuq4XFdt yPJs8QdxLhj + + + jAAAAFQC1JL tU19 + UR + c45JGom6ae29d7wAAAIAvNgdN6rTitMjD
CglN7Rq3/8WgI1kzh20XURbCe1n2yYsFifcImKb0sUYD2qsB5 + + gogzsse2IxyIECRCuyCOOFXIQ7WqkvjTp
/ T + + fuwGPIlho8eeNDRKKABUhHjkuApnoYLIC1O5uyciJ dIbGaRtGFJr0da7KlkjOLkiv3sR1gAAAIAwgKfW
sRSQJyRZTkKGIHxn3EWTvSicnIRYza + HTaMuMFHMTkNMZBjhei6EoCFpV9B1QB9MlIZgf6WXM2DlmtdUbpm7
KFA669/LZT2LvxbtGP/B + 7 + s0PMs0AgKrKgUxnhVweufMZlPvPPPOz4QS1ZZ5kYhN lu0S8yuioXYNlDtA ==
grog@bumble.example.org
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1/W3oa1ZEs58KRWMzsrZWMXzPfwoqQ + Z59p6SJlzhevsXG1P
AVWra2wcRz1utKFBjkDpJfEe 09 L7h8VAx1aYCHji50tKI8F8YT8OuWGH + UqF/37Wl292SsXsb8g80yyymSf
xgOM/HegvOuHQu46MfaPj9ddfcgY06z3ufcmXts = grog@bumble.example.org
Autenticao automaticamente
Ter que fornecer a senha pode se tornar um incmodo e at mesmo um problema srio. Se
voc deseja executar ssh a partir de scripts, no pode mesmo ser possvel fornecer a senha.
ssh tem outro recurso disponvel aqui: tem um agente de autenticao que mantm o controle de
as chaves.
O agente de autenticao chamado ssh-agent, e voc adicionar chaves com ssh-add. Devido
forma em que iniciado, ssh-agent precisa ser o antepassado do shell que voc est
correr, e do ssh-add de comando. Caso contrrio, voc v mensagens de erro como este:
$ Ssh-agent
SSH_AUTH_SOCK = / tmp/ssh-cwT9aBbV/agent.42902; exportao SSH_AUTH_SOCK;
SSH_AGENT_PID = 42903; exportao SSH_AGENT_PID;
echo Agente pid 42903;
$ Ssh-add
No foi possvel abrir uma conexo com o agente de autenticao.
421
Para resolver este problema, execute o agente em seu ambiente atual com eval, em seguida, execute
ssh-add :
$ Eval 'ssh-agent'
$ Ssh-add
Enter passphrase for / home / grog / .ssh / id_rsa: (Digitar a senha)
Identidade acrescentou: / home / grog / .ssh / id_rsa (/ home / grog / .ssh / id_rsa)
Identidade acrescentou: / home / grog / .ssh / id_dsa (/ home / grog / .ssh / id_dsa)
Identidade acrescentou: / home / grog / .ssh / identity (grog@zaphod.example.org)
Voc pode usar ssh-add do -L flag para listar as chaves que o agente de autenticao conhece atualmente
sobre:
$ Ssh-add-l
1024 02:20:01 d: 50:78: c5: 7c: 56:7 b: 1d: e3: 54:02:2 c: 99:76 grog@zaphod.example.org (RSA1)
1024 95: D5: 01: ca: 90:04:7 d: 84: f6: 00:32:07 um: ea: a6: 57:2 d / home / grog / .ssh / id_rsa (RSA)
1024 53:53: af: 22:87:07:10: e4: 5a: 2c: 21:31: ec: 29:1 c: 5F / home / grog / .ssh / id_dsa (DSA)
Se voc estiver usando um shell Bourne-style como bater, voc pode automatizar um monte de presente por
colocando os seguintes comandos no seu . Bashrc ou . Perfil arquivo:
se
fi
O primeiro utiliza a tty comando para verificar se este um shell interativo, em seguida, verifica se
j tem um agente de autenticao. Se isso no acontecer, ele comea uma. No comece um novo
agente de autenticao, se voc j tem um: voc perderia todas as chaves que o agente j
sabe. Este script no adiciona chaves, pois este requer a sua interveno e poderia ser
chato se voc tivesse que fazer isso toda vez que voc iniciar uma shell.
Quando voc executa ssh-add desta maneira, sem um arquivo de entrada, ele executa um programa para solicitar
para a senha. Por padro, ele / Usr/X11R6/bin/ssh-askpass, mas voc pode alter-lo
definindo o SSH_ASKPASS varivel de ambiente. / Usr/X11R6/bin/ssh-askpass abre
janela e pede uma senha. A partir de ento, tudo comeou sob o X
sesso ir herdar automaticamente as chaves.
422
ssh tneis
Tunelamento uma tcnica para encapsular uma conexo IP dentro de outra conexo IP.
Por que voc iria querer fazer isso? Uma razo a de adicionar a encriptao de um outro modo
conexo no criptografada, como telnet ou POP. Outra ter acesso a um servio em um
sistema que geralmente no fornecem este servio para a Internet.
Vamos considerar o uso de http em primeiro lugar. Suponha que voc est viajando, e voc quiser acessar o seu
privado web server de volta para casa. Normalmente, a ligao ao http porto de presto.example.com pode ter os seguintes parmetros:
andante
IP 192.1.7.245
Porto 9132
IP 223.147.37.2
Porto 80
presto
Mas e se o servidor passa pelo firewall da Internet global, ento voc no pode acess-lo
diretamente? Isso quando voc precisa do ssh tnel. O ssh tnel cria um local de
conexo em cada extremidade e uma ligao segura em separado atravs da Internet:
Um tnel
andante
Tunnel B
127,1
192.1.7.245
4096
3312
150.101.248.57
22
127,1
80
presto
O ssh ligao mostrado na itlico fixo fonte. Ele se parece com qualquer outro ssh
ligao. A diferena so as conexes locais em cada extremidade: em vez de falar
presto a porta 80 (http), voc fala para a porta 4096 em sua mquina local. Por que 4096? o seu
escolha, voc pode usar qualquer porta acima de 1024. Se voc estiver em andante, voc pode configurar o tnel
com o comando:
$ Ssh-L 4096: presto.example.org: 80 presto.example.org
Para fazer a mesma coisa a partir do presto final, voc configurar uma reverter tnel com a -R
opo:
$ Ssh-R 4096: presto.example.org: 80 andante.example.org
Estes comandos tanto configurar um tnel do porto em 4096 andante para a porta 80 no host
presto.example.org. Voc ainda precisa fornecer o nome do sistema para conectar, mas
no tem de ser o mesmo. Por exemplo, voc pode no ser capaz de efetuar login na web
servidor, mas voc pode acessar sua mquina de volta para casa, e no tem acesso ao servidor web.
Neste caso, voc pode conectar a sua mquina em casa:
$ Ssh-L 4096: presto.example.org: 80 freebie.example.org
Alm de configurar o tnel, ssh cria uma sesso interactiva normal. Se no o fizer
quero isso, voc pode usar o -F opo de dizer ssh ir para o fundo, depois
autenticao. Voc tambm precisa de um comando a ser executado, em caso de dvida, use sono, que
netclient.mm, v v4.12 (2003/04/02 03:42:50)
423
simplesmente dorme por um tempo especificado. Se isso que voc quer fazer, voc poderia entrar em uma
comando como:
$ Ssh-L 4096: presto.example.org: 80 presto.example.org-f sono 3600
O comando dormir 3600 suspende a execuo de uma hora (3600 segundos) e, em seguida,
sadas. Neste ponto, o tnel tambm desligado, por isso voc deve escolher o momento de ser
tempo suficiente.
X tunelamento
Correndo clientes X na mquina remota especial o suficiente para que ssh fornece uma especial
forma de tunelamento para lidar com isso. Para us-lo, voc deve dizer ssh a localizao de um
. Xauthority arquivo. Faa isso adicionando a seguinte linha ao arquivo ~ / .ssh / Environment:
XAUTHORITY = / home / seunome / .Xauthority
Configurando o ssh
Ele pode ser um pouco incmodo ter que fornecer todos estes parmetros para ssh, mas voc no
tem que: voc pode fornecer informaes para os anfitries freqentemente acessados em um arquivo de configurao.
Na inicializao, ssh verifica as informaes de configurao em um nmero de lugares. Ele verifica se h
eles primeiro nas opes de linha de comando, em seguida, voc arquivo de configurao ~ / .ssh / Config e
finalmente, no arquivo de configurao de todo o sistema / Etc / ssh / ssh_config. A forma como ele trata os
informaes duplicadas praticamente o oposto do que voc esperaria: ao contrrio da maioria dos outros
netclient.mm, v v4.12 (2003/04/02 03:42:50)
Configurando o ssh
424
programas, opes encontradas em um arquivo de configurao lido mais tarde fazer no substituir as opes
encontrado em um arquivo anterior. Opes na linha de comando substituir aqueles que figuram na
arquivos de configurao.
Na prtica, esses conflitos acontecem com menos frequncia do que voc poderia esperar. O arquivo
/ Etc / ssh / ssh_config, o principal arquivo de configurao para o sistema, normalmente contm apenas
comentrios e, por padro voc no precisa nem ter um local de ~ / .ssh / Config.
ssh_config pode conter um grande nmero de opes. Eles esto todos descritos na pgina de manual
ssh_config (8), mas vale a pena olhar para alguns dos mais comuns. Nesta seo
vamos dar uma olhada em algumas das opes de configurao mais comuns.
Note-se que a primeira porta separado dos outros dois parmetros por um espao, e no um
clon.
425
Da mesma forma, voc pode configurar um tnel reverso com o RemoteForward parmetro. Em
presto, em vez da linha de comando:
$ Ssh-R 4096: presto.example.org: 80 andante.example.org
Por padro, o ssh usa a autenticao de senha, se no puder negociar um par de chaves. Conjunto
PasswordAuthentication a no se voc no quer isso.
Por padro, o ssh tentativas de conexo utilizando o protocolo 2, e se isso no funcionar, ele tenta
para se conectar usando o protocolo 1. Voc pode substituir esse padro com o Protocolo
palavra-chave. Por exemplo, para reverter o padro e tente primeiro protocolo 1, ento o protocolo 2,
voc escreveria:
Protocolo
1,2
Por padro, o ssh se recusa a conectar a um host sabe se seus principais mudanas impresses digitais.
Em vez disso, voc deve remover manualmente a entrada para o sistema a partir da
~ / .ssh / Known_hosts ou ~ / .ssh/known_hosts2 arquivo. Isto pode indicar que algum est
falsificando a mquina remota, mas mais frequentemente porque a mquina remota tem realmente
mudou a sua chave de host, que pode fazer em cada reinicializao. Se isso d nos nervos,
voc pode adicionar esta linha ao seu arquivo de configurao:
StrictHostKeyChecking no
ssh assume que o seu nome de usurio no sistema remoto o mesmo que o nome
o sistema local. Se isso no for o caso, voc pode usar o Usurio a palavra-chave para especificar
nome de usurio remoto. Alternativamente, voc pode usar o formato:
$ Ssh newuser@remotehost.org
Configurando o ssh
426
known_hosts contm as impresses digitais de todos os principais hospedeiros para o qual voc se conectou.
O exemplo na pgina 417 mostra como ssh adiciona uma chave.
Em resumo, ento, voc pode esperar que os seguintes arquivos em seu ~ / Ssh.:
-Rw-r - r -Rw-r - r -Rw-r - r -Rw -------Rw-r - r -Rw -------Rw-r - r -Rw -------Rw-r - r -Rw -------Rw -------
1
1
1
1
1
1
1
1
1
1
1
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
chaves
chaves, verso 2 s
ambiente para sshd
DSA chave privada
DSA chave pblica
Chave privada RSA
Chave pblica RSA
RSA1 chave privada
RSA1 chave pblica
lista de hosts conhecidos
para a gerao de chaves
Observe particularmente as permisses e propriedade dos arquivos. Se eles esto errados, ssh
no vai funcionar, e no vou dizer o porqu no.
Isso provavelmente significa que o host remoto est para baixo, ou que voc no pode alcan-lo, devido
problemas de rede.
Isso significa que o host remoto est ativo, mas no sshd est em execuo.
Voc definiu as chaves, mas voc ainda recebe uma mensagem pedindo uma senha.
Isso pode significar uma srie de coisas: o seu ssh-agent no est funcionando, voc no adicionou
as chaves, do outro lado no pode encontr-los, ou a segurana nas teclas do outro lado
incorreto. Voc pode verificar as duas primeiras como esta:
$ Ssh-add-l
No foi possvel abrir uma conexo com o agente de autenticao.
netclient.mm, v v4.12 (2003/04/02 03:42:50)
427
Isso mostra que todas as trs chaves esto definidas corretamente. Se voc tiver, por exemplo, apenas um RSA1
Chave (Verso protocolo 1), e a outra extremidade no suporta o protocolo Verso 1, voc vai
obter este tipo de mensagem.
Existem duas razes possveis para esta mensagem. Como a mensagem de estados, que um
algum est tentando interceptar a ligao, e a outra que o controlo remoto
sistema mudou sua chave host. O ltimo , de longe, o mais comum. Para corrigir esse
problema, voc tem duas opes:
1. Edite seu ~ / .ssh/known_hosts2 arquivar e eliminar as referncias ao sistema remoto.
A mensagem sugere mudana de linha 39, mas voc pode ter mais de uma chave
para este sistema neste arquivo. Se algum est errado, h uma boa chance de que qualquer outro
ser tambm, ento voc deve remover todas as referncias.
2. Adicione a seguinte linha ao seu ~ / .ssh / Config arquivo:
StrictHostKeyChecking no
Isso no vai remover o aviso, mas pelo menos voc no tem que atend-la
imediatamente.
ssh inclui opes de depurao que podem ajudar a depurar problemas criao de conexes.
Use o -V opo, at trs vezes, para obter ssh para exibir em grande parte em situao irregular
informaes sobre o que est acontecendo. A sada muito detalhado, com trs -V opes
voc tem cerca de 200 linhas de informao.
netclient.mm, v v4.12 (2003/04/02 03:42:50)
428
telnet
Como mencionado acima, telnet um programa antigo no criptografadas que se conecta a um shell em um
sistema remoto. Voc pode achar que de uso ao ligar a um sistema que no tem
ssh. Tenha muito cuidado para no usar senhas valiosos, uma vez que eles so transmitidos na
limpar. Alm disso, voc us-lo muito bem, da mesma forma como ssh:
$ Telnet freebie
Tentando 223.147.37.1 ...
Conectado a freebie.example.org.
Caractere de escape ']'.
login: grog
Senha: (Sem eco)
FreeBSD/i386 (wantadilla.example.org) (ttypj)
ltimo login: Mon 14 de outubro de sydney.example.org 17:51:57
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
Os Regentes da Universidade da Califrnia. Todos os direitos reservados.
FreeBSD 5.0-RELEASE (FREEBIE) # 0: ter 31 dez 19:08:24 CST 2002
Voc tem novas mensagens.
Se eu vi mais longe do que os outros, porque eu estava de p no
ombros de gigantes.
- Isaac Newton
Nas cincias, estamos agora com exclusividade o privilgio de sentar-se lado a lado
com os gigantes em cujos ombros estamos.
- Gerald Holton
Se eu no tenho visto tanto quanto os outros, porque os gigantes estavam
sobre os meus ombros.
- Hal Abelson
Na cincia da computao, estamos com os ps uns dos outros.
- Brian K. Reid
$ Tty
/ Dev/ttyp9
$
Uma vez que voc chegar at aqui, voc est conectado mquina de forma quase idntica, como se
estivesse diretamente ligado. Isto particularmente verdadeiro se voc estiver executando X. Como a sada
do tty mostra de comando, o terminal de'''' um pseudo-tty ou pta (Pronuncia-se'' pena'').
Esta a mesma interface que voc vai ter com um xterm.
Vale a pena olhar com mais detalhes a forma como a conexo estabelecida:
A primeira linha (Trying. ..) aparece logo telnet resolveu o endereo IP.
As prximas trs linhas aparecem logo que ela tem uma resposta a partir da outra extremidade. Neste ponto,
pode haver um atraso acentuado antes telnet continua. telnet executa um DNS reverso
pesquisa para encontrar o nome de seu sistema. Se voc receber um atraso aqui, poderia ser um
indicao de que sua pesquisa inversa no est funcionando corretamente. Depois de DNS vezes para fora,
continuaro normalmente, mas o atraso um incmodo.
429
O login quase exatamente o mesmo que o login localmente. Normalmente, voc no ser
capaz de ligar-se directamente como root, a menos que voc tenha definido / Dev / ptyx como proteger
na sua
/ Etc / ttys (Veja a pgina 197 para mais detalhes). No uma boa idia para definir o seu ptys como
seguro. Usar su em vez disso, se voc quiser se tornar root.
Quando voc faz logon em via telnet, h uma boa chance de que seu PRAZO varivel de ambiente
ser definido de forma incorreta. Veja a Tabela 7-3 na pgina 130 para obter mais detalhes. PRAZO descreve o
exibir em sua extremidade da tela, e no a outra extremidade. Se voc estiver executando uma xterm, este
no deve ser um problema: provavelmente o nome xterm ir propagar para a outra extremidade. Se
voc est usando um display personagem-oriented (/ dev / ttyvx), no entanto, o seu PRAZO varivel
provavelmente ser ajustado para cons25, que muitos sistemas no sei. Se o sistema remoto
recusa-se a iniciar programas nos modos de tela cheia, tente definir o PRAZO varivel ansi.
Para sair telnet, basta fazer logoff. Se voc tiver problemas, no entanto, como uma rede pendurada,
Voc tambm pode bater Ctrl-] para introduzir telnet o modo de comando, e a partir da entra quit:
$]
telnet> quit
$
Se voc acertar Ctrl-] por acidente, basta clicar em Entrar para regressar ao telnet sesso.
Telnet seguro
Verses recentes do FreeBSD telnet incluir uma opo de conexo segura. Voc pode
reconhec-lo pelas diferentes mensagens que aparecem quando voc se conectar:
$ Telnet freebie
Tentando 223.147.37.1 ...
Conectado a freebie.example.org.
Caractere de escape ']'.
Tentando SRA login seguro:
Usurio (grog):
Senha:
[SRA aceita voc]
No h nenhuma razo especial para usar esta verso do telnet, fora do padro, e voc est
ainda melhor com ssh.
telnet
430
Copiando arquivos
A outra funo bsica envolve a cpia de arquivos entre sistemas. As ferramentas tradicionais
so ftp e rcp. Nem o uso de criptografia, por isso prefervel usar scp, uma variante do ssh.
No entanto, ftp tem as suas utilizaes. Sobre o uso apenas para rcp em sistemas que no
apoiar scp, ou sistemas onde a segurana no um problema, e scp to lento que no
prtico. A boa notcia: voc usa rcp praticamente da mesma forma que scp: scp foi
concebido para ser compatvel com rcp, assim voc no precisa aprender mais nada, se voc quiser
us-lo.
scp
scp uma variante ssh utilizado para cpia remota. As mesmas consideraes se aplicam acesso
quanto a ssh. A sintaxe para a cpia semelhante sintaxe usada por NFS: para copiar um arquivo
/ Var / log / messages de presto para o arquivo prestomessages na mquina local, voc
pode entrar:
$ Scp presto :/ var / log / messages prestomessages
Como ssh, se voc precisa se autenticar como um usurio diferente, voc pode usar o formulrio
usurio do sistema @. scp no suporta o -L opo para especificar o nome de usurio.
scp tem um nmero de opes de reminiscncia cp:
Use o -P opo para preservar vezes e permisses de modificao sempre que possvel.
Note que isto significa que voc no pode usar ssh do -P opo para especificar uma porta alternativa. scp
utiliza o -P opo para este lugar.
Voc no precisa fornecer nomes de caminho completos para scp, voc pode escrever coisas como:
$ Scp remotehost: file.
Esta procura por um arquivo chamado arquivo em seu diretrio pessoal na mquina remota e cpias
lo para seu diretrio local atual. Note a diferena: no h nenhuma maneira para scp conhecer um
diferente diretrio remoto, caminhos to relativos so sempre em relao ao diretrio base
essa mquina.
ftp
ftp o Programa de Transferncia de Arquivo Internet, e a maneira padro para transferir arquivos grandes
longas distncias atravs da rede. Ele funciona para arquivos pequenos e distncias curtas tambm, mas voc
pode achar que scp ou NFS alternativas melhores nestas reas.
netclient.mm, v v4.12 (2003/04/02 03:42:50)
431
Um problema srio na duplicao de arquivos atravs da rede que voc precisa ter
permisso para acessar o sistema remoto. Tradicionalmente, voc precisa de um ID de usurio para acessar um
sistema. Claro, o servidor de arquivos pode ter um ID de usurio especfico, sem uma senha, mas
que jogaria o sistema aberto a ataques de crackers. ftp resolve este problema
reconhecendo o utilizador especial FTP. Este nome de usurio utilizado para ser annimo, mas acabou
a ser um problema para soletrar. ftp servidores ainda aceitar o nome annimo bem. Login
especial: voc no precisa de uma senha, mas por conveno, para ajudar o sistema
administradores com sua contabilidade, voc deve digitar seu ID de usurio real no lugar do
senha quando efetuar login como FTP. Uma sesso tpica pode parecer:
$ Ftp ftp.freebsd.org
Conectado a ftp.beastie.tdk.net.
cd 220 servidor FTP ftp.beastie.tdk.net (Verso 6.00LS) pronto.
331 visitantes de login ok, envie seu endereo de e-mail como senha.
230 - O espelho FreeBSD no Tele Danmark Internet.
Mais mensagens omitidos
Nome (grog): ftp
331 visitantes de login ok, envie ident como senha.
Senha:
nome de usurio no ecoa
230 visitantes de login ok, aplicar restries de acesso.
Tipo de sistema remoto UNIX.
Usando modo binrio para transferir arquivos.
ftp> bin
para assegurar a transferncia de binrio
200 Tipo definido para I.
ftp> cd / pub / FreeBSD / ports / distfiles
250 comando CWD bem sucedida.
ftp> get xtset-1.0.tar.gz
Local: remoto xtset-1.0.tar.gz: xtset-1.0.tar.gz
229 Entering Passive Mode Extended (| | | 58059 |)
150 Opening BINARY conexo de dados para o modo 'xtset-1.0.tar.gz' (4239 bytes).
100% | ************************************* | 4239 5.49 KB / s 00:00
226 Transferncia concluda.
4239 bytes recebidos em 00:00 (5,49 kb / s)
ftp> D
221 Adeus.
O servidor pode ter vrios nomes, e aquele que voc usa pode no ser a sua cannica
nome (o nome especificado no DNS do servidor A pgina de registro para ver 363). Por
conveno, a primeira parte do nome de um ftp servidor est FTP. Aqui, ligado ao
com o nome do servidor ftp.FreeBSD.org, mas o nome cannico do servidor
ftp.beastie.tdk.net.
Algumas verses do ftp transmitir em modo ASCII por padro: eles mudam a cada
incidncia do carter de avano de linha ASCII (constante da linguagem C \ N) ao
seqncia \ R \ n (Eles preceder um caractere retorno de carro ASCII). Isso permite que voc
imprimir os resultados em impressoras normais, mas faz uma terrvel confuso de arquivos binrios.
Transmitindo na forma binria sempre funciona. Como a mensagem mostra, o FreeBSD ftp
servidor usa o modo binrio, mas no faz mal para entrar no caixa de comando. O
mensagem Tipo definido para I. caminho de ftp de dizer-lhe que estabeleceu binrio
o modo de transmisso.
ftp
432
00:02
Note-se que, neste caso, voc no pode simplesmente especificar o URI como http://www.FreeBSD.org/ : Voc
deve especificar o nome do arquivo real.
mget
Freqentemente voc precisa copiar mais de um nico arquivo. Por exemplo, se voc tem atualmente
gcc-2.5.0 e deseja obter gcc-2.5.8, voc vai descobrir os seguintes arquivos no arquivo
servidor:
ftp> ls
200 comando PORT sucesso.
150 Opening ASCII conexo de dados de modo a
-Rw-rw-r - 1 117 1001
43367 01 de novembro 02:37
-Rw-rw-r - 1 117 1001
1010 01 de novembro 02:37
-Rw-rw-r - 1 117 1001
78731 11 novembro 13:53
-Rw-rw-r - 1 117 1001
13931 17 nov 09:27
/ Bin / ls.
gcc-2.5.0-2.5.2.diff.gz
gcc-2.5.1-2.5.2.diff.gz
gcc-2.5.2-2.5.3.diff.gz
gcc-2.5.3-2.5.4.diff.gz
netclient.mm, v v4.12 (2003/04/02 03:42:50)
433
-Rw-rw-r - 1
-Rw-rw-r - 1
-Rw-rw-r - 1
-Rw-rw-r - 1
-Rw-rw-r - 1
-Rw-rw-r - 1
-Rw-rw-r - 1
226 Transferncia
ftp>
Novembro
Dezembro
Novembro
Dezembro
Jan
Dezembro
Jan
27
27
12
24
2
24
16:48
3 09:22
16:49
19:15
09:02
14:16
09:03
gcc-2.5.4-2.5.5.diff.gz
gcc-2.5.5-2.5.6.diff.gz
gcc-2.5.5.tar.gz
gcc-2.5.6-2.5.7.diff.gz
gcc-2.5.7-2.5.8.diff.gz
gcc-2.5.7.tar.gz
gcc-2.5.8.tar.gz
incitar
Utilizao mget salva um monte de banda de rede e copia os arquivos mais rpido, mas tem um
desvantagem: ftp pede-lhe para cada nome do arquivo, ento voc tem que esperar para responder
as instrues. Se no o fizer, ftp desliga aps 15 minutos de inatividade. Seria
mais simples de executar todo o mgets sem qualquer interveno. Este o lugar onde o prompt
comando vem dentro
O incitar comando especifica se a emitir avisos certo ou no, o mget
comando um exemplo. Este comando um toggle-em outras palavras, se perguntar est ligado,
incitar desliga, e se levando estiver desligado, incitar transforma-lo. Se levando estiver desligado, o
mget comando no exemplo anterior teria atravessado sem interrupes.
No exemplo anterior, voc realmente no quer transferir o arquivo gcc-2.5.1-2.5.2.diff.gz,
porque voc no precisa dele para realizar as correes: voc pode atualizar de 2.5.0 para 2.5.2
diretamente com o arquivo gcc-2.5.0-2.5.2.diff.gz. Por outro lado, no copiar o arquivo seria
significa sentar em torno da durao da transferncia e respondendo a solicitao para cada
arquivo, eo arquivo de apenas 1 kB longo. Neste caso, razovel copiar bem in
outros casos, voc pode precisar de considerar alternativas.
ftp
434
reget
Cedo ou tarde, voc vai perder uma ligao no meio de uma transferncia. Conforme
A lei de Murphy, este ser geralmente acontecer com um grande ficheiro, e ser um pouco antes do
transferncia est terminado. Voc pode ser capaz de salvar o dia com reget, que pega o
transferir de onde parou. A semntica o mesmo que para obter.
Infelizmente, nem todas as verses do ftp tm o reget comando e, em muitos sistemas que
tm o comando, ele no funciona corretamente. Se voc fazer decidir us-lo, voc deve
primeiro fazer uma cpia do arquivo parcialmente copiado, no caso de algo der errado.
usurio
Normalmente, ftp tentativas de login usando o nome de usurio do usurio que iniciou o ftp
programa. Para tornar a estabelecer conexes mais fcil, ftp verifica um arquivo chamado . Netrc
ao executar uma seqncia de login. . Netrc contm informaes sobre como fazer login no
sistemas especficos. Um tpico . Netrc pode parecer:
mquina
mquina
mquina
mquina
omisso
freebie
presto
bumble
esperar
login
login
login
login
login
grogue
grogue
grogue
grogue
ftp
senha
senha
senha
senha
senha
foo
bar
baz
zot
grog@example.org
As linhas que comeam com a palavra-chave mquina especifique o nome de login (grog neste exemplo) e
senha para cada sistema. A ltima linha o importante: se o sistema no estiver
mencionado pelo nome, ftp tenta um login com nome de usurio ftp e senha
grog@example.org. Embora isso possa ser de uso com os sistemas que voc no conhece, que
provoca
um problema: se voc deseja se conectar a uma mquina sem annimo ftp, voc vai precisar
dizer explicitamente ftp no tentar um auto-login. Faa isso com o -N opo:
$ Ftp-n ftp.remote.org
O . Netrc arquivo um risco de segurana: contm todas as suas senhas de forma legvel. Fazer
certeza de que seguro para que apenas voc pode ler ou escrever.
ftp no est muito claro sobre falhas de login. Por exemplo, a
$ Ftp ftp.tu-darmstadt.de
Conectado a ftp.tu-darmstadt.de.
220 servidor FTP rs3.hrz.th-darmstadt.de (Verso 4.1) pronto.
331 Senha necessria para grog.
530 Entrada incorreta.
Entrar falhou.
Tipo de sistema remoto UNIX.
Usando modo binrio para transferir arquivos.
ftp>
Esta mensagem de erro no muito bvia: embora voc no est logado, voc ainda obter o
mesmo rpida, e ftp palavreado produz o suficiente para que seja fcil para supervisionar que o logon
tentativa falhou. Para completar o login, use o usurio comando:
435
sftp
sftp ainda um outro programa baseado ssh. Ele foi projetado para ser o mais compatvel possvel com
ftp, para voc us-lo exatamente da mesma maneira. Tal como acontece com outros comandos ssh-relacionados, voc
precisa se autenticar em um forma especfica de ssh. Alm disso, ele tem um exec comando,
que permite a execuo de programas na mquina remota.
Para usar sftp, a mquina remota deve ser capaz de executar o servidor sftp servidor. normalmente
iniciada a partir de sshd. Consulte a pgina 451 para mais detalhes.
rsync
Frequentemente voc quer manter cpias idnticas de arquivos em diferentes mquinas. Voc pode
copi-los, claro, mas se houver apenas pequenas alteraes em arquivos grandes, isso pode ser
relativamente ineficiente. Voc pode executar esta tarefa de forma mais eficiente com rsync, que
projetado para manter cpias idnticas de arquivos em e para otimizar a largura de banda de rede enquanto
faz-lo. na coleo de ports. Instale de forma normal:
# Cd / usr / ports / net / rsync
# Make install
Por padro, o rsync usa ssh para realizar a transferncia, por isso voc precisa ter ssh configurado
corretamente. Em particular, voc deve estar usando ssh-agent autenticao.
Voc pode usar rsync como scp: a sintaxe compatvel at certo ponto. Por exemplo, voc
pode copiar um arquivo de um sistema remoto com:
$ Rsync presto :/ var / log / messages prestomessages
Voc no precisa instalar rsync s para isso, claro: voc pode fazer exatamente a mesma coisa
com scp. rsync tem uma vantagem sobre scp, no entanto, mesmo neste caso. A primeira vez
de copiar o arquivo, no h nenhuma diferena. Mas os arquivos como / Var / log / messages crescer no final,
eo resto no muda. Essa uma situao ideal para rsync: utiliza um algoritmo que
reconhece partes comuns de arquivos (no necessariamente no incio) e otimiza a
transferir conformidade. A primeira vez que voc executar o programa, voc pode ver:
$ Rsync-v / var / log / messages freebie :/ var / tmp
mensagens
escreveu 80,342 bytes ler 36 bytes 53.585,33 bytes / seg
de tamanho total de 80255 acelerao de 1,00
$ Rsync-v / var / log / messages freebie :/ var / tmp
mensagens
escreveu 535 bytes ler 726 bytes 840,67 bytes / seg
tamanho total de 80.255 acelerao 63,64
netclient.mm, v v4.12 (2003/04/02 03:42:50)
rsync
436
Este exemplo usou a opo -V para mostrar detalhes do que foi transferido, caso contrrio voc
no v nenhuma sada em tudo. A primeira vez, todo o arquivo foi copiado, ento no
houve aumento de velocidade. O segundo tempo, porm, quase nada precisava ser copiado, ento o
transferncia foi mais de 60 vezes mais rpido.
-L cpias links simblicos (que a documentao se refere como'''' soft links) como
arquivos separados. Se voc no incluir essa opo, links simblicos para arquivos dentro do
hierarquia de diretrios ir funcionar, mas as ligaes fora da hierarquia pode ser quebrado
(Dependendo se um arquivo com esse nome existe no sistema de destino ou no). Em
Neste exemplo, um nmero de arquivos realmente esto localizados em outro lugar, por isso faz sentido para copiar
los como arquivos.
A opo -Z diz rsync para comprimir dados. Isto pode reduzir significativamente o trfego.
A opo -Um ('' Arquivo'') na verdade uma notao abreviada para um total de sete outros
opes. Vamos ver alguns deles abaixo. Os outros so:
-L: criar links simblicos se necessrio. Neste exemplo, ele rejeitado pelo
-L opo.
437
A opo -P diz rsync para definir as permisses de cpia remota para ser o mesmo que
aqueles do arquivo original.
A opo -G diz rsync para definir a propriedade do grupo da cpia remota para ser o
iguais s do arquivo original.
A opo -O diz rsync para definir a propriedade da cpia remota para ser a mesma
aqueles do arquivo original.
Isto parece duplicar o diretrio / Home / grog / Mail no sistema remoto para um
diretrio com o mesmo nome no sistema local. Na verdade, ele move-se o contedo do hospedeiro
/ Home / grog / Mail a / Home / grog / Mail / Mail na mquina local. Para fazer o que voc
esperar, escreva para:
$ Rsync-zHLav presto casa :/ / grog / Mail.
A primeira linha simplesmente uma mensagem de identificao, referida como uma mensagem do dia em
a documentao. Os outros representam hierarquias de diretrios que o servidor faz
netclient.mm, v v4.12 (2003/04/02 03:42:50)
438
5632
3855
2363
8345
11590
1798
1953
2002/10/24
2002/03/16
2002/03/16
2002/03/16
2002/03/16
2002/03/16
2002/03/16
12:40:38
13:51:12
13:51:12
13:51:12
13:51:12
13:51:12
13:51:12
.
20feb99.html
7mar1999.html
AOSS-programa-orig.html
AOSS-programme.html
BSDCon-2002.html
Essey-20020222.html
Este exemplo utiliza o -V opo para mostrar o que rsync fez, sem ela, no haveria
nenhuma sada.
Se voc quiser transferir todo o mdulo, utilize o -R ou -Um opes que ns olhamos acima:
$ Rsync-r-v freebie :: grogue.
Isto freebie.example.org. Seja gentil.
receber lista de arquivos ... feito
pulando de arquivo no-regular "Images/20001111"
20feb99.html
7mar1999.html
AOSS-programa-orig.html
AOSS-programme.html
BSDCon-2002.html
Etc ...
439
administrador do sistema deseja montar sistemas de arquivos de brinde /, / usr e / Home, que podia
digite:
#
#
#
#
mkdir
montar
montar
montar
/ Freebie
freebie :/ / freebie
freebie :/ usr / brinde / usr
freebie :/ home / brinde / home
Voc vai notar como especificar os sistemas de arquivos: o nome do sistema, dois pontos (:) eo arquivo
nome do sistema. Esta terminologia antecede URIs, hoje em dia, as pessoas provavelmente iria escrever
nfs :/ / brinde / usr.
Note tambm que voc no precisa criar / Brinde / usr e / Brinde / home: assumindo que o
diretrios / Usr e / Home existir em vez de ter montado / Brinde, eles se tornaro
visvel.
Se voc olhar para NFS mais de perto, as coisas no parecem to semelhantes aos discos como eles fazem em
primeira vista. Voc acessa sistemas de arquivos locais via o driver de disco, que parte do kernel.
Voc acessa sistemas de arquivos NFS via os processos NFS.
Implementaes mais antigas do NFS teve uma infinidade de processos. Se voc est acostumado a tais
sistemas, no deixe que a falta de processos de faz-lo pensar que h algo faltando.
NFS cliente
Voc no precisa de nenhum software especial para funcionar como um cliente NFS, mas o programa nfsiod
melhora o desempenho.
Comeou no tempo de inicializao se voc especificar
nfs_client_enable = "YES" na sua / Etc / rc.conf, mas voc tambm pode inici-lo manualmente, se
ele no est funcionando:
# Nfsiod n-6
O parmetro 6-n diz nfsiod quantas cpias de si mesmo para comear. O padro quatro.
Cada nfsiod pode lidar com um pedido de I / O concorrente, por isso, se voc achar que seu desempenho
no o que voc gostaria que fosse, eo tempo de CPU utilizado por cada nfsiod semelhante, ento
que voc gostaria de aumentar este valor. Para garantir isso feito automaticamente no momento da inicializao, adicione
o que se segue para / Etc / sysctl.conf :
vfs.nfs.iothreads = 6
Ns olharemos / Etc / rc.conf e / Etc / sysctl.conf com mais pormenor no captulo 29.
NFS cliente
440
H uma srie de opes que voc pode querer usar ao montar sistemas de arquivos NFS.
Infelizmente, as opes mount_nfs utilizaes no so as mesmas que as opes que
usar em / Etc / fstab. Aqui est um resumo:
Tabela 24-1: Opes de montagem NFS
fstab
opo
bg
mount_nfs
opo
-B
Significado
NFSv2
-2
repetir = num
-Rnum
-O ro
-O ro
-O rw
-O rw
-R Num
-R Num
-R tamanho -R tamanho Defina o tamanho do bloco de dados de leitura para tamanho bytes. tamanho
suave
-S
-T Num
-T Num
tcp
-T
441
fstab
opo
mount_nfs
opo
Significado
-W tamanho -W tamanho Defina o tamanho do bloco de dados de gravao para tamanho bytes. tamanho
Normalmente, as nicas opes que so de interesse so -O ro, se voc quiser especificamente para
restringir o acesso ao sistema de arquivos escrever e macia, que voc deve sempre usar.
Os puristas afirmam que suave compromete a integridade dos dados, porque pode deixar os dados no servidor
mquina em um estado desconhecido. Isso verdade, mas na prtica a alternativa de montagem suaves
reiniciar a mquina cliente. Este no apenas um incmodo, ele tambm compromete a integridade dos dados.
A nica soluo que nem sempre comprometer a integridade dos dados esperar que a mquina servidor
voltar online. improvvel que algum esperar mais do que algumas horas para o exterior para
um servidor para voltar.
Se voc tem um'' especial'' sistema de arquivos que voc deseja montar em vrios sistemas,
faz sentido para mont-lo no mesmo ponto de montagem em cada sistema. freebie tem dois
sistemas de arquivos, / S e / Src, que contm arquivos de origem e so compartilhados entre todos os
sistemas na rede. Faz sentido para montar o sistema de arquivos no mesmo
diretrio.
Alguns outros sistemas de arquivos no pode ser montado no mesmo lugar. Por exemplo, a
freebie :/ usr no pode ser montado na / Usr. Mont-los em diretrios que correspondem a
nome do sistema. Por exemplo, montar freebie :/ usr em / Brinde / usr.
Aps fazer isso, voc pode encontrar os seguintes sistemas de arquivos montados em brinde:
# Df
Filesystem 1024-blocks
/ Dev/ad0s1a 30206
/ Dev/ad0s1e 1.152.422 1.016.196
/ Dev/da0h 931630
/ Dev/da1h 2.049.812 1.256.636
procfs 4
/ Dev/cd0a 656406
Usado
26830
614047
4
656406
NFS cliente
/
/
/
/
/
/
Dev/cd1a
Dev/cd2a
Dev/cd3a
Dev/cd4a
Dev/cd5a
Dev/cd6a
442
664134
640564
660000
525000
615198
278506
664134
640564
660000
525000
615198
278506
0
0
0
0
0
0
100%
100%
100%
100%
100%
100%
/
/
/
/
/
/
Cdrom
Cdrom
Cdrom
Cdrom
Cdrom
Cdrom
/
/
/
/
/
/
2
3
4
5
6
7
em vez de:
# Mount-s freebie :/ src / src
NFS estranheza
NFS imita um sistema de arquivos local em toda a rede. Ele faz um trabalho muito bom, mas no
perfeito. Aqui esto algumas coisas que voc deve considerar.
Nenhum dispositivo
NFS lida com arquivos de disco e diretrios, mas no dispositivos. Na verdade, ele lida com dispositivos tambm,
mas no da maneira que voc esperaria.
Em um sistema de arquivos UNIX, um dispositivo mais corretamente conhecida como n de dispositivo: um inode
que descreve um dispositivo em termos de nmeros maiores e menores (ver pgina 195). O
prprio dispositivo implementado pelo controlador do dispositivo. NFS exporta ns de dispositivo no arquivo UFS
sistemas, mas no interpreta o facto de que estes dispositivos so de outro sistema. Se voc
referem-se aos dispositivos, uma de trs coisas acontecer:
netclient.mm, v v4.12 (2003/04/02 03:42:50)
443
Se um driver para o nmero principal especificado existe no seu sistema local, e os dispositivos
so as mesmas em ambos os sistemas, voc vai acessar o dispositivo local. Dependendo de qual
dispositivo , isso poderia criar alguns problemas sutis que podem passar despercebidos por bastante
quando.
Se um driver para o para o maior nmero especificado existe no seu sistema local, ea
dispositivos so diferentes nos dois sistemas, voc ainda vai acessar o dispositivo local com o
mesmos nmeros maiores e menores, se existir um tal dispositivo. Os resultados podem ser muito
confusas.
Se nenhum driver para o nmero principal especificado existe no seu sistema local, o pedido
falhar. Isso ainda pode causar confuso considervel.
Se o sistema de servidor NFS executado devfs, os ns de dispositivos no so exportados. Voc no vai ver
nada menos que haja sobras de ns de dispositivos antes da poca de migrao para devfs.
Voc vai para o modo multi-usurio e montar os outros sistemas de arquivos, incluindo o sistema de arquivos
para / Usr. Voc no pode mais ver o / usr / bin / vi voc coloca l no modo de usurio nico. Ele
no desapareceu, est apenas mascarada.
Em presto, voc monta o sistema de arquivos freebie :/ em / Brinde. Se voc listar o contedo de
o diretrio / Brinde / usr, voc vai ver o vi arquivo original, e no o contedo que
os usurios em freebie vai ver.
25
Neste captulo:
Execuo de servidores da
inetd
Configurando ftpd
Execuo sshd
rsyncd
Criao de um web
servidor
Servidor NFS
Samba
Rede bsica
Acesso: servidores
No captulo anterior, vimos como usar os clientes para acessar outros sistemas. Esta apenas uma
a metade da imagem, naturalmente. Na outra extremidade da ligao, precisamos servidores para fornecer essa
servio. Para cada cliente, existe um servidor (um servidor), cujo nome geralmente derivado
o nome do cliente, acrescentando um d para isso:
Tabela 25-1: Daemons do servidor para os servios bsicos
Cliente
ssh
telnet
sftp
ftp
rsync
(Browser)
(NFS)
Servidor
sshd
telnetd
sftp-server
ftpd
rsyncd
httpd
nfsd
Alm desses servidores, olhamos para algumas outras pessoas em outros captulos:
447
448
Captulo 27 discute Agentes de transporte de correio ou MTA, tambm conhecidos como e-mail
servidores.
Alguns servidores no precisa de nenhuma configurao, e sobre tudo o que voc precisa fazer comear a eles.
Outros, como servidores web, pode ser muito complicado. Nenhum dos complicao est relacionada com
FreeBSD. Por exemplo, as questes envolvidas na configurao apache so os mesmos se
execut-lo com FreeBSD, NetBSD, Linux ou Solaris. H vrios bons livros, cada um
pelo menos do tamanho de um presente, na configurao detalhada de alguns destes servidores. Neste captulo
veremos como obter os servidores em funcionamento em uma configurao bsica, e onde
voltar para mais informaes.
A primeira coluna o servio em que inetd deve ouvir. Se ele comea com um # assinar,
um comentrio, e inetd ignora. Voc vai notar neste exemplo que todos os listados
servios foram comentadas. A menos que voc execute o daemon independente
inetd, um pedido de um desses servios ser rejeitado com a mensagem:
No possvel conectar ao host remoto: Conexo recusada
449
A coluna seguinte especifica como o utilizador que a funo deve ser executada.
Verses mais antigas do UNIX correu inetd como parte do processo de inicializao. Isso nem sempre
necessrio, claro, e por razes de segurana da instalao padro do FreeBSD no
j comea-lo. Voc pode mudar isso adicionando a seguinte linha ao seu / Etc / rc.conf :
inetd_enable = "YES"
Para ativar servios em / Etc / inetd.conf, pode ser suficiente para remover o comentrio da
linha correspondente. Isto aplica-se para a maior parte dos servios no exemplo acima. Em alguns
casos, porm, voc pode ter que executar etapas adicionais. Por exemplo, a lukemftpd, uma
alternativa ftpd, e nntpd, o Network News Transfer Protocol, no fazem parte do
FreeBSD: eles esto na Coleo de Ports. Alm disso, nntpd se destina a executar como usurio usenet,
que no est na base do sistema.
Os outros daemons no so mencionados em / Etc / inetd.conf :
A maneira preferida para ser executado sshd na inicializao do sistema. Como veremos, a partida bastante
lento, por isso no uma boa idia para execut-lo a partir de / Etc / inetd.conf, embora seja possvel vera pgina de homem, se voc realmente quer.
httpd, o Apache Web Server, tambm tem uma longa fase de arranque que o torna
impraticvel para inici-lo a partir de / Etc / inetd.conf. Note tambm que httpd requer uma
arquivo de configurao. Veremos que na pgina 455.
Por outro lado, perfeitamente possvel comear rsyncd de inetd. No est includo no
padro / Etc / inetd.conf arquivo porque ele uma porta. Sim, por isso so lukemftpd e nntpd.
um pouco inconsistente. Esta a linha que voc precisa para colocar em / Etc / inetd.conf para iniciar
rsyncd.
rsync stream tcp
nowait raiz
450
Voc pode escrever -1 em vez de -HUP. Isso faz com que inetd reler / Etc / inetd.conf.
Em vez de daemons de partida atravs de inetd, voc pode inici-los no momento da inicializao. inetd
conveniente para os servidores que no so executados com muita frequncia, mas se voc fizer ligaes frequentes,
voc pode salvar em cima executando os servidores de forma contnua. Por outro lado, no h
prtico comear rshd, rlogind, rexecd ou telnetd em tempo de boot: eles so projetados para ser
comeou de uma vez por cada sesso, e eles saem aps a primeira conexo fechada. Ns olharemos
iniciar os outros daemons nas sees a seguir, juntamente com a sua configurao.
Configurando ftpd
Normalmente voc vai correr ftpd de inetd, como vimos acima. Se voc quiser execut-lo diretamente,
execute os seguintes passos:
A opo -D diz ftpd para ser executado como um daemon. Voc talvez queira outras opes
bem, veja a discusso abaixo.
Comente a ftp A linha em / Etc / inetd.conf pela adio de um jogo da velha (#) na frente dele:
# ftp
stream tcp
nowait raiz
ftpd-l
Se voc no executar essa etapa, inetd mantm o ftp porta aberta, e ftpd no pode ser executado.
Por razes de segurana, voc provavelmente vai querer adicionar opes, tais como a explorao madeireira e
annimo FTP. Veremos como fazer isso nas prximas duas sees.
ftp annimo
Annimo ftp d-lhe um par de opes de segurana:
Configurando ftpd
451
Ele restringe o acesso mquina em geral: o usurio no saber todas as senhas, de modo
ele no tem acesso a outra da mquina.
Alm disso, voc pode comear ftpd de tal maneira que permitir que apenas annimo ftp
conexes.
H uma srie de preparativos para annimo ftp:
Decidir sobre um diretrio para armazenar arquivos FTP annimo. A localizao depender
a quantidade de dados que voc prope para armazenar l. Por padro, / Var / spool / ftp.
Criar um usurio ftp, com o annimo ftp diretrio como o diretrio home ea
concha / Dev / null. Usando / dev / null como a casca torna impossvel fazer login como usurio ftp,
mas no interfere com a utilizao de annimo FTP. ftp pode ser um membro do grupo
caixa ou voc pode criar um novo grupo ftp adicionando o grupo / Etc / group. Consulte a pgina
145 para mais detalhes sobre a adio de usurios, ea pgina de manual group (5) para a adio de grupos.
Crie subdiretrios ~ Ftp / bin e ~ / Ftp / pub. tambm possvel criar um directrio
para os dados de entrada. Por conveno, o nome ~ Ftp / incoming. Esta uma idia muito ruim
Se voc estiver conectado Internet global: no vai demorar muito para que as pessoas comeam a usar
o sistema como um servidor de dados ilcitos. Somente use esta opo se voc tiver alguma outra
Mtodo de impedir o acesso no autorizado.
Defina a propriedade dos diretrios como esta:
dr-xr-xr-x 2 ftp
drwxrwxrwx 2 ftp
drwxrwxr-x 20 ftp
ftp
ftp
ftp
Isto permite que o acesso de leitura ao pub diretrio e leitura-escrita de acesso ao entrada
subdiretrio.
Se voc tem um monte de arquivos que so acessados relativamente raro, possvel que voc vai
Encontrar pessoas na Net que copiar todos os arquivos que eles vem no diretrio.
s vezes voc vai encontrar vrias ligaes a partir de um sistema de cpia de todos os arquivos em
Paralelamente, o que pode causar problemas de largura de banda. Em alguns casos, voc pode encontr-lo mais
apropriado para distribuir os nomes individualmente, e para limitar o acesso leitura da
diretrios. Voc pode fazer isso definindo as permisses de pub e seus subdiretrios
assim:
d - x - x - x 20 ftp
ftp
Isso permite o acesso aos arquivos, mas no para o diretrio, para que o usurio remoto no pode encontrar
os nomes dos arquivos no diretrio.
Copie os seguintes arquivos para ~ Ftp / bin: / usr / bin / compress, / usr / bin / gzip, / usr / bin / gunzip,
/ Bin / ls / usr / bin / tar e / Usr / bin / descompresso. A viso de ftp annimo usurios
restrito ao diretrio home, para que todos os programas que esto a ser executados tambm deve ser
neste diretrio.
452
Voc pode ('' duro'') ligao entre os processos, se voc quiser (e se o diretrio est no mesmo arquivo
sistema), mas os links simblicos ir falhar, pois eles contm nomes de caminho que no apontam
para o local correto quando executado no annimo ftp ambiente.
Alm disso, o arquivo / Var / log / ftpd deve existir. Se isso no acontecer, cri-lo com:
# Touch / var / log / ftpd
O -L opo tem dois nveis: se voc especificar uma vez, ele registra apenas conexes. Se voc
especific-lo duas vezes, ele tambm lista os arquivos que so transferidos.
O -S opo registra todas as transferncias annimas para o arquivo / Var / log / ftpd.
H uma srie de outras opes, veja a pgina man ftpd (8) para mais detalhes.
Alm destas opes, quando um utilizador estabelece uma verdadeira ligao, ftpd verifica a
shell do usurio. Se no estiver listado na / Etc / shells, ftpd negar a conexo. Isto pode ser
til se voc no quer que usurios especficos para acessar o sistema: dar-lhes uma shell diferente,
tal como / Usr / bin / sh em vez de / Bin / sh, e garantir que / usr / bin / sh no est presente em / Etc / shells.
Log File Format
O formato dos arquivos de log um pouco incomum. Voc ver coisas como:
12 de outubro 16:32:04 freebie ftpd [8691]: ANONYMOUS LOGIN DE FTP adam.adonai.net, LEEC @ a
donainet
12 de outubro 18:33:32 freebie ftpd [9007]: Conexo de gateway.smith.net.au
12 de outubro 18:33:37 freebie ftpd [9007]: ANONYMOUS LOGIN DE FTP gateway.smith.net.au, m
ike
12 de outubro 21:36:28 freebie ftpd [9369]: Conexo de grisu.bik-gmbh.de
12 de outubro 21:36:29 freebie ftpd [9369]: ANONYMOUS LOGIN DE FTP grisu.bik-gmbh.de, harv
est @
12 de outubro 21:36:37 1997! Colheita @! Grisu.bik-gmbh.de! / Pub / cfbsd / README! 9228! 1
12 de outubro 21:37:05 freebie ftpd [9371]: Conexo de grisu.bik-gmbh.de
12 de outubro 21:37:06 freebie ftpd [9371]: ANONYMOUS LOGIN DE FTP grisu.bik-gmbh.de, harv
est @
13 out 09:38:19 freebie ftpd [13514]: Conexo de 151.197.101.46
13 out 09:38:21 freebie ftpd [13514]: ANONYMOUS LOGIN DE FTP 151.197.101.46, bmc @ ho
vercraft.willscreek.com
Outubro 13 09:38:58 1997! Bmc@hovercraft.willscreek.com! 151.197.101.46! / Pub / cfbsd / dear-re
telespectador! 8890! 1
Outubro 13 09:41:42 1997! Bmc@hovercraft.willscreek.com! 151.197.101.46! / Pub/cfbsd/txt/26netdebug.txt.gz! 12188! 1
Outubro 13 09:42:05 1997! Bmc@hovercraft.willscreek.com! 151.197.101.46! / Pub / cfbsd / txt / Cp
netserver.mm, v v4.19 (2003/04/09 20:42:40)
Configurando ftpd
453
ackages.txt.gz! 37951! 1
13 out 09:59:07 freebie ftpd [14117]: Conexo de 151.197.101.46
13 out 09:59:08 freebie ftpd [14117]: ANONYMOUS LOGIN DE FTP 151.197.101.46, bmc @ ho
vercraft.willscreek.com
Outubro 13 09:59:24 1997! Bmc@hovercraft.willscreek.com! 151.197.101.46! / Pub / cfbsd / txt / Db
iblio.txt.gz! 1815! 1
As linhas completas de ! marcas mostram arquivos que esto sendo transferidos. O ! marcas de delimitar o
campos, que so:
O ID do usurio.
Execuo sshd
Normalmente, voc comea sshd a partir do arquivo de configurao do sistema / Etc / rc.conf :
sshd_enable = "YES"
# Ativar sshd
Isso tudo que voc precisa fazer para sshd. Voc tambm pode comear simplesmente com:
# Sshd
Protocolo Estados que ssh protocolos de usar, e em que ordem. Por padro, o sshd
tenta protocolo 2 em primeiro lugar, e cai de volta para o protocolo 1 se o protocolo 2 falhar. Voc pode
considerar a definio para usar apenas o protocolo 2.
Quando PermitRootLogin est definido para sim, voc pode logar como root via ssh. Normalmente
ele est desativado.
454
Conjunto PasswordAuthentication a no se voc quiser todos os acessos a ser via de troca de chaves
(Veja a pgina 420 para mais detalhes).
Se voc deseja executar sftp-server, adicione a seguinte linha ao arquivo / etc / ssh / sshd_config:
Subsistema
sftp
rsyncd
Como j vimos, rsyncd apenas um outro nome para rsync. Voc no precisa fazer nenhum especfico
configurao para inici-lo: ele iniciado a partir de sshd, ento tudo que voc precisa fazer garantir que
sshd comea.
Comeando rsyncd No suficiente, no entanto: ele precisa de configurao. Crie um arquivo / Usr/local / etc / rsyncd.conf com contedos algo como isto:
motd = / usr / local / etc / rsyncd.txt
log file = / var / log / rsyncd.log
transferir login = true
[Grogue]
path = / home / grog / public_html
uid = grog
ler apenas = yes
list = yes
comentar as pginas web do = Greg
hosts allow = 223.147.37.0/24
[Tivo]
path = / var / tivo
uid = grog
ler apenas = no
list = yes
comment = rea de teste TiVo
hosts allow = tivo.example.org
Este o arquivo de configurao utilizada nos exemplos de servidores no Captulo 24. constituda por dois
partes: uma global parte no incio, com configuraes que se aplicam a todos os mdulos, e um ou
mais mdulo partes que descrevem os arquivos que o servidor de alimentao.
As opes globais aqui especificar o motd, um arquivo cujo contedo impresso quando voc
mdulos da lista (o'' ser'' mensagem suave nos exemplos), e que as transferncias devem ser
logado para / Var / log / rsyncd.log. A sada de log algo como isto:
2002/10/24 13:31:49 [16398]
dot / topicscience.gif 1083
2002/10/24 13:31:49 [16398]
dot / topicsecurity.gif 3034
2002/10/24 13:31:49 [16398]
dot / topictv.jpg 951
2002/10/24 13:31:49 [16398]
. Pdf 40470
2002/10/24 13:31:49 [16398]
whip.html 1602
rsyncd
455
Mdulo tivo disponibiliza o diretrio / Var / tivo para o acesso de leitura e escrita, mas apenas
ao hospedeiro tivo.example.org. Novamente rsyncd acessa os dados como usurio grog.
H um grande nmero de outras opes para rsyncd, mas este exemplo mostra o maior
importantes. Veja a pgina de manual rsyncd.conf (5) para mais informaes.
Depois disso, voc pode acessar a documentao em (por exemplo) http://www.example.org / apachedoc /.
Configurando o apache
A porta Apache usa os seguintes diretrios:
Os arquivos de configurao esto na hierarquia de diretrios / Usr / local / etc / apache. A porta
instala arquivos de configurao de prottipo, mas eles precisam ser modificados.
Por padro, as pginas web so em / Usr / local / www / dados. Esta a raiz'''' diretrio
para as pginas da web: o arquivo / Usr / local / www / data / foo.html em www.example.org vontade
tem o URL http://www.example.org/foo.html. Voc pode achar que uma boa idia
altere o diretrio para o / Var sistema de arquivos em um local como / Var / www / data.
Veremos como fazer isso com o DocumentRoot entrada no arquivo de configurao.
456
cones para uso prprio do Apache so armazenados em / Usr / local / www / cones. Voc no pode acessar
estes cones por URI, para no colocar suas prprias imagens aqui.
O arquivo de configurao
O apache arquivo de configurao / Usr / local / etc / apache / httpd.conf. Verses mais antigas do
apache tambm utilizados os
/ Usr / local / etc / apache / access.conf e
/ Usr/loficheiros
cal / etc / apache / srm.conf. A diviso entre esses trs arquivos foi relativamente arbitrria,
ea recomendao atual a de no usar esses arquivos, mas para colocar seu contedo em
/ Usr / local / etc / apache / httpd.conf em vez disso. Veja o apache documentao, se voc precisa
mudar os outros arquivos.
httpd.conf
Provavelmente a melhor maneira de entender httpd.conf l-lo. muito longa e
contm um grande nmero de comentrios. A maioria das entradas podem ser deixados do caminho h, por isso,
No vou listar o arquivo inteiro aqui: em vez veremos os parmetros que podem precisar de mudana.
Vamos olhar para as caractersticas de todo o sistema na lista a seguir, e os recursos relacionados ao hospedeiro em
na prxima seo.
ServerRoot afirma ser o caminho para os arquivos de configurao, mas na verdade os arquivos esto
armazenado no subdiretrio etc / apache deste diretrio. Voc no precisa mudar
lo.
Os comentrios sobre ScoreBoardFile sugerem que voc deve verificar para ver se o
sistema cria um. No se preocupe: FreeBSD no cria esse arquivo, e voc no
precisa se preocupar com isso.
Os parmetros MinSpareServers, MaxSpareServers, StartServers, MaxClientes e MaxRequestsPerChild so utilizados para o ajuste do servidor. Os valores padro
deve funcionar inicialmente, mas se voc tiver uma grande quantidade de trfego Web, voc deve considerar
alter-los.
A prxima rea de interesse uma grande lista de mdulos. Um monte de apache funcionalidade est
opcional, e inclu-lo atravs da incluso de um mdulo. Veremos isso com mais detalhes
abaixo.
457
Os parmetros iniciais com Esconderijo aplicam-se somente a servidores proxy, ento vamos olhar para
bem como os abaixo.
O arquivo termina com uma comentadas VirtualHost seco. Veremos isso em detalhes em
na seco seguinte, juntamente com um nmero de parmetros que surgem noutras partes do
arquivo de configurao, mas que se relacionam com hosts virtuais.
Hosts virtuais
Execuo e manuteno de um servidor web trabalho suficiente que voc pode querer usar a
mesmo servidor para hospedar vrios conjuntos de pginas web, por exemplo, para um nmero de diferentes
organizaes. apache chama este recurso hosts virtuais, e oferece um grande apoio para
eles. Teoricamente, todos os seus exrcitos pode ser virtual, mas o arquivo de configurao contm ainda
informaes adicionais para a'' principal'' servidor, tambm chamado de padro'''' servidor. O padro
configurao no possui servidores virtuais em tudo, embora ele no conter configurao
informao.
H uma boa razo para manter o'''' principais informaes do servidor: ele serve como padro para todos
hosts virtuais, que podem fazer o trabalho de adicionar um host virtual muito mais fcil.
Considere a sua instalao em example.org: voc pode executar suas prprias pginas web e tambm um conjunto de
para pginas biguser.com (Ver pgina 310). Para fazer isso, voc pode adicionar a seguinte seo para
/ Usr / local / etc / apache / httpd.conf :
<VirtualHost *>
ServerAdmin grog@example.org
DocumentRoot / usr / local / www / biguser
onde colocamos as pginas da web
ServerName www.biguser.com
o nome que o servidor ir afirmam ser
ServerAlias biguser.com
nome do servidor alternativo
ErrorLog / var / log / biguser / error_log
TransferLog / var / log / biguser / access_log
Opes + FollowSymLinks
Opes + SymLinksIfOwnerMatch
</ VirtualHost>
Se voc olhar para o arquivo de configurao padro, voc vai encontrar a maioria destes parmetros, mas no
no contexto de um VirtualHost definio. Eles so os parmetros correspondentes
o'' principal'' servidor web. Eles tm o mesmo significado, ento vamos olhar para eles aqui.
458
Em seguida, voc pode colocar informaes sobre diretrios de dados individuais. O servidor padro
suprimentos de primeiros padres para todos os diretrios:
<Directory />
Opes FollowSymLinks
AllowOverride None
</ Directory>
O / na primeira linha indica o diretrio local para que estas definies devem
aplicar. Pela primeira vez, este realmente o diretrio raiz e no DocumentRoot: eles so
padres de todo o sistema, e que voc no tem que se preocupar apache jogar
em torno de seu sistema de arquivos raiz, que o nico diretrio do qual todos os outros diretrios
so garantidos para ser um subdiretrio. O Opes directiva garante que o servidor
pode seguir links simblicos pertencentes ao proprietrio. Sem esta opo, simblico
links no iria funcionar. Vamos olhar para o AllowOverride directiva em discusso
do . Htaccess arquivo abaixo.
H uma entrada separada para a hierarquia de dados:
<Directory "/usr/local/www/data">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Encomende permitir, negar
Permitir que a partir de todos
</ Directory>
ndices permite httpd para exibir o contedo de um diretrio se nenhum arquivo de ndice, com
um nome definido nas DirectoryIndex, est presente. Sem esta opo, se houver
nenhum arquivo de ndice atual, voc no ser capaz de acessar o diretrio em tudo.
Note que se voc alterar o nome do diretrio de dados padro, voc tambm deve
mudar o nome no Diretrio invocao.
Vamos olhar para as entradas restantes em mais detalhes quando v-los novamente no
discusso da . Htaccess arquivo.
459
httpd pode manter dois arquivos de log, um acessar o log e um log de erro. Vamos olhar para eles
na prxima seo. uma boa idia para manter arquivos de log separados para cada domnio.
Voc deve ter um padro VirtualHost entrada. As pessoas podem ficar muito confuso se
selecionar um nome invlido (por exemplo, http://www.big-user.com) e obter o (default)
pgina web para http://www.example.org. A pgina padro no deve coincidir com qualquer outro
host. Em vez disso, deve indicar que o nome de domnio especificado invlido.
Pela mesma razo, uma boa idia ter um ServerAlias entrada para a mesma
nome de domnio sem inicial www. A entrada no exemplo acima, serve a mesma
para pginas www.biguser.com e biguser.com.
Depois de reiniciar apache, ele lida com todos os pedidos para www.biguser.com com estes
parmetros. Se voc no definir um host virtual, o servidor ter acesso as principais pginas da web
(Definido pela pgina DocumentRoot na entrada / Usr / local / etc / apache / access.conf ).
460
Os campos no arquivo de log so separados por espaos em branco, de modo entradas vazias so substitudos por um personagem. Neste exemplo, o segundo e terceiro campos esto sempre vazio. Eles so usados
para controlos de identidade e autorizao.
Para obter os nomes dos clientes, voc precisa especificar o HostnameLookups sobre directiva.
Isto requer uma pesquisa de DNS para cada acesso, o que pode ser relativamente lenta.
Apesar de pesquisas de nome de host especificado, nos ltimos quatro entradas no tm qualquer nome:
sistema no tem DNS reverso. Eles vm de uma mquina infectada com Microsoft
o Nimda vrus e mostrar uma tentativa de invadir o servidor web. No h muito que voc
pode fazer sobre este vrus, que provavelmente ser anos antes que ele vai embora. Alm de
valor incmodo, ele nunca colocou qualquer ameaa apache servidores.
O controle de acesso
s vezes voc quer restringir o acesso a um servidor web, ou para diretrios especficos ou para
o site como um todo. apache tem um nmero de opes para limitar o acesso. Uma possibilidade
definir opes / Usr / local / etc / apache / httpd.conf para cobrir um hospedeiro individual, mas este
raramente teis. mais provvel que voc vai querer restringir o acesso a diretrios especficos,
e mais fcil de fazer isso no arquivo . Htaccess no mesmo diretrio.
Para apache sequer olhar para . Htaccess, voc precisa alterar o arquivo de configurao, no entanto:
por padro, ele desativa o uso de . Htaccess completamente, como vimos acima:
<Directory />
Opes FollowSymLinks
AllowOverride None
</ Directory>
Para que ele funcione, voc ter que mudar o AllowOverride parmetro para algum outro valor.
H cinco categorias de entradas que voc pode permitir que em . Htaccess arquivos:
1. AuthConfig permite . Htaccess para incluir diretivas de autorizao.
2. FileInfo permite o uso de diretivas controlando os tipos de documentos.
3. ndices permite o uso de diretivas controlando a indexao de diretrio.
4. Limitar permite o uso de diretivas que controlam o acesso host.
5. Opes permite o uso de diretivas controlando caractersticas especficas do diretrio.
Voc pode encontrar mais detalhes em / Usr / local / share / doc / apache / manual / mod / core.html.
O uso mais comum de . Htaccess exigir que os usurios autorizar-se
antes de acessar um diretrio. Neste caso, o navegador ir aparecer uma janela como esta:
461
Este mtodo semelhante ao de autenticao de login normal. Voc precisa de um arquivo de senhas, que
voc pode criar e atualizar com dbmmanage:
# Dbmmanage / usr / local / etc / apache / passwd adduser grog
New password:
Re-type new password:
Grog Usurio adicionado com senha criptografada para OzREW8Xx5hUAs usando cripta
# Dbmmanage / usr / local / etc / apache / passwd convidado adduser
New password:
Re-type new password:
Usurio convidado adicionado com senha criptografada para hFCYwd23ftHE6 usando cripta
Isto ir falhar a autenticao para qualquer outro usurio. Voc tambm pode especificar uma lista de usurios ou
grupos. Por exemplo, voc pode adicionar a seguinte linha:
AuthGroupFile / usr / local / etc / apache / grupo
Exigir bigshots grupo
Isso permitir que qualquer um dos usurios especificados nesta linha para acessar o diretrio.
462
Os mdulos do Apache
apache oferece uma grande quantidade de funcionalidade opcional, o que proporciona, sob a forma de
carregvel dinamicamente mdulos. J vimos acima que h duas listas longas de mdulo
nomes / Usr / local / etc / apache / httpd.conf, as primeiras partidas com LoadModule e diz
httpd que mdulos dinmicos para carregar. A ordem importante, no mud-lo.
Caching
Uma razo para permitir que o servidor proxy esconderijo solicitaes de dados. Caching mantm pginas
solicitado atravs do proxy e apresenta-los novamente se eles so solicitados novamente. Isto
particularmente til se o servidor atende um grande nmero de pessoas que se comunicam com
uns aos outros e so, portanto, susceptveis de requerer muitos dos mesmos pginas.
O Esconderijo parmetros so comentados por padro. Se voc tire eles, voc
deve descomentar todos eles possivelmente execpt NoCache. Ao definir esses valores, mudar
o nome do diretrio CacheRoot. Um bom nome pode ser / Usr / local / www / proxy.
Execuo apache
Quando voc instala o apache, ele instala o arquivo / usr / local / etc / rc.d / apache.sh, que
inicia-se automaticamente apache no momento da inicializao. Se voc no deseja iniciar automaticamente,
remova este arquivo. Voc pode iniciar e parar apache manualmente com o apachectl programa
o que leva um parmetro de comando:
#
#
#
#
#
apachectl
apachectl
apachectl
apachectl
apachectl
comear
parar
reinicie
gracioso
configtest
iniciar httpd
parar httpd
reiniciar httpd, ou comear, se no correr
reiniciar httpd'' graciosamente'', ou se no comear a correr
fazer um teste de sintaxe de configurao
463
Servidor NFS
necessria uma srie de processos para fornecer a funcionalidade do servidor NFS:
O NFS bloqueio daemon, rpc.lockd, processos bloquear pedidos de sistemas de arquivos NFS.
H ainda uma srie de problemas com esta funo em todas as plataformas. melhor evitar
se voc puder.
Alm disso:
Desde NFS usa Chamadas de procedimento remoto (RPC), a rpcbind daemon deve
execuo. rpcbind no faz parte do NFS, mas necessrio para mapear os nmeros de porta RPC
Nmeros de servios IP. Nas verses anteriores do FreeBSD, esta funo foi realizada por
o portmap daemon. No foi renomeado, ele foi substitudo.
O servidor precisa de um arquivo / Etc / exportaes para definir quais sistemas de arquivo para exportar e como
export-los. Veremos isso na prxima seo.
/ Etc / exportaes
Um certo nmero de implicaes de segurana esto associados com NFS. Sem algum tipo de
autenticao, voc pode montar qualquer sistema de arquivos na Internet.
NFS foi desenvolvido numa poca em que os usurios eram relativamente confivel. Como resultado, a segurana
precaues no so muito sofisticados. / Etc / exportaes descreve um sistema de arquivo por linha.
O formato :
sistema de
arquivos
opes
sistemas
sistemas uma lista de sistemas autorizados a montar o sistema de arquivos. O nico campo obrigatrio
o nome do sistema de arquivos, mas se voc est na Internet, voc deve, pelo menos, limitar a
nmero de sistemas que podem montar seus sistemas de arquivos. Por padro, qualquer sistema na Net
pode montar seus sistemas de arquivos.
H um nmero de opes. Aqui esto as mais importantes:
O -Mapall opo mapeia os IDs de usurio de outros usurios. Isso relativamente incomum.
Veja a pgina de manual exportaes (5) para mais detalhes.
464
O -Alldirs opo permite que os clientes remotos para montar qualquer diretrio no sistema de arquivos
diretamente. Sem esta opo, os clientes remotos s pode montar o diretrio raiz do
exportado sistema de arquivos. Vamos ver um exemplo onde -Alldirs podem ser de uso durante o
discusso de diskless booting na pgina 543.
Se voc vem de um V de fundo do sistema, voc vai notar que o mecanismo diferente.
/ Etc / exportaes corresponde, grosso modo, em termos de conceito System V do / Etc / dfs / dfstab arquivo, com exceo
que o ao declarao no existe.
Atualizando / etc / exports
Para conceder acesso a um sistema de arquivos, no suficiente para alterar o contedo do / Etc / exports:
tambm preciso dizer mountd que voc tenha feito isso. Voc pode fazer isso pelo relativamente
mtodo comum de enviar um sinal de hangup (SIGHUP) para mountd:
# Killall-HUP mountd
-MAPROOT = 0
-MAPROOT = 0
-Alldirs
Isto permite o acesso root para ambos os sistemas de arquivos. Apenas os sistemas de confiana presto, bumble,
esperar e gw tm permisso para acessar o sistema de arquivos raiz, enquanto que qualquer sistema na rede local
rede podero acessar / Usr. Sistemas remotos podem montar qualquer diretrio no / usr arquivo
sistema diretamente.
Samba
BSD UNIX e Internet cresceram juntos, mas levou outros fornecedores um longo tempo para
aceitar os protocolos da Internet. Nesse tempo, um certo nmero de outros protocolos surgiu. Temos
j mencionado X.25 e SNA, atualmente ambos no suportados pelo FreeBSD. O
protocolos que cresceram no mundo DOS so mais generalizada, em particular, da Novell IPX
e da Microsoft Common Internet File System, ou CIFS. CIFS era anteriormente conhecido como
SMB (Server Message Block).
Suporte IPX relativamente rudimentar. FreeBSD inclui um daemon de roteamento IPX,
IPXrouted. Veja a pgina man IPXrouted (8) para mais informaes. IPX est saindo de
usar, por isso improvvel que o apoio vai melhorar. Por outro lado, CIFS da Microsoft ainda
vivo e chutando. No restante deste captulo, vamos olhar para a implementao padro,
Samba. Este captulo descreve apenas o lado FreeBSD da configurao, voc precisar seguir
a documentao da Microsoft para a criao de lado a Microsoft da rede.
Samba uma coleo de componentes de software que implementam o protocolo SMB sobre
TCP / IP. Voc pode us-lo para fazer a interface com todos os ambientes atuais da Microsoft. Faz parte da
netserver.mm, v v4.19 (2003/04/09 20:42:40)
Samba
465
a Coleo de Ports, em / Usr / ports / net / samba. Voc pode obter mais informaes a partir Usando
Samba, por Jay Ts, Robert Eckstein e David Collier-Brown. No http://samba.org/ voc
pode obter ainda mais informaes, incluindo apoio e uma lista de discusso.
Samba inclui uma srie de programas, a maioria dos quais no tocamos aqui. Os
olharmos so:
smbd, um daemon que fornece servios de arquivo e impresso para clientes SMB.
smbclient, um ftp-cliente como simples que til para acessar arquivos compartilhados no SMB
outros servidores, como o Windows para grupos de trabalho. Voc tambm pode us-lo para permitir que um UNIX
caixa para imprimir em uma impressora conectada a qualquer servidor SMB.
Esta operao instala os binrios do Samba em / Usr / local / bin, o local padro para
binrios adicionais em um sistema BSD e os daemons smbd e nmbd em / Usr/local / sbin. Esses locais so apropriados para o FreeBSD, mas no so os locais que
a documentao Samba recomenda. Ele tambm instala as pginas do manual em / Usr / local / man,
onde o homem programa pode encontr-los. Finalmente, ele instala um arquivo de configurao de amostra em
/ Usr / local / etc / smb.conf.default. Veremos como configurar o Samba abaixo.
H um certo nmero de implicaes de segurana para o servidor, uma vez que ele manipula dados confidenciais.
Para manter um nvel de segurana adequado,
Certifique-se de que o software pode ser lido por todos e gravvel apenas pelo root. smbd deveria
ser executvel por todos. No faz-lo setuid. Se um usurio individual executa-lo, ele executado com
suas permisses.
Coloque os arquivos de log do servidor em um diretrio somente leitura e escrita por raiz, uma vez que eles podem
conter informaes confidenciais.
Certifique-se de que o smbd arquivo de configurao em / Usr / local / etc / smb.conf fixada de modo que
apenas raiz pode mud-lo.
A documentao do Samba recomenda a definio do diretrio legvel e gravvel
apenas pela root. Dependendo do que outros arquivos de configurao que voc tem em / Etc/local / etc, isso poderia causar problemas.
466
Editar / Etc / inetd.conf. Voc deve encontrar as seguintes linhas para o fundo
o arquivo com um # na frente. Remover o # para mostrar as linhas que esto aqui. Se o seu
/ Etc / inetd.conf no conter estas linhas, adicion-los.
netbios-SSN stream tcp nowait
netbios-ns dgram
udp wait
swat stream tcp nowait/400
raiz
raiz
raiz
smbd
nmbd
golpe
Ou reiniciar, ou enviar um sinal HUP para causar inetd reler seu arquivo de configurao:
# Killall -1 inetd
O arquivo de configurao
O arquivo de configurao do Samba descreve os servios que o daemon oferece. A porta
instala um arquivo de configurao de amostra em / Usr / local / etc / smb.conf.default. Voc pode us-lo como
com base em seu prprio arquivo de configurao, que deve ser chamado / Usr / local / etc / smb.conf :
simplesmente copiar o arquivo e, em seguida, edit-lo conforme descrito abaixo.
O arquivo de configurao dividido em sees identificadas por uma etiqueta em colchetes. A maioria
rtulos correspondem a um servio, mas tambm h trs rtulos especiais: [Global], [homes]
e [Impressoras], os quais so opcionais. Ns olhamos para elas nas seguintes sees.
netserver.mm, v v4.19 (2003/04/09 20:42:40)
Samba
467
A seo [global]
Como o nome sugere, o [Global] seco define os parmetros que se aplicam quer a
servidor como um todo, ou que so padres para os outros servios. Os mais interessantes para ns
so os seguintes:
O grupo de trabalho parmetro define o Microsoft grupo de trabalho para que este servidor
pertence. Defini-lo para combinar com o ambiente Microsoft. Nestes exemplos, vamos
assumir:
workgroup = EXEMPLO
O impresso entrada especifica o tipo de suporte para impressora Samba proporciona. Atual
verses Samba apoiar CUPS. Se voc estiver usando CUPS (no descrita neste
livro), voc no precisa fazer nada. Caso contrrio, definir:
printcap name = / etc / printcap
printing = bsd
conta de convidado a conta (em termos UNIX: ID de usurio) para usar se nenhuma senha
fornecido. Voc provavelmente vai querer definir uma conta de convidado, j que muitos clientes da Microsoft
no usar IDs de usurio. Certifique-se de que os privilgios so configurados de forma adequada. Alternativamente,
alterar o parmetro para apontar para um usurio existente.
Verses modernas da Microsoft usar um formulrio simples de criptografia de senha; mais velho
Verses usado nenhum. Atualmente, Samba o padro sem criptografia. Conjunto criptografar
senhas a Sim.
Microsoft usa sua prpria verso de resoluo de nomes de host, que no envolve DNS.
Opcionalmente, Samba ir mapear nomes a Microsoft DNS. Para ativar essa opo, configure dns
procurao a Sim.
Por padro, o arquivo de log especificado como / Var / log / log.% M. O texto % M substituda pela
nome da mquina remota, de modo a obter um arquivo de log por mquina. Infelizmente, o
nome no deixar claro que este um Samba arquivo de log. melhor mudar isso
entrada para:
log file = / var / log / samba.log.% m
468
A seo [homes]
O [Homes] seo permite que os clientes se conectem a seus diretrios home, sem a necessidade
uma entrada no arquivo de configurao. Se esta seco est presente, e um pedido de entrada
especifica um servio que no est definido no arquivo de configurao, Samba verifica se ele corresponde
um ID de usurio. Se isso acontecer, e se a senha especificada est correta, Samba cria um servio que
fornece o diretrio home do usurio.
As seguintes opes so de interesse no [Homes] seo:
gravvel pode ser sim ou no, e especifica se o usurio tem permisso para escrever a
o diretrio.
modo de criar especifica os bits de permisso (em octal) para definir para arquivos que so criados.
pblico especifica se outros usurios tm permisso de acesso a este diretrio. Em
combinao com um convidado usurio, este pode ser um risco de segurana grave.
Os [printers] seo
O [Printers] seo descreve os servios de impresso. Ela no precisa de os nomes dos
impressoras: se ele no encontrar o servio especificado, ou no arquivo de configurao ou na
[Homes] seo, se existir, procura-los no / Etc / printcap arquivo.
O Samba reivindicaes de documentao que Samba pode reconhecer sistema de impresso BSD
automaticamente, mas isto no sempre correcta. Certifique-se de que voc tem as seguintes entradas:
printing = bsd
print command = lpr-r-P '% p' '% s'
no [global] sectionW
em [printers] sectionW
Esta entrada define o acesso ao annimo ftp seco. Qualquer um pode l-lo, mas apenas
usurio grogue pode escrever para ele.
Samba
469
Configurao de senhas
Samba usa um arquivo de senhas separado, / Usr / local / private / secrets.tdb. Para configurar usurios, use
o smbpasswd comando, que copia as informaes do arquivo de senha do sistema:
# Smbpasswd-a grog
Nova senha SMB:
Retype new SMB password:
Senha alterada para grog usurio.
Testando a instalao
Depois de ter realizado os passos descritos acima, voc pode continuar a testar a
instalao. Primeiro, execute testparm para verificar a regularidade do arquivo de configurao:
$ Testparm
Carregar arquivos de configurao SMB / usr / local / etc / smb.conf
Seo de processamento "[homes]"
Seo de processamento "[printers]"
Seo de processamento "[ftp]"
Seo de processamento "[src]"
Seo de processamento "[grog]"
Loaded OK arquivo de servios.
Pressione Enter para ver um dump de suas definies de servio
Imprensa Entrar
Os parmetros globais:
muitas informaes que possam ser teis na depurao
[Homes]
comment = Incio Diretrios
ler apenas = No
[Printers]
comment = Todas as Impressoras
path = / var / spool / samba
guest ok = Yes
printable = Yes
browseable = No
[Ftp]
comment = rea de arquivos do servidor ftp
path = / var / spool / ftp / pub
Lista de escrever = grog
guest ok = Yes
[Grog]
path = / home / grog
usurios vlidos = grog
ler apenas = No
Como voc v, testparm enuncia todos os parmetros que foram criados, sejam
explicitamente ou por omisso. Se voc tiver problemas, este o primeiro lugar para onde voltar.
Em seguida, verifique se voc pode entrar inwith smbclient. Se voc estiver executando os servidores como daemons,
inici-los agora. Se voc est comeando-los de inetd, voc no precisa fazer nada.
470
Tipo
---Disco
Disco
Disco
IPC
Disco
Comentar
------Incio Diretrios
rea de arquivos do servidor ftp
IPC Service (Samba Server)
IPC Service (Samba Server)
Servidor
--------FREEBIE
PRESTO
Comentar
------Servidor Samba
Servidor Samba
Workgroup
--------EXEMPLO
Mestre
------PRESTO
Se voc chegar at aqui, a sua autenticao de senha est funcionando. Finalmente, tente acessar o
aes. Servios de samba so especificadas no formato Microsoft: \ \ System \ servio. Para fazer
esta pior, UNIX interpreta o \ carter especial, de modo que voc precisar repetir o
personagem. Por exemplo, para acessar o ftp servio em freebie, voc teria que entrar
\ \ \ \ Brinde \ \ ftp. Felizmente, smbclient entende nomes UNIX-like, para que voc possa
escrever / / Brinde / ftp em vez disso.
Para testar, iniciar smbclient a partir de um outro sistema:
$ Smbclient / / brinde / ftp-U grog
adicionado ip interface = 223.147.37.1 bcast = 223.147.37.255 nmask = 255.255.255.0
Senha:
como habitual, sem eco
Domnio = [EXEMPLO] OS = [Unix] Server = [Samba 2.2.7a]
smb: \> ls
. DR
0 Qua 29 janeiro 2003 12:06:29
.. D
0 sb 26 out 2002 10:36:29
instant-workstation-1.0.tar.gz 9952 Seg 19 maro 2001 11:49:01
xtset-1.0.tar.gz 4239 Seg 05 agosto 2002 16:44:14
gpart-0.1h.tbz.tgz 27112 ter 27 ago 2002 10:07:59
Se voc chegar at aqui, Samba est funcionando. O prximo passo ligar para os servios do
Mquinas Microsoft. Isso no um tpico para este livro. Note, no entanto, que o Samba s
trabalha com transporte TCP / IP, no com NetBEUI.
Neste captulo:
Correio, formatos
Agentes de usurio de email
Arquivos, pastas ou
diretrios?
Respondendo a uma
mensagem
Usando pastas
Apagar mensagens
Marcao de mensagens
Configurando o vira-lata
Aliases e-mail
Cabealhos de email
26
Correio eletrnico:
clientes
Correio eletrnico, normalmente chamado de e-mail, e-mail ou simplesmente correio, um mtodo de envio
mensagens para outras pessoas na rede. Tal como acontece com outros servios de rede, existem duas partes
para enviar software:
A parte do sistema de e-mail que a maioria dos usurios sabe que o cliente, o Mail User Agent,
ou MUA, o programa que interage com o utilizador e alas de entrada e de sada
e-mail. Neste captulo, vamos olhar para o meu MUA favorito, vira-lata, e ns vamos tocar brevemente
em que os outros esto disponveis.
Correio, formatos
E-mail definida por um certo nmero de padres de Internet, o chamado RFCs, ou pedidos de
Comentrios. Voc pode navegar pelas RFCs em http://www.faqs.org/rfcs/. Aqui esto os mais
importantes.
RFC 2821 uma atualizao recente para o venervel RFC 821, que data do incio do
1980. Ele define o Simple Mail Transfer Protocol ou SMTP. Ele especifica como
enviar e-mail rodada da rede. Para a maioria das pessoas no muito interessante, mas ele faz
impor algumas restries, como o limite bsico comprimento da linha. Para alm deste problema
(Que abusa da Microsoft), a maioria dos sistemas de correio de aderir a SMTP.
469
Correio, formatos
470
Da mesma forma, RFC 2822 substitui RFC 822. Ele define o formato bsico de um e-mail
mensagem. Ele define os cabealhos (To:, Cc: Assunto: e assim por diante) e um corpo simples
composta de texto US-ASCII, a mensagem em si. Isto foi bom para quando foi escrito,
mas no consegue lidar com os formatos mais complexos nowdays utilizados, tais como imagens, binrios
arquivos ou mensagens de embutidos. Ele tambm no consegue lidar com conjuntos de caracteres no-americanos, o que
provoca
problemas, em particular em pases como a Rssia, Israel e Japo.
RFC 2045, RFC 2046, RFC 2047, RFC 2048 e RFC 2049 junto descrever o
Multipurpose Internet Mail Extensions, mais conhecido como MIME. Eles definem como
no codificar o texto e anexos US-ASCII de modo a que possam ser representados em ASCII
e, portanto, enviado pelo RFC 2822, e tambm a forma de dividir o nico RFC 2822 corpo em
vrias partes usando separadores ASCII.
MIME uma rea em que UNIX fraca. Muitos usurios UNIX consideram-se
Homens de Verdade que no precisam desses brinquedos extravagantes. Isso uma pena. Em pases como a Alemanha,
as pessoas podem conviver com ASCII, mas que no funciona no Japo, Israel ou Rssia.
No caso voc esteja se perguntando, o alemo tem sete caracteres especiais, a, o, u, a, o, u e .
diminuir nico caso. H uma norma nacional que define a forma de representar esses caracteres em
US-ASCII: substituir os caracteres com Ae, Oe, Ue, ae, oe, ue e ss, respectivamente.
H uma abundncia de bons leitores e-mail MIME-aware disponveis para UNIX. uma boa
idia de usar um. Por outro lado, se o seu pblico-alvo normalmente no usa
Utentes MIME-aware, voc provavelmente deve evitar o envio de mensagens MIME.
correio
O MUA mais antigo provvel que voc se encontra e-mail. muito bsico, o personagem-oriented
programa, mas, no entanto, tem suas vantagens. Voc pode us-lo em scripts para enviar e-mails.
Por exemplo, se voc tem um trabalho em execuo e produzindo sada abundante, onde voc quer
salvar a sada, voc normalmente poderia escrever algo como:
Longjob $ 2> & 1> logfile
Este comando executado longjob. A sequncia 2> & 1 redirecciona a sada de erro para o
sada padro, eo > escreve-los para o arquivo logfile. Embora esta seja uma boa maneira de
resolver o problema, voc pode achar que voc tem um monte desses empregos, ou que tendem a
esquecer os arquivos de log e deix-los bagunando seus discos. Uma alternativa consiste em enviar
si mesmo e-mail. Voc pode fazer isso com o seguinte comando:
mua.mm, v v4.12 (2003/04/02 04:07:59)
471
Neste caso, me o seu ID de usurio. Quando o trabalho termina, voc recebe uma mensagem de correio com o
sada dos comandos. cron (Ver pgina 151) usa este mtodo para lhe enviar sua sada.
Outros MUAs
correio tem um nmero de limitaes: no pode lidar bem com mensagens longas,
difcil manter uma viso geral de grandes quantidades de e-mail, como a maioria das pessoas parecem
acumular-se, e ele no pode manipular MIME.
Muitos utentes mais sofisticados tm sido escritos desde e-mail. Alguns dos mais
os populares, que tambm esto disponveis na coleo de ports, so:
olmo um dos mais antigos utentes em tela cheia. Sua idade est mostrando: tem alguns irritante
problemas que o tornam menos desejvel, agora que h uma escolha.
exmh construdo em Rand da mh MUA. Algumas pessoas gostam dele, mas parece relativamente fcil
configur-lo para mutilar mensagens.
xfmail um mailer baseada em X, que voc pode preferir os utentes baseados em texto que estamos
falando aqui.
MUAs tradicionais representam pastas como arquivos. Eles armazenam todas as mensagens de uma pasta
em que um nico arquivo. Isso s vezes chamado de mbox mtodo. correio, elm e pinho
faz-lo desta forma.
Outros, incluindo MUAs exmh, xfmail e Sylpheed, representam uma pasta como um diretrio.
Cada mensagem na pasta , ento, um arquivo por si s.
Qual o mtodo que voc deve usar? Ambos tm seus defensores. O diretrio eo arquivo
abordagem mais robusto (se o lixo de um arquivo, voc s perde uma mensagem, e no todos eles),
e permite que voc tenha a mesma mensagem em vrias pastas. Por outro lado, ela
tambm impe uma sobrecarga muito maior. As verses atuais do ufs, pelo menos no FreeBSD, ter um
tamanho padro do bloco de 16 KB e um tamanho de fragmento de 2 kB. Isso significa que todos os arquivos tm uma
comprimento que um mltiplo de 2 kB e assim o desperdcio de espao mdia uma kB. Alm disso,
cada arquivo usa um inode. Se voc tem um monte de e-mail, este pode adicionar at um monte de espao desperdiado.
Por exemplo, eu tenho atualmente 508.649 mensagens gravadas, que ocupam um total de 2,1
mua.mm, v v4.12 (2003/04/02 04:07:59)
472
GB, quase exatamente 4 kB por mensagem. Se eu guardei-os em uma estrutura de diretrios, eu o faria
perder cerca de mais 500 MB de espao, ou 25%. O sistema de arquivos em que as mensagens so
armazenado de 9,5 GB de tamanho e tem 1,2 milhes de inodes, quase metade deles seria usado para
as mensagens de correio.
vira-lata
Nesta seo, vamos dar uma olhada detalhada no vira-lata. Inici-lo digitando seu nome. Como
utentes mais UNIX, vira-lata executado em um terminal de carter orientado, incluindo, naturalmente, um
xterm. Vamos dar uma olhada na minha caixa de correio. Por padro, ao inici-lo voc recebe um
mostrar como a mostrada na Figura 26-1.
A linha na parte superior especifica o nome do arquivo ('' pasta'') que contm o e-mail
mensagens (/ var / mail / grog), o nmero de mensagens na pasta, e seu tamanho. Tambm
indica a maneira em que as mensagens so ordenadas: em primeiro lugar pela tpicos, ento por data.
Ns vamos olhar para tpicos mais abaixo.
Na primeira coluna, podemos ver r prximo de algumas mensagens. Isto indica que
j respondeu a essas mensagens.
mua.mm, v v4.12 (2003/04/02 04:07:59)
473
Na mesma coluna, N sinaliza uma novo mensagem (uma mensagem no lida que tem
chegou aps a ltima invocao de vira-lata acabado).
A coluna seguinte a data (na notao internacional no presente exemplo, mas que pode ser
alterado).
A coluna seguinte o nome do destinatrio. Isso muitas vezes me, claro, mas
com freqncia suficiente, o nome de uma lista de discusso. Voc vai notar que esta uma coluna I
ter adicionado, no no visor padro.
474
A ltima coluna normalmente o assunto. Para mensagens de 56-61, uma srie de linha
desenhos. Isto rosqueamento, e mostra uma relao entre um conjunto de
mensagens sobre o mesmo tema. Mensagem 56 foi a mensagem original no segmento,
57 uma mensagem de resposta mensagem 56, e assim por diante. Mensagens 60 e 61 so as duas respostas
a mensagem 59. vira-lata recolhe automaticamente todas as mensagens em um segmento em um s lugar.
Voc vai notar no exemplo que as linhas so de intensidade diferente. No original, estas
so de cores diferentes, e eles so uma questo de escolha pessoal, eles destacam tipos especficos
da mensagem. Eu uso cores diferentes para destacar mensagens sobre diferentes temas. Se voc
interessado nas cores exatas, consulte http://ezine.daemonnews.org/200210/ports.html,
que contm uma primeira verso deste texto.
Mensagem 52 parece ser em vdeo reverso. Na verdade, ele est em branco sobre um fundo azul,
uma cor que eu no use para qualquer outra coisa. Este o cursor, o que voc pode posicionar ou
com o cursor para cima e para baixo teclas de cursor, ou com o comandos vi-like j (Mover para baixo) ou
k (Subir). No visor padro, em vdeo normal (isto , no seja invertida, ou duplamente
invertido). Voc tambm pode mover entre as pginas com os comandos de cursor esquerda e direita.
Muitos comandos, como por exemplo r (Resposta) ou Entrar (Li), operam na mensagem em que o
cursor est atualmente posicionado. Por exemplo, se voc pressionar Entrar Neste ponto, voc ver uma
mostrar como a da Figura 26-3.
475
vira-lata exibido no negrito, citado texto: colocando um > personagem antes de cada linha, o remetente
tem sinalizado que o texto foi escrito por outra pessoa, muitas vezes, a pessoa a quem
abordados: esta mensagem uma resposta, eo texto que ele est respondendo. Normalmente no
uma atribuio acima do texto, mas est faltando neste exemplo. Vamos ver atribuies
abaixo na seo de responder.
Se a mensagem for maior que uma tela, pressione ESPAO a pgina para baixo e - (Hfen) para
pgina para cima. Em geral, um monitor da linha 25 inadequada para a leitura de correio. Em um display X,
escolher o mais alto de uma janela como voc pode.
Esta mensagem em si comea com o texto citado, o que indica que ele foi escrito por
algum. Normalmente deve haver uma linha no topo afirmando que o escreveu, mas
faltando aqui. O texto do apresentador comea com Tentei patch. Quando voc responde,
no entanto, todos este texto citado novamente, ento o que voc v na tela a exibio de
Figura 26-4. Aqui voc v que a primeira linha atribui o texto abaixo. Voc vai notar que
esta resposta tambm inclui uma seleco de cabealhos para o cessante mensagem. Isto pode ser muito
conveniente se voc quiser para adequar seus cabealhos mensagem que voc est enviando, ou apenas para adicionar
outros destinatrios.
476
477
478
Usando pastas
Como eu mencionei, vira-lata pode lidar com vrias pastas. Por padro, ele comea com a sua
pasta de e-mails recebidos, s vezes chamado de caixa de entrada. No BSD, um nico arquivo em / var / mail
com o mesmo nome que o seu ID de usurio. Vimos acima que no topo da tela do ndice:
mina chamado / Var / mail / grog.
vira-lata lojas de outras pastas como arquivos individuais no diretrio ~ / Mail, em outras palavras, uma
subdiretrio do seu diretrio home. Muitos MUAs utilizar este mtodo, mas nem todos eles:
alguns usam o diretrio ~ / Mail em vez disso. Por padro, quando voc escrever uma mensagem de e-mail, o
mensagem de sada copiado para um arquivo nesse diretrio. Na seo anterior, o
Compor Menu continha o pseudo-header FCC: = jbozza. Isto refere-se ao arquivo
~ / Mail / jbozza: a taquigrafia = refere-se ao diretrio de correio.
Para manter os e-mails recebidos, utilize o s (SAVE) de comando, que define o nome da pasta padro
a partir do nome do remetente, o mesmo nome que, ao gravar mensagens enviadas. Voc pode, assim,
responder uma mensagem, salvar uma cpia na pasta, em seguida, salvar a mensagem original, sem
mencionar explicitamente o nome da pasta em tudo.
Para ler as mensagens em uma pasta, voc pode dizer vira-lata para l-lo diretamente na inicializao:
$ Mutt-f = fred
Apagar mensagens
Uma vez que voc terminar de ler a mensagem, voc pode querer exclu-lo. Voc pode fazer isso por
entrar d. O D bandeira aparece no lado esquerdo da linha, mas nada muito mais acontece. O
mensagem no ficar excludo at sair vira-lata, ou at que voc insira $.
Quando voc salva uma mensagem para uma pasta, ele ser excludo automaticamente da pasta atual.
Se voc no quer fazer isso, ou se voc apagou acidentalmente uma mensagem, voc pode
undelete lo digitando u.
Terminei de ler um tpico? Voc pode excluir o tpico inteiro, inserindo D (Controlo-D).
Marcao de mensagens
Vimos que voc pode excluir um tpico inteiro com uma nica tecla. E quanto a outros
operaes em vrias mensagens? H um par de possibilidades teis. Voc seleciona
as mensagens sob o cursor, inserindo t. No exemplo acima, as mensagens 51 e 64
so com etiquetas. Voc no pode responder a todas as mensagens com a tag em uma resposta pressionando ; R. Neste
caso, vira-lata ignora a mensagem sob o cursor e responde apenas s mensagens marcadas,
responder a todas as pessoas na Para: cabealhos de cada mensagem. Da mesma forma, voc pode fazer um grupo
responder a todas as mensagens marcadas com , G, e voc pode exclu-los todos com, d.
mua.mm, v v4.12 (2003/04/02 04:07:59)
479
Configurando o vira-lata
Ns j vemos que h um monte de coisas que voc pode mudar em vira-lata de
comportamento. Eles so descritos em um arquivo ~ /. Muttrc (O arquivo . Muttrc em sua casa
diretrio). Aqui esto algumas das entradas mais interessantes na minha . Muttrc:
source / usr / local / etc / Muttrc
O arquivo / Usr / local / etc / Muttrc contm as definies padro para a execuo de vira-lata. Coloque este
no topo de sua . Muttrc arquivo para que as seguintes definies pode substituir qualquer anterior
definies. Este arquivo tambm contm um grande nmero de comentrios sobre como configurar cada
varivel, eo que ele faz: mais de 3.000 linhas.
fonte ~ /. mail_aliases
~ /. Mail_aliases o nome de um arquivo de alias, um arquivo com abreviaturas usadas com freqncia
endereos de e-mail. Vamos olh-los na pgina 481.
conjunto alterna = "greg.lehey @ auug.org.au | grogue @ | grog @ | auugexec @ | @ ncleo livre"
Esta cadeia uma expresso regular que vira-lata usa para determinar se o email dirigida
para mim. Se ele corresponder, ele define uma das bandeiras discutidas acima: + se a mensagem enviada apenas
para mim, T se eu estiver mencionado no Para: cabealho e C se eu estiver mencionado no Cc: cabealho.
Organizao my_hdr:
my_hdr Telefone:
Estas linhas e cabealhos mais se tornam em mensagens enviadas, voc pode v-los na
exemplos acima.
definir editor = emacsclient
Isto diz vira-lata para manter dez linhas do ndice ao exibir uma mensagem. Figura 26-7
mostra o que o display parece quando esta est definida. evidente que esta no muito til com a 25
exibio de linha. Se, por outro lado, tem um visor maior X, que pode ser muito conveniente
ter uma seleco do ndice na parte superior da tela.
conjunto
conjunto
conjunto
conjunto
hdr_format = "% 4C% Z% {% d-% m-% Y-}%% 20.20L-15.15t (% 4l)% s" # formato do ndice
status_on_top
# Colocar a barra de status no topo
sort = tpicos
date_format = "% A,% e% B% Y s% k:% M:% S% Z"
Estas variveis dizer vira-lata como exibir o ndice de mensagens. Eles representam o
diferena no layout (mas no de cor) entre a tela padro ea tela personalizado.
mua.mm, v v4.12 (2003/04/02 04:07:59)
Configurando o vira-lata
480
conjunto
conjunto
conjunto
conjunto
conjunto
edit_hdrs
# Deixe-me editar o cabealho da mensagem ao compor
fast_reply
# Pular inicial solicita ao responder
atribuio = "Em% d,% n escreveu:"
charset = "iso-8859-15"
Set # personagem para o seu terminal
= -1 sendmail_wait
edit_hdrs diz vira-lata para incluir os cabealhos na mensagem que voc escreve.
fast_reply diz vira-lata para no solicitar um nmero de cabealhos. Isto mais rpido, e
no necessrio quando voc tem os cabealhos na mensagem que voc est escrevendo.
charset especifica o conjunto de caracteres a ser usado para a mensagem. Isto deve corresponder
para o conjunto de caracteres das fontes em seu monitor, caso contrrio, as coisas podem parecer estranhas.
ISO 8859-15 o novo conjunto de caracteres da Europa Ocidental, que inclui o carter
para o Euro. Voc ainda vai ver muitas mensagens com os mais velhos da Europa Ocidental
conjunto de caracteres ISO 8859-1, que outra maneira muito similar.
Finalmente, sendmail_wait diz vira-lata se deve esperar para o e-mail a ser enviado
antes de continuar. Isso pode levar algum tempo se o seu MTA tem de executar vrias
Consultas DNS antes de enviar a mensagem. Definindo esta varivel para -1 diz vira-lata
no esperar.
mua.mm, v v4.12 (2003/04/02 04:07:59)
481
ignorar *
no ignorar De: Data: Para: Cc: Assunto: X-Mailer: Reenviar-De:
hdr_order Data: De: Para: Cc: Assunto: X-Mailer: Reenviar-De:
Estas especificaes dizer vira-lata a ignorar todos os cabealhos, exceto para aqueles especficos, e para classificar
los na ordem especificada, no importa que ordem elas ocorrem em na mensagem.
Cores em vira-lata
Finalmente, . Muttrc contm as definies para descrever a cor do visor. Muitos desses
so preferncias pessoais, por isso vou mostrar um casal. Cada definio especifica o
cor de primeiro plano, ento a cor de fundo:
normal cor preto branco
Isto diz vira-lata para exibir as barras de status em preto sobre um fundo amarelo.
ndice de cor azul branco FreeBSD
Isto diz vira-lata para exibir todas as mensagens com o texto FreeBSD em azul sobre fundo branco, como
Mensagens 48 e 49, no exemplo acima.
H muitas mais variveis que podem ser configuradas para personalizar a sua vira-lata
exibir. Ler / Usr / local / etc / Muttrc para mais detalhes.
Aliases e-mail
Voc ver que algumas pessoas tm IDs de correio estranhas: elas so incomuns, confuso, ou apenas
plain difcil de digitar. A maioria dos utentes dar-lhe a opo de configurar a aliases, nomes curtos
para as pessoas costumam entrar em contato. Em vira-lata, voc pode colocar os alias no ~ /. muttrc arquivo, ou voc
pode coloc-los em um arquivo separado e contar vira-lata quando encontr-los no ~ /. Muttrc arquivo, como
ilustrado acima. O arquivo de aliases contm entradas como esta:
apelido perguntas FreeBSD-questions@FreeBSD.org (FreeBSD Questions)
apelido estvel FreeBSD Estvel <freebsd-stable@freebsd.org> Usurios
Aliases e-mail
482
O formato simples:
Em primeiro lugar vem a palavra-chave alias. Alias pode ser colocado em ~ /. Muttrc, por isso a palavra
pseudnimo usado para distingui-los de outros comandos.
Em vira-lata, voc pode adicionar atalhos para este arquivo automaticamente com o um comando, que oferece
valores padro relativos mensagem atual.
Cabealhos de email
Na exibio da mensagem acima, vimos apenas uma seleo dos cabealhos de e-mail que uma mensagem
pode conter. s vezes, interessante olhar para eles com mais detalhes, especialmente se
voc est tendo problemas de correio. Para olhar os cabealhos completos, pressione o h chave. Forma
26-8 mostra os cabealhos completos de nossa mensagem 52.
A primeira linha mostra o nome do remetente ea data em que chegou a esta mquina.
A data em horrio local. Neste caso, o nome do remetente uma lista de discusso, e no o
remetente original.
A prxima linha (Return-Path :) usado para indicar o endereo para o qual erro
mensagens devem ser enviadas, se algo der errado com a entrega. O FreeBSD
listas de discusso especificar o proprietrio da lista para evitar os remetentes de spam com o erro mltipla
mensagens, que pode facilmente acontecer quando voc enviar mensagens para uma grande lista de discusso.
O prximo grupo de cabealhos mostra como a mensagem foi recebida a partir da fonte para o
destino, em ordem cronolgica inversa. H um total de 11 Recebido:
cabealhos, tornando-se mais da metade do nmero total de linhas. Isso porque ele foi
atravs de uma lista de discusso. Mensagens de correio normais tm apenas um ou dois Recebido: cabealhos.
O primeiro Recebido: cabealho dividida em trs linhas. Ela mostra o mais recente passo de
jornada da mensagem ao seu destino. Ele mostra que foi recebido
mx2.freebsd.org por wantadilla.lemis.com, e que wantadilla.lemis.com estava correndo
postfix. Ele tambm mostra o tempo a mensagem chegou ao wantadilla, Sat, 21 Sep 2002,
10:23:04. O fuso horrio de 9 horas e meia frente da UTC, e o ID da mensagem
195CC81743.
483
Cabealhos de email
484
Os prximos cinco cabealhos so as'''' cabealhos normais: remetente, destinatrio, destinatrios copiados
e data. Este exemplo mostra por que eles esto na cor, pois eles podem aparecer em um grande
nmero de lugares diferentes.
Acabamos de ver onze IDs de mensagens diferentes. Ento, por que o cabealho Message-Id:?
Isso exatamente o motivo: os outros onze IDs so locais para o sistema que eles passam
completamente. A linha que comea com Message-Id: d uma mensagem ID definitiva de que
pode ser usado para referncias.
Os prximos quatro cabealhos comeam com X-. Eles so cabealhos personalizados oficiais, e vamos ver
mais abaixo. Os RFCs deliberadamente no definem seu significado. evidente que esses queridos
so usados pelo Microsoft software para comunicar informaes adicionais, incluindo a
fato de que o MUA que criou esta mensagem de correio foi o Microsoft Outlook.
Os prximos dois campos, Importncia: Tambm no definido pelas normas. Ele pode ser um
. Microsoft'' extenso'' Este no um abuso das normas: as RFCs permitir o uso de
qualquer cabealho indefinido, eo X- conveno fornecido apenas para ter certeza de que um
conjunto especfico de cabealhos permanece indefinido.
A seguir Lista cabealhos tambm no so definidas pelas normas. Eles so usados como
comentrios do software de lista de discusso.
X-Loop usado pelo software de lista de discusso para evitar loops de discusso. A lista de discusso
software reconhece um X-Loop cabealho com o seu prprio nome quer dizer que ele tem
de alguma forma, enviou uma mensagem a si mesmo.
Os cabealhos finais so adicionados vira-lata quando ele atualiza a pasta de correio, por exemplo
quando ele sai. Outros MUAs adicionar cabealhos semelhantes.
O Status: bandeira usada pelo MUA definir sinalizadores na tela. As cartas cada
tm o seu prprio significado: R significa que a mensagem foi lida e O significa que ele
velho (em outras palavras, ele j estava na pasta de correio quando o MUA ltimo saiu).
485
A menos que haja uma boa razo, evite formatos proprietrios. A maioria dos utentes podem
segur-los nos dias de hoje, mas outras no podem. Por exemplo, algumas pessoas configurar Microsoft
utentes de usar HTML como o formato padro. Muitos outros utentes tm dificuldade com
HTML, embora vira-lata pode exibi-lo com a ajuda de um navegador web. Microsoft
utentes so tambm muitas vezes configurado para enviar e-mails em formato Microsoft Word, que
ilegvel para apenas cerca de ningum sem um sistema Microsoft.
Ao enviar'''' correio convencional, garantir que voc aderir aos padres. Novamente,
Utentes da Microsoft so muitas vezes mal a este respeito: sem diz-lo, eles podem ou
transformar pargrafos em uma longa fila, ou quebrar linhas em duas, uma longa e
um short. A aparncia resultante da mensagem parece (tendo este nmero
como exemplo):
Ao enviar'''' correio convencional, garantir que voc aderir aos padres.
Mais uma vez, os utentes da Microsoft so muitas vezes mal a este respeito: sem dizer yo
u, que pode tanto transformar pargrafos em uma longa linha, ou eles quebram li
nes em dois, um longo e um curto. A aparncia resultante da Messa
ge parece que (tendo este nmero como um exemplo):
Cabealhos de email
486
Ao responder, certifique-se que voc use uma conveno de citao, conforme mostrado acima. Coloque o seu
responder texto diretamente abaixo da parte do texto ao qual voc est respondendo.
As mensagens tendem a crescer medida que mais e mais respostas so adicionados. Se grande parte da
texto original so irrelevantes, remov-los da resposta.
Deixar uma linha em branco entre o texto original e sua resposta, e deixar um espao aps
o > citar personagem. Ambos tornar a mensagem mais legvel. Por exemplo, compare
Estes dois fragmentos:
> Rdkeys@csemail.cropsci.ncsu.edu escreve:
>> Para no pegar no nits .... mas, ainda estou confuso quanto ao que exatamente
>> o'' estvel'' FreeBSD. Por favor, me ilumine e me diga o
>> Raciocnio por trs dele.
> OK, eu vou dar uma chance. Para entender realmente o 2.2-STABLE ,
> Voc tem que ter uma idia de como a equipe FreeBSD usa "ramos". Em
> Particular, estamos a falar de ramos como implementado pelo CVS
Que tal saudaes? Voc vai ver um monte de mensagens l fora, que no comece com
'' Caro Fred,'' e ou no so sequer assinados ou apenas tem o nome do autor. Este
Parece pouco rude no incio, mas tornou-se praticamente um padro na Internet.
H uma chance de que isso vai mudar no decorrer do tempo, mas no momento o
forma como as coisas so, e voc no deve assumir qualquer grosseria implcita por parte de pessoas
que escrever desta maneira.
Na outra extremidade da escala, algumas pessoas adicionar um bloco de assinatura para cada padro
mensagem. Voc pode fazer isso automaticamente, armazenando o texto em um arquivo chamado
~ /. Assinatura. Se voc fizer isso, considere que ele aparece em todos os mensagem que voc escreve, e
que ele pode ficar com os nervos das pessoas se for muito longa ou muito scurrile.
Certifique-se de que o ID do usurio declara que voc . Ele no faz uma boa
impresso para ver e-mail de foobar (o maior guru da Terra), especialmente
se ele passa a fazer uma declarao incorreta. Existem melhores maneiras de expressar seu
individualidade.
487
Use somente anexos em HTML para pginas da web. Muitos utentes permite que voc envie
mensagens em text / html formato por padro. HTML no um formato apropriado para
mensagens de correio: destinado para a web. Claro, se voc quiser enviar a algum um
pgina web, esta a maneira de faz-lo.
Especifique o tipo de ligao correta. Se voc enviar uma pgina da web como um anexo, seja
certeza de que especificada como text / html. O mailer receber pode usar isso para mostrar
o acessrio corretamente. Se voc especificar que, por exemplo, como text / plain, o mailer exibe
com todos os caracteres de formatao, o que no melhoram a legibilidade. Se voc enviar um . Gif
imagem como image / gif, a mala direta pode exibir a imagem diretamente. Caso contrrio,
o utilizador
precisa salvar a mensagem e realizar converses possivelmente complexas para ver o
imagem.
Neste captulo:
Como correio fica
entregue
Instalando o postfix
Rejeitando o spam
Correndo postfix em
tempo de inicializao
Baixando correio
a partir do seu ISP
Listas de discusso:
majordomo
27
Correio eletrnico:
servidores
No captulo anterior, ns olhamos e-mail a partir de uma perspectiva do usurio. A outra parte de um
sistema de correio o Mail Transfer Agent ou MTA. Como o nome sugere, MTAs realizar
a transferncia de e-mails a partir de um sistema para outro. Especificamente, eles realizam trs relacionados
tarefas:
Eles enviam mensagens de sada, em outras palavras correio que se origina a partir de seu sistema. Se o
sistema de destino no est disponvel, eles olham para um sistema alternativo, e se no
disponveis, eles novamente a entrega em uma data posterior. Normalmente, um MTA tentar novamente a cada 30
minutos durante cinco dias antes de desistir.
Eles recebem e-mails recebidos, possivelmente para vrios nomes de domnio. Eles podem ser bastante
picky sobre como executar essa tarefa: desde o advento do spam, uma srie de
tcnicas tm desenvolvido. Ns vamos olhar para alguns na seo postfix
configurao.
Eles retransmitir e-mail. Considere o caso em que um MTA de envio no pode chegar ao destino
MTA e escolhe uma alternativa. A alternativa chamado um MTA rel, e deve
estar preparado para entregar o correio para o destinatrio final em um momento posterior. At h poucos anos
atrs, MTAs realizada afinao por padro, mas o advento do spam que mudou
radicalmente.
Correio tem sido em torno de um longo tempo, bem mais de 25 anos. Nesse tempo, muitos correio
sistemas vm e vo. Uma parece ter sido em torno de sempre: o sendmail
MTA. sendmail tem uma reputao incomparvel. Por um lado, ele pode fazer praticamente
nada, mas, por outro lado, o seu ficheiro de configurao um dos mais arcano, nunca sero
mta.mm, v v4.15 (2003/04/02 05:01:57)
489
O FreeBSD completo
490
vi. Ainda assim, ele est segurando bem contra a concorrncia, e ainda est sendo ativamente
desenvolvido.
O livro definitivo sobre sendmail, o chamado'' bat livro'' aps a sua capa, foi escrito por
Costales Bryan e outros (O'Reilly), consulte o Apndice A, Bibliografia para mais detalhes.
mais de 1000 pginas. Obviamente, este livro no pode competir com ele.
A boa notcia sobre sendmail : ele funciona. possvel instalar sendmail e execut-lo
sem configurao alguma. A notcia menos boa que nos ltimos anos tem
sido constantemente mudando, e qualquer informao que eu escrevo aqui passvel de ser desatualizada
o tempo que voc l-lo. Como resultado, eu recomendo:
Cada vez que um MTA recebe uma mensagem dirigida no ao seu sistema, este MTA coleta
todos os registros MX para o destino que no so maiores do que o seu prprio recorde MX.
Se o MTA encontra nenhum registro MX, ele tenta enviar a um deles, a partir da
menor preferncia.
Se tudo mais falhar, o MTA rejeita a mensagem ('' no pode encontrar o destino'').
Arquivos MTA
MTAs usar trs tipos diferentes de arquivos:
Os arquivos de configurao do MTA dizer o que fazer. Problemas de configurao tpicas incluem
qual o nome a apresentar para o mundo exterior, e quando aceitar correio para a entrega e
quando a rejeit-la. A questo do spam (e-mail comercial no solicitado) faz isso muito
mta.mm, v v4.15 (2003/04/02 05:01:57)
491
uma questo complicada. postfix mantm seus arquivos de configurao no diretrio / Usr/local / etc / postfix e sendmail os mantm em / Etc / mail.
Cessante postfix mail est armazenado na hierarquia de diretrios / Var / spool / postfix, enquanto
sendmail atualmente armazena seu correio nas hierarquias / Var / spool / mqueue e
/ Var / spool / clientmqueue.
E-mails recebidos so armazenados no diretrio / Var / mail. Normalmente, cada usurio recebe um arquivo que
corresponde ao seu nome de usurio.
Instalando o postfix
postfix na coleo de ports, e no o sistema de base, de modo que voc possa us-lo, voc deve
instal-lo. um interativo porta: em vrios pontos no processo de instalao pede
entrada. O primeiro um menu oferecendo configuraes adicionais opcionais, como mostrado na figura
27-1. Para a configurao deste livro, voc no precisa de nada alm do que o
Menu sugere, basta selecionar Ok e continuar.
Algum tempo depois, voc recebe as mensagens informativas:
Adicionado grupo "postfix".
Adicionado grupo "maildrop".
Adicionado usurio "postfix".
Voc precisa de usurio "postfix" adicionado ao grupo "mail".
Voc gostaria que eu adicion-lo [y]? Entrar prensado
Concludo.
mta.mm, v v4.15 (2003/04/02 05:01:57)
Instalando o postfix
492
A sada passa a explicar que sinalizadores para definir no seu arquivo de configurao do sistema
/ Etc / rc.conf. Em particular, ele diz-lhe para definir sendmail_enable e termina dizendo
'' Isso ir desativar completamente Sendmail.'' Isso pode parecer estranho, especialmente se voc no fizer isso
tem alguma entradas sendmail-relacionados no arquivo / etc / rc.conf. Por que a criao sendmail_enable
a SIM incapacitar sendmail? Bem, uma escolha um pouco infeliz de nomeao, e
possvel ele vai mudar, mas a resposta est nos detalhes: sendmail_enable deve realmente
ser chamado algo como mail_enable. A outra sendmail parmetros de desligar todos os
componentes sendmail-relacionados.
Configurando o postfix
postfix requer apenas um arquivo de configurao, / Usr / local / etc / postfix / main.cf. Este arquivo
contm um grande nmero de comentrios: com um pouco de experincia, voc pode configur-lo
sem qualquer ajuda externa. Nesta seo, vamos dar uma olhada em algumas das entradas de interesse.
#
#
#
#
#
#
#
493
mail_owner = postfix
MTAs mais antigos utilizados para executar como raiz, o que tornava mais fcil escrever exploits
transmitidas por
e-mail. MTAs modernos usam um ID de usurio dedicado. Como vimos acima, o postfix usurio recebe
adicionado aos seus arquivos de senha quando voc instal-lo. sendmail usa outra identificao do usurio, smmsp.
No altere esta entrada.
No arquivo de configurao original, a ltima linha est presente, mas '' comentada'': ela
inicia com o # personagem. Basta remover esse personagem.
A prxima varivel de interesse mydestination. Esta uma lista de nomes de host e de domnio
para os quais se considera que o MTA do destino final (em outras palavras, que aceita mensagens
para a entrega final). Por padro, ele aceita e-mail endereado para o nome da mquina
($ Myhostname em postfix linguagem) e tambm localhost. $ mydomain, o host local
nome para esse domnio. Em particular, faz no aceitar e-mail endereado ao domnio, por isso, se
voc enviar e-mail como fred@example.org, qualquer resposta ser devolvida. Para corrigir isso,
adicione
$ Mydomain lista.
Voc tambm pode querer aceitar e-mails para outros domnios. Por exemplo, se voc tambm queria
para aceitar e-mail para beispiel.org, voc gostaria de acrescentar que o nome aqui tambm. O resultado pode
parecido com este:
# Mydestination = $ myhostname, localhost. $ Mydomain
# Mydestination = $ myhostname, localhost. $ Mydomain $ mydomain
mydestination = $ myhostname, localhost. $ mydomain, $ mydomain,
beispiel.org
Para o e-mail para beispiel.org para efectivamente ser entregue a este aparelho, a prioridade mais baixa
mta.mm, v v4.15 (2003/04/02 05:01:57)
Instalando o postfix
494
Retransmisso de email
Um dos truques favoritos dos spammers enviar seus e-mails atravs de outro sistema para dar-lhe
a aura de respeitabilidade. Isto duplamente irritante para o'' outro'' sistema: primeiro, d-lhe
a reputao de ser um spammer, e em segundo lugar, muitas vezes, incorre em despesas, tanto para dados
encargos ou simplesmente de congestionamento. postfix tem uma srie de truques para ajudar. O primeiro
especifica quais redes a confiana: postfix vai transmitir correio proveniente destas redes.
Voc poderia considerar que este seja'' sada'' e-mail, embora os mtodos postfix usos no
fazer essa suposio. Por padro, o postfix confia em sua rede ea rede localhost
127.0.0.0 / 8, ou seja, com uma mscara de rede 255.0.0.0. Mas como ele sabe a net
mscara para a sua rede? H duas possibilidades: voc diga a ele, ou palpites.
postfix muito simplista quando se trata de adivinhao. Ele assume a mscara de rede padro para
a classe de endereos, por isso, se o seu endereo IP , digamos, 61.109.235.17 (a'' classe A'' de rede), que
vai aceitar e-mails a partir de qualquer rede, cujo primeiro octeto 61. Sei de pelo menos 20 fontes de
Spam nesse intervalo. Em quase todos os casos, voc deve especificar a rede e mscara
explicitamente:
mynetworks = 223.147.37.0/24, 127.0.0.0 / 8
Esta uma boa escolha onde voc souber o nome das redes originrios, por exemplo
sistemas que esperam que voc lidar com a conexo de e-mail para o mundo exterior. Mas o que se
deseja aceitar e-mail de qualquer lugar dirigida aos domnios especficos? Considere isso
'' Entrada'' e-mail, embora mais uma vez que no o caminho postfix olha. Por exemplo, a
talvez voc seja um MX de backup para beispiel.de, assim que voc quer aceitar qualquer e-mail enviado ao
domnio. Nesse caso, voc quer transmitir correio para este domnio, no importa de onde vem
de. Para este caso, use o relay_domains varivel, uma lista de nomes de domnio para o qual
postfix sempre transmitem. Voc pode colocar isso em seu main.cf :
relay_domains = $ mydestination, $ mydomain, beispiel.de
Voc tambm pode usar o permit_mx_backup varivel para aceitar correio para qualquer domnio que
lista como um MX secundrio. Isto muito perigoso: voc no tem nenhum controle sobre
que lista como um MX secundrio, portanto, qualquer spammer poderia tirar proveito dessa configurao
e us-lo para um rel.
Alias revisitado
Na pgina 481 vimos como configurar aliases individuais para o uso com vira-lata. postfix e
sendmail tambm ter uma opo de pseudnimo, desta vez no nvel do sistema. O sistema instala um
arquivo chamado / Etc / mail / aliases. Ele est l por padro, ento no h nenhuma razo especial para se mover
lo. O padro / Etc / mail / aliases se parece com:
mta.mm, v v4.15 (2003/04/02 05:01:57)
495
root:
grogue
Cada linha contm o nome de um alias, seguido pelo nome do utilizador que deve
receb-lo. Neste caso, o e-mail endereado aos usurios bin, daemon, jogos, ingres,
ningum, sistema, toor e uucp ser enviada raiz em vez disso. Note que a ltima linha
redefine raiz para enviar todas as mensagens para um usurio especfico.
Voc deve executar o newaliases programa aps a mudana / Etc / aliases para reconstruir os aliases
base de dados. No confunda isso com o newalias programa, o qual parte do olmo MUA.
A par de outros usos de aliases so:
Voc tambm pode usar um arquivo de alias para proteo contra spam. Se voc quiser se inscrever em um
lista de discusso, mas voc est preocupado que os spammers podem se apossar dos contedos
a lista de discusso, voc pode se inscrever como um alias e adicionar algo como:
frednospamplease: fred
Se voc receber spam para que o nome, basta remover o alias (e lembre-se de nunca
ter quaisquer contactos com o operador da lista de discusso novamente).
=
=
=
=
dbm :/ etc
de hash :/
de hash :/
aliases :/
/ aliases
etc / aliases
etc / aliases, nis: mail.aliases
NETINFO
Os textos dbm, mistura e netinfo descrever o tipo de pesquisa para executar. Para sendmail
compatibilidade, ns queremos hash. Supondo que voc tambm deseja executar mordomo, adicione a linha:
Instalando o postfix
496
alias_maps = de hash :/ etc / mail / aliases, de hash :/ usr / local / mordomo / aliases.majordomo
Rejeitando o spam
Um dos maiores problemas com e-mail hoje o fenmeno da spam no solicitado
e-mail. Atualmente, a lei e os ISPs so impotentes contra ela. Esperemos que a comunidade
vai encontrar solues para o problema no futuro, mas no momento mantendo spam para
propores gerenciveis uma batalha de inteligncia. H uma srie de maneiras para combat-la, de
curso:
Rejeitar e-mail de domnios conhecidos como spammers. postfix ajuda aqui com um arquivo
chamado / Usr / local / etc / postfix / access, que contm nomes de domnios para rejeitar.
H um par de problemas com essa abordagem:
relativamente fcil para registrar um domnio, ento voc pode encontrar o mesmo de spam que vem
a partir de um local diferente.
relativamente fcil para spoof um nome de domnio. Correio regularmente transmitido, ento voc
tem que ir com o nome no De linha. Mas voc pode forjar que, por isso muitas vezes voc v
e-mail de yahoo.com ou hotmail.com que nunca foi to perto desses provedores.
Obviamente isso no ajuda para reclamar com o ISP.
Claro que, se os nomes so falsificados, voc ainda pode descobrir onde a mensagem realmente
veio dos cabealhos, como vimos na pgina 482. Ou podemos? H dois
problemas l: em primeiro lugar, se a mensagem passou por um outro sistema, um revezamento, voc no pode confiar
nos cabealhos mais longe do que um hop. Qualquer coisa alm disso pode ser forjada.
Nos tempos antigos, MTAs aceitaria e-mail para a retransmisso de qualquer sistema: eram
chamado abrir rels. Spammers descobriram isso muito til e, agora, a maioria dos sistemas
restringiram a retransmisso para sistemas confiveis especficos. H ainda um grande nmero de
relays abertos na rede, no entanto.
Este um problema que poderia teoricamente acontecer com voc: se seu sistema um aberto
revezamento, voc pode acabar entregando o spam, mesmo sem conhec-lo. Por padro, todas
MTAs atuais fornecidos com FreeBSD se recusam a rel, mas possvel
(Des) configur-los para ser relays abertos. Esteja ciente dos problemas.
Mas e se voc receber uma mensagem como esta?
Received: from femail.sdc.sfba.home.com (femail.sdc.sfba.home.com [24.0.95.82])
por wantadilla.lemis.com (Postfix) com ESMTP id BCBFF6ACC0
para <webmaster@lemis.com>; Tue, 19 de junho de 2001 13:50:57 0930 (CST)
Received: from u319 ([24.21.217.142]) por femail2.sdc1.sfba.home.com
(Intermail vM.4.01.03.20 201-229-121-120-20010223) com SMTP
id <20010619042005.FBWM26828.femail2.sdc1.sfba.home.com @ u319>;
Seg, 18 de junho de 2001 21:20:05 -0700
De: britneyvideo1234@yahoo.com
Para:
Assunto: roubado britney spears vdeo caseiro!
Date: Thu, 19 junho, 2025 13:52:44 -0200
497
Esta mensagem tem provm do domnio home.com, embora ele est pretendendo vir
de yahoo.com, mas o endereo IP do MTA de origem no resolve a um
nome. O formato do Recebido: cabealhos :
anunciou-name (Nome real [-IP real])
Uma srie de sites de servios pblicos e comerciais manter uma lista de sites de spam conhecidas.
Voc pode us-los para decidir se aceita ou no a mensagem.
O exemplo anterior mostra um outro ponto bvio: esta mensagem foi forjada para
parecem vir de yahoo.com. Todas as mensagens que realmente vm do Yahoo! tem uma
cabealho desta natureza:
Received: from web11207.mail.yahoo.com (web11207.mail.yahoo.com [216.136.131.189])
por mx1.FreeBSD.org (Postfix) com SMTP id 4079E43E65
para <freebsd-arch@freebsd.org>; Mon, 07 de outubro de 2002 10:39:14 -0700 (PDT)
(Envelope-from gathorpe79@yahoo.com)
Ento, se voc capaz de reconhecer as mensagens que afirmam vir de yahoo.com, mas sem
esse tipo de cabealho, h uma boa chance de que eles so spam.
Ento, como vamos usar essa informao para combater o spam? postfix ajuda para os trs primeiros, mas
precisamos de outras ferramentas para a ltima.
As regras para bloqueio de mensagens indesejadas no esto includos no / Usr/local/etc/postcorreo / main.cf. Em vez disso, eles esto em / usr / local / etc / postfix / sample-smtpd.cf. Copie aqueles que voc
quer para a parte inferior de sua / Usr / local / etc / postfix / main.cf. Especificamente, as variveis
interesse so smtpd_helo_restrictions (Que se relaciona com o MTA de envio, que
poderia ser um rel), e smtpd_sender_restrictions, que se relaciona com o (alegado)
remetente original. Ver sample-xmtpd.cf para obter detalhes sobre todas as restries possveis. Quanto mais
os interessantes so:
Rejeitando o spam
498
Note-se que o . Db est faltando a partir do nome. Agora, adicione esta linha ao arquivo
/ Usr / local / etc / postfix / access, criando-se necessrio:
spamdomain.com
550
Esta forma rejeita mensagens deste domnio com cdigo de erro SMTP 550 e da mensagem
que se segue.
Como j vimos, postfix l o arquivo / Usr / local / etc / postfix / access.db, no / usr/local / etc / postfix / access. Use o postmap programa para criar ou atualizar / Usr/local/etc/postcorrigir / access.db:
# Postmap / usr / local / etc / postfix / access
As alteraes / Usr / local / etc / postfix / main.cf dependem de outros itens, bem, ento vamos dar uma olhada
-los no final desta discusso.
A julgar pelo nome, spamdomain.com , provavelmente, um produtor de spam hard-core. Mas
h outros, nomeadamente grandes ISPs com pouco ou nenhum interesse em limitar o spam, e eles
tambm os usurios inocentes que tambm sero bloqueadas. Se voc descobrir mais sobre ele, voc pode fazer
excees:
spamdomain.com 550
innocent@spamdomain.com OK
No se esquea de voltar a correr postmap aps a atualizao alias. Uma maneira criar um Makefile em
/ Usr / local / etc / postfix com os contedos seguintes:
499
access.db: acesso
/ Usr / local / sbin / postmap acesso
(Cd / usr / local / etc / postfix, fazer) 2> / dev / null> / dev / null
Este verifica os arquivos a cada hora e reconstri / Usr / local / etc / postfix / access.db se necessrio.
Eles tm o hbito de bloquear uma grande quantidade de espao de endereo, incluindo domnios
que no esto de alguma forma relacionados com os spammers. Eu no sei nada sobre
MAPS, por isso no posso comentar se eles fazem esse tipo de coisa.
Se voc quiser usar este tipo de servio, adicione as seguintes linhas ao seu main.cf :
smtpd_client_restrictions = reject_maps_rbl
maps_rbl_domains = rbl.maps.vix.com
Rejeitando o spam
500
-Bd meios tornar daemon: postfix executado como um daemon e aceita e-mails recebidos.
sendmail utiliza um parmetro adicional, geralmente algo parecido -Q30m. Isto diz
sendmail quantas vezes para repetir o envio de correio (30 minutos neste exemplo). postfix
aceita esta opo, mas ignora. Em vez disso, voc diga a ele quantas vezes para repetir mail ('' executar o
fila'') com o queue_run_delay parmetro no arquivo de configurao, que definido
de 1,000 segundo, cerca de 16 minutos. A tentativa de repetio ocupa locais e de rede
recursos, por isso no definir este valor a menos de cerca de 15 minutos.
Os outros parmetros esto l apenas para parar o sistema de execuo sendmail como
bem.
501
250 8BITMIME
e-mail de: grog@example.org
250 Ok
RCPT TO: grog@example.org
250 Ok
dados
354 dados finais com <CR> <LF>. <CR> <LF>
Os dados de teste
.
250 Ok: enfileiradas como 684F081471
desistir
221 Bye
Conexo fechada pelo host estrangeiro.
que o e-mail de
e que ele vai para
iniciar o corpo da mensagem
A mensagem
Fim da mensagem
e de sada
Este mtodo bastante complicada til se voc est tendo problemas com postfix.
502
outra extremidade para baixar os dados. POP um servio de Internet, ento voc precisa da cooperao
do outro sistema para execut-lo. Ns vamos olhar para POP na prxima seo.
popper: o servidor
Instalar popper a partir da coleo de ports da maneira usual:
# Cd / usr / ports / mail / popper
# Make install
popper foi concebido para ser iniciado somente via inetd. Para habilit-lo, edite o arquivo / etc / inetd.conf. Por
padro, que contm a seguinte linha:
# Pop3
stream tcp
nowait raiz
popper
Para testar o servidor, telnet ao pop3 port. Voc no pode fazer muito parecido com isso, mas pelo menos voc
pode confirmar que o servidor est respondendo:
$ Telnet localhost pop3
Tentando :: 1 ...
telnet: conectar-se a abordar :: 1: Conexo recusada
Tentando 127.0.0.1 ...
Conectado ao localhost.
Caractere de escape ']'.
+ OK QPOP (verso 2.53) no freebie.example.com partida. <11.755,1028797120 @ brinde.
example.com>
desistir
+ Servidor Pop OK em freebie.example.com desligando.
Conexo fechada pelo host estrangeiro.
fetchmail: o cliente
Instalar fetchmail a partir da coleo de ports. Para execut-lo, basta especificar o nome do servidor
a partir do qual voc deseja carregar o e-mail.
$ Hub fetchmail
consulta hub
Digite a senha servidor de correio:
no ecoa
QPOP (verso 2.3) em hub.freebsd.org partida. <27540,876902406 @ hub.freebsd.org>
5 mensagens na pasta, 4 novas mensagens.
leitura de mensagem 1 ...
rubor mensagem 2
mta.mm, v v4.15 (2003/04/02 05:01:57)
503
fetchmail e popper so relativamente simples de usar se voc tem, mas eles acrescentam outro
nvel de complexidade do sistema de correio, e que requerem um trabalho adicional de um sistema que
projetado para ser automtico. Alm disso, fetchmail no um demnio da velocidade: se voc tem um
muitos e-mails para transferir, estar preparado para esperar muito mais do que um SMTP MTA tomaria.
Com excepo da ltima linha, isto vem a partir do original majordomo instalao
procedimento. A ltima linha a porta de realizar o make install-wrapper para voc.
Voc no precisa fazer mais nada, e voc pode ignorar as mensagens.
Aps a instalao, voc ainda precisa fazer algumas configuraes:
Personalize / Usr / local / mordomo / majordomo.cf. Isso deve ser fcil o suficiente para ler,
e voc pode no precisar mudar nada. Depois de t-lo instalado e funcionando, voc
gostaria de pensar em mudar o default_subscribe_policy.
Defina suas listas de / Usr / local / mordomo / aliases.majordomo. Este arquivo contm um
lista nica, test-l, o que voc deve remover uma vez que voc tem coisas a funcionar.
raiz
Desde raiz deve ser um apelido para o seu ID e-mail, isso significa que voc tem o e-mail
para mordomo-proprietrio bem. No execute postmap ou newaliases ainda.
504
Correr postmap.
Restart postfix:
# Postfix recarga
Isto no absolutamente necessrio, mas vai demorar postfix alguns minutos para perceber
contrrio.
Isso tudo que voc precisa fazer. Voc no precisa comear qualquer processo a correr mordomo: ela
iniciado automaticamente quando uma mensagem de email recebido.
28
Neste captulo:
O problema com
placas e monitores
X configurao: o
teoria
XF86Config
Vrios monitores e
servidores
X na rede
XFree86 em profundidade
A informao no Captulo 6 deve ser suficiente para obter X instalado e funcionando. H muito
a X mais do que isso, no entanto, suficiente para encher muitos livros. Neste captulo veremos
alguns dos temas mais interessantes:
X configurao: a teoria
Configurar o seu XF86Config arquivo normalmente leva alguns minutos, mas s vezes voc pode
executar em problemas que fazem homens crescidos chorarem. No restante deste captulo, vamos olhar para o
formao tcnica:
Refiro-me ao ltimo ponto a srio: a sabedoria convencional diz que voc no pode danificar
hardware com um erro de programao, mas, neste caso, voc pode, e as pessoas fazem isso de
tempos a tempos. Quando voc leu a seo sobre como monitores de trabalhar, voc vai entender,
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
505
X configurao: a teoria
506
mas por favor no comece a afinao at que voc entenda os perigos envolvidos.
507
O tubo s pode mover o feixe de eltrons a uma velocidade finita. Quando o feixe de eltrons
atinge o lado direito da tela, ele precisa ser desviado de volta. Esta parte do
o exame chamado de flyback horizontal, e que no utilizado para apresentar os dados de imagem.
O tempo real de que o hardware requer para o flyback depende do monitor, mas
, na ordem de 5% a 10% do tempo total da linha de explorao. Da mesma forma, quando a vertical
deflexo atinge a parte inferior da tela, desempenha um flyback vertical, que tambm
no utilizado para fins de exibio.
No suficiente apenas para desviar, claro: de alguma forma voc precisa garantir que a digitalizao
sincronizados com o sinal de entrada, de modo que a verificao no topo do ecr, quando
a informao da imagem para o topo da tela chega. Voc j viu o que acontece quando
sincronizao no funciona: a imagem corre para cima e para baixo da tela (vertical incorreto
sincronizao) ou lgrimas da esquerda da tela (horizontal incorreto
sincronizao). A sincronizao obtida atravs da incluso de impulsos de sincronizao do
perodos flyback horizontal e vertical. Eles tm um nvel de tenso fora do normal,
dados de imagem variam para garantir que eles so reconhecidos como pulsos de sincronizao.
Como se isso no bastasse, o amplificador de vdeo, a parte da TV que altera a intensidade da
o ponto em que viaja atravs da tela, necessita de tempo para assegurar que o flyback invisvel,
por isso existem breves pausas entre a extremidade da linha e do incio do impulso de sincronismo, e
de novo, entre a extremidade do impulso de sincronismo e o incio dos dados. Este processo
chamado corte, e os atrasos so chamados a varanda da frente (Antes do impulso de sincronismo) e
varanda dos fundos (Aps o impulso de sincronizao). Figura 28-2 mostra uma linha completa.
Pulso de
Voltar varanda
sincroniza
o
Alpendre
Pulso de sincronizao
Dados de imagem
(Ponto de referncia)
Registros:
HT
X configurao: a teoria
508
inclusive eletrnicos) ainda no tinha sido inventado, e at hoje ns estamos presos com os dados de baixa
taxas que eles decididos naqueles dias. Dependendo do pas, TVs convencionais
exibir apenas a 25 ou 30 quadros (pginas de display) por segundo. Isto causaria uma
desagradvel piscar no visor. Esta oscilao minimizado com um truque chamado entrelaamento:
em vez de exibir o quadro em uma varredura vertical, as linhas mpares e pares so exibidos
em dois quadros alternados e meio, o que duplica a frequncia vertical aparente.
509
Voc no tem que rolar sua prpria configurao X para queimar o monitor: h 20 anos,
as placas de vdeo padro foram cgas e HDAS, 1 e tiveram horizontal diferente
freqncias e, portanto, necessrios monitores diferentes. Infelizmente, ambos usaram o mesmo
conector de dados. Se voc conectou uma HDA (18,43 kHz horizontal) para a CGA
monitor (15,75 kHz, a freqncia da linha NTSC), voc logo v sinais de fumaa.
Todos os monitores de PC modernos lidar com pelo menos uma faixa de freqncias horizontais. Isto no faz
significa que um sinal de especificao no pode danific-los, voc s pode queimar alguma coisa
outra, muitas vezes o fornecimento de energia. Mais melhor monitores reconhecer sinais out-of-spec
e se recusam a tentar exibi-los, em vez disso, voc recebe uma tela de erro. Infelizmente, h
uma abundncia de outros monitores, modelos especialmente os mais velhos ou mais barato, que no protegem
se contra de sinais especificao. Alm disso, s porque o monitor exibe
corretamente no significa que ele est sendo executado em spec. A moral da histria:
O controlador CRT
O controlador de visualizao, normalmente chamado de um controlador CRT (Cathode Ray Tube), a parte do
a placa de vdeo que cria os sinais de que estamos apenas falando. Exposio precoce
controladores foram projetados para produzir sinais que eram compatveis com TVs: eles tiveram que
produzir um sinal com pulsos de sincronismo, frente e verso varandas, e os dados de imagem entre eles.
Controladores de exibio modernos podem fazer muito mais, mas os princpios permanecem os mesmos.
A primeira parte do controlador de tela cria o quadro que estamos procurando: o
pulsos de sincronismo horizontal e vertical, supresso de informao e imagem, o que
representada como uma srie de pontos ou dots. Para contar, precisamos de uma fonte de pulso, que tambm
1. Color Graphics Adapter e adaptador de vdeo Hercules.
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
X configurao: a teoria
510
determina a durao de pontos individuais, de modo que normalmente chamado dot relgio. Para
razes perdido na histria, os controladores CRT iniciar a contagem no canto superior esquerdo da tela, e no
o impulso de sincronizao vertical, que o verdadeiro incio do visor. Para definir uma linha
a deflexo horizontal, precisamos definir quatro registradores CRTC para dizer-lhe para ver o diagrama
na pgina 507:
O Horizontal exibio End registo (HDE) especifica quantos pontos que queremos em
cada linha. Aps a CRTC tem contado isso muitos pixels, ele pra de imagem sada
dados para o visor.
O Comece Refaa Horizontal registo (SHR) especifica quantos pontos pulsos de clock
ocorrer antes do impulso de sincronismo iniciado. A diferena entre o contedo desta
registrar e o contedo do registo HDE define o comprimento da varanda da frente.
O Total de Horizontal registo (HT) define o nmero total de relgios de ponto por linha.
A largura da varanda dos fundos a diferena entre o contedo deste registo e
o EHR registar.
Alm disso, o Comece Inibio Horizontal e Fim de Feixe Horizontal registradores (SHB
e EHB) definir quando os sinais de vdeo so ligados e desligados. O servidor define estes
registra automaticamente, ento no precisamos de olhar para eles com mais detalhes.
O controlo da deflexo vertical semelhante. Neste caso, os registos so Vertical
Mostrar End (VDE) Comece Refaa Vertical (SVR), Fim Refaa Vertical (EVR), Vertical
Total (VT), Comece Inibio Vertical (SVB) e Fim de Feixe Vertical (EVB). Os valores
nesses registros so contados em linhas.
Hardware VGA evoluiu de mais hardware de exibio baseada em caracteres de 8 bits, que
linhas contadas em caracteres, no relgios de ponto. Como resultado, todos estes registos so 8 bits
largura. Este adequado para telas de caracteres, mas um problema quando a contagem pontos: o
valor mximo que voc pode definir em qualquer um destes registros 255. Os projetistas do VGA
recorreu a uma srie de kludges desagradveis para contornar este problema: os registros horizontais
contar em grupos de 8 relgios de ponto, para que eles possam representar at 2.048 relgios de ponto. A vertical
registra transbordamento em um registro de transbordamento. Mesmo assim, o padro VGA no pode contar
alm de 1.024 linhas. Super VGAs variam na forma como eles lidam com este problema, mas normalmente eles
adicionar pedaos de estouro adicionais. Para lhe dar uma idia de como limpar o projeto VGA,
considerar a maneira como o total vertical real (nmero total de linhas no display) definida
numa norma VGA. uma quantidade de 10 bits, mas os primeiros 8 bits so no registo de VT, o nono
bit o bit 0 do registo estouro, eo 10 bit o bit 5 do registo estouro.
511
Estas dez valores so necessrios. Alm disso, pode especificar modificadores no final do
linha. Os valores so os seguintes:
Uma etiqueta para a linha de resoluo. Este deve ser colocado entre aspas, e usado
para se referir a linha de outras partes do XF86Config arquivo. Tradicionalmente, o rtulo
representa a resoluo do modo de visualizao, mas isso no tem que. Neste exemplo,
a resoluo realmente 640x480, mas o um no fim do rtulo um indcio de que um
valor alternativo.
O Horizontal exibio End, que vai para o registo HDE. Este valor e todos
que se seguem so especificados nos pontos. O servidor mangles-los como a placa de vdeo
requer e coloca-los no registo CRTC correspondente.
O valor End Horizontal Refaa (EHR).
Isso uma coisa muito seca. Para torn-lo mais fcil de entender, vamos olhar como ns estabeleceria um
VGA tpico com 640x480 pixels. Claro, voc pode encontrar valores para esta configurao em qualquer
liberao de XFree86, mas isso no significa que eles so o ideal para seu sistema. Ns
quer uma exibio no-flicker, que vamos levar para significar uma frequncia vertical de pelo menos 72
Hz, e claro que no queremos interlace. Nosso monitor pode lidar com qualquer horizontal
freqncia entre 15 e 40 kHz: queremos a menos flicker, ento vamos apontar para 40 kHz.
Primeiro, precisamos criar nossas linhas. Elas contm 640 pixels, duas varandas e um pulso de sincronizao.
O nico valor que realmente sabe com certeza o nmero de pixels. Quanto tempo deve durar o
varandas e a sincronizao pulsos ser? Se voc tiver um bom monitor com boa documentao, que
deve dizer-lhe, mas a maioria dos fabricantes de monitores parecem no acreditar na boa
documentao. Quando eles documentar os valores, eles variam significativamente de monitor de
para acompanhar, e at mesmo de modo para o modo: eles no so to crticos quanto parecem. Para
exemplo, aqui esto alguns valores tpicos do meu NEC 5D manual:
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
X configurao: a teoria
512
Agora, voc precisa calcular quatro valores de registro para definir as linhas horizontais:
O primeiro valor o tamanho horizontal da tela de fim, o nmero de pixels numa linha. Ns
sei que este: 640.
Voc calcula SHR somando o nmero de pontos relgios que decorrem durante a frente
alpendre para o valor de HDE. Lembre-se que ns decidimos em uma varanda de 2 s. Neste
tempo, um relgio de 33 MHz conta 66 ciclos. Ento, ns adicionamos 66, certo? Errado. Lembrar
que a contagem de registros VGA em incrementos de 8 pixels, por isso precisamos para completar a largura
da varanda da frente para um mltiplo de 8. Neste caso, ns arredondar para 64, ento partimos para SHR
640 + 64 = 704.
O valor seguinte que preciso EHR, que SHR mais a largura da horizontal
refazer, novamente 64 relgios de ponto, ento vamos definir que a 704 + 64 = 768.
O valor final horizontal HT. Mais uma vez, ns adicionamos o alpendre-64 relgios de ponto-a
RSE e obter 768 + 64 = 832.
28
513
Em seguida, temos mais quatro valores para definir a varredura vertical. Mais uma vez, os valores dos quatro
precisamos, s sabemos o nmero de linhas. Quantas linhas que usamos para as varandas
e o sincronismo vertical? Como vimos, NTSC usa cerca de 45 linhas para os trs combinado,
mas os monitores modernos pode conviver com muito menos. De novo referindo a Multisync
manual, temos um alpendre de betwwen 0,014 e 1,2 ms, um pulso de sincronizao entre 0,06
e 0,113 ms, e uma varanda de trs de entre 0,54 e 1,88 ms. Mas quantas linhas
isso?
Para descobrir isso, precisamos conhecer a nossa real frequncia horizontal. Estvamos com o objetivo de 40
kHz, mas fizemos algumas trocas ao longo do caminho. A frequncia horizontal real
o relgio de pontos dividido pelo total horizontal, neste caso, de 33 MHz 832, o que nos d
39.66 kHz, no muito ruim. Nessa freqncia, uma linha dura de 1 39.660 segundo,ou pouco mais de 25
linhas, e na varanda dos fundos entre 10 e 75 linhas. Ser que esses horrios faz algum sentido?
No, eles nem-eles so apenas valores que o monitor pode aceitar.
Para obter a taxa de atualizao mais alta, podemos ir para o menor valor em cada caso. difcil
para especificar um valor de , por isso vamos ter um nico alpendre linha. Vamos tomar duas linhas de
pulso de sincronismo e 10 linhas de varanda dos fundos. Isso nos d:
VDE 480.
SVR 481.
EVR 483.
VT 493.
Agora podemos calcular a nossa freqncia vertical, que a freqncia horizontal dividido
pelo total Vertical, ou 39,66 493 kHz, que 80,4 Hz-isso no ruim. Por
comparao, se voc usar o valor padro compilado no servidor, voc recebe um horizontal
frequncia de 31,5 kHz e freqncia vertical de apenas 60 Hz.
Se voc conhece os detalhes tcnicos de seu monitor e placa de vdeo, realmente que
simples. Este mtodo no requer muita ateno, e cria resultados que funcionam.
Note que a linha de modo resultante pode no funcionar em outros monitores. Se voc estiver usando um
laptop que voc deseja se conectar a diferentes monitores ou unidades de visualizao gerais, no use
este mtodo. Atenha-se as freqncias padro fornecidos pelo servidor X. Muitos sobrecarga
projectores de compreender apenas um muito pequeno nmero de frequncias, e o resultado da utilizao de um
linha de modo tweaked , frequentemente, que voc no pode sincronizar com o display, ou que corta
fora de uma grande parte da imagem.
X configurao: a teoria
514
XF86Config
O arquivo de configurao principal do XFree86 chamado XF86Config. Ele tem tido uma longa e
jornada variada atravs do sistema de arquivos. No momento da escrita, ele est localizado no
/ Usr/X11R6/lib/X11/XF86Config, mas anteriormente foi colocado em / etc/X11/XF86Config,
/ Etc/XF86Config ou / Usr/X11R6/etc/X11/XF86Config eo servidor ainda procura por ele no
muitos desses lugares. Se voc estiver atualizando um sistema, voc deve garantir que voc no
ter arquivos de configurao antigos em um dos lugares alternativos.
Como vimos na pgina 102, h um par de maneiras para criar automaticamente um
XF86Config arquivo. Nessa pgina, vimos como faz-lo com xf86cfg. Uma forma alternativa
para executar o servidor X em modo de configurao:
# X-configure
XFree86 Verso 4.2.0 / X Window System
(Protocolo verso 11, reviso 0, release vendedor 6600)
Lanamento: 18 de janeiro, 2002
Se o servidor tiver mais de 6-12 meses, ou se o seu carto
mais recente que a data acima, procure uma verso mais recente antes
relatando problemas. (Veja http://www.XFree86.Org/)
Construir Sistema Operacional: FreeBSD i386 5.0-CURRENT [ELF]
Mdulo carregador de presente
Marcadores: (-) sondado, (**) a partir do arquivo de configurao, (==) configurao padro,
(+ +) A partir da linha de comando, (!) Aviso prvio, (II) informacional,
Aviso, (EE) erro (WW), (NI) no implementado, (?) Desconhecido.
(==) Do arquivo de log: "/ var/log/XFree86.0.log", Time: Sb 06 abril 2002 13:51:10
Lista de drivers de vdeo:
atimisc
(A lista longa, e vai mudar, omitida aqui)
(+ +) Usando arquivo de configurao: "/ root/XF86Config.new"
Seu arquivo XF86Config / root/XF86Config.new
Para testar o servidor, execute 'XFree86-xf86config / root/XF86Config.new'
515
Descrio
Descreve o layout geral da configurao X. X pode lidar com mais
de uma placa de vdeo e monitor. Esta seco a chave para a outra
sees
Arquivos
ServerFlags
Mdulo
Dispositivo
Tela
O layout do servidor
A seo ServerLayout descreve as relaes entre o hardware indivduo
sob o controlo de componentes de um servidor X. Para tpica de hardware, X-configure
pode gerar:
Seo "ServerLayout"
Identificador
"XFree86 Configured"
Tela 0
"Screen0" 0 0
InputDevice
"Mouse0" "CorePointer"
InputDevice
"Keyboard0" "CoreKeyboard"
EndSection
Isto mostra que o servidor tem um ecr e dois dispositivos de entrada. Os nomes Mouse0 e
Keyboard0 sugerem que eles so um mouse e um teclado, mas qualquer nome vlido. Estes
entradas so ponteiros para sees em outras partes do arquivo, que deve conter as definies para
Screen0, Mouse0 e Keyboard0.
Normalmente, voc s tem uma tela, um mouse, um teclado, por isso esta seo pode
parecer um pouco desnecessrio. Como veremos, quando olhamos para vrios monitores
configuraes, muito importante ser capaz de descrever essas relaes.
A seo de Arquivos
O Arquivos seco do XF86Config arquivo contm o caminho para o arquivo de banco de dados RGB,
que nunca precisar ser mudado, eo caminho de fonte padro. Voc pode querer adicionar
mais caminhos de fonte, e alguns portos faz-lo: o FontPath linhas em seu XF86Config so
concatenados para formar um caminho de pesquisa. Certifique-se de que cada diretrio listado existe e vlida
diretrio fonte.
XF86Config
516
"/
"/
"/
"/
"/
"/
"/
"/
Usr/X11R6/lib/X11/rgb"
Usr/X11R6/lib/modules"
Usr/X11R6/lib/X11/fonts/misc /"
Usr/X11R6/lib/X11/fonts/Speedo /"
Usr/X11R6/lib/X11/fonts/Type1 /"
Usr/X11R6/lib/X11/fonts/CID /"
Usr/X11R6/lib/X11/fonts/75dpi /"
Usr/X11R6/lib/X11/fonts/100dpi /"
Se voc estiver executando um display de alta resoluo, esta sequncia pode ser sub-ptima. Para
exemplo, um "monitor de 21 rodando a 1600x1200 pixels tem um display visvel de
cerca de 16 "de largura e 12" de altura, exatamente 100 dpi (Pontos por polegada, realmente pixels por
polegada). Como resultado, voc provavelmente vai ser mais feliz com as 100 fontes dpi. Voc pode mudar
esta trocando as ltimas duas linhas na seo:
FontPath
FontPath
EndSection
No basta remover os 75 fontes dpi: algumas fontes podem estar disponveis apenas em 75 dpi
diretrio.
Por vezes, o servidor reclama:
No possvel abrir fonte padro 'fixo'
Isto quase certamente o resultado de uma entrada invlida em seu caminho fonte. Tente executar
mkfontdir em cada diretrio se voc tiver certeza de que cada um est correto. O XF86Config
pgina de manual descreve outros parmetros que podem ser nesta seo do arquivo.
A seo ServerFlags
A seo ServerFlags permite que voc especifique um nmero de opes globais. Por padro, ele
no est presente, e voc provavelmente no vai encontrar nenhuma razo para defini-la. Veja a pgina de manual
XF86Config (5) para obter detalhes sobre as opes.
A seo Module
O Mdulo seo descreve os mdulos binrios que carrega o servidor:
Section "Module"
Carregar "extmod"
Carregar "xie"
Carregar "pex5"
Load "glx"
Carregar "GLcore"
Load "dbe"
Load "record"
Load "type1"
EndSection
517
No vamos olhar para os mdulos de forma mais detalhada, consulte a documentao do XFree86.
A seo InputDevice
O InputDevice seo especifica cada dispositivo de entrada, geralmente mouses e teclados. Mais velho
verses do XFree86 tinha separado Mouse e Teclado sees para descrever esses detalhes.
O padro XF86Config algo como isto:
Section "InputDevice"
Identificador "Keyboard0"
Driver "teclado"
EndSection
Section "InputDevice"
Identificador "Mouse0"
Driver "rato"
Option "Protocol" "auto"
Option "Device" "/ dev / mouse"
EndSection
A seo do Monitor
Em seguida, vem a descrio do monitor. Monitores modernos podem identificar-se
o sistema. Nesse caso, voc tem uma seo que se parece com isso:
Section "Monitor"
Identificador
VendorName
ModelName
HorizSync
VertRefresh
"Monitor0"
"IBM"
"P260"
30,0-121,0
48,0-160,0
Isso informa ao servidor que o monitor um IBM P260, que ele pode manipular horizontal
frequncias entre 30 kHz e 121 kHz, e as freqncias verticais entre 48 Hz e
160 Hz. Monitores menos sofisticados no fornecer essa informao, assim voc pode acabar
com uma entrada como esta:
XF86Config
Section "Monitor"
Identificador
VendorName
ModelName
EndSection
518
"Monitor0"
"Monitor Vendor"
"Monitor Model"
Isto pode parecer nenhuma informao a todos, mas na verdade ele d o identificador. Antes
voc us-lo, voc deve adicionar pelo menos a faixa de freqncia horizontal e vertical, caso contrrio
o servidor assume que um monitor VGA padro (e obsoletos) capaz de apenas 640x480
resoluo.
Este tambm o lugar onde voc pode adicionar linhas de modo. Por exemplo, se voc tiver criado um
linha modo como descrito na primeira parte deste captulo, voc deve adicion-lo aqui:
Section "Monitor"
Identificador
VendorName
ModelName
HorizSync
VertRefresh
Modeline "640x480"
62 Hz!
Modeline "800x600"
143 Hz
Modeline "1024x768"
96 Hz
Modeline "1280x1024"
76 Hz
Modeline "1600x1200"
56 Hz!
Modeline "1920x1440"
61 Hz
Modeline "1920x1440"
EndSection
"Right"
"Iiyama"
"8221T"
24,8-94,0
50,0-160,0
73
111
possvel ter vrias linhas de modo para uma nica freqncia, e isso torna ainda mais
sentido. Os exemplos de 1920x1440 acima tm diferentes relgios de pixel. Se voc usar este
monitorar com um carto com um relgio de pixel que s vai at 200 MHz, o servidor escolhe
o modo de primeira linha. Se voc usar um carto com at 250 MHz de clock de pixel, ele usa o segundo
e obtm uma melhor taxa de atualizao da pgina.
O servidor X tem um nmero de linhas de modo built-in, por isso perfeitamente possvel ter um
arquivo de configurao sem linhas de modo algum. Os nomes correspondem s resolues e
pode haver vrias linhas de modo com o mesmo nome. O servidor escolhe o modo de linha
com a freqncia mais alta compatvel com o hardware.
A seo Dispositivo
O Dispositivo seo descreve a placa de exposio video:
Section "Device"
# # # Opes de driver disponveis so: # # # Valores: <i>: integer, <f>: flutuador, <bool>: " verdade" / "Falso",
# # # <string>: "Cadeia", <Freq>: "<f> Hz / kHz / MHz"
# # # [Arg]: arg opcional
# Option "SWCursor"
# [<bool>]
# Option "HWcursor"
# [<bool>]
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
519
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
# Opo
Identificador
Motorista
VendorName
BoardName
BusID
EndSection
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
[<bool>]
[<bool>]
[<bool>]
[<bool>]
[<str>]
[<bool>]
[<bool>]
[<bool>]
<i>
<Freq>
[<bool>]
<i>
[<str>]
[<bool>]
[<bool>]
<i>
[<bool>]
<i>
[<bool>]
[<bool>]
[<str>]
[<str>]
[<bool>]
[<bool>]
[<bool>]
Este exemplo mostra um G200 placa de vdeo AGP Matrox. Ele inclui um certo nmero de opes
que voc pode definir, removendo o caractere de comentrio (#). Muitas dessas opes so
placa de dependente, e nenhum deles so obrigatrios. Veja a documentao para mais X
detalhes.
Observe particularmente a ltima linha, BusID. Este um endereo relacionado a hardware, que conta a
X
servidor onde encontrar a placa de vdeo. Se voc mover a placa a um slot PCI diferente, o
endereo provavelmente vai mudar, e voc vai precisar de voltar a correr X-configure para encontrar o novo
ID nibus.
Se a sua placa de vdeo mais velho, muitas dessas informaes no estaro disponveis, e voc vai
tem que adicion-lo a si mesmo. Ao contrrio dos monitores mais velhos, no vale a pena se preocupar com mais
placas, no entanto: placas modernas tornaram-se extremamente barato, e eles so muito mais rpido
que as placas mais antigas que no vale a pena o esforo.
A seo da tela
A ltima seo a seo da tela, que descreve a exibio em um monitor. O
padro parecido com este:
Section "Screen"
Identificador "Screen0"
Device "card0"
Monitor "Monitor0"
Subseo "Display"
Profundidade 1
EndSubSection
Subseo "Display"
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
XF86Config
520
Profundidade 4
EndSubSection
Subseo "Display"
Depth 8
EndSubSection
Subseo "Display"
15 Profundidade
EndSubSection
Subseo "Display"
Profundidade 16
EndSubSection
Subseo "Display"
Profundidade de 24
EndSubSection
EndSection
As trs primeiras linhas descrever a relao entre a exibio da tela, a placa de vdeo
que o cria, eo monitor no qual ele exibido. Em seguida, vm uma srie de
subsees descrevem as profundidades de bits possvel que a tela pode ter. Para cada exposio
profundidade, voc pode especificar quais as linhas de modo que voc deseja usar. Hardware de vdeo moderna tem
muita memria, ento voc provavelmente no quer restringir a profundidade da tela. Por outro
lado, voc pode querer ter mltiplas linhas de modo. Sua placa de vdeo e monitor so
bom o suficiente para exibir 2048x1536 com 24 bits por pixel, mas s vezes voc vai obter imagens
(Em pginas da Web mal concebidos, por exemplo) to minsculo que voc vai querer aumentar o zoom,
talvez indo todo o caminho de volta para 640x480 em casos extremos. Voc pode alternar entre o
resolues disponveis com as combinaes de teclas Ctrl-Alt-numrico + e Ctrl-AltNumrico -. Voc provavelmente no est interessado em profundidades inferiores a 640x480 pixels,
para que o seu
Seo da tela pode parecer:
Section "Screen"
Identificador "Screen0"
Device "card0"
Monitor "Monitor0"
DefaultDepth 24
Subseo "Display"
Profundidade de 24
Modes "2048x1536" "1600x1200" "1024x768" "640x480"
EndSubSection
EndSection
Esta seco inclui uma DefaultDepth entrada para a causa do exemplo. Neste caso,
no estritamente necessrio, porque s h uma profundidade de pixel. Se houvesse mais do que um
Mostrar subseo, seria dizer xinit que profundidade para usar por padro.
521
O arquivo tambm ter vrias sees monitor, dispositivos e tela. O servidor no pode
saber sobre o layout fsico real da tela, claro, de modo que voc pode ter que mudar
a ordem das telas. Quando voc executa o servidor sem quaisquer outras especificaes,
atribudo servidor nmero 0, portanto, essas telas sero numerados : 0.0,: 0,1 e : 0.2.
Vrios servidores
Tambm possvel executar mais de um servidor X em um nico sistema, mesmo que ele s tem um
nico monitor. Pode haver algumas boas razes para isso: voc pode compartilhar um sistema de
entre os membros da sua famlia, por isso cada um deles pode ter seu prprio servidor. Alternativamente,
voc pode ter um laptop com uma tela de alta resoluo e precisa fazer uma apresentao sobre
retroprojectores que no podem lidar com mais de 1024x768 pixels. No prtico
simplesmente mudar para uma resoluo mais baixa, pois o tamanho total da tela no muda, e
difcil evitar correr a imagem ao redor quando voc move o cursor.
Para cada servidor, voc precisa de um terminal virtual, consulte a pgina 109 para mais detalhes. Se
voc est usando o mesmo hardware, voc tambm pode usar o mesmo XF86Config arquivo. A nica
diferena est na maneira em que voc iniciar o servidor. Por exemplo, voc pode comear a trs
Servidores de X, um com o fvwm2 gerenciador de janelas, uma com KDE e com um GNOME,
com o seguinte script:
xinit &
. xinit xinitrc-kde -: 1 &
xinit xinitrc-gnome -:. 2-xf86config XF86Config.1024x768 &
Devido s diferentes opes de linha de comando, voc deve usar xinit aqui, e no startx. O primeiro
xinit inicia um servidor com as opes padro: ele l seus comandos de . Xinitrc, tem
o nmero do servidor 0, e ele l a configurao do padro XF86Config arquivo. O
segundo servidor l seus comandos de . Xinitrc-kde, ela tem o nmero do servidor 1, e
l sua configurao do padro XF86Config arquivo. O terceiro servidor l o seu
comandos . Xinitrc-gnome, ela tem o nmero do servidor 2, eo arquivo de configurao
XF86Config.1024x768. Supondo que voc reservar terminais virtuais / dev/ttyv7,
/ Dev/ttyv8 e / Dev/ttyv9 para os servidores, voc pode alternar entre eles com a chave
combinaes Ctrl-Alt-F8, Ctrl-Alt-F9 e Ctrl-Alt-F10.
xtheory.mm, v v4.11 (2003/04/02 04:22:45)
522
X na rede
X um protocolo de rede. At agora vimos o servidor. Os clientes so o
programas individuais, tais como xterm, emacs ou um navegador web, e eles no tm que ser
na mesma mquina. Existe uma notao especial para lidar com servidores X e telas:
Nome do sistema: nmero number.screen servidor
A bandeira -Ls diz xterm que este um shell de login, o que faz com que ele leia na inicializao
arquivos.
Para que isso funcione, voc deve dizer ao servidor X para permitir a conexo. H duas coisas
fazer:
Isto permite o acesso a partir de todos os sistemas em nossa rede de referncia, incluindo o
em que ele executado. Voc no precisa incluir o seu prprio sistema, que ativado por
padro, mas se voc fizer isso, voc pode usar o mesmo script em todos os sistemas na rede.
xhost no um sistema muito robusto, ento por padro startx X iniciado com a opo
-Nolisten tcp. Isso bloqueia completamente o acesso a partir de outros sistemas. Se voc
quiser
permitir que clientes remotos para acessar o servidor X, modificar / Usr/X11R6/bin/startx, que
contm o texto:
listen_tcp = "-nolisten tcp"
Isso permite conexes remotas a prxima vez que voc iniciar o servidor.
523
Aps isso, voc pode mover-se para as outras mquinas, movendo o mouse no
direo correspondente. No possvel continuar com uma outra mquina, mas
possvel conectar em outras direes (norte e sul) de cada monitor presto,
que neste caso seria permitir ligaes de pelo menos seis outras mquinas. Antes disso
limitao torna-se um problema, voc precisa encontrar espao para todos os monitores.
Parando X
Para parar X, pressione a combinao de teclas Ctrl-Alt-Backspace, que escolhido deliberadamente
assemelhar-se a combinao de teclas Ctrl-Alt-Delete usado para reiniciar a mquina. Ctrl-AltRetrocesso X pra e retorna para o terminal virtual em que voc comeou. Se voc
executado a partir de xdm, ele exibe novamente a tela de login.
29
Neste captulo:
Iniciando o sistema
Coisas que voc pode fazer
antes de inicializar
O que voc vai
para arrancar?
Rodando o kernel
Modo de usurio nico
Desligamento e
reinicializar o sistema
FreeBSD sem
discos
Inicializao via rede
Substitutos de disco
Iniciando e
parar o sistema
Antes de executar o FreeBSD, voc precisa inici-lo. Isso normalmente muito
simples: voc liga a mquina, um monte de coisas rolar para fora da tela, e cerca de um
minutos mais tarde voc tem um sesso: solicitar ou uma janela de login X na tela. s vezes,
no entanto, o processo de maior interesse. Voc tem um nmero de opes quando durante a inicializao, e
tambm uma fonte de uma srie de problemas, por isso vale a pena entender. Neste captulo
veremos os seguintes tpicos:
523
O FreeBSD completo
524
Iniciando o sistema
Quando voc ligar o sistema, ou quando voc reiniciar, uma srie de aes ocorrem antes
o sistema est instalado e funcionando. Iniciando o sistema geralmente chamado de bootstrapping'','' depois
a histria do Baro von Munchhausen puxando-se pelos seus prprios meios. O
seguinte seqncia descreve a seqncia na arquitetura PC, mas s h
diferenas relativamente pequenas em outras plataformas.
Primeiro, o BIOS1 realiza testes que verificam que a mquina est funcionando corretamente e
determina a configurao do hardware. Este Power On Self Test ou POST tem
nada a ver com FreeBSD.
Em seguida, o programa de inicializao do BIOS carrega o Master Boot Record a partir do primeiro setor da
primeiro disco do sistema (C: na BIOS linguagem) na memria e executa-lo.
Este
passo o mesmo para todos os sistemas operacionais em computadores.
Cabe a esta inicializao para decidir qual sistema operacional para inicializar. A inicializao em
a MBR pode ou no ser parte do sistema FreeBSD. FreeBSD pode instalar dois
diferentes MBR, como vimos na pgina 66. O MBR padro funciona sem
interveno, enquanto o gerenciador de boot lhe d a opo de inicializar a partir de qualquer
partio no disco.
A inicializao do FreeBSD carrega pela primeira vez a inicializao de segundo nvel, BTX, a partir do prximo dia 15
setores no disco e executa.
As de segundo nvel localiza bota o bootstrap de terceiro nvel, chamado carregador, e carrega na
memria. carregador um componente de bootstrap inteligente que permite a pr-carga de
vrios componentes do kernel. Veja a pgina de manual loader (8) para mais informaes. Por
padro, carregador localiza o kernel, o arquivo / Boot / kernel / kernel no sistema de arquivos raiz,
e carrega na memria. Pode interromper o carregador, neste ponto, por exemplo, a
carregar arquivos diferentes ou adicionais.
O kernel realiza seus prprios testes para procurar hardware que ele conhece. muito
detalhado sobre isso, e imprime mensagens sobre o hardware que encontra e os
hardware no encontrar. Esta operao chamada sondagem. A maioria dos ncleos so construdos para
reconhecer uma grande variedade de hardware, por isso normal ter mais'' not found''
mensagens do que'''' encontradas mensagens.
Processo 1 chamado Init. Como o nome sugere, ele responsvel por iniciar o
sistema e daemons. Quando chega no modo multi-usurio padro, ele gera um
shell para executar o script shell / Etc / rc.
1. Mais precisamente, o firmware do sistema. O firmware chamado BIOS (Basic Input / Output System) sobre o i386
arquitetura, SRM na arquitetura Alpha, e Abra Firmware num certo nmero de outras arquitecturas.
starting.mm, v v4.19 (2003/04/02 04:32:28)
525
/ Etc / rc primeiro l os arquivos de descrio / Etc / defaults / rc.conf, que contm padres
por um nmero de variveis de configurao, e / Etc / rc.conf, que contm o seu
modificaes nos padres. Ele ento comea a executar as medidas necessrias para trazer
o sistema, a primeira partida drivers de disco virtuais, montagem espao de troca e verificao
a integridade do sistema de arquivos, se necessrio.
Quando / Etc / rc sadas, inicializao l o arquivo / Etc / ttys e inicia os processos conforme determinado
l. Ele passa o resto de sua vida cuidando desses processos.
A coisa mais bvia a fazer decidir o que voc vai arrancar. O carregador de inicializao
lhe d a chance para carregar sistemas operacionais diferentes ou diferentes kernels FreeBSD
e os mdulos. Ns vamos olhar para isso abaixo.
Alm disso, voc pode definir uma srie de opes para o carregador de kernel, incluindo
especificao de caractersticas de software e de hardware. Veremos que na pgina
527.
FreeBSD
Windows
Linux
FreeBSD
Unidade 1
Padro: F1
526
Estas mensagens so impressas BTX. Se voc estiver carregando a partir do disco, o / personagem no
fim da linha anterior continua a mudar atravs -, \ E | antes de voltar para / novamente,
dando a impresso de que o personagem est girando. Este visor, chamado girando basto,
a sua indicao de que o sistema no caiu e queimou. normal para que ela tenha um
alguns segundos antes de o basto comea a rodar.
Em seguida, carregador imprime a sua mensagem:
FreeBSD/i386 de bootstrap loader, Reviso 0.8
(Grog@freebie.example.com, Thu Jun 13 13:06:03 CST 2002)
Colocar / boot / defaults / loader.conf
Bata [Enter] para iniciar imediatamente, ou qualquer outra tecla para o prompt de comando.
Iniciando [ncleo] em 6 segundos ...
esta contagem regressiva de 10 segundo
Carregador de comandos
H duas maneiras de se comunicar com o carregador:
A quantidade de arquivos no diretrio / Boot no sistema de arquivos raiz dizer o carregador o que
fazer. A maioria no se destinam a ser mudado, mas voc pode criar um arquivo chamado
/ Boot / loader.conf, na qual voc pode digitar comandos para substituir os comandos
/ Boot / defaults / loader.conf. Ns vamos olhar para isso abaixo.
Alm disso, o arquivo / Boot / device.hints toma o lugar de muitos arquivos de configurao
entradas e permite que voc defina as caractersticas de hardware, como informaes sobre IRQ,
DMA, endereo de I / O e outras configuraes para o hardware. Voc pode alterar esses valores
durante a inicializao.
A instalao do CD-ROM instala / Boot / device.hints, mas a instalao do kernel no.
Voc vai encontr-lo no conf diretrio para sua arquitetura.
Por exemplo, a
/ Usr/src/sys/i386/conf inclui o arquivo de configurao GENRICO e o corresarquivo de dicas ing GENERIC.hints. Instale-o assim:
# Cp / usr/src/sys/i386/conf/GENERIC.hints / boot / device.hints
527
Essas entradas descrever a configurao da porta serial. Eles substituem o mtodo mais antigo de
difcil a codificao da informao no kernel. Por exemplo, as indicaes acima contm o
informaes de configurao contidas nestas linhas do arquivo de configurao Release 4:
dispositivo
dispositivo
dispositivo
dispositivo
sio0
sio1
SiO2
sio3
em
em
em
em
isa?
isa?
isa?
isa?
porta IO_COM1
porta IO_COM2
desativar a porta
desativar a porta
sio
Mais importante, porm, isso significa que voc no precisa recompilar o kernel se
voc alterar os endereos de hardware.
O mais importante destes comandos esto definido, mostrar, carregar, descarregar e arrancar. Vamos
veja alguns exemplos de seu uso nas sees seguintes. Note, no entanto, que se voc tiver
acidentalmente atingiu o'''' qualquer tecla durante a inicializao e s quero continuar com o boot, voc
s tem que entrar arrancar.
528
loader.conf
Muito do comportamento do carregador controlada pela entradas / Boot / defaults / loader.conf.
Voc no deve alterar esse arquivo, porm: colocar as alteraes em um arquivo / Boot / loader.conf, o que pode
no existe. H um grande nmero de entradas possveis, em / Boot / defaults / loader.conf
voc ver os valores padro, frequentemente comentada porque o carregador j sabe
os padres. Aqui esto alguns dos mais interessantes:
do kernel = "Kernel"
verbose_loading = "NO"
currdev especifica para onde olhar para o sistema de arquivos raiz. Se voc tiver vrias BIOS
parties em um disco, voc pode selecionar a opo correta com este valor.
H muitas mais opes ao carregador, leia a pgina de manual para mais detalhes.
529
Este exemplo mostra duas atividades distintas: uma mudar o kernel / Boot/kernel / kernel a / Boot / kernel.old / kernel, eo outro est a carregar o vinum kld. Voc no
precisa recarregar o kernel para carregar o vinum mdulo.
Para ver os comandos que voc pode usar, procure na / Boot / defaults / loader.conf, onde voc faria
encontrar todas as entradas de configurao normal comentada.
...
ccd_load = "NO"
vinum_load = "NO"
md_load = "NO"
...
No altere este arquivo, ele projetado para ser substitudo no upgrade, e quaisquer alteraes faria
se perder quando voc atualizar.
Rodando o kernel
O prximo passo no processo de boot executar o kernel. Isto o que acontece por padro se
voc no fizer nada no Iniciando [ncleo] imediata, ou se voc pressionar Enter. Se voc tem
interrompeu o processo de boot, voc continua com o comando:
bota ok
O exemplo a seguir mostra a sada de iniciar uma Abit BP6 processador dual
motherboard. Esta placa tambm tem quatro controladores IDE a bordo, eo sistema tinha dois
Adaptadores SCSI conectado a ele.
O carregador transfere o controle para o kernel que tem pr-carregado. As mensagens do kernel so
no texto de alta intensidade (mais brilhante do que o normal). Este o momento mais comum v-los,
embora s vezes eles aparecem durante a operao normal da mquina. Essas mensagens tambm
so copiados para o buffer de mensagens do kernel, e voc pode recuperar as mensagens mais recentes
com a dmesg programa. No decurso do tempo, outras mensagens podem preencher o tampo e
voc no ser mais capaz de encontrar as mensagens de inicializao com dmesg, ento uma das etapas finais
na inicializao salva o contedo das mensagens de inicializao no arquivo / Var / run / dmesg.boot,
que deve conter sempre as mensagens de arranque completos. No caso dos computadores portteis, o
buffer de mensagens normalmente no se limpou no desligamento, nem mesmo se o poder vai
para baixo, de modo que voc pode encontrar registros de vrios boots.
starting.mm, v v4.19 (2003/04/02 04:32:28)
Rodando o kernel
530
Depois que ele terminar de carregar, o kernel imprime algumas informaes resumidas e chama
todos os condutores configurados para examinar a configurao da mquina de hardware no qual ele
est em execuo. Isto chamado sondagem para os dispositivos. Se voc tiver tempo para segui-lo, um
boa idia para confirmar que ele est correto. Muito do que aparece to rapidamente que voc no pode seguir
, mas isso no um problema. Uma vez que a inicializao estiver concluda, voc pode examin-lo com o
dmesg de comando. Se algo der errado, no vai rolar para fora da tela. O lugar
onde ele pra , ento, de interesse.
Em circunstncias normais, podemos ver algo como:
Copyright (c) 1992-2002 O Projeto FreeBSD.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
Os Regentes da Universidade da Califrnia. Todos os direitos reservados.
FreeBSD 5.0-RELEASE # 0: Sat 15 de fevereiro 16:30:26 CST 2003
grog@monorchid.example.org :/ usr/src/sys/i386/compile/BUMBLE
Pr-carregado elfo do kernel "/ boot / kernel / kernel" no 0xc0663000.
CPUs
em 0xfee00000
em 0xfee00000
em 0xfec00000
531
voc precisa depurar o kernel. Nada disso aparece para uma mquina normal.
Inicializar subsistema geometria
Apoio Pentium Pro MTRR habilitado
npx0: <math processor> na placa-me
npx0: Interface INT 16
Usando $ table PIR, sete entradas no 0xc00fdda0
O GEOM subsistema etry um disco I / O sistema que foi introduzido no FreeBSD Lanamento
5. Este processador um processador de classe P6, por isso, tem Memria Faixa Tipo Registra ou
MTRRs, que so utilizados para optimizar a utilizao da memria.
Em seguida, olhar para os outros chips da placa-me, comeando com o chamado'' chipset,''
os chips de suporte do processador.
pcib0: <Intel 82443BX (440 BX) host PCI bridge> em PCIBus 0 na placa-me
pci0: <PCI bus> em pcib0
agp0: <Intel 82443BX (440 BX) host PCI bridge> mem 0xe0000000-0xe3ffffff de Devic
e 0,0 em pci0
pcib1: <PCIBIOS PCI-PCI bridge> no dispositivo 1.0 no pci0
PCI1: <PCI bus> em pcib1
Esta placa-me tem um 82443 chipset Intel BX com dois barramentos PCI. Em seguida, vemos alguns
dos dispositivos da placa-me:
PCI1: <Matrox MGA G200 AGP accelerator> em 0,0
isab0: <Intel 82371AB PCI para ISA bridge> no dispositivo 7.0 em pci0
isa0: <ISA bus> em isab0
ISA bus
atapci0: <Intel PIIX4 ATA33 porta de domnio> 0xf000-0xf00f no dispositivo 7.1 na pci0
ata0: no 0x1f0 irq 14 em atapci0
controlador IDE primrio
ATA1: at 0x170 irq 15 em atapci0
secundrio controlador IDE
uhci0: <Intel 82371AB/EB (PIIX4) porta USB de domnio> 0xC000-0xc01f irq 10 no dispositivo
7.2 na pci0
Controlador USB
usb0: <Intel 82371AB/EB (PIIX4) USB de domnio> em uhci0 Barramento USB
usb0: USB reviso 1.0
uhub0: Intel UHCI raiz hub, classe 9/0, rev 1.00/1.00, addr 1
uhub0: 2 portas com 2 removvel, auto-alimentado
Timecounter "PIIX" freqncia 3579545 Hz
pci0: <bridge, PCI-unknown> no dispositivo 7.3 (nenhum driver em anexo)
A primeira placa Symbios em IRQ 10. a ID 7, como a maioria dos adaptadores SCSI e
ele no suporta paridade. O segundo conselho para IRQ 9 e faz a paridade de apoio, mas
starting.mm, v v4.19 (2003/04/02 04:32:28)
Rodando o kernel
532
no tem uma BIOS. Isto no um problema para o FreeBSD, que no utiliza o BIOS
mas se fosse no sistema, por si s, o POST no iria encontr-lo. Neste caso particular,
o BIOS na outra placa Symbios que de fato encontrar o segundo adaptador de host.
dc0: <Macronix 98715AEC-C 10/100BaseTX> porta 0xe000-0xe0ff mem
0xe7800000-0xe78000ff IRQ 11 no dispositivo de 11,0 em pci0
dc0: endereo Ethernet: 00:80: C6: f9: A6: C8
miibus0: <MII bus> em dc0
dcphy0: <Intel 21143 mdia NWAY interface> em miibus0
dcphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
Este um carto Ethernet Macronix com associados da interface PHY no IRQ 11.
Depois disso, voltamos para perifricos on-board, neste caso, dois controladores IDE adicionais
e ISA perifricos:
atapci1: <HighPoint HPT366 ATA66 de domnio> porta 0xD800-0xd8ff, 0xd400-0xd403, 0xd000
-0xd007 IRQ 11 no dispositivo de 19,0 em pci0
ata2: no 0xd000 em atapci1
Terceiro controlador IDE
atapci2: <HighPoint HPT366 ATA66 porta de domnio> 0xe400-0xe4ff, 0xe000-0xe003, 0xdc00
-0xdc07 IRQ 11 no dispositivo de 19,1 em pci0
Quarta controladora IDE
ata3: no 0xdc00 em atapci2
orm0: <Opo ROMs> em iomem 0xc0000-0xc7fff, 0xc8000-0xc87ff em isa0
fdc0: pronto para a entrada em produo
Controlador de disquete
fdc0: cmd 3 falhou na sada byte 1 de 3
A falha de comando driver de disquete aqui causada pela falta de unidade de disquete neste
mquina.
atkbdc0: <Keyboard controlador (i8042)> no porto 0x60, 0x64 em isa0
atkbd0: <At bandeiras Keyboard> 0x1 irq 1 em atkbdc0
teclado
kbd0 em atkbd0
vga0: <Generic ISA VGA> no porto 0x3c0-0x3df iomem 0xA0000-0xbffff em isa0
sc0: <System console> em bandeiras 0x100 em isa0
sistema do console
sc0: VGA <16 consoles virtuais, flags = 0x300>
primeira porta serial
sio0 no porto 0x3f8-0x3FF IRQ 4 bandeiras 0x10 em isa0
sio0: tipo 16550A
uma UART buffer
sio1 no porto 0x2f8-0x2ff irq 3 em isa0
segunda porta serial
sio1: tipo 16550A
h portas de I / O mais seriais
SiO2 no encontrado em 0x3e8
sio3 no encontrado em 0x2e8
UNIX comea a contar a partir de nmeros de dispositivo 0, enquanto a Microsoft comea a contar a partir de 1.
Dispositivos / Dev/sio0 atravs / Dev/sio3 so conhecidos como COM1: atravs COM4: no
Microsoft mundo.
ppc0: <Parallel port> na porta 0x378-0x37f IRQ 7 em isa0
ppc0: chipset genrico (somente NIBBLE) no modo COMPATVEL
plip0: rede <PLIP interface> em ppbus0
lpt0: <Printer> em ppbus0
lpt0: porta de interrupo
ppi0: <Parallel I/O> em ppbus0
Em seguida, neste frum multiprocessador, temos algumas mensagens especficas do SMP. O sistema
testes do IO-APIC, que s vezes pode causar problemas, e ento comea a segunda
processador:
starting.mm, v v4.19 (2003/04/02 04:32:28)
533
Aqui, temos quatro discos, cada um dos primeiro e terceiro controladores IDE, tanto como mestre,
e dois no segundo adaptador SCSI. No h nada no primeiro adaptador de host.
Finalmente, o sistema comea a Vinum e monta o sistema de arquivos raiz ea partio swap:
Raiz de montagem da ufs :/ dev/ad0s1a
vinum: carregado
vinum: configurao de leitura / dev/ad0s1h
vinum: actualizar a configurao de / dev/ad4s2h
swapon: adicionar / dev/ad0s1b como dispositivo swap
swapon: / dev / vinum / swap: Nenhum tal lima ou diretrio
Reinicializao automtica em andamento ...
Neste ponto, o sistema est instalado e funcionando, mas ainda precisa comear a alguns servios. O
mensagens restantes vm de processos, e no a partir do kernel, ento eles esto em condies normais
intensidade.
add default net: Gateway 223.147.37.5
Opes de roteamento adicionais: extenses TCP = NO TCP keepalive = YES.
daemons de roteamento:.
Montagem de sistemas de arquivos NFS.
daemons adicionais: syslogd
Fazendo configurao de rede adicional: portmap.
Iniciando os daemons de rede finais: rwhod.
definindo ELF caminho ldconfig: / usr / lib / usr / lib / compat / usr/X11R6/lib / usr / local / lib
definindo a.out caminho ldconfig: / usr / lib / aout / usr / lib / compat / aout / usr/X11R6/lib/aout
a partir daemons padro: cron inetd
Inicializao rc.i386 inicial:.
rc.i386 syscons Configurando: blank_time.
Pacote local de inicializao:.
TCP opes adicionais:.
Ter 23 de abril 13:59:05 CST 2000
Neste ponto, o kernel terminar de sondagem, e transfere o controle para o script shell
/ Etc / rc. Deste ponto em diante a tela em intensidade normal. / Etc / rc l primeiro o
informaes de configurao no / Etc / defaults / rc.conf e / Etc / rc.conf (Ver pgina 546). Em seguida,
ele verifica a consistncia dos sistemas de arquivos. Normalmente voc ver mensagens como esta para
cada sistema de arquivos em / Etc / fstab:
Rodando o kernel
534
/ Dev/da0s1a:
FILESYSTEM limpa; pular CHEQUES
/ Dev/da0s1a:
limpo, livre de 6311 (367 frags, 743 blocos, a fragmentao 0,9%)
/ Dev/da0s1e:
FILESYSTEM limpa; pular CHEQUES
/ Dev/da0s1e:
limpo, 1.577 matrculas, 31.178 usados, 7813 livres (629 frags, 898 blocos, 1,6% fr
agmentation)
Em um sistema de arquivos grandes, fsck pode levar um longo tempo para ser concludo, at vrias horas em
casos extremos. Por padro, o sistema no precisa esperar por ele para terminar, o fsck
continua em segundo plano. Este um recurso relativamente novo no FreeBSD, ento voc pode transformar
-lo no caso de voc ter problemas com ele. Consulte a pgina 548 para mais detalhes.
Em seguida, / Etc / rc invoca a primeira das trs invocaes de incio de rede. Este inicializa o
as interfaces, define as rotas e inicia o firewall se necessrio:
Fazendo configurao inicial da rede: hostname.
DC0: flags = 8843 mtu 1500 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
inet 223.147.37.81 netmask 0xffffff00 transmisso 223.147.37.255
inet6 fe80 :: 280: c6ff: fef9: a6c8% dc0 prefixlen 64 ScopeID 0x1
00:80 ter: C6: f9: A6: C8
mdia: autoselect (100baseTX <full-duplex>) Status:
mdia suportados: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UTP <f
ull-duplex> 10baseT/UTP 100baseTX <hw-loopback> nenhum
lo0: flags = 8049 mtu <UP,LOOPBACK,RUNNING,MULTICAST> 16384
inet 127.0.0.1 netmask 0xff000000
add default net: Gateway 223.147.37.5
Opes de roteamento adicionais:.
daemons de roteamento:.
Em seguida, ele verifica se temos um core dump. Se assim for, ele tenta salv-lo / Var / crash.
verificao de core dump ... savecore: no core dump
Salvando o dump de memria pode falhar se no houver espao suficiente no / Var / crash. Se isso acontecer,
voc pode limpar e salvar o despejo mais tarde, contanto que voc no tenha usado o suficiente espao de swap
para substituir o despejo.
Em seguida, vem o segundo passo da inicializao de rede, que comea a nossa escolha de nomeado,
starting.mm, v v4.19 (2003/04/02 04:32:28)
535
Com excepo da primeira linha, todas as mensagens provenientes de nomeado. Eles podem vir
no meio da primeira linha, em vez de esperar pelo fim da linha.
Em seguida, / Etc / rc permite quotas, se solicitado, em seguida, executa a terceira passagem de rede, que se inicia
nossa escolha de mountd, nfsd, rpc.lockd, rpc.statd, nfsiod, amd, rwhod e Kerberos:
Iniciando os daemons de rede finais: mountd nfsd rpc.statd nfsiod rwhod.
Agora estamos quase no fim. / Etc / rc reconstri um par de bases de dados internas (para utilizao pela ps
comando e alguns outros), em seguida, ele define os caminhos padro para ldconfig:
definindo ELF caminho ldconfig: / usr / lib / usr / lib / compat / usr/X11R6/lib / usr / local / lib
definindo a.out caminho ldconfig: / usr / lib / aout / usr / lib / compat / aout
/ Usr/X11R6/lib/aout
/ Usr / local / lib / aout
Em seguida, ele comea a sua escolha de inetd, cron, impressora, sendmail e usbd :
a partir daemons padro: inetd sendmail cron.
A ltima coisa que / Etc / rc faz verificar se h outros arquivos de inicializao. Estes podem estar na
arquivos especificados na varivel local_startup, ou no arquivo / Etc / rc.local. No nosso caso,
no h ningum, por isso tudo o que vemos :
Pacote local de inicializao:.
Finalmente, estamos a fazer. / Etc / rc stops, e inicializao processos / Etc / ttys, que comea getty
processos nos terminais especificados. No console, vemos:
Mon 13 de maio 13:52:00 CST 2002
FreeBSD (freebie.example.org) (ttyv0)
sesso:
Rodando o kernel
536
Assim que as pontas de prova do dispositivo ter sido concluda, o arranque do sistema interrompido, e
voc ser solicitado para uma shell. Apenas o sistema de arquivos raiz acessvel, e est montado
somente leitura. A razo para isto que o sistema de ficheiros pode ser danificado e necessitar de reparao
antes que voc possa escrever nele. Se voc precisa escrever para o sistema de arquivos raiz, voc deve primeiro
verificar a consistncia do sistema de arquivos com fsck, aps o qual voc pode mont-lo com o
-U Opo (update). Por exemplo, a
npx0 na placa-me
npx0: Interface INT 16
extremidade das sondas (tela de alta intensidade)
Digite o nome do caminho do shell ou retorno para sh:
pressione Enter
apagar H, matar U, intr C
verificar a integridade do sistema de arquivos raiz
# Fsck-y / dev/ad0s1a
** / Dev/ad0s1a
** ltima Mounted on /
** Sistema de arquivos raiz
** Fase 1 - Verificar Blocks e tamanhos
** Fase 2 - Confira Pathnames
** Fase 3 - Verifique a conectividade
** Fase 4 - Verifique contagens de referncia
** Fase 5 - Confira os grupos Cyl
1064, 8190 arquivos usado, 6913 livres (61 frags, 1713 blocos, a fragmentao 0,4%)
# Mount-u /
sistema de arquivos raiz remontar leitura / gravao
# Mount / usr
montar quaisquer outros sistemas de arquivos que voc precisa
Para sair do modo de usurio nico e entrar no modo multi-usurio, basta digitar Ctrl-D:
# D
Ignorando as verificaes do sistema de arquivos ...
(O resto da seqncia de boot)
System V e Linux tem o conceito de nveis de execuo, que so controladas pelo init. Singlemodo de usurio corresponde ao nvel de execuo 1 ou S, e do modo multi-usurio corresponde aproximadamente ao
System V nvel de execuo 3 ou Linux executar o nvel 4. Nada corresponde com o outro sistema V
executar os nveis, nomeadamente nvel de execuo 2, que inicia um sistema System V sem rede.
Networking uma parte to integral do FreeBSD que este no apenas possvel. Mais novo
verses do FreeBSD inicializao compreender uma sintaxe semelhante ao System V Init. Tabela 29-1
mostra os nveis de suporte. Por exemplo, para ler no / Etc / ttys arquivo, voc pode digitar:
# Init q
537
Sinalizar
SIGUSR2
SIGTERM
SIGINT
SIGTSTP
SIGHUP
Ao
Parar e desligar a alimentao
V para o modo single-user
Reinicie a mquina
Bloquear outros logins
Reexaminar a (5) ttys
Voc tambm pode entrar em modo mono-usurio de um sistema FreeBSD em execuo com o encerramento
comando, o que veremos na prxima seo.
Se voc fizer isso, voc estar em apuros se voc esquecer a senha de root.
538
Use o -R opo para reiniciar o computador. s vezes, voc precisa fazer isso, pois
exemplo, depois de instalar um novo kernel.
encerramento requer um parmetro de tempo para cont-la quando realmente executar o desligamento.
Isso til em um ambiente multi-usurio, mas normalmente voc vai querer desligar
de imediato, de modo encerramento entende a palavra-chave agora.
Sem opo, encerramento tentativas de colocar a mquina em modo de usurio nico. Este
nem sempre funciona bem como iniciar no modo de usurio nico.
No caso normal, onde voc quer parar a mquina imediatamente para que voc possa transformar o
desligar, voc digita:
# Shutdown-h now
04 de fevereiro 12:38:36 desligamento freebie: halt por grog:
04 de fevereiro 00:38:39 freebie syslogd: sair em sinal de 15
sincronizar os discos ... feito
O sistema operacional foi interrompida.
Por favor, pressione qualquer tecla para reiniciar.
Os discos no so confiveis. Para uma mquina que voc deseja manter funcionando por um longo tempo,
a falha de hardware mais provvel uma falha de disco.
Voc pode achar que a administrao de sistemas mais fcil se todos os arquivos de configurao esto em um
lugar.
O'' sweet spot'' para os preos de disco rgido, o lugar onde voc obtenha o mximo de armazenamento para
o dlar, est atualmente em torno de 80 GB, cerca de 10 vezes o que era cinco anos antes.
Voc no pode querer que o espao em disco para qualquer mquina, mas para um grupo,
poderia fazer mais sentido ter um disco para todo o grupo em uma mquina.
H um certo nmero de maneiras de executar um sistema sem um disco. Voc pode substituir o disco com
outra coisa, como um carto de memria flash, disquete ou CD-ROM, ou voc pode acessar um
disco remoto atravs de uma rede. Vamos considerar a inicializao pela rede na seo seguinte, e
vamos olhar para a estratgia de substituio de disco na pgina 544.
starting.mm, v v4.19 (2003/04/02 04:32:28)
539
Voc pode iniciar um sistema mnimo de disquete ou CD-ROM e usar isso para montar
os sistemas de arquivos remotamente. Isto diferente do funcionamento do sistema de disquete ou
CD-ROM: neste caso, o dispositivo de disco serve eficazmente como um iniciador, e a
sistema operacional est localizada em outro lugar.
Voc pode criar uma PROM de inicializao da placa de rede e usar isso para arrancar.
Voc pode usar o PXE se sua placa suporta.
Seja qual for o mtodo utilizado, voc precisa configurar uma interface de rede muito cedo. No Captulo
17, vimos que a configurao da rede parte da inicializao do sistema, e que o
configurao armazenada no / Etc / rc.conf. Para uma inicializao de rede, a rede deve estar em execuo
antes que o kernel pode ser carregado, de modo que o mtodo no vai funcionar aqui. Em vez disso, utilizamos DHCP,
que ns olhamos na pgina 302. Poderamos tambm usar o bootpd daemon, mas mais
limitado, por isso melhor usar DHCP.
Se voc usar o disquete ou CD-ROM, voc poderia, teoricamente, carregar a inicializao a partir desse
dispositivo. Isto no o mesmo que a alternativa vamos ver na pgina 544, onde carregar o
kernel a partir de disquete ou CD: aqui ns s carregar a inicializao e, em seguida, carregar o kernel a partir de
a rede. Esta pequena diferena tem implicaes significativas sobre a facilidade do sistema
administrao.
O prximo passo efectivamente transferir os dados. Fazemos isso com TFTP, o Trivial File
Transfer Protocol. Como o nome sugere, TFTP relativamente simples substituio
FTP. Em particular, ele sabe quase nada sobre segurana. Se voc usa o TFTP, certifique-se
que no podem ser acessados de fora da rede, por exemplo, usando um firewall. O
bloco de regras de firewall padro TFTP.
Nas sees seguintes, vamos olhar para o exemplo da criao de bumble.example.org como
mquina diskless.
Voc pode copiar os arquivos na raiz e / Usr sistemas de arquivos da mquina do servidor.
Voc pode instalar o FreeBSD em um disco separado e montagem NFS-lo onde o controle remoto
sistema pode acess-lo. Por si s, isso no tem muita vantagem por ter um
disco local na mquina, mas possvel instalar vrios sistemas em um nico
disco e tm diferentes mquinas acessar as diferentes instalaes.
540
Ns vamos olhar para aperfeioar esta tcnica depois que o sistema est instalado e funcionando.
BOOTP
# Utilizar o BOOTP para obter o endereo IP / hostname
BOOTP_NFSROOT
# Montagem NFS do sistema de arquivos root usando informaes BOOTP
BOOTP_NFSV3
# Use NFS v3 para NFS mount raiz
BOOTP_COMPAT
# Soluo para daemons bootp quebrados.
BOOTP_WIRED_TO = fxp0 # Utilize fxp0 interface para BOOTP
Apenas os dois primeiros so obrigatrios. Se voc usar BOOTP_WIRED_TO, certifique-se de que a interface
nome coincide com a placa de rede que voc est usando.
Construir o kernel, conforme descrito na pgina 608. Para instalar, voc precisa definir o DESTDIR
varivel para especificar o diretrio no qual voc deseja instalar o kernel:
# Make install DESTDIR = / src / nodisk / bumble
Configurando o TFTP
Em seguida, precisamos criar TFTP para proporcionar o ncleo do sistema. A primeira pergunta
se o firmware da placa Ethernet pode carregar o kernel diretamente ou no. Alguns inicializao
PROMs executado em modo de 16 bits 8086, o que limita a sua capacidade de endereamento de 640 kB.
Isso muito pequeno para qualquer kernel do FreeBSD, e se voc tentar carregar o kernel diretamente voc vai
receber uma mensagem como esta:
Erro de transferncia de arquivos: arquivo de imagem muito grande para pouca memria.
Ns tambm precisamos garantir que podemos comear a TFTP daemon, tftpd. A menos que voc est
constantemente a inicializao, no h nenhuma necessidade de t-lo funcionando constantemente: basta ativ-lo no
/ Etc / inetd.conf, que tem as seguintes entradas no arquivo de distribuio:
starting.mm, v v4.19 (2003/04/02 04:32:28)
541
# Tftp
# Tftp
udp
udp6
esperar
esperar
raiz
raiz
tftpd-s / tftpboot
tftpd-s / tftpboot
Estas so as entradas para IPv4 e IPv6, respectivamente. Ns permitimos tftpd removendo o comentrio do
primeira linha (removendo o # caracteres) e enviando um sinal HUP para inetd :
# Killall -1 inetd
Configurando o DHCP
J olhou dhcpd 'S arquivo de configurao / Usr / local / etc / dhcpd.conf na pgina 302,
Alm da informao de que olhou para l, precisamos saber qual arquivo para carregar,
qual sistema para carreg-lo, e para onde o sistema de arquivos raiz est localizado. Para o nosso diskless
sistema bumble poderamos acrescentar o texto em negrito para a configurao que vimos na pgina 303:
subnet 223.147.37.0 netmask 255.255.255.0 {
variar 223.147.37.90 223.147.37.110;
servidores de nomes de domnio opo freebie.example.com, presto.example.com;
option domain-name "example.com";
opo routers gw.example.com;
opo subnet-mask 255.255.255.0;
opo de transmisso endereo 223.147.37.255;
default-lease-time 86400;
max-lease-time 259.200;
hospedeiro sydney {
hardware ethernet 00:50: da: cf: 07:35;
}
542
hospedeiro bumble {
hardware ethernet 00:50: da: cf: 17: d3;
presto.example.com next-server;
filename "/ tftpboot / bumble / kernel.bumble";
filename "/ tftpboot / pxeboot";
option root-path 223.147.37.1 :/ src /
}
O next-server linha de conta, onde o TFTP servidor est localizado. Se o mesmo que o
mquina executando o DHCP servidor, voc no precisa desta especificao.
Como vimos, as restries de hardware pode tornar impossvel para carregar o kernel
diretamente. Neste caso, voc precisa carregar um carregador. O nico que FreeBSD atualmente
suprimentos pxeboot.1 Escolha um dos dois nome do arquivo linhas.
Voc tem que especificar o caminho da raiz como um endereo IP, porque h servios de nomes so
disponvel quando o sistema de arquivos raiz est montado.
0x11f6, 0x1401
543
hospedeiro bumble {
hardware ethernet 00:80:48: e6: a0: 61;
filename "/ src / nodisk / bumble / boot / kernel / kernel";
endereo fixo bumble.example.org;
option root-path "192.109.197.82 :/ src / nodisk / bumble";
}
Depois disso, no aparece nada na tela por algum tempo. Na verdade, o arranque
prosseguir normalmente, ea prxima coisa que voc v um prompt de login.
Configurar o equipamento
Criao de uma mquina sem disco no muito difcil, mas existem algumas dicas:
Atualmente, o bloqueio em NFS no funciona corretamente. Como resultado, voc pode ver
mensagens como esta:
11 de dezembro 14:18:50 bumble sm-mta [141]: NOQUEUE: SYSERR (root): no pode rebanho (/ var / run /
sendmail.pid, fd = 6, type = 2, Omode = 40001, euid = 0): Operao no suportada
Uma soluo para este problema montar / Var como um sistema de arquivo de MD (memria). Este
o que atualmente acontece por padro, mas sujeito a alteraes: na inicializao, quando
o sistema detecta que ele est sendo executado sem disco rgido (via sysctl vfs.nfs.diskless_valid), ele chama o arquivo de configurao / Etc/rc.diskless1. Este arquivo, por sua vez
faz com que o arquivo / Etc/rc.diskless2 a ser invocado no final do procedimento de inicializao. Cada um de
esses arquivos adiciona um sistema de arquivos MD. No decorrer do tempo, isso vai ser extinto e
substituda pela configurao tradicional atravs / Etc / fstab, mas no momento em que este arquivo tem
nenhuma proviso para a criao de sistemas de arquivos MD.
Voc provavelmente deve olhar para esses arquivos com cuidado: eles podem precisar de algumas adaptaes para
suas necessidades.
Isso tambm vai mudar, entretanto, possvel montar swap em arquivos, mesmo se
eles so NFS montado. Isto significa que a primeira das seguintes entradas / Etc / fstab
no vai funcionar, mas o segundo vai:
192.109.197.82 :/ src / nodisk / swap / bumble none swap sw
/ Src / nodisk / swap / bumble none swap sw
echunga :/ src / src nfs
rw
0
0
0
0
0
0
544
A razo aqui a terceira linha: / Src / nodisk / swap / bumble NFS montado, ento isso
uma situao de troca para arquivo. Para que isso funcione, voc pode ter que adicionar a seguinte linha no
o fim de sua / Etc/rc.diskless2:
swapon-a
Isso ocorre porque a inicializao do sistema padro monta swap antes de montagem adicional
Sistemas de arquivos NFS. Se voc colocar o arquivo de swap no sistema de arquivos raiz, ele ainda vai funcionar,
mas muitas vezes voc vai querer o sistema de arquivos raiz para somente leitura para ser capaz de compartilh-lo
entre vrias mquinas.
Se a mquina entra em pnico, no possvel fazer um despejo, porque voc no tem disco.
A nica alternativa seria um depurador de kernel.
Obviamente, todos os dados variveis especficas para um sistema que no pode ser compartilhado.
Para garantir que as coisas no mudam, voc deve montar somente leitura recursos compartilhados.
Consulte a Tabela 32-1 na pgina 586 para uma viso geral do FreeBSD diretrios instalados.
Desses diretrios, apenas / Etc e / Usr / local / etc deve ser especfico para um determinado
sistema, embora haja algumas outras questes:
Instalao de portas, por exemplo, ir instalar portas para todos os sistemas. Isso no
necessariamente uma coisa ruim, mas se voc tem dois sistemas, tanto a instalao de software em
no mesmo diretrio, voc pode esperar conflitos. melhor para designar um sistema,
possivelmente, o hospedeiro com o disco, para desempenhar estas funes.
Se voc compartilhar / Boot e fazer algumas mudanas de configurao, as opes sero aplicadas
para todos os sistemas.
Quando a construo de software do sistema, voc pode usar o mesmo / Usr / src e / Usr / obj
diretrios, desde que todos os sistemas de manter a mesma verso do FreeBSD. Voc pode
ainda tm diferentes kernels: cada diretrio de compilao do kernel carrega o nome do de
o ficheiro de configurao, o que corresponde, por conveno, o nome do sistema.
O grande problema / Etc Em particular, / etc / rc.conf contm informaes como o sistema
nome. Uma maneira de lidar com isso ter um separado / Etc diretrio para cada sistema. Este
pode parecer razovel, porque / Etc de apenas cerca de 1,5 MB de tamanho. Na verdade, isso implica
montagem de todo o sistema de arquivos raiz com os outros diretrios de nvel superior, e isso significa
mais como 60 MB.
545
Substitutos de disco
A outra alternativa para a inicializao da rede o de encontrar um substituto para o local de disco. Isto
obviamente, a nica alternativa para uma mquina autnoma. H um certo nmero de
alternativas:
Para realmente pequenos sistemas, voc pode usar PicoBSD, uma pequena verso especial do FreeBSD
que cabe em um nico disquete. Ela exige uma boa quantidade de memria como um disco RAM,
e, obviamente, muito limitado.
PicoBSD bom para algumas aplicaes especiais. Como o kernel FreeBSD cresce,
tornando cada vez mais difcil conseguir at mesmo o kernel em um nico disquete, vamos
sozinho qualquer software aplicativo. Ainda assim, voc pode encontrar um nmero de diferentes configuraes na rvore fonte em / Usr / src / release / PicoBSD. Esteja preparado para algumas graves
trabalho de configurao.
Alternativamente, voc pode iniciar a partir de CD-R ou CD-ROM. Neste caso, voc pode ter at
700 MB de dados, o suficiente para um nmero de aplicaes. possvel executar programas
diretamente a partir do CD, mas h pouca vantagem de ter os arquivos em CD em vez de
disco. A aplicao mais provvel para esta alternativa para sistemas onde o
confiabilidade da mdia rotativa insuficiente, onde o CD usado apenas para o arranque,
e depois que o sistema executado a partir do disco RAM.
Ainda outra alternativa Memria Flash, muitas vezes abreviado simplesmente como Flash, que
olhou no Captulo 8, na pgina 159. Flash est disponvel em tamanhos de at vrias centenas de
megabytes, e cartes Compact Flash parecido com discos sua interface. Eles no se enquadram
Conectores IDE, mas adaptadores esto disponveis.
A memria flash destinado principalmente para leitura. muito mais lento do que escrever para ler,
e s pode tomar um certo nmero de ciclos de escrita antes de falhar. Claramente uma
candidato para somente leitura sistemas de arquivos.
Neste captulo:
/ Etc / rc.conf
Arquivos que voc precisa
mudar
Arquivos que voc pode precisar
para alterar
Arquivos que voc no deve
mudar
Obsoleto
arquivos de configurao
30
FreeBSD
arquivos de configurao
Uma das coisas notveis sobre UNIX que todas as informaes de configurao do sistema
armazenados em ficheiros de texto, usualmente no directrio / Etc ou seus subdiretrios. Algumas pessoas
considerar este mtodo primitivo em comparao com um editor de configurao GUI chamativo ou uma
'' Registro'', mas tem vantagens significativas. Em particular, voc v o exato sistema
configurao. Com um editor de GUI, a configurao real normalmente armazenado em um formato
voc no pode ler, e mesmo quando voc puder, irregular. Alm disso, voc pode ver mais de
a configurao de cada vez: um editor de GUI geralmente apresenta-lhe apenas pequenas partes do
configurao, e difcil ver os relacionamentos ('' do lado de fora e olhando em
'' atravs de uma janela).
No mundo da Microsoft, um dos mtodos mais comuns de resoluo do problema consiste em
reinstalar o sistema. Esta uma declarao de falncia: muito lento, voc est sujeito a
causar outros problemas no caminho, e voc nunca descobrir qual era o problema. Se voc
ter problemas com a configurao do seu sistema FreeBSD, no reinstalar o sistema. Tomar
uma olhada nos arquivos de configurao, e h uma boa chance de que voc vai encontrar o problema
l.
Muitos arquivos de configurao so os mesmos em todas as verses do UNIX. Este captulo toques
sobre eles brevemente, mas em muitos casos voc pode obter informaes adicionais em livros como o
UNIX Administration Handbook sistema, por Evi Nemeth, Garth Snyder, Scott Seebass,
e Trent R. Hein. Em todos os casos, voc pode obter mais informaes na seo 5 do homem
pginas.
Na seo seguinte, vamos olhar primeiro para / Etc / rc.conf, o principal arquivo de configurao. Vamos
olhar para os arquivos de configurao restantes na pgina 559.
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
545
O FreeBSD completo
546
/ Etc / rc.conf
/ Etc / rc.conf o arquivo de configurao do sistema principal. Em verses mais antigas do FreeBSD, este arquivo
foi chamado / Etc / sysconfig.
/ Etc / rc.conf um script shell que se destina a ser o arquivo que define o
configurao de seu sistema, que dizer, o que o sistema precisa fazer quando se comea
up. No to simples assim, mas a informao quase todos os sites dependente armazenado aqui.
Vamos caminhar atravs da verso que era atual, no momento da escrita. Os arquivos sero
mudar medida que o tempo passa, mas a maioria das informaes vai continuar a ser relevante.
/ Etc / rc.conf completamente o seu trabalho. Quando voc instalar o sistema, no existe tal arquivo:
cri-lo, geralmente implcita com o auxlio de sysinstall. O sistema fornece um script
/ Etc / defaults / rc.conf que contm os valores padro para tudo o que voc pode colocar em
/ Etc / rc.conf, e que os outros arquivos de configurao ler para obter as suas definies. Quando
o sistema iniciado, ele l primeiro / Etc / defaults / rc.conf. Comandos no final deste ficheiro
verificar a existncia do arquivo / Etc / rc.conf e l-lo em se encontr-lo, de modo que a
definies / Etc / rc.conf substituir os padres de / Etc / defaults / rc.conf. Isto torna
mais fcil de atualizar: basta alterar o arquivo com os padres, e deixar o site-specific
configurao sozinha. Voc ainda pode ter que mudar algumas coisas, mas vai ser muito mais fcil.
Nesta seo vamos percorrer / Etc / defaults / rc.conf. Ao fazermos isso, vamos construir dois
diferente / Etc / rc.conf arquivos, um para um servidor e um para um laptop conectado com um
802.11b placa wireless. Para evitar muita confuso, eu mostro o texto que vai para
/ Etc / rc.conf em largura constante negrito fonte, ao passo que o texto / Etc / defaults / rc.conf
em largura constante fonte.
#! / Bin / sh
#
# Este rc.conf - um arquivo cheio de variveis teis que podem ser definidos
# Para alterar o comportamento de inicializao padro do seu sistema. Voc deveria
# No editar esse arquivo! Coloque quaisquer substituies em um dos rc_conf_files {} $
# Vez e voc ser capaz de atualizar esses padres mais tarde, sem
# Spam as informaes de configurao local.
#
# O $ {} rc_conf_files arquivos deve conter apenas valores que substituem
# Valores definidos neste arquivo. Isso facilita o caminho de atualizao quando defaults
# So alteradas e novas funcionalidades so adicionadas.
#
# Todos os argumentos devem estar entre aspas duplas ou simples.
#
# $ FreeBSD: src / etc / defaults / rc.conf, v 1.159 2002/09/05 20:14:40 gordon Exp $
A alegao de que todos os argumentos devem estar entre aspas duplas ou simples est incorreto. Tanto esta
arquivo e / Etc / rc.conf so scripts shell, e voc s precisa de aspas se os valores
incluir conter espaos. uma boa idia para manter a esta conveno, porm, no caso de o
mudanas de representao.
Observe as informaes de verso na linha anterior (1.159). Seu / Etc / defaults / rc.conf vontade
quase certamente ter uma reviso diferente. Se voc tem um repositrio CVS em linha (ver
Captulo 31), voc pode ver o que alterado com os seguintes comandos:
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
547
Continuando,
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
Opes iniciais # # # importantes em tempo de inicializao # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
rc_ng = "YES" # Configure como NO para desativar os scripts rc novo estilo.
rc_info = "YES" # Ativa a exibio de mensagens informativas durante o boot.
rcshutdown_timeout = "30" # Segundos de espera antes de terminar rc.shutdown
FreeBSD Release 5 tem um novo mtodo de inicializao do sistema, chamado RCng (Comandos de partida,
gerao seguinte). Este mtodo foi originalmente introduzido no NetBSD. No altere estas
valores, a menos que voc conhece exatamente o que voc est fazendo. Se voc cometer um erro, voc pode encontrar
impossvel para iniciar o sistema.
swapfile = "NO"
Normalmente voc configurar entradas para parties swap em / Etc / fstab. Esse post refere-se apenas ao
troca de arquivos, no para parties. Exige o md motorista, que ns olhamos em
pgina 245.
apm_enable = "NO"
apmd_enable = "NO"
apmd_flags = ""
# Configure como yes para ativar funes do BIOS APM (ou NO).
# Execute apmd para lidar com eventos APM de userland.
# Flags para apmd (se habilitado).
Estes parmetros de controle DEVD, o daemon dispositivo usado principalmente para o hot-pluggable
dispositivos como USB e PC Card, e pccardd, o daemon para o cdigo do carto antigo PC.
Consulte a pgina 159 para mais detalhes sobre DEVD e pgina 161 para uma breve descrio de pccardd
eo cdigo do carto antigo PC.
Se voc estiver executando dispositivos PC Card, voc iria comear DEVD. Isso o que ns colocamos no
/ Etc / rc.conf para andante:
devd_enable = "YES"
Em seguida, vem uma lista de diretrios que esto sendo buscadas para scripts de inicializao:
/ Etc / rc.conf
548
local_startup = "/ usr / local / etc / rc.d / usr/X11R6/etc/rc.d" diretrios de script # inicializao.
script_name_sep = ""
# Mude se os nomes dos scripts de inicializao conter espaos
rc_conf_files uma lista de arquivos para ler depois deste arquivo. Voc vai reconhecer / Etc / rc.conf,
que discutimos acima. / Etc / rc.conf.local uma idia que no foi completamente morreu, mas
h uma boa chance de que ele vai. Voc seria melhor fora de no us-lo at que voc esteja certo que
indo para ficar.
Por razes bvias, uma entrada no / Etc / defaults / rc.conf que voc no pode substituir a
/ Etc / rc.conf. Se voc realmente deseja pesquisar outros arquivos, voc ter que modificar / etc/defalhas / rc.conf. Ainda no uma boa idia.
fsck_y_enable = "NO"
background_fsck = "YES"
extra_netfs_types = "no"
#
#
#
#
Na inicializao do sistema, o sistema verifica a integridade de todos os sistemas de arquivos. Ele faz isso em um
nmero de passos:
Em primeiro lugar, ele verifica o superbloco, a chave para o sistema de arquivos, para ver se era
desmontado antes que o sistema parou. Se assim for, ele assume que os sistemas de arquivos so
consistente e continua com a inicializao.
Se qualquer sistema de arquivo no foi desmontado, o sistema provavelmente caiu ou foi desligada
sem desligamento adequado. O sistema de arquivo poderia conter dados inconsistentes, ento o
executar scripts de inicializao fsck contra o sistema de arquivos.
Se voc estiver executando com atualizaes suaves e pontos de verificao, voc pode ser capaz de realizar
o fsck no fundo, por outras palavras, em paralelo com outras actividades. Se voc
ter um bom motivo, voc pode inibir este comportamento configurando background_fsck a
NO.
Se o sistema de arquivos est danificado, a fora padro'''' fsck pode no ser capaz de
recuperar o sistema de arquivos. Neste caso, a ao normal cair de usurio nico
modo e deixar um ser humano dar uma olhada nisso.
A primeira ao normal do ser humano correr fsck com a -Y opo, o que significa'' resposta
sim a todas as perguntas de fsck''. Se voc definir fsck_y_enable a Sim, os scripts de inicializao
ir executar essa tarefa para voc. Ainda possvel que a verificao ir falhar, ento isso no
suficiente para garantir que voc vai sempre passar fsck, mas ajuda.
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
# # # Configurao de rede sub-seo # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
Rede # # # Bsico e firewall / opes de segurana: # # #
hostname = "" # Defina esta!
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
549
hostname o nome completo do host. Sempre coloc-lo em / Etc / rc.conf. Consulte a pgina
302 para mais detalhes. No nosso / Etc / rc.conf vamos colocar:
hostname = "gw.example.org"
hostname = "andante.example.org"
Se voc estiver usando o NIS do Sol, definir isso. Ns no discutimos NIS neste livro.
dhcp_program = "/ sbin / dhclient"
dhcp_flags = ""
Parmetros para o ipfw firewall. Consulte a pgina 389, onde montamos as seguintes bandeiras no
/ Etc / rc.conf para gw:
firewall_enable = "YES"
firewall_type = "cliente"
Voc no funcionam normalmente firewalls em laptops, embora no h nenhuma razo tcnica que no.
O problema com firewalls em computadores portteis que os arquivos de configurao so dependentes
onde o sistema est localizado, o que torna uma dor para os sistemas que mudam com freqncia
localizaes. Como resultado, no vamos adicionar quaisquer parmetros de firewall para o / Etc / rc.conf para
andante.
ip_portrange_first = "NO"
ip_portrange_last = "NO"
Estes valores so usados para definir o nmero de portas que so dinamicamente alocados.
Normalmente eles no precisam mudar.
ipsec_enable = "NO"
ipsec_file = "/ etc / ipsec.conf"
#
#
#
#
/ Etc / rc.conf
550
Parmetros para natd. Consulte a pgina 394 para mais detalhes. No exemplo l, vamos adicionar
estas linhas para do gw / etc / rc.conf :
firewall_enable = YES
gateway_enable = "YES"
natd_enable = "YES"
natd_interface = "dc0"
firewall_script = "/ etc / rc.nat"
firewall_type = "cliente"
Essas entradas definir padres para ipfilter, outro pacote de firewall, ipnat, outro NAT
pacote ipmon, um pacote de monitor de IP, e IPFs, um utilitrio para salvar as tabelas de estado de
ipfilter, ipnat e ipfilter. Ns no discutimos nenhum deles neste livro.
tcp_extensions = "no" # Proibir RFC1323 extenses (ou YES).
log_in_vain = "0" #> = 1 para fazer a liga os portos de w / o ouvintes.
tcp_keepalive = "YES" # Ativar obsoleto tempo limite de conexo TCP (ou NO).
# Para a opo a seguir voc precisa ter em seu set TCP_DROP_SYNFIN
# Kernel. Por favor, consulte fiapos e notas para mais detalhes.
tcp_drop_synfin = "NO" # Definida como YES para soltar os pacotes TCP com SYN + FIN
# NOTA: esta viola a especificao TCP
icmp_drop_redirect = "NO" # Definida como YES para ignorar redirecionar pacotes ICMP
icmp_log_redirect = "NO" # Definida como YES para registrar redirecionar pacotes ICMP
Estas so algumas das variveis de configurao de IP mais obscuros. Voc pode encontrar mais informaes sobre
los em TCP (4) e icmp (4).
network_interfaces = "auto" # Lista de interfaces de rede (ou "auto").
cloned_interfaces = "" # Lista de interfaces de rede clonadas para criar.
# Cloned_interfaces = "gif0 GIF1 MIC2 gif3" # Pr-clonagem GENRICO configurao.
ifconfig_lo0 = "inet 127.0.0.1"
# Configurao do dispositivo loopback padro.
# Ifconfig_lo0_alias0 = "inet 127.0.0.254 netmask 0xffffffff" entrada de alias # Sample.
# Ifconfig_ed0_ipx = "ipx 0x00010010" # Exemplo IPX entrada famlia de endereos.
Nas verses anteriores do FreeBSD, voc tinha que definir network_interfaces de uma lista de
interfaces na mquina. Hoje em dia o valor automtico permite que os scripts de inicializao para encontrar
por si mesmos, de modo que voc no precisa alterar esta varivel. Voc ainda precisa definir o
Interface trata, claro. Para gw, podemos adicionar a seguinte entrada no / etc / rc.conf :
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
551
ifconfig_ed0 = "inet 223.147.37.5
Ns no precisamos fazer nada aqui para andante: sua interface Ethernet uma placa PC Card.
Olhamos para que na pgina 304.
Se voc estiver usando DHCP, voc no tem um endereo para especificar, claro. Voc ainda precisa
contar os scripts de inicializao para usar DHCP, no entanto. Faa assim:
ifconfig_ed0 = "DHCP"
Continuando,
# Se voc tiver alguma (4) interfaces de SPPP acima, voc tambm pode querer definir
# Os seguintes parmetros. Consulte spppcontrol (8) para o seu significado.
sppp_interfaces = "" # Lista de interfaces SPPP.
# Sppp_interfaces = "isp0" # exemplo: SPPP sobre ISDN
# Spppconfig_isp0 = "authproto = cap myauthname = foo myauthsecret = 'top secret' hisauthnam
e = alguma gw hisauthsecret = 'um outro segredo' "
gif_interfaces = "NO" # Lista de GIF tneis (ou "NO").
# Gif_interfaces = "gif0 GIF1"
# Exemplos tipicamente para um roteador.
# Escolher addrs tnel corretas.
# Gifconfig_gif0 = "10.1.1.1 10.1.2.1"
# Exemplos tipicamente para um roteador.
# Gifconfig_gif1 = "10.1.1.2 10.1.2.2"
# Exemplos tipicamente para um roteador.
Estes parmetros referem-se a correr de usurio PPP, que discutimos no Captulo 20, na pgina
348.
# # # Rede daemon (diversos) # # #
syslogd_enable = "YES" # Execute daemon syslog (ou NO).
syslogd_program = "/ usr / sbin / syslogd" # caminho para syslogd, se voc quiser uma diferente.
syslogd_flags = "-s" # Flags para syslogd (se estiver ativado).
# Syslogd_flags = "ss" bandeiras # SYSLOGD no se ligam de uma tomada inet
Voc deve sempre executar syslogd menos que voc tenha uma boa razo para no. Na anterior
verses do FreeBSD, syslogd_flags estava vazio, mas as preocupaes de segurana mudaram
isso, e agora por padro syslogd iniciado com o -S bandeira, que pra syslogd de
aceitar mensagens remotas. Se voc especificar o -Ss bandeira, como sugerido no comentrio,
Voc tambm no ser capaz de registrar a sistemas remotos.
s vezes muito til para logar em um sistema remoto. Por exemplo, voc pode querer tudo
sistemas example.org para registrar a gw. Dessa forma, voc obtm um conjunto de arquivos de log para toda a
rede. Para fazer isso, adicione a seguinte linha no incio do
/ Etc / syslog.conf em cada mquina:
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
/ Etc / rc.conf
552
*. *
@ Gw
Olhamos inetd na pgina 446. Normalmente voc vai querer t-lo ativado, mas voc
no ser necessrio alterar as bandeiras. Adicione esta linha ao / Etc / rc.conf tanto gw e andante:
inetd_enable = "YES"
Continuando, vemos:
named_enable = "NO" # Execute o nome, o servidor DNS (ou NO).
named_program = "/ usr / sbin / named" # caminho para a chamada, se voc quiser uma diferente.
# Named_flags = "-u bind-g bind" # Bandeiras para o nome
Estes parmetros especificam se devemos executar o servidor de nome, e que sinaliza que
deve usar, se fizermos. Consulte a pgina 366 para mais detalhes. As verses anteriores do nomeado
necessrio uma bandeira para especificar a localizao do arquivo de configurao, mas o FreeBSD local
usa agora se tornou a norma, de modo que j no precisa especificar todas as bandeiras. Todos ns colocamos
em / Etc / rc.conf para gw :
named_enable = "YES"
#
#
#
#
#
#
#
#
#
Definir estes se voc deseja executar Kerberos. Ns no discutimos Kerberos neste livro.
rwhod_enable = "NO"
rwhod_flags = ""
Definir isso se voc deseja executar o rwhod daemon, que transmite informaes sobre o
carga do sistema.
553
rarpd_enable = "NO"
rarpd_flags = ""
bootparamd_enable = "NO"
bootparamd_flags = ""
xtend_enable = "NO"
xtend_flags = ""
# Ativar sshd
# Path to sshd, se voc quiser uma diferente.
# Flags adicionais para sshd.
sshd o Secure Shell Daemon que falamos na pgina 451. Voc no precisa
mudar alguma coisa aqui para ser executado ssh, mas se voc quiser se conectar a este sistema com ssh, voc vai
precisa executar sshd. Nos dias de gw / etc / rc.conf ns colocamos:
sshd_enable = "YES"
Em seguida, vemos:
amd_enable = "NO" # Executar servio amd com US $ amd_flags (ou NO).
amd_flags = "-a /. amd_mnt-l syslog / host / etc / amd.map / net / etc / amd.map"
amd_map_program = "NO" # pode ser definido como "ypcat-k amd.master"
Essas entradas se relacionam com o montador, o que ns no discutimos neste livro. Ver amd (8)
para mais detalhes.
nfs_client_enable = "NO" # Este host um cliente NFS (ou NO).
nfs_access_cache = "2" # tempo limite de cache do cliente em segundos
nfs_server_enable = "NO" # Este host um servidor NFS (ou NO).
nfs_server_flags = "-u--n 4"
# Flags para nfsd (se habilitado).
mountd_enable = "NO" # Run mountd (ou NO).
mountd_flags = "-r" # bandeiras para mountd (se o servidor NFS estiver ativado).
weak_mountd_authentication = "NO" # Permitir solicitaes de montagem no-raiz para ser servido.
nfs_reserved_port_only = "NO" # Fornecer NFS somente em porto seguro (ou NO).
nfs_bufpackets = "DEFAULT" # bufspace (em pacotes) para o cliente (ou por defeito)
rpc_lockd_enable = "NO" # Run NFS rpc.lockd necessrio para cliente / servidor.
rpc_statd_enable = "NO" # Run NFS rpc.statd necessrio para cliente / servidor.
rpcbind_enable = "NO" # Execute o servio portmapper (SIM / NO).
rpcbind_program = "/ usr / sbin / rpcbind" # caminho para rpcbind, se voc quiser uma diferente.
rpcbind_flags = "" # Flags para rpcbind (se habilitado).
rpc_ypupdated_enable = "NO" # Executar se NIS mestre e SecureRPC (ou NO).
/ Etc / rc.conf
554
Para andante, que permitem apenas o cliente (a primeira linha). A seguir, veja:
keyserv_enable = "NO"
keyserv_flags = ""
Essas entradas referem-se ao seguro servidor de chaves RPC, que ns no discutimos neste livro.
Veja as pginas do manual keyserv (8) para mais detalhes.
# # # Opes de servios de tempo de rede: # # #
timed_enable = "NO" # Execute o daemon tempo (ou NO).
timed_flags = "" # bandeiras para cronometrado (se habilitado).
ntpdate_enable = "NO" # Run ntpdate para sincronizar tempo de inicializao (ou NO).
ntpdate_program = "/ usr / sbin / ntpdate" # caminho para ntpdate, se voc quiser uma diferente.
ntpdate_flags = "-b" # Flags para ntpdate (se ativado).
ntpd_enable = "NO" # Run ntpd Network Time Protocol (ou NO).
ntpd_program = "/ usr / sbin / ntpd" # caminho para ntpd, se voc quiser uma diferente.
ntpd_flags = "-p / var / run / ntpd.pid"
# Flags para ntpd (se habilitado).
Mais parmetros para configurar o NIS. Como mencionado acima, este livro no trata de
NIS.
Opes # # # roteamento de rede: # # #
defaultrouter = "NO" # Set de gateway padro (ou NO).
static_routes = "" # Definir a lista de rotas estticas (ou deixe em branco).
gateway_enable = "NO" # definido para SIM se este host ser um gateway.
Consulte a pgina 310 para obter mais informaes sobre o roteamento. Em gw ns adicione a seguinte linha ao
/ Etc / rc.conf :
555
andante obtm suas informaes de roteamento de DHCP, por isso no precisa fazer nada aqui.
router_enable = "NO"
router = "/ sbin / encaminhado"
router_flags = "-q"
mrouted_enable = "NO"
mrouted_flags = ""
#
#
#
#
#
Estes parmetros se relacionam com os daemons de roteamento encaminhado e mrouted. Na configues que consideramos, voc no precisa deles.
ipxgateway_enable = "NO"
ipxrouted_enable = "NO"
ipxrouted_flags = ""
IPX um protocolo de redes proprietrias Novell concebidos para ser semelhantes aos PI. FreeBSD
fornece o daemon IPXrouted (Observe a capitalizao), que lida com o roteamento IPX
tabelas. Veja a pgina de manual IPXrouted (8) para mais detalhes.
arpproxy_all = "NO" # substitui a opo do kernel obsoleto ARP_PROXYALL.
forward_sourceroute = "NO" # fazer o roteamento de origem
accept_sourceroute = "NO" # aceitar pacotes roteados por fonte nos
# # # Opes de interface ATM: # # #
atm_enable = "NO" # Configure as interfaces ATM (ou NO).
# Atm_netif_hea0 = "1 atm"
# Interfaces de rede para a interface fsica.
# Atm_sigmgr_hea0 = "uni31" manager # Sinalizao para a interface fsica.
# Atm_prefix_hea0 = "ILMI" # NSAP prefixo (apenas interfaces UNI) (ou ILMI).
# Atm_macaddr_hea0 = "NO" # Substituir endereo MAC fsico (ou NO).
# Atm_arpserver_atm0 = "0x47.0005.80.999999.9999.9999.9999.999999999999.00"
# Atm_scsparp_atm0 = "NO" # Run SCSP / ATMARP na interface de rede (ou NO).
atm_pvcs = "" # Definir a lista de PVC (ou deixe em branco).
atm_arps = "" # Definir a lista ARP permanente (ou deixe em branco).
Opes de interface # # # RDIS (ver tambm: / usr / share / examples / isdn) # # #
isdn_enable = "NO" # Habilitar o subsistema ISDN (ou NO).
isdn_fsdev = "no" dispositivo de sada # para o modo fullscreen
isdn_flags = "-dn-d0x1f9"
# Flags para isdnd
isdn_ttype = "cons25" tipo # terminal para modo de tela cheia
isdn_screenflags = "NO" # screenflags para $ {isdn_fsdev}
isdn_trace = "NO" # Habilitar o subsistema trace ISDN (ou NO).
isdn_traceflags = "-f / var/tmp/isdntrace0" # Bandeiras para isdntrace
Este parmetro refere-se ao assim chamado smurf '' Negao de servio'' ataque: de acordo com o
RFCs, a mquina deve responder a um ping para o endereo de broadcast. Mas o que acontece se
algum pings endereo de broadcast de uma rede remota atravs da Internet, to rpido como ele
pode? Cada sistema na rede remota ir responder, completamente sobrecarregar a sada
Interface da Internet. Sim, isso bobagem, mas h pessoas tolas l fora. Se voc deixar este
parmetro, pois , o sistema no estar vulnervel. Ver http://www.cert.org/advisories/CA-98.01.smurf.html para mais detalhes.
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
/ Etc / rc.conf
556
Em seguida, vm um grande nmero de opes para IPv6, o novo protocolo padro da Internet. Este
livro no lidar com IPv6, e eles esto sujeitas a alteraes, de modo que no est impresso aqui.
Em seguida, encontramos:
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
Opes de console # # # Sistema # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
keymap = "NO" # keymap em / usr / share / syscons / keymaps / *
keyrate = "NO" taxa de teclado # para: lento, normal, rpido
keybell = "NO" # sino para duration.pitch ou normal ou visual
keychange = "no" # teclas de funo valores padro
cursor = "NO" # cursor tipo {normais | blink | destrutivo}
scrnmap = "no" mapa da tela # in / usr / share / syscons / scrnmaps / *
font8x16 = "no" 8x16 # fonte de / usr / share / syscons / fonts / *
font8x14 = "no" 8x14 # fonte de / usr / share / syscons / fonts / *
font8x8 = "no" 8x8 # fonte de / usr / share / syscons / fonts / *
blanktime = "300" # Tempo em branco (em segundos) ou "NO" para deslig-lo.
saver = "NO" # screen saver: Usa / boot / kernel / $ {} saver _saver.ko
#
#
#
#
#
#
#
#
#
Parmetros para moused, um driver de mouse para os terminais baseados em caracteres, e as bandeiras mundiais
para telas virtuais. Se voc estiver usando um servidor X, voc deve executar moused. Em andante, ns
adicione esta linha ao / Etc / rc.conf :
moused_enable = "YES"
Em seguida seguem algumas definies para o driver do console alternativa pcvt, que ns no olhamos
para aqui, seguida por uma seo que descreve a configurao mail:
# # # # # # # # # # # # #
# # # # # # #
# # # Mail Transfer Agent
# # # # # # # # # # # # #
# # # # # # #
mta_start_script = "/ etc
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
(MTA) opes # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
/ rc.sendmail"
# Script para iniciar o seu escolhido MTA
# Configuraes para / etc / rc.sendmail:
sendmail_enable = "NO" # Execute o daemon de entrada sendmail (SIM / NO).
sendmail_flags = "-L sm-mta-bd-q30m" # bandeiras para sendmail (como um servidor)
sendmail_submit_enable = "YES" # Iniciar um MTA somente localhost para envio de correio
sendmail_submit_flags = "-L sm-mta-bd-q30m-ODaemonPortOptions = addr = localhost"
# Bandeiras para somente localhost MTA
sendmail_outbound_enable = "YES" # Dequeue preso mail (SIM / NO).
sendmail_outbound_flags = "-L sm-fila-q30m" # bandeiras para sendmail (sada apenas)
sendmail_msp_queue_enable = "YES" # Dequeue preso clientmqueue mail (SIM / NO).
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
557
Desde o FreeBSD Release 5, sendmail MTA no mais habilitada por padro. Se voc tem
sido executado sendmail em uma verso mais antiga do FreeBSD, voc deve adicionar uma entrada para
/ Etc / rc.conf para mant-lo funcionando.
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
Opes administrativas # # # Diversos # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # #
cron_enable = "YES" # Execute o daemon trabalho peridico.
cron_program = "/ usr / sbin / cron" # Que executvel cron para executar (se habilitado).
cron_flags = "" # Quais as opes para passar para o daemon cron.
Correr cron, o daemon responsvel por executar as coisas em horrios especficos. Consulte a pgina 151 para
uma descrio cron. Deixe esta habilitado a menos que voc tenha uma boa razo para no.
lpd_enable = "NO"
lpd_program = "/ usr / sbin / lpd"
lpd_flags = ""
Ver pgina 263 para uma discusso sobre a impresso. Em verses mais antigas do FreeBSD, lpd_enable
foi definido para SIM. Agora, para executar lpd, precisamos colocar a seguinte linha no / etc / rc.conf para
tanto gw e adagio:
lpd_enable = "YES"
Em seguida, vemos:
usbd_enable = "NO"
usbd_flags = ""
Correr usbd, a Universal Serial Bus ou USB daemon. Veja as pginas do manual usbd (8) e
usb (4) para mais informaes.
dumpdev = "NO"
DUMPDIR = "/ var / crash"
savecore_flags = ""
Estes parmetros especificam como fazer dumps quando o sistema entra em pnico. Consulte a pgina 83 para
detalhes. Como mencionado l, prefervel definir este valor em / Boot / loader.conf : O
forma, voc ainda pode obter um despejo se o seu sistema entra em pnico antes de ler / Etc / rc.conf, ento ns
no muda nada aqui.
Continuando com / Etc / defaults / rc.conf,
enable_quotas = "NO"
# ligar quotas na inicializao
check_quotas = "YES"
# Verifique quotas na inicializao
accounting_enable = "NO"
# Ligue o processo de contabilidade
ibcs2_enable = "NO"
# IBCS2 emulao (SCO) carregados na inicializao
ibcs2_loaders = "coff"
# Lista de carregadores iBCS2 adicionais
sysvipc_enable = "NO"
# Carregar System V IPC primitivas na inicializao
linux_enable = "NO"
# Compatibilidade binria Linux carregados na inicializao
svr4_enable = "NO"
# SysVR4 emulao carregados na inicializao
osf1_enable = "NO"
# Alpha OSF / 1 emulao carregados na inicializao
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
/ Etc / rc.conf
558
Nos velhos tempos, a seqncia de inicializao automaticamente excludo tudo no sistema de arquivos
/ Tmp. s vezes, isso no era desejvel, ento agora a sua escolha. Altere este valor para
SIM se voc quiser o comportamento antigo.
Note que se voc usar um / Tmp com base na MFS (sistema de arquivos de memria), esta varivel no tem
efeito. Os contedos de sistemas de arquivos MFS desaparecer na reinicializao.
ldconfig_insecure = "NO" # Set de SIM para desativar as verificaes de segurana ldconfig
ldconfig_paths = "/ usr / lib / compat / usr/X11R6/lib / usr / local / lib"
Caminhos de pesquisa de biblioteca # compartilhados
ldconfig_paths_aout = "/ usr / lib / compat / aout / usr/X11R6/lib/aout / usr / local / lib / aout"
# A.out caminhos de pesquisa de biblioteca compartilhada
ldconfig mantm a cache de biblioteca dinmica necessria para encontrar bibliotecas quando se inicia
a maioria dos processos. Potencialmente, isso pode ser um problema de segurana, e ldconfig faz uma srie de
verificaes de segurana antes de aceitar bibliotecas. Se voc realmente quiser, voc pode desativar estes
cheques, definindo ldconfig_insecure. As duas outras variveis so listas da
diretrios que esto sendo buscadas para encontrar ELF e a.out bibliotecas dinmicas, respectivamente. Ver
pgina 628 para mais detalhes. Voc normalmente no remover qualquer coisa a partir destas listas, mas
voc pode querer adicionar algo.
kern_securelevel_enable = "NO"
kern_securelevel = "-1"
update_motd = "YES"
O kernel executado com cinco diferentes nveis de segurana. Qualquer processo de super-usurio pode aumentar
o nvel de segurana, mas apenas inicializao pode reduzi-la. Os nveis de segurana so:
-1. Modo permanente insegurana: sempre executar o sistema em nvel 0 modo. Este o
valor inicial padro.
0. Modo inseguro: as bandeiras imutveis e acrescentar somente pode ser desligado. Todos os dispositivos
pode ser lido ou escrito sujeito s suas permisses.
1. Modo seguro: as bandeiras imutveis e acrescentar somente no pode ser desligado. Discos para
sistemas de arquivos montados, / Dev / mem e / Dev / kmem no podem ser abertas para a escrita.
2. Modo altamente seguro. Isto o mesmo que o modo de segurana, com a adio de que os discos
no pode ser aberta para escrita (excepto pela mount (2)), se so ou no
montada. Este nvel impede adulterao de sistemas de arquivos, desmontando-los, mas
tambm impede executando newfs (8) enquanto o sistema multi-utilizador.
3. Modo de segurana de rede. Esta a mesma que o modo altamente seguro com a adio de que
Regras de filtragem de pacotes IP (ver pgina 389) no pode ser alterado e configurao dummynet
no pode ser ajustado. Ns no discutimos dummynet neste livro.
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
559
Para definir o nvel seguro para qualquer coisa, exceto -1, defina a varivel kern_securelevel ao
valor que voc quer e defina kern_securelevel_enable a SIM.
start_vinum = "NO"
Olhamos Vinum na pgina 221. No vamos colocar o seguinte texto em / Etc / rc.conf a
inici-lo na inicializao:
start_vinum = "YES"
#
#
#
#
#
#
#
#
#
unaligned_print uma ferramenta de diagnstico para o processador Alpha, h uma boa chance de ele
vai embora. dmesg_enable salva as mensagens de inicializao para o arquivo / Var / run / dmesg.boot.
Deix-lo desta forma, as mensagens so muitas vezes teis para referncia, e depois de um certo nmero
de mensagens, eles ficam liberados do buffer de mensagem interna do kernel.
As outras mensagens so usadas para configurar a colheita entropia para o nmero aleatrio
dispositivos / dev / random e / Dev / urandom. Veja aleatrio (4) para mais detalhes. Em
circunstncias normais, voc no deve alter-los.
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
O correspondente / Etc / rc.conf para andante agora deve conter os seguintes dados:
/ Etc / rc.conf
560
hostname = "andante.example.org"
inetd_enable = "YES"
# Correr inetd
nfs_client_enable = "YES"
# Este acolhimento um cliente NFS (ou NO).
ntpd_enable = "YES"
# Executar ntpd Network Time Protocol (ou NO).
moused_enable = "YES"
# Execute o daemon do mouse
lpd_enable = "YES"
# Execute o daemon de impressora de linha.
start_vinum = "YES"
# definido para YES para iniciar vinum
/ Etc / exportaes
/ Etc / exportaes uma lista de sistemas de arquivos que devem ser NFS exportado. Olhamos para ele na pgina
460. Veja tambm a pgina de manual exportaes (5).
/ Etc / fstab
/ Etc / fstab contm uma lista de sistemas de ficheiros conhecidos para o sistema. O script / Etc / rc comea
montar duas vezes durante a inicializao do sistema em primeiro lugar para montar os sistemas de arquivos locais e,
posteriormente, para
montar o sistema de arquivos NFS. montar ir montar todos os sistemas de arquivos em / Etc / fstab a menos que eles
esto explicitamente excludos.
Aqui est um tpico / Etc / fstab, de freebie.example.org host:
Sistema # Arquivo
/ Dev/ad0s1a
/ Dev/ad0s1b
/ Dev/ad0s1e
/ Dev/da0b
/ Dev/da0h
/ Dev/da1h
/ Dev/da2b
/ Dev/da2e
/ Dev/da3a
proc
/ Dev/cd0a
/ Dev/cd1a
/ Dev/cd2a
/ Dev/cd3a
/ Dev/cd4a
/ Dev/cd5a
/ Dev/cd6a
Ponto de montagem
/
nenhum
/ Usr
nenhum
/ Src
/ Home
nenhum
/ S
/ Mod
/ Proc
/ Cdrom / 1
/ Cdrom / 2
/ Cdrom / 3
/ Cdrom / 4
/ Cdrom / 5
/ Cdrom / 6
/ Cdrom / 7
fstype
ufs
trocar
ufs
trocar
ufs
ufs
trocar
ufs
ufs
procfs
cd9660
cd9660
cd9660
cd9660
cd9660
cd9660
cd9660
flags
rw
sw
rw
sw
rw
rw
sw
rw, noauto
rw, noauto
rw
ro, noauto
ro, noauto
ro, noauto
ro, noauto
ro, noauto
ro, noauto
ro, noauto
1
0
2
0
2
2
0
2
0
0
0
0
0
0
0
0
0
1
0
2
0
2
2
0
2
0
0
0
0
0
0
0
0
0
561
/ Dev/cd7a
presto :/
presto :/ usr
presto casa :/
bumble :/
bumble :/ usr
esperar :/ C
esperar :/
/
/
/
/
/
/
/
/
Cdrom / 8
Presto
Presto / usr
Presto / home
Bumble
Bumble / usr
C
Wait
cd9660
NFS
NFS
NFS
NFS
NFS
NFS
NFS
ro, noauto
macio, rw, noauto
macio, rw, noauto
macio, rw, noauto
macio, rw, noauto
macio, rw, noauto
macio, rw, noauto
macio, rw, noauto, tcp
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
A primeira coluna contm o nome de um dispositivo (por swap, ufs e cd9660 arquivo
sistemas), o nome de um sistema de arquivos (para sistemas de arquivos NFS), ou proc pela proc arquivo
sistema.
A quinta coluna usado por dump (8) para determinar a freqncia de despejar o sistema de arquivos.
0 significa que no para despejar o sistema de arquivos. despejar s entende sistemas de arquivos UFS, de modo que este
campo deve ser 0 para todos os outros sistemas de arquivos.
A sexta coluna o passar o nmero para a execuo de fsck no momento da inicializao. Novamente, 0 significa
'' No corra fsck.'' Normalmente, voc define uma passagem s para o sistema de arquivos raiz, e passar 2
para outros sistemas de arquivos.
As bandeiras so dignos de um olhar mais atento. Alguns dos mais comuns so:
Tabela 30-1: Monte bandeiras
Bandeira
ro
rw
sw
noauto
suave
tcp
Propsito
Monte somente leitura.
Monte leitura / gravao.
Monte como swap.
No instale automaticamente.
Para uma montagem NFS, falhar se a solicitao expira. Se voc no especificar
esta opo, NFS continuar tentando para sempre.
Para NFS s, montagem com o transporte TCP ao invs do padro
UDP transporte. Este recurso suportado quase s pela BSD
sistemas de verificar se a outra extremidade oferece transporte TCP.
562
Se o sistema de arquivo tem uma entrada no / Etc / fstab, montagem inteligente o suficiente para obter todas as informaes
ele precisa desse arquivo. Voc s precisa especificar o nome do ponto de montagem ou o nome
do dispositivo especial (por ufs e cd9660) ou o sistema de arquivos remoto (por NFS). Isto
particularmente til para cd9660, o tipo de sistema de arquivos do CD. Sem uma entrada em / etc / fstab,
voc teria que escrever algo como o seguinte para montar um CD-ROM.
# Mount-t cd9660-o ro / dev/cd0a / cdrom
/ Etc / group
/ Etc / group define os grupos conhecidos para o sistema. Voc normalmente atualiz-lo ao adicionar
usurios, por exemplo, com vipw ou adduser, embora voc tambm pode edit-lo diretamente. Consulte a pgina
113 para mais detalhes.
/ Etc / mail
O diretrio / Etc / mail contm informaes de configurao para alguns MTAs, incluindo
sendmail.
/ Etc / master.passwd
/ Etc / master.passwd o arquivo de senhas real. Como / Etc / group, voc atualiza com vipw ou
adduser. Consulte a pgina 144 para mais detalhes.
/ Etc / crontab
/ Etc / crontab descreve as tarefas a serem executadas pelo cron em nome do sistema. Voc
no tem que usar esse arquivo em tudo, voc pode usar de cada usurio crontab arquivos em seu lugar. Note-se que
este ficheiro tem um formato ligeiramente diferente da outra crontab arquivos. Um usurio crontab
contm entradas como esta:
563
0
Esta linha executa o script / Home / grog / Scripts / gira-log meia-noite todos os dias. Se voc colocar
esta entrada / Etc / crontab, voc precisa dizer a cron qual o usurio a execut-lo como. Para fazer isso,
colocando o nome do utilizador antes de o comando:
0
grogue
/ Etc / dhclient.conf
/ Etc / dhclient.conf descreve o lado do cliente dos servios de DHCP. Normalmente ele est vazio. Ns
discutido dhcp em 302.
/ Etc / disktab
/ Etc / disktab contm descries de geometrias de disco para disklabel. Isto quase
obsoleta. Olhamos para ele brevemente na pgina 216.
/ Etc / ftpusers
/ Etc / ftpusers uma lista de usurios que esto no permisso para se conectar a este sistema usando FTP.
um forte concorrente para o prmio para o arquivo de pior nome no sistema.
/ Etc / hosts
Para uma pequena rede, especialmente se voc no est permanentemente conectado Internet, voc
tem a opo de colocar os endereos dos sistemas que voc quer falar em um arquivo chamado
/ Etc / hosts. Este arquivo simplesmente uma lista de endereos IP e nomes de host, por exemplo:
Aborda host da rede # local
#
# Endereo de auto-retorno para todos os sistemas
127,1 localhost loopback locais
# # # # # # Domnio example.com.
#
223.147.37.1 freebie freebie.example.org
# FreeBSD 3.0
223.147.37.2 presto.example.org presto
66 486 MHz (BSD UNIX)
Antes dos dias de DNS, este era o caminho para resolver endereos IP. Ele s funciona localmente,
e at l uma dor para manter: preciso propagar cada atualizao a cada
mquina na rede. Como vimos no captulo 21, muito prefervel correr nomeado, mesmo
Se voc no estiver conectado Internet.
564
/ Etc / hosts.equiv
/ Etc / hosts.equiv uma lista de hosts cujos usurios podem usar rsh para acessar o sistema sem
fornecimento de uma senha. rsh agora obsoleto, por isso improvvel que voc vai precisar para mudar isso
arquivo. Veja a descrio da ssh na pgina 417 para uma substituio.
/ Etc / hosts.lpd
/ Etc / hosts.lpd uma lista de hosts que podem utilizar o lpd spooler neste sistema.
/ Etc / inetd.conf
/ Etc / inetd.conf o arquivo de configurao para inetd, o servidor de Internet. Ela remonta
aplicao inicial do TCP / IP no BSD 4.2, e o formato o mesmo para todas as verses
de UNIX. Vimos vrias modificaes para esse arquivo em toda a rede
parte do livro. Veja o ndice (inetd.conf) ea pgina de manual inetd.conf (5) Para mais
detalhes. FreeBSD agora desabilita todos os servios por padro para limitar as exposies de segurana, para
h uma boa chance que voc ter que editar o arquivo.
/ Etc / login.access
/ Etc / login.access um arquivo que limita o acesso remoto por usurios individuais. Ns no olhar
em mais detalhe aqui.
/ Etc / login.conf
/ Etc / login.conf descreve os parmetros do usurio definidos no momento do login.
Na tradio UNIX, raiz tem sido o proprietrio do universo. Em uma grande instalao, esta
bastante primitiva, eo 4.3BSD Net / 2 relase introduziu um novo conceito, aulas de login,
que determinam contabilidade sesso, limites de recursos e configuraes de ambiente do usurio.
Vrios programas do sistema utilizam o banco de dados descrito / Etc / login.conf a criao de um
ambiente de login do usurio e fazer cumprir a poltica, contbil e administrativa reses. O banco de dados de classe de login tambm fornece os meios pelos quais os usurios so capazes de ser
autenticado no sistema e os tipos de autenticao disponveis.
Ao criar um usurio, voc pode, opcionalmente, digite um nome de classe, o que deve corresponder a um
entrada em / Etc / login.conf-consulte a pgina 146 para mais detalhes. Se voc no fizer isso, o sistema usa o
entrada omisso para um usurio no-root. Para o usurio root, o sistema usa a entrada raiz se
est presente, e omisso contrrio.
A estrutura do banco de dados de configurao de login relativamente extensa. Ele descreve uma
nmero de parmetros, muitos dos quais pode ter dois valores de: a atual e um valor de
mximo valor. No login, o sistema define os valores para o -Cur Valor (atual), mas o
usurio poder, a seu critrio, aumentar o valor para o -Max Valor (no mximo). Ns olharemos
o omisso entrada para um exemplo.
565
default: \
: Passwd_format = md5: \
: Direitos autorais = / etc / COPYRIGHT: \
: Welcome = / etc / motd: \
: Setenv = MAIL = / var / mail / $, BLOCKSIZE = K, FTP_PASSIVE_MODE = YES: \
: Path = / sbin / bin / usr / sbin / usr / bin / usr / games / usr / local / sbin / usr / local / bi
n / usr/X11R6/bin ~ / bin: \
: Nologin = / var / run / nologin: \
: Cputime = unlimited: \
: Datasize = unlimited: \
: Stacksize = unlimited: \
: Memorylocked = unlimited: \
: Memoryuse = unlimited: \
: Tamanho = unlimited: \
: Coredumpsize = unlimited: \
: Openfiles = unlimited: \
: Maxproc = unlimited: \
: Sbsize = unlimited: \
: Vmemoryuse = unlimited: \
: Priority = 0: \
: Ignoretime @: \
: Umask = 022:
Como no arquivo de senhas, os campos so delimitados por dois pontos (:). Neste exemplo, no entanto,
linhas so contnuo colocando a barra (\) no final de cada linha, excepto o ltimo. Este
uso comum em UNIX. Ao contrrio uso Microsoft, uma barra invertida nunca usado para
representar um diretrio.
Esta entrada define os seguintes parmetros:
passwd_format controla o formato de senha usada para novas senhas. Ele toma a
valores des, md5 ou blf. Veja o login.conf (5) pgina de manual para mais informaes
sobre as capacidades de login.
Os processos podem usar tanto tempo de CPU como eles querem. Se voc mudar isso, voc pode parar
processos que utilizam mais do que uma determinada quantidade de tempo de CPU.
Os tamanhos mximos atuais do segmento de dados do usurio ea pilha so definidas para 64 MB.
A entrada no define valores mximos para esses parmetros.
No h limite para o tamanho dos arquivos de dados ou arquivos de dump de memria que o usurio pode criar.
Cada processo pode ter at 64 arquivos abertos. Para alguns programas, este poderia ser um
limitao.
O utilizador no precisa tem um diretrio home para entrar o @ especifica que o smbolo
smbolo anterior (requirehome) deve ser indefinido. Como resultado, o sistema faz
no exigir que o diretrio home.
Por padro, o umask est definido para 022. Consulte a pgina 184 para mais detalhes sobre umask.
566
/ Etc / motd
/ Etc / motd (Mensagem do dia) um arquivo cujo contedo impresso no incio da sesso. Voc pode
colocar qualquer mensagem que voc gostaria nele. Consulte a pgina 114 para obter um exemplo.
/ Etc / newsyslog.conf
/ Etc / newsyslog.conf contm informaes de configurao para o newsyslog comando:
que os arquivos de log para arquivar, quantas cpias, e se comprimir. Ver newsyslog (8)
para mais detalhes. Se voc gerar uma grande quantidade de informaes de registro, voc pode precisar modificar
esse arquivo para evitar o transbordamento do sistema de arquivos com o seu / Var / log diretrio.
/ Etc / nsswitch.conf
/ Etc / nsswitch.conf diz o resolvedor como executar resoluo de nomes. Este formato de arquivo
vem de Solaris e substitui a antiga / Etc / host.conf. Ele lhe d a flexibilidade para
usar tanto / Etc / hosts e pesquisas de DNS, por exemplo. Voc pode especificar a seqncia de pesquisa para
hostnames com uma linha como esta:
hospedeiros: files dns
A palavra hospedeiros aqui especifica o tipo de pesquisa (para nomes de host, no NIS, a senha
entradas ou qualquer outra coisa). A palavra-chave arquivo representa o / Etc / hosts arquivar neste caso.
Este arquivo no instalado por padro, consulte a pgina man nsswitch.conf (8) Se voc precisa usar
lo.
/ Etc / pccardd.conf
/ Etc / pccardd.conf e seu companheiro / Etc / defaults / pccardd.conf so a configurao
arquivos para pccardd. Olhamos para eles em detalhes no Captulo 17, na pgina 304.
/ Etc / periodic.conf
/ Etc / periodic.conf controla como executar as tarefas de manuteno que cron executado durante
a noite:
# Realizar manuteno diria / semanal / mensal.
1 3 raiz ***
diariamente peridica
15 4
** 6 raiz
peridica semanal
30 5
1 ** raiz
peridica mensal
Como / Etc / rc.conf, / etc / periodic.conf um arquivo opcional que substitui o arquivo padro
/ Etc / defaults / periodic.conf. Voc no precisa mudar nada, mas voc pode encontr-lo
vale a pena. Leia a pgina de manual periodic.conf (5) ou o arquivo / Etc / defaults / periodic.conf
para mais detalhes.
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
567
/ Etc / printcap
/ Etc / printcap descreve as impressoras conectadas a um sistema. Consulte a pgina 265 para mais
detalhes.
/ Etc / profile
/ Etc / profile um arquivo de inicializao padro para os reservatrios de estilo Bourne. Consulte a pgina 130 para mais
detalhes.
/ Etc / rc.firewall
/ Etc / rc.firewall usado para inicializar o firewall de filtragem de pacotes ipfw. Consulte a pgina 389 para
mais detalhes.
/ Etc / resolv.conf
/ Etc / resolv.conf usado pela resolvedor biblioteca para localizar servidores de nomes para executar DNS
pesquisas. Veja 366 para mais detalhes.
/ Etc / syslog.conf
/ Etc / syslog.conf o arquivo de configurao para syslogd. Ver syslogd.conf (5) Para mais
detalhes.
/ Etc / ttys
/ Etc / ttys um arquivo que descreve terminais e pseudo-terminais para Init. Ns olhamos para ele
em um nmero de lugares: verificar o ndice.
Aqui est um trecho do padro / Etc / ttys:
# Esta entrada necessrios para pedir a senha quando o init vai para o modo single-user
# Se voc quiser ser solicitado para a senha, altere "seguro" para "inseguro" aqui
nenhum consola
desconhecido off seguro
O console do sistema. Este no um verdadeiro terminal: ele pode ser movido a partir de um dispositivo para
outro. Por padro, o que corresponde a / Dev/ttyv0 (A prxima entrada).
ttyv0
Este o primeiro terminal virtual, o que voc receber automaticamente no momento da inicializao. A
mudar para os outros, prima Alt-Fx, em que x est entre 1 e 16. Isto lhe dar uma
dos outros:
# Terminais virtuais
ttyv1 "/ usr / libexec / getty
ttyv2 "/ usr / libexec / getty
ttyv3 "/ usr / libexec / getty
(Etc)
ttyv8 "/ usr/X11R6/bin/xdm
Pc "
Pc "
Pc "
-Nodaemon "xterm
Cada terminal virtual pode suportar um login ou um servidor X. O padro / Etc / ttys
configfiles.mm, v v4.16 (2003/04/02 04:41:37)
568
permite getty sobre os primeiros oito terminais virtuais e reservas / Dev/ttyv8 para X. Se voc
no permitir xdm neste terminal, voc comea com X startx.
O kernel padro suporta dezesseis terminais virtuais, o valor mximo possvel. O
parmetro de configurao do kernel MAXCONS (Definido no / Usr / src / sys / conf / NOTES) permite que voc
para reduzir este nmero.
Terminais # Serial
ttyd0 "/ usr / libexec / getty
ttyd1 "/ usr / libexec / getty
ttyd2 "/ usr / libexec / getty
ttyd3 "/ usr / libexec / getty
std.9600
std.9600
std.9600
std.9600
"
"
"
"
desconhecido
desconhecido
desconhecido
desconhecido
fora
fora
fora
fora
proteger
proteger
proteger
proteger
Estas so as portas seriais em seu computador. No importa se ele contm nomes que
correspondem ao hardware inexistente, tais como / Dev/ttyd3, contanto que voc no tente
permitir-lhes.
Terminais # Pseudo
ttyp0 nenhum
ttyp1 nenhum
rede
rede
H toda uma lista deles. O objetivo aqui dizer a programas de rede nas propriedades
do terminal: em particular, no so proteger, o que significa que voc no est autorizado a
Conecte-se com eles como root.
/ Boot / device.hints
O arquivo / Boot / device.hints contm informaes de configurao que foi armazenado anteriormente
no arquivo de configurao do kernel, e que no poderia ser alterada, exceto atravs da construo e
a execuo de um novo kernel. Agora ele pode ser definida em tempo de inicializao. Para que estas alteraes se aplicam, voc
ainda pode precisar de reiniciar, mas voc no precisa de um novo kernel.
A informao contida / Boot / device.hints consiste em variveis estruturadas. Por exemplo, a
considerar uma terceira ISA porta serial I / O, chamado / Dev/sio2 em FreeBSD. Por padro, este porto
obtm IRQ 4, a mesma / Dev/sio0. Isso simplesmente no funciona, ento voc ter que encontrar um
IRQ diferente. As sugestes para este dispositivo comear com o texto hint.sio.2. O padro
/ Boot / device.hints contm os seguintes parmetros para este dispositivo:
hint.sio.2.at = "isa"
hint.sio.2.disabled = "1"
hint.sio.2.port = "0x3E8"
hint.sio.2.irq = "5"
Em sequncia, estas sugestes'''' estado que o dispositivo ligado ao barramento ISA, que
desativada (em outras palavras, o kernel no tentar encontr-la), que os seus registros de dispositivos esto em
endereo 0x3e8, e que ele interrompe a IRQ 5. Placas-me modernas configurar esta
dispositivo atravs da BIOS. Voc pode achar que em seu sistema mais adequado para ser executado em
IRQ 11. Neste caso, em / Boot / device.hints, voc deve remover o'' desativado'' linha e
alterar o irq linha:
569
hint.sio.2.at = "isa"
hint.sio.2.port = "0x3E8"
hint.sio.2.irq = "11"
Em alguns casos, voc pode alterar essas bandeiras em tempo de execuo com o kenv de comando. Para
exemplo, para alterar as bandeiras da primeira porta serial para 0x90 para executar um depurador de srie,
pode entrar:
# Kenv hint.sio.0.flags
0x0
# Kenv hint.sio.0.flags = 0x90
hint.sio.0.flags = "0x90"
scbus0 ahc0
scbus1 ahc1 nibus 0 (apenas um)
scbus3 ahc2 nibus 0
scbus2 ahc2 bus 1
da0 est em scsbus0, alvo 0, unidade 0
da1 est em scsbus3, alvo 1
da2 est em scsbus2, alvo 3
sa1 est em scsbus1, meta de 6
Se houver quaisquer outros dispositivos conectados aos adaptadores de host, eles so atribudos outros
nomes em sequncia, a partir de / Dev/da3 e / Dev/sa2.
Esta situao corresponde sintaxe no incio do arquivo de configurao do kernel:
scbus0
scbus1
scbus3
scbus2
da0 em
da1 em
da2 em
sa1 em
scbus?
em ahc0
em ahc1 nibus 0
em ahc2 nibus 0
em ahc2 bus 1
scbus0 alvo
scbus3 alvo
scbus2 alvo
scbus1 alvo
570
Dispositivo
Dispositivo
Dispositivo
Dispositivo
0 unidade 0
1
3
6
nibus
nibus
nibus
nibus
#
#
#
#
nico
nico
gmeo
gmeo
/ Etc / gettytab
/ Etc / gettytab descreve perfis para getty. Voc provavelmente no precisa dele, verifique a pgina de manual
se voc estiver interessado.
/ Etc / manpath.config
/ Etc / manpath.config um arquivo de configurao para homem. Voc normalmente no precisa mudar
este arquivo.
/ Etc / netconfig
/ Etc / netconfig nova no FreeBSD Release 5. Ele semelhante ao arquivo com o mesmo nome em
UNIX System V, mas ele s usado para C cdigo RPC biblioteca. Em geral, voc no precisa
se preocupar com esse arquivo, a menos que voc estiver atualizando a partir de uma verso mais antiga do FreeBSD. Se ele
no aqui, um certo nmero de funes de rede, incluindo o NFS, no funcionar.
/ Etc / networks
/ Etc / networks Era uma vez uma lista de redes na Internet. Embora isso soa como um
boa idia, quase intil: se voc se conectar Internet, voc deve usar um nome
servidor, o que suplanta esse arquivo.
/ Etc / passwd
/ Etc / passwd o arquivo de senhas de estilo antigo. Ele agora est presente apenas para programas que
esperar para ler as informaes do usurio a partir dele, e ele no contm mais senhas. No
alterar esse arquivo, os programas vipw, adduser e pwd_mkdb faz-lo automaticamente. Ver
pgina 144 para mais detalhes.
571
/ Etc / protocolos
/ Etc / protocolos uma lista de protocolos conhecidos que funcionam na camada IP. Considere este arquivo para ser
somente leitura.
/ Etc / pwd.db
/ Etc / pwd.db uma forma legvel por mquina do banco de dados do usurio com as senhas
removido. Olhamos para ele na pgina 144. Como / Etc / passwd, que gerado automaticamente.
/ Etc / rc
/ Etc / rc o script principal que inicia o sistema. Ele usa os outros arquivos cujos nomes
comear com / Etc / rc para executar inicializao especfico. Consulte a pgina 524 para mais detalhes.
Arquivo / etc/rc.i386
Arquivo / etc/rc.i386 usado para inicializar recursos especficos para a arquitetura Intel 386, como
Emulao SCO e Linux. Voc normalmente no precisa olhar ou alterar esse arquivo.
/ Etc / rc.pccard
/ Etc / rc.pccard configura laptops que utilizam o nibus placa PC Card.
/ Etc / rc.serial
/ Etc / rc.serial define os valores padro para dispositivos seriais.
/ Etc / shells
/ Etc / shells uma lista de conchas vlidos, utilizado por ftp e outros programas. ftpd recusa-se a
abrir uma sesso para um usurio cujo shell no mencionado neste arquivo. Isso evita que as pessoas
de iniciar um ftp sesso como um daemon, que muitas vezes no tm senhas. chpass
no vai deixar voc mudar seu shell para um shell no includo neste arquivo. Consulte a pgina 450 para
mais detalhes. Geralmente atualizado quando voc instala um novo shell da coleo Portas.
/ Etc / services
/ Etc / services contm uma lista de servios de IP que este sistema de suporte.
572
/ Etc / spwd.db
/ Etc / spwd.db uma forma legvel por mquina do banco de dados do usurio com as senhas intactas.
Olhamos para ele na pgina 144.
/ Etc / termcap
/ Etc / termcap (Capacidades do terminal) descreve sequncias de controlo de terminais. Por padro, o
programas de utilizar o valor do PRAZO varivel de ambiente para procurar o terminal
capacidades neste banco de dados. Consulte a pgina 128 para mais detalhes.
/ Etc / peridica
O diretrio / Etc / peridica contm trs diretrios utilizados por cron em intervalos regulares:
diria, semanal e mensal. Os diretrios contm uma srie de arquivos para a realizao de
tarefas especficas. Por exemplo, a / Etc / periodic / daily contm os seguintes arquivos:
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
-Rwxr-xr-x
5
4
5
5
5
1
5
5
5
5
5
5
5
5
3
5
3
1
5
5
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
grogue
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
Lemis
1269
1449
1092
695
1056
595
1742
996
679
1211
710
516
548
687
1362
768
1633
1489
723
712
Abril
Novembro
Setembro
Setembro
Setembro
Jan
Novembro
Setembro
Setembro
Maio
Setembro
Julho
Setembro
Setembro
Dezembro
Julho
Dezembro
Jan
Julho
Junho
26
21
15
15
15
9
15
15
15
31
15
26
15
15
9
26
9
7
26
2
2001
13:55
2000
2000
2000
07:11
2001
2000
2000
2001
2000
2002
2000
2000
07:15
2002
07:15
07:10
2002
2001
100.clean-discos
110.clean-PGT
120.clean-preservar
130.clean-msgs
140.clean-rwho
150.clean-hoststat
200.backup-passwd
210.backup-aliases
300.calendar
310.accounting
330.news
400.status-discos
420.status-rede
430.status-rwho
440.status-mailq
450.status-segurana
460.status-mail-rejeita
470.status-nomeado
500.queuerun
999.local
Os ficheiros so executados na ordem dos seus nomes, de modo que os nomes consistem em duas partes: uma
indicando o nmero de sequncia e um nome, indicando a funo. Este mtodo novo
com FreeBSD Release 3. Em verses mais antigas do FreeBSD, estas funes foram realizadas
por arquivos com os nomes / Etc / dia, / etc / semanal e / Etc / mensal. Consulte a pgina 151 para mais
Detalhes de cron.
573
/ Etc / host.conf
/ Etc / host.conf descreveu a ordem em que para realizar a resoluo de nomes. Foi
substituda pela / Etc / nsswitch.conf, que tem uma sintaxe diferente.
/ Etc / named.boot
As verses anteriores do nomeado, o servidor DNS, usado / etc / named.boot como o principal
arquivo de configurao. Novas verses usam / Etc / namedb / named.conf, eo formato muito
diferente.
/ Etc / netstart
/ Etc / netstart era um script chamado por / Etc / rc para iniciar a rede. Seu nome j foi
alterado para / Etc / rc.network. FreeBSD ainda inclui um arquivo / etc / netstart, mas sua nica
objetivo iniciar a rede em modo de usurio nico.
/ Etc / sysconfig
/ Etc / sysconfig era um arquivo que continha todas as definies de configurao especficas do site. Sua
nome foi alterado para / Etc / rc.conf.
31
Neste captulo:
FreeBSD lanamentos
e CVS
FreeBSD lanamentos
Obter atualizaes de
a Net
Criando a fonte
rvore
Manter-se atualizado
FreeBSD est mudando constantemente. O tempo mdio decorrido entre mudanas na
rvore fonte est na ordem de poucos minutos. Obviamente voc no pode manter-se atualizado com
que o ritmo da mudana.
Nos trs captulos seguintes veremos como manter-se atualizado. Neste captulo, vamos
olhar:
FreeBSD verses: como o projeto FreeBSD chega a um acordo com o ritmo acelerado de
alterar, e como o sistema mantm estvel, apesar das mudanas.
No captulo 32, A atualizao do software do sistema, veremos como atualizar FreeBSD para a
nova verso, com particular referncia para upgrades para FreeBSD Release 5, e no captulo
33, Kernels personalizados, vamos olhar para a construo de kernels especiais.
581
582
CVS construdo em cima do Revision Control System, ou RCS. RCS mantm vrias verses
de arquivos, chamado revises, em um nico arquivo RCS. Cada reviso tem um nmero que indica a sua
relao s outras revises. A reviso mais velho tem o nmero 1.1, o prximo mais antigo
tem o nmero de 1,2, e assim por diante. O arquivo RCS contm a mais recente reviso do arquivo
juntamente com as instrues para a criao de qualquer outra reviso.
Em adio a esta sequncia linear, possvel actualizar uma reviso especfica em mais de
de uma maneira. A maneira bvia para atualizar reviso 1.2 criaria reviso 1.3, mas tambm
possvel criar agncias, que recebem nmeros como 1.2.1.1. Atualizando reviso 1.2.1.1
criaria reviso 1.2.1.2, e assim por diante. Em contraste, as revises com duas partes
nmero so chamados coletivamente o tronco da rvore.
FreeBSD lanamentos
Existem quatro verses principais do FreeBSD, cada um destinado ao uso por pessoas diferentes:
FreeBSD-RELEASE
FreeBSD-RELEASE a ltima verso do FreeBSD que foi liberado para uso geral
usar. Ele contm os novos recursos que esto estveis, e foi atravs de uma extensa
teste. Voc pode obt-lo em CD-ROM. FreeBSD-releases so dado um nmero de verso
que identifica unicamente, tal como 5,0. H trs ou quatro lanamentos por ano. Um novo
ramo feita para cada verso do FreeBSD.
current.mm, v v4.17 (2003/04/09 19:28:00)
FreeBSD lanamentos
583
FreeBSD-STABLE
FreeBSD-STABLE uma verso atualizada do FreeBSD-RELEASE para que todos os possveis
correes de bugs foram aplicadas, para torn-lo o mais estvel possvel. Correes so feitas no dia a dia
base. Ele baseado no mesmo ramo fonte como FreeBSD-RELEASE, por isso tem todo o
recursos e menos bugs. Ele pode conter recursos adicionais, mas novos recursos so testados em
o -CURRENT ramo em primeiro lugar.
Devido s frequentes atualizaes, FreeBSD-STABLE no est disponvel em CD-ROM.
FreeBSD-CURRENT
FreeBSD-CURRENT a mais recente verso do FreeBSD, localizado no tronco da
rvore. Todos os novos trabalhos de desenvolvimento feito neste ramo da rvore. FreeBSD-CURRENT
um instantneo em constante mudana das fontes de trabalho para FreeBSD, incluindo o trabalho em
progresso, alteraes experimentais e mecanismos de transio que podem ou no estar
apresentar na prxima verso oficial do software. Muitos usurios compilar quase diariamente
Fontes FreeBSD-CURRENT, mas h momentos em que as fontes so uncompilable, ou
quando o sistema trava com freqncia. Os problemas so sempre resolvidos, mas outros podem
tomar o seu lugar. Na ocasio, mantendo-se com o FreeBSD-CURRENT pode ser um full-time
negcio. Se voc usar -CURRENT, voc deve estar preparado para gastar um monte de tempo mantendo
o sistema funcionando. O seguinte extrato do arquivo de log para RCS / Usr / src / Makefile
deve dar-lhe uma sensao para a situao:
$ Cvs log Makefile
...
reviso 1,152
Data: 1997/10/06 09:58:11; autor: jkh; estado: Exp; linhas: 41 -13
Hooboy!
Eu j o spam este arquivo bem com esse ltimo commit. Apesar 3
revisores, que ainda conseguiu revogar as eBones correes, apoio TCL 8.0,
libvgl e uma srie de outras coisas novas a partir desse arquivo no processo de
paralelizao do Makefile. DOH! Eu acho que precisamos de mais chapus pontudos - este
especial incidente digno de pena da festa de aniversrio para crianas pequenas de
chapus pontudos. ;-)
Eu certamente pretende tomar mais cuidado com o processamento de diffs idade
no futuro, mesmo que isso no significa leitura atravs 20K vale a pena deles.
Eu tambm poderia ser um pouco mais sobre anal pedindo mais up-to-date mudanas
antes de olhar para eles. ;)
Este exemplo mostra tambm a lista dos nomes simblicos para este arquivo, e seu
nmeros de reviso correspondentes. No h nenhum nome simblico para -CURRENT, porque
current.mm, v v4.17 (2003/04/09 19:28:00)
584
localizado no tronco. Esse o propsito da linha cabea:, o que mostra que, na poca
deste exemplo, a -CURRENT reviso deste arquivo foi 1.270.
Ento, por que usar -CURRENT? As principais razes so:
Voc pode estar fazendo o trabalho de desenvolvimento em alguma parte da rvore de origem. Manuteno
'''' Atual um requisito absoluto.
Voc pode ser um testador de ativo, o que significa que voc est disposto a gastar tempo de trabalho
atravs de problemas para garantir que o FreeBSD-CURRENT permanece to lcido quanto possvel.
Voc tambm pode fazer sugestes tpicos sobre as mudanas ea direo geral
do FreeBSD.
Voc pode apenas querer manter um olho sobre as coisas e usar as fontes atuais de referncia
propsitos.
Eles vem isso como uma maneira de ser o primeiro no bloco com grandes novidades do FreeBSD.
Esta no uma boa razo, porque no h nenhuma razo para acreditar que os recursos sero
ficar, e h boas razes para acreditar que eles vo ficar instvel.
Eles vem isso como uma maneira rpida de obter correes de bugs. Na verdade, uma forma de teste correes de bugs.
Correes de bugs sero adaptados para o ramo-STABLE assim como tm sido
devidamente testado.
Eles vem isso como o lanamento mais recente oficialmente suportada do FreeBSD. Isso incorreto:
FreeBSD-CURRENT no suportado oficialmente. O suporte fornecido pela
usurios.
585
CVSup
CVSup um pacote de software que distribui atualizaes para o repositrio. Voc pode executar o
cliente em intervalos regulares por-exemplo, com cron (Ver pgina 151) para atualizar o seu
repositrio.
Para comear com o CVSup, voc precisa do seguinte:
A cvsupfile, um arquivo de comando para cvsup. Ns vamos olhar para isso abaixo.
A mirror a partir do qual voc pode carregar ou atualizar o repositrio. Vamos discutir isso
bem abaixo.
O cvsupfile contm uma descrio dos pacotes que voc deseja baixar. Voc pode encontrar
todos os detalhes no manual on-line, mas o exemplo a seguir mostra uma razovel
arquivo normal:
586
As linhas que comeam com * Default especificar valores padro, as linhas que no so
colees que voc deseja acompanhar. Este arquivo responde a estas perguntas implcitas:
Os arquivos que voc quer receber? Estes so os nomes dos colees na ltima
trs linhas: todas as fontes, portos e documentao.
Quais as verses deles que voc quer? Por padro, voc recebe atualizaes para o repositrio.
Se voc quiser uma verso especfica, voc pode escrever:
* Tag default = verso
verso um tag lanamento que identifica a verso que voc quer, ou . (Perodo) de
representar a -CURRENT verso. Discutiremos tags de lanamento na pgina 588.
Alternativamente, voc pode pedir uma verso de uma data especfica. Por exemplo:
* Data default = 97.09.13.12.20
Isso especificar que voc deseja a verso como foi no dia 13 de Setembro de 1997,
12:20. Neste caso, verso padres para . (Um ponto final).
Onde voc quer coloc-los em sua prpria mquina? Esta pergunta respondida por
a linha * Default prefix = / home / ncvs. Estamos acompanhando o repositrio neste
exemplo, de modo que este o nome do repositrio. Se fssemos seguir um determinado
lanamento, usaramos * Default prefix = / usr. As colees so chamados doc,
portas e src, por isso consulte o diretrio pai em cada caso.
Onde voc quer colocar seus arquivos de status? Esta pergunta respondida pela linha
* Base de default = / src / cvsup.
Alm disso, o processo contm trs outras linhas. * Excluso padro significa que cvsup poder
apagar arquivos quando necessrio. Caso contrrio, voc corre o risco de acumular arquivos obsoletos.
* Compressa padro permite a compresso dos dados transmitidos, e * Default userel-suffix especifica como cvsup deve lidar com arquivos de lista. No bem documentado, mas
necessrio. No se preocupe com isso.
587
Funcionamento cvsup
cvsup um candidato para uma tpica cron trabalho. Eu reconstruir o -CURRENT rvore todas as manhs no
03:00. Para fazer isso, eu tenho a seguinte entrada no / Root / crontab:
# Obter o material FreeBSD mais recente e maior.
0 3 ***. / Extract-updates
tag = RELENG_5_0_0_RELEASE
lanamento = cvs
host = cvsup9.freebsd.org
base = / usr
prefix = / home / ncvs
excluir
use-rel-suffix
comprimir
Tenha cuidado com tags. Devem existir no repositrio, ou cvsup vai substituir o que voc
tem com nada: ele vai apagar todos os arquivos. No nosso originais cvsupfile, tivemos dois
conjuntos adicionais, portas-tudo e doc-all. Esses aparelhos no tm as mesmas marcas de libertao, de modo
se voc os deixou neste arquivo, voc perderia todos os arquivos no / Usr / doc e / Usr / ports
hierarquias de diretrios.
588
Tag lanamento
FreeBSD identifica verses com dois ou mais nmeros separados por pontos. Cada
nmero representa um incremento cada vez menor na funcionalidade da libertao.
O primeiro nmero a verso base do FreeBSD. O nmero incrementado apenas quando
funcionalidade significativa, adicionada ao sistema. O segundo nmero representa a menor
diferena significativa, mas continua a ser importante na funcionalidade, e o terceiro nmero apenas
usado quando um bug significativo requer relanamento de uma verso de outra forma inalterada. Antes
Release 3 do FreeBSD, s vezes era tambm usado quarto nmero.
Tags para verses lanadas do FreeBSD seguir os nmeros de verso. Para divulgao x.y.z voc
olharia para o tag RELENG_ x_ y_ z_RELEASE. Por exemplo, para obter o estado atual
da rvore fonte do FreeBSD 5.0, voc deve olhar para o tag RELENG_5_0_0_RELEASE.
Tags para o ramo-STABLE so mais simples: eles s tm o nmero da verso, por exemplo
RELENG_4. O ramo de segurana tem um nmero adicional, por exemplo RELENG_4_7.
Algumas tags divergir deste regime. Em particular, CSRG e bsd_44_lite ambos se referem ao
as fontes originais 4.4BSD de Berkeley. Se voc sentir como ele, voc pode extrair desta fonte
rvore bem.
Para descobrir quais marcas esto disponveis, faa:
# Cd $ CVSROOT / src
# Rlog Makefile, v | menos
Arquivo RCS: / home / ncvs / src / Makefile, v
Arquivo RCS: / home / ncvs / src / Makefile, v
Arquivo de trabalho: Makefile
current.mm, v v4.17 (2003/04/09 19:28:00)
589
cabea: 1,270
ramo:
locks: Rigoroso
lista de acesso:
nomes simblicos:
RELENG_5_0_0_RELEASE: 1,271
5.0-RELEASE
...
4.7-RELEASE
RELENG_4_7_0_RELEASE: 1.234.2.18
RELENG_4_7: 1.234.2.18.0.2
4.7 segurana corrige apenas
RELENG_4_7_BP: 1.234.2.18
ponto de ramificao para 4,7
RELENG_4_6_2_RELEASE: 1.234.2.12
4.6.2-RELEASE
RELENG_4_6_1_RELEASE: 1.234.2.12
4.6.1-RELEASE
RELENG_4_6_0_RELEASE: 1.234.2.12
4.6-RELEASE
...
4-STABLE
RELENG_4: 1.234.0.2
...
2.0-RELEASE
RELEASE_2_0: 1,30
BETA_2_0: 1,30
ALPHA_2_0: 1.29.0.2
bsd_44_lite: 1.1.1.1
4.4BSD-Lite
CSRG: 1.1.1
substituio de palavras-chave: kv
total das revises: 179;
revises seleccionadas: 179
descrio:
Este exemplo mostra o mesmo arquivo que vimos na pgina 583. Desta vez usamos o rlog
de comando, que faz parte de RCS, de olhar para o registo de reviso. Normalmente, voc usaria cvslog,
mas isso s funciona em uma rvore de origem check-out.
H um certo nmero de maneiras para contar cvs o nome do seu repositrio: se voc j tem um
CVS subdiretrio, ele ir conter arquivos Raiz e Repository. O nome do repositrio
est em Root, no no repositrio. Quando voc primeiro verificar os arquivos, voc no ter esse
diretrio, para que especific-lo, seja com o -D opo cvs ou definindo a CVSROOT
varivel de ambiente. Como voc pode ver no exemplo acima, conveniente definir o
varivel de ambiente, j que voc pode us-lo para outros fins tambm.
O repositrio contm um nmero de diretrios, geralmente um para cada coleo que voc
acompanhar. No nosso caso, estamos rastreando a rvore de fontes e da Coleo de Ports, ento:
CVSROOT contm arquivos usados pelo CVS. No faz parte da fonte da rvore.
Os diretrios portas e src correspondem aos diretrios / Usr / ports e / Usr / src para uma
especial de lanamento. Para extrair o src rvore da verso mais up-to-date do FreeBSDCURRENT, faa o seguinte:
# Cd / usr
# Cvs co src 2> & 1 | tee / var / tmp / co.log
590
Para verificar qualquer outra verso, digamos, tudo para Verso 4.6, voc deve digitar:
# Cd / usr
# Cvs co-r RELENG_4_6_RELEASE src 2> & 1 | tee / var / tmp / co.log
Se voc precisa verificar uma verso mais antiga, por exemplo, se h problemas com a mais
verso mais recente do -CURRENT, voc pode digitar:
# Cvs co-D "10 de dezembro de 2002" src / sys
Entradas contm uma lista dos arquivos que esto sendo mantidos no diretrio pai, juntamente com
as suas verses atuais. No nosso exemplo, ela dever conter:
/ Makefile/1.4.2.1/Sun 02 de julho 10:45:29 2000 / / TRELENG_4_6_0_RELEASE
/ Du.1/1.15.2.7/Thu agosto 16 13:16:47 2001 / / TRELENG_4_6_0_RELEASE
/ Du.c/1.17.2.3/Thu julho 12 08:46:53 2001 / / TRELENG_4_6_0_RELEASE
D
Etiqueta contm o tag verso da rvore de origem. Esta a marcao de um prefixo por RCS T.
Neste caso, TRELENG_4_6_0_RELEASE.
cvs co produz muita sada, pelo menos uma linha para cada diretrio, e uma linha para cada
arquiv-lo confere. Aqui est parte de uma sada tpica:
U src / usr.sbin / mrouted / rsrr_var.h
U src / usr.sbin / mrouted / vif.c
U src / usr.sbin / mrouted / vif.h
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / common / Makefile
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / map-mbone / Makefile
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / mrinfo / Makefile
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / mrouted / Makefile
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / mtrace / Makefile
cvs checkout: Atualizao src / usr.sbin / mrouted
U src / usr.sbin / mrouted / testrsrr / Makefile
/ common
/ map-mbone
/ mrinfo
/ mrouted
/ mtrace
/ testrsrr
591
U significa que cvs actualizado este arquivo. Ou ele no existia, ou era uma antiga
verso.
Voc no vai ver normalmente P em uma atualizao local. Isso implica que cvs corrigiu o arquivo para
atualiz-lo. Caso contrrio, ela tem o mesmo significado que U.
C descobriu que o arquivo no seu diretrio de trabalho foi modificada desde check-out, e
que precisava mudar, mas no foi capaz de aplicar as mudanas de forma limpa. Voc vai ter
para resolver os conflitos manualmente.
M significa que cvs descobriu que o arquivo no seu diretrio de trabalho foi modificado
desde check-out, mas ambos no precisa alter-lo, ou ele foi capaz de aplicar o
alteraes de forma limpa.
Aps o check-out, verifique o arquivo de log de conflitos. Para cada conflito, voc deve verificar os arquivos
manualmente e, eventualmente, recuperar o contedo. Veja a pgina de manual cvs (1) para mais detalhes.
Note-se que desta vez podemos comear em / Usr / src: agora temos os CVS / subdiretrios
lugar, para cvs sabe o que fazer, sem ser dada mais nenhuma informao.
592
32
Neste captulo:
A atualizao do kernel e
userland
Atualizando o kernel
Atualizando o boot
arquivos
Atualizando o
arquivos de configurao
Mesclando / etc / group
Mergemaster,
segunda vez
Atualizando o sistema
software
No captulo anterior, vimos como obter um up-to-date FreeBSD rvore fonte.
Depois de ter as fontes, voc pode construir vrios componentes do sistema. A principal
ferramenta que usamos para esta finalidade fazer, que ns olhamos na pgina 167. A melhor maneira de
pensar em atualizar o sistema que tudo uma questo de mudar os arquivos. Pela
propsitos desta discusso, voc pode dividir os arquivos em seu sistema para o seguinte
categorias:
O nvel usurio, que parte do software de sistema que no o kernel. Ao contrrio de alguns
outros sistemas operacionais, FreeBSD espera manter espao de usurio e do kernel ao mesmo
liberar nvel. Ns vamos olhar para a interao entre o kernel eo espao de usurio abaixo.
O kernel. Voc pode construir um novo kernel sem atualizar as fontes, claro, se
que voc deseja adicionar funcionalidade ao kernel. Neste captulo, vamos olhar para a atualizao
o kernel no contexto de uma atualizao completa do sistema. Vamos considerar a construo de um
kernel personalizado no prximo captulo, Captulo 33, Kernels personalizados.
Apoio ao arranque da mquina, que atualmente realizada como uma etapa separada.
A coleo de ports. Esta no tem de ser feito ao mesmo tempo como e userland
kernel, mas se voc atualizar para uma nova verso significativo do FreeBSD, um bom
idia para atualizar as portas tambm. Olhamos para atualizar as portas na pgina 178.
Os arquivos de configurao relacionados ao seu sistema. Alguns deles, tais como / Etc / fstab e
/ Etc / rc.conf, coincidem com a categoria anterior.
585
O FreeBSD completo
586
Seus prprios arquivos. Eles no tm nada a ver com uma atualizao de software.
Voc pode fazer a atualizao menos onerosa, planejando com antecedncia. Aqui esto algumas
sugestes:
Manter registros cuidadosos de que os arquivos de configurao que voc alterar, por exemplo, com RCS,
o Sistema de Controle de Reviso. Isso prova a ser a parte mais complicada do
todo o processo de upgrade.
Os nicos arquivos que so atualizados esto no sistema de arquivos raiz tradicional e / Usr. No h outros
so afetados por uma atualizao. Tabela 32-1, uma verso resumida da Tabela 10-2 na pgina 188,
d uma viso geral de onde os arquivos de sistema vm.
Tabela 32-1: Hierarquia de diretrios do FreeBSD
diretrio
nome
/ Bin
/ Boot
/ Dev
/ Etc
/ Sbin
Uso
Programas executveis de uso geral.
Arquivos usado na inicializao do sistema.
Directrio de ns de dispositivos.
Os arquivos de configurao utilizados na
inicializao do sistema.
Povoada por
tornar o mundo
make install em / Usr / src / sys.
Inicializao do sistema (devfs)
Instalar a partir do CD-ROM apenas,
mergemaster, administrador
tornar o mundo
587
diretrio
nome
/ Usr / share
/ Usr / src
Uso
Diversos arquivos somente leitura,
principalmente naformativa.
Arquivos de origem do sistema.
Povoada por
tornar o mundo
sysinstall, cvs
Esta operao realiza uma srie de funes, que pode ser influenciada por variveis voc
passar para fazer. Sem quaisquer variveis, tornar o mundo executa as seguintes etapas:
Ele remove os diretrios de construo antigos e criando novos. Voc pode pular essa etapa
definindo o NOCLEAN varivel. No defina NOCLEAN se voc no sabe exatamente por que voc
a faz-lo, uma vez que pode causar inconsistncias que voltar para mord-lo mais tarde. Em
particular, se voc tiver problemas depois de construir o mundo desta maneira, voc
deve primeiro voltar e realizar uma reconstruo completa, sem NOCLEAN.
Ele instala tudo. Voc pode omitir esta etapa com a construo da buildworld alvo
em vez de mundo.
Ele faz isso atravs da construo de uma srie de subtargets. Ocasionalmente, voc pode achar que til para
constru-los individualmente: tornar o mundo pode representar um problema da galinha e do ovo. Ela cria a
em nvel usurio, e fazer do kernel faz com que o kernel. Espao de usurio e do kernel estar juntos, e se
voc atualizar o primeiro espao de usurio, voc pode achar que o novo espao de usurio aproveita
diferenas na verso mais recente do kernel. Uma situao tpica quando um novo sistema de
chamada adicionado ao kernel. Neste caso, voc pode encontrar processos que saem com um sinal de 12
(Chamada de sistema invlido). Se isso acontecer, voc pode ter que executar a atualizao com o
seqncia:
# Make buildworld
# Make do kernel
(Reboot)
# Make installworld
588
Voc encontrar informaes sobre tais requisitos no arquivo / Usr / src / atualizao. Mesa
32-2 fornece uma viso geral dos alvos mais teis para o de nvel superior Makefile.
Tabela 32-2: Metas para nvel superior Makefile
Alvo
buildworld
Propsito
Reconstruir tudo, inclusive a cola para ajudar a fazer atualizaes.
installworld
mundo
atualizar
a maioria
installmost
reinstalar
Se voc tiver um servidor de compilao, voc pode NFS montar a fonte e objeto
diretrios e fazer um fazer reinstalar no cliente para instalar o novo
binrios a partir da compilao mais recente no servidor.
buildkernel
installkernel
reinstallkernel
ncleo
Outra questo que a configurao do sistema pode ter mudado. Por exemplo, no incio
2002, a configurao padro para sendmail alterados. O processo adicionado um usurio daemon
e grupo, tanto chamado smmsp. Para instalar o espao de usurio, este usurio j precisava ser
apresentar.
589
A soluo para este problema chamado mergemaster, um script que ajuda a atualizar o
arquivos de configurao. Vamos olh-la com mais detalhes abaixo, mas neste momento voc deve
sabe que voc precisa para execut-lo com o -P Opo (pre-build):
# Mergemaster-p
Julho
Jan
Abril
Abril
Abril
Abril
13
5
21
21
21
21
17:16
2002
2001
2001
2001
2001
uuchk
ispppcontrol
k5stash
ktutil
kdb_util
kdb_init
bastante claro que os arquivos datam de Abril de 2001 no apenas ter sido instalado, portanto, eles devem ser
desatualizado. Voc pode usar uma srie de tcnicas para exclu-los, um poderia ser:
# Find. -Mtime +10 | xargs rm
Este comando remove todos os arquivos no diretrio atual (.), Que so mais de 10 dias
(10). Claro, este mtodo s ir funcionar se voc no tiver instalado qualquer coisa nestes
diretrios voc mesmo. Voc no devia ter feito isso, que o propsito do diretrio
hierarquia / Usr / local, para garantir que voc mantenha os arquivos de sistema para alm de portos e privadas
arquivos.
Tenha cuidado com / Usr / lib: um nmero de portas referem-se a bibliotecas nesta hierarquia de diretrios,
e se voc apag-las, as portas no funcionar mais. Em geral no h nenhum problema com
velhas bibliotecas em / Usr / lib, a menos que eles ocupam muito espao, ento voc est mais seguro se voc no fizer
isso
limpar esta hierarquia de diretrios.
Note que voc precisa especificar o KERNCONF parmetro para todas as metas relativas ao ncleo
constri.
Atualizando o kernel
H duas razes para a construo de um novo kernel: pode ser parte do processo de atualizao,
que o que veremos aqui, ou voc pode construir um kernel de suas fontes atuais para
adicionar a funcionalidade do sistema. Ns vamos olhar para este aspecto no captulo 33.
Um ponto a ser observado que, se voc estiver atualizando a partir de um arquivo de configurao personalizado mais velho,
upgrading.mm, v v4.5 (2003/04/02 04:49:48)
Atualizando o kernel
590
voc poderia ter um monte de problemas. Vamos ver uma estratgia para minimizar a dor na pgina 607.
Alm disso, quando a atualizao para o FreeBSD Release 5 de uma verso mais antiga do FreeBSD,
voc precisa instalar um arquivo / Boot / device.hints, que normalmente voc pode copiar
/ Usr/src/sys/i386/conf/GENERIC.hints:
# Cp / usr/src/sys/i386/conf/GENERIC.hints / boot / device.hints
Alm disso, voc pode achar que o kernel no consegue ligar com muita indefinido
referncias. Isso tambm pode significar que o configurao programa est fora de sincronizao com
os mdulos do kernel. Em cada caso, construir e instalar a nova verso do config:
# Cd / usr / src / usr.sbin / config
# Fazer depender toda instalao limpa
Voc precisa limpais no final uma vez que este mtodo ir armazenar os ficheiros objecto em nolocalizaes padro.
Faz-lo manualmente:
591
1. Faa backup dos arquivos de configurao antigos. Eles no so muito grande, ento voc pode provavelmente
fazer uma cpia no disco em algum lugar.
2. Instalar novos arquivos de configurao cristalinas:
# Cd / usr / src / etc /
# Make install
O mtodo simples: correr mergemaster com as opes -I e -A, o que dizer a ele para correr
automaticamente (em outras palavras, para no parar e fazer perguntas), e para instalar novos arquivos
automaticamente. Isso no significa de forma inteligente: voc pode ter problemas de qualquer maneira.
mergemaster produz muita sada, e alguns dos que no meio importante, ento voc
deve guardar o resultado com o disco tee de comando. A primeira vez que voc tentar, voc pode
veja:
# Mergemaster-ia 2> & 1 | tee-a / var / tmp / merge
*** Criando o ambiente radicular temporrio em / var / tmp / temproot
*** / Var / tmp / temproot pronto para uso
*** Criando e Preenchendo estrutura de diretrios em / var / tmp / temproot
set - 'grep "[a-zA-Z]" / usr / src / etc / locale.deprecated', enquanto [$ #-gt 0]; fazer
para dir em / usr / share / locale / usr / share / nls / usr / share / local / nls, fazer test-d / va
r / tmp / temproot / $ {dir} && cd / var / tmp / temproot / $ {dir}; test-L "$ 2" && rm-rf "$ 2";
test-L "$ 1" && test-d "$ 1" && mv "$ 1" "$ 2"; feito; turno; turno; feito
mtree-Deu-f / usr / src / etc / mtree / BSD.root.dist-p / var / tmp / temproot /
. / Bin falta (criado)
Faltando. / Boot (criado)
...
. / Vm missing (criado)
mtree-Deu-f / usr / src / etc / mtree / BSD.sendmail.dist-p / var / tmp / temproot /
mtree: Linha 10: desconhecido smmsp usurio
*** O cdigo de erro 1
Pare em / usr / src / etc.
*** ERRO FATAL: no pode arquivos 'cd' para / usr / src / etc e instalar a
o ambiente temproot
592
Voc pode optar por substituir completamente o antigo / Etc / master.passwd com o novo.
Isso far com que todos os nomes de usurio e senhas adicionadas a desaparecer, a menos que este apenas
uma mquina de teste, improvvel que voc vai querer seguir esse caminho.
Os campos individuais so separados por dois pontos (:). Veremos apenas os campos que
nos interessa no seguinte expanso. mais fcil olhar se eles esto separados por espaos;
numericamente, eles so os primeiros campos, segundo, oitavo, nono e dcimo. Para uma descrio
os outros campos, veja a pgina man master.passwd (4).
A senha do usurio GECOS
raiz Charlie &
toor *
Bourne-again Superuser
daemon *
Dono de muitos processos
operador *
System &
bin *
Comandos binrios
tty *
Tty Sandbox
kmem *
KMEM Sandbox
jogos *
Jogos pseudo-usurio
Notcias * Notcias Subsystem
homem *
Senhor Man Pages
sshd *
Secure Shell Daemon
smmsp *
Sendmail Submission
MailNull *
Sendmail Default User
ligam *
Bind Sandbox
Xten *
X-10 daemon
pop *
Post Office Owner
www *
World Web Proprietrio Ampla
ningum *
Usurio sem privilgios
diretrio home
/ Root
/ Root
/ Root
/
/
/
/
/ Usr / games
/
/ Usr / share / man
/ Var / empty
/ Var / spool / clientmqueue
/ Var / spool / mqueue
/
/ Usr / local / Xten
/ Inexistente
/ Inexistente
/ Inexistente
concha
/ Bin / csh
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
Sbin
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
nologin
593
/ Etc / master.passwd, voc quase certamente ter uma senha e, em geral, voc vai
quer mant-lo.
A entrada de diretrio no mudou muito. Voc notar que os nomes de diretrio como
/ Inexistente e / Var / vazio. O primeiro uma farsa, este ltimo um diretrio que no pode ser
alterados. possvel que esta entrada vai mudar de uma verso para outra, e
importante para obt-lo corrigir.
Por muitas contas, o concha campo contm o nome / Sbin / nologin, que imprime o texto
'' Essa conta no atualmente'' e sadas disponveis. Atualmente, apenas raiz tem um escudo real,
mas isso pode mudar.
Para atualizar o / Etc / master.passwd, voc pode usar o seguinte mtodo:
Manter uma estrita separao entre as linhas originais do arquivo de distribuio e sua
entradas prprias. Isso ir ajud-lo com a prxima atualizao.
Copie toda a distribuio / Etc / master.passwd para o topo de sua / Etc / master.passwd
arquivo. Neste ponto, voc ter um nmero de duplicatas.
Verifique as entradas para root. Provavelmente, voc pode remover a entrada de distribuio e
deixar
sua entrada no arquivo, preservando a senha e shell. Neste caso, voc deve
fazer uma exceo separao entre distribuio e locais adies: devido
a forma como as pesquisas de nome funciona, se voc colocar o usurio raiz abaixo de usurio toor ('' Raiz'' espelta
para trs, e o mesmo utilizador, possivelmente com um invlucro diferente), todos os ficheiros aparece a
pertencem toor em vez de para root.
Confira o que as outras entradas que voc tem para IDs de usurio em 1000. Provavelmente, voc pode remover
todos eles, mas se voc tiver instalado portos que exigem o seu prprio ID de usurio, voc ter
para mant-los.
Voc deve ser capaz de manter todas as entradas para os usurios com IDs acima e incluindo
1000, com a excepo do utilizador ningum (ID 65534). Use a entrada do
arquivo de distribuio para ningum.
Uma vez que voc se fundiram os arquivos, voc precisa executar pwd_mkdb para reconstruir os arquivos de senha
/ Etc / passwd, / etc / pwd.db e / Etc / spwd.db. / Etc / passwd est gradualmente a sair de uso,
mas voc provavelmente tem um em seu sistema, e algumas portas us-lo, por isso prefervel
recri-lo. Faa isso com o -P opo pwd_mkdb:
# Pwd_mkdb-p / etc / master.passwd
594
Mais uma vez, novos grupos surgiram por razes de segurana. um mtodo semelhante ao
voc usou para / Etc / passwd:
Manter uma estrita separao entre as linhas originais do arquivo de distribuio e sua
entradas prprias. Isso ir ajud-lo com a prxima atualizao.
Copie toda a distribuio / Etc / group para o topo de sua / Etc / group arquivo. Neste
apont-lo ter um nmero de duplicatas.
Verifique as entradas para roda. Provavelmente, voc pode remover a entrada de distribuio e
deixe sua entrada no arquivo, preservando os usurios.
Alm disso, voc pode ter alguns usurios em outros grupos. Por exemplo, a instalao postfix
adiciona o utilizador postfix o grupo e-mail. Voc precisa preservar esses usurios.
Voc no precisa fazer nada de especial depois de atualizar / Etc / group. Agora voc pode continuar
com mergemaster.
595
mergemaster no exclui os antigos diretrios: voc deve faz-lo sozinho. Se este arquivo
j existe, mergemaster ignora e cria um novo diretrio com um nome como
/ Var/tmp/temproot.0917.02.18.06. Os nmeros so uma representao da data e hora
da criao.
mergemaster no se torna mais fcil para remover o / Var / tmp / temproot diretrio. Voc pode
veja:
# Rm-rf /
rm: / var
rm: / var
rm: / var
var /
/ tmp
/ tmp
/ tmp
tmp / temproot
/ temproot / var / empty: Operao no permitida
/ temproot / var: Diretrio no vazio
/ temproot: Diretrio no vazio
O problema aqui que o diretrio / Var / empty foi definido imutvel. Mudar isso
com a chflags comando e tente novamente:
# Find / var / tmp / temproot | xargs chflags noschg
# Rm-rf / var / tmp / temproot
Correr mergemaster da mesma maneira que antes, poupando a sada. Se voc no excluiu
o velho / Var / tmp / temproot diretrio, que voc pode ver:
# Mergemaster-ia 2> & 1 | tee-a / var / tmp / merge
*** Criando o ambiente radicular temporrio / var/tmp/temproot.1102.15.01.14
*** / Var/tmp/temproot.1102.15.01.14 pronto para uso
*** Criando e Preenchendo estrutura de diretrios em / var/tmp/temproot.1102.15.01.14
set - 'grep "[a-zA-Z]" / usr / src / etc / locale.deprecated', enquanto [$ #-gt 0]; fazer
para dir em / usr / share / locale / usr / share / nls / usr / share / local / nls, fazer test-d / va
r/tmp/temproot.1102.15.01.14 / $ {DIR} && cd / var/tmp/temproot.1102.15.01.14 / $ {dir}; t
est-L "$ 2" && rm-rf "$ 2"; test-L "$ 1" && test-d "$ 1" && mv "$ 1" "$ 2"; feito;
mudana, mudana, feito
mtree-Deu-f / usr / src / etc / mtree / BSD.root.dist-p / var/tmp/temproot.1102.15.01.14 /
. / Bin falta (criado)
Faltando. / Boot (criado)
. / Boot / defaults falta (criado)
. / Boot / kernel faltando (criado)
. / Boot / mdulos em falta (criado)
. /
...
install-o root-g wheel-m 644 / dev / null / var/tmp/temproot.1102.15.01.14/var/run/u
tmp
install-o root-g wheel-m 644 / usr / src / etc / minfree / var/tmp/temproot.1102.15.01.1
4/var/crash
cd / usr / src / etc / ..; install-o root-g wheel-m 444 COPYRIGHT / var/tmp/temproot.110
2.15.01.14 /
.. cd / usr / src / etc / / share / man; fazer makedb
makewhatis / var/tmp/temproot.1102.15.01.14/usr/share/man
upgrading.mm, v v4.5 (2003/04/02 04:49:48)
596
Voc no est feito ainda: existem 21 arquivos acima que precisam de olhar. H uma boa chance de
que voc nunca ouviu falar de alguns deles, muito menos mud-los. Se voc saber para um fato
que voc nunca mudaram-los, por exemplo, se voc tem mantido religiosamente o controle de seu
mudanas com RCS, voc no precisa se preocupar: mergemaster erra no lado da segurana.
Voc pode ter mudado os outros, apesar de tudo. O mais bvio acima / Etc / crontab,
que contm os comandos de todo o sistema a ser executados por cron. Compar-los, use
diff :
$ Diff-wu / etc / crontab / var/tmp/temproot.1102.15.01.14/etc/crontab
--- / Var / tmp / crontab
Sb 02 novembro 2002 16:27:02
+ + + / Var/tmp/temproot.1102.15.01.14/etc/crontab Sb 02 novembro 2002 15:01:16
@ @ -1,6 +1,6 @ @
# / Etc / crontab - crontab do root para FreeBSD
#
- # $ FreeBSD: src / etc / crontab, v 1.21 1999/12/15 17:58:29 obrien Exp $
+ # $ FreeBSD: src / etc / crontab, v 1.31 2001/02/19 02:47:41 peter Exp $
#
SHELL = / bin / sh
PATH = / etc :/ bin :/ sbin :/ usr / bin :/ usr / sbin
@ @ -10,19 +10,18 @ @
#
* / 5 *
*** Raiz
/ Usr / libexec / atrun
upgrading.mm, v v4.5 (2003/04/02 04:49:48)
597
#
+ # Poupar algum entropia de modo que / dev / random pode propagar novamente na inicializao
+ * / 11 *
Operador *** / usr / libexec / save-entropia
+ #
# Rodar arquivos de log a cada hora, se necessrio
0 **** raiz
newsyslog
#
# Fazer a manuteno diria / semanal / mensal
-59 1
*** Raiz
diariamente peridica
-30 3
** 6 raiz
peridica semanal
1 3
*** Raiz
diariamente peridica
15 4
** 6 raiz
peridica semanal
30 5
1 ** raiz
peridica mensal
#
# Tempo de ajuste mudana de fuso para a parede CMOS de relgio,
- # No faz nada se voc tiver UTC CMOS relgio.
+ # No faz nada, se voc tiver UTC CMOS relgio.
# Veja adjkerntz (8) para mais detalhes.
- 0-5 # 1,31
*** Raiz
adjkerntz-a
+1,31 0-5
*** Raiz
adjkerntz-a
-0,30 *
Construir ***
/ Home / build / build_farm / build_test 2>
/ Home / build / cron.err
-0 21 *
** Raiz
/ Usr / local / bin / limpeza
-0 7
Grog ***
/ Home / grog / bin / update-FreeBSD-cvs
-1 **** Raiz
(Cd / usr / local / etc / postfix, fazer) 2
> / Dev / null> / dev / null
As linhas que comeam com - mostrar apenas as linhas no arquivo de idade, que ainda est em / Etc / crontab. O
linhas que comeam com + mostrar apenas linhas no novo arquivo, que est em / Var/tmp/temproot.1102.15.01.14/etc/crontab. H um certo nmero de modificaes aqui: CVS ID
($ FreeBSD $) mudou 1,21-1,31, e os tempos de manuteno peridica
ter mudado. Nesse meio tempo, porm, voc adicionou outras tarefas (inferior a quatro
linhas), e voc tambm tem comentado a invocao peridica de adjkerntz. So
as mudanas que voc precisa fazer para o novo / Etc / crontab antes de instal-lo.
H uma possibilidade mais simples aqui, no entanto: a nica mudana real que seria, ento, deixado em
/ Etc / crontab a mudana nos tempos de partida para a limpeza diria e semanal.
Ser que isso importa? Se voc quiser, voc no precisa mudar nada: o velho / Etc / crontab
bem do jeito que .
H toda uma lista de arquivos que provvel que voc mude a partir dos padres. Aqui esto algumas
mais provveis candidatos:
Voc pode achar que necessrio mudar / Etc / syslog.conf. Se assim for, voc pode ter que fundir
com a mo, mas no deve ser muito difcil.
Voc certamente vai mudar / Etc / fstab. Sobre a nica razo pela qual voc pode
precisa mesclar as alteraes seria se as mudanas de formato de arquivo, o que no fez por
mais de 20 anos.
/ Etc / motd contm a saudao de login. Nunca h uma razo para ter a nova verso.
/ Etc / inetd.conf pode ser um problema: como os novos servios so introduzidos, ele muda. No
mesmo tempo, voc pode ter adicionado servios atravs de portas ou servios habilitados na forma
vamos ver na pgina 446. Voc definitivamente precisa mesclar esse mesmo.
598
Se voc estiver usando postfix, no instale a verso de distribuio do arquivo / etc / mail / mailer.conf.
Ele vai reativar sendmail, o que pode causar problemas significativos.
Se voc mudou alguma coisa em / Etc / sysctl.conf, voc precisa mover as alteraes
o novo arquivo.
Neste captulo:
Construir um novo kernel
Configurando I / O
dispositivos
A construo do kernel
diretrio
O arquivo de configurao
Preparando-se para
atualizaes
Construo e
a instalao do novo
ncleo
Fazendo ns de dispositivos
Kernel carregvel
mdulos
sysctl
Viver com FreeBSDCURRENT
Analisando o ncleo
despejos de memria
33
Kernels personalizados
At agora, tudo o que fizemos foi com o padro GENRICO do kernel distribudos
com FreeBSD. Voc pode achar que uma vantagem para instalar um kernel personalizado:
Vai demorar menos tempo para arrancar, porque no tem que gastar tempo sondando
hardware que voc no tem.
Um kernel personalizado, muitas vezes usa menos memria. O ncleo o componente de um sistema
que deve estar sempre presente na memria, o cdigo para no utilizados amarra memria que
ser de outro modo disponvel para o sistema de memria virtual. Num sistema limitado
RAM, voc pode economizar um pouco de memria atravs da construo de um kernel personalizado, mas no
superestimar as economias: um kernel mnimo pode salvar 500 kB sobre o GENRICO
ncleo fornecido com o sistema.
Alm disso, existem vrias opes de kernel que voc possa ajustar para atender s suas necessidades.
Finalmente, na pgina 613, vamos olhar para as coisas para pensar se voc deseja executar o
-CURRENT verso do FreeBSD.
Em verses mais antigas do BSD, voc precisava construir um novo kernel para praticamente qualquer coisa que voc
queria mudar, at mesmo coisas to simples como um IRQ diferente para um dispositivo. FreeBSD tem
evoluiu um pouco desde ento, e est se tornando cada vez menos necessria a construo de um
kernel personalizado. Voc certamente ter que faz-lo se voc deseja ativar kernel-grande
1. Na verdade, o desenvolvedor trabalhando no Yoyodyne tem desertou para a Free Software Foundation. Veja o GNU
General Public License para mais detalhes.
building.mm, v v4.15 (2003/04/02 06:30:12)
599
O FreeBSD completo
600
opes, tais como verificao de consistncia extra, mas em muitos casos voc tem mais flexvel
alternativas:
Se voc s precisa adicionar o suporte a dispositivos, voc pode ser capaz de carregar um Kernel carregvel
Mdulo, ou kld. Consulte a pgina 611 para mais informaes sobre klds.
Se voc quiser alterar os parmetros do ISA, como I / O endereo, IRQ ou definies de DMA, voc
j no precisa construir um novo kernel: o arquivo de configurao do kernel no sabe mais
sobre esses parmetros. Em vez disso, eles esto no arquivo / Boot / device.hints, que veremos
a seguir.
Uma srie de opes de kernel foram substitudos pela sysctl interface. Por exemplo, a
o GENRICO kernel no realizar o roteamento de pacotes por padro. Em verses mais antigas do
FreeBSD, voc tinha que construir um novo kernel com a opo GATEWAY. Hoje em dia voc
pode desativar esse recurso e fora vontade com a sysctl de comando. Ns vamos olhar para sysctls
na pgina 611.
Configurando um kernel mudou muito desde os primeiros dias de FreeBSD, mas no feito
ainda. As informaes contidas neste captulo representa um instantneo na evoluo da construo
kernels. O objetivo dessas mudanas que torna desnecessria a construo de um kernel em tudo
exceto para atualizar para a nova verso.
Instale a fonte do sistema, se voc no tiver feito isso. Olhamos para que, em
Captulo 31.
Defina sua configurao do kernel em um arquivo de configurao do kernel. Esse arquivo define
parmetros a serem usados durante o processo de construo. Veremos como fazer isso a partir de
pgina 602.
Mude para o diretrio / Usr / src e executar fazer kernel. Isto constri e instala o
kernel e todos os mdulos. Vamos olh-la com mais detalhes na pgina 608, onde vamos tambm
veja alternativas que do mais controle sobre o processo.
Configurando dispositivos de I / O
Uma grande parte do arquivo de configurao diz respeito aos dispositivos de I / O que voc pode conectar ao seu
mquina. Em verses mais antigas do FreeBSD, que muitas vezes era necessrio especificar algumas das
IRQ, canal de DMA, memria da placa, e I / O endereos para os dispositivos que voc configurar
particularmente para placas ISA. Desde a verso 5 do FreeBSD, este no mais o caso.
Em vez disso, voc modificar o arquivo / Boot / device.hints, que ns olhamos na pgina 568.
building.mm, v v4.15 (2003/04/02 06:30:12)
601
O link simblico / Sys para / Usr / src / sys no estritamente necessrio, mas uma boa idia: alguns
software usa, e caso contrrio, voc pode acabar com duas cpias diferentes das fontes.
Por definio, os arquivos em CD-ROM est desatualizado. Consulte o Captulo 31 para obter detalhes sobre como
obter as fontes, up-to-date atuais.
Em seguida, v para o diretrio i386/conf e copiar o GENRICO arquivo de configurao para o
nome que deseja dar o seu kernel. Por exemplo:
# Cd / usr/src/sys/i386/conf
# Cp GENERIC FREEBIE
602
Agora, edite FREEBIE com o seu editor de texto favorito. Altere as linhas de comentrio no topo
para refletir a sua configurao ou as mudanas que voc fez para diferenci-lo de
GENRICO:
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
mquina
cpu
cpu
cpu
ident
maxusers
"I386"
"I486_CPU"
"I586_CPU"
"I686_CPU"
FREEBIE
0
O arquivo de configurao
O diretrio / Sys/i386/conf contm uma srie de arquivos de configurao:
GENRICO
LINT
Este arquivo costumava ser um arquivo completo'' configurao'' com comentrios, usado para
testes e documentao. Desde o FreeBSD Release 5, ele no existe mais.
Voc pode cri-lo a partir dos arquivos NOTAS e / Usr / src / sys / conf / NOTES com
o comando:
$ Make LINT
NOTAS
603
OLDCARD
O formato geral de um arquivo de configurao bastante simples. Cada linha contm uma palavra-chave
e um ou mais argumentos. Qualquer coisa depois de um # considerado um comentrio e
ignorados. Palavras-chave que contm nmeros usados como texto deve ser colocado na cotao
marcas.
Um dos resultados dessa simplicidade que voc pode colocar em opes que no tm absolutamente nenhuma
efeito. Por exemplo, voc pode adicionar uma linha como esta:
opes
APPLE_MAC_COMPATIBILITY
Voc pode construir um kernel com esta opo. Ele vai fazer diferena nenhuma. Agora
improvvel que voc vai pensar em uma opo inexistente assim, mas muito mais possvel
que voc vai escrever mal uma opo vlida, especialmente dedo-twisters como SYSVSHM, com o resultado
que voc no compilar na opo que voc queria. O configurao programa avisa se voc usar
opes de desconhecidos, assim que tomar essas advertncias a srio.
Opes de kernel mudana de verso para verso, ento no h nenhum ponto em descrev-los todos
aqui. Nas sees seguintes, vamos dar uma olhada em alguns dos mais interessantes, pois um
lista completa, leia LINT ou o manual online. Veja acima para detalhes de como criar
LINT.
Nomeando o kernel
Cada kernel que construir exige que as palavras-chave mquina, processador central, e ident. Por exemplo,
a
mquina
mquina
mquina
cpu
cpu
cpu
ident
"I386"
"Alpha"
"Sparc64"
"I486_CPU"
"I586_CPU"
"I686_CPU"
FREEBIE
mquina
A palavra-chave mquina descreve a arquitetura da mquina para que o kernel ser
construdo. Actualmente, deve ser i386 para a arquitetura Intel, e alfa para o AXP
arquitetura. No confunda isso com o processador: por exemplo, o i386 arquitetura
refere-se Intel 80386 e todos os seus sucessores, incluindo lookalikes feitas pela AMD, Cyrix
e IBM.
O arquivo de configurao
604
cpu cpu_type
cpu descreve qual chip CPU ou chips este kernel deve apoiar. Pela i386
arquitetura, os valores possveis so I386_CPU, I486_CPU, I586_CPU e I686_CPU,
e voc pode especificar qualquer combinao desses valores. Para um kernel personalizado, melhor
especificar apenas a CPU que voc tem. Se, por exemplo, voc tem um processador Intel Pentium, use
I586_CPU para cpu_type.
Se voc no tiver certeza de qual tipo de processador que voc tem, olhar para a sada do dmesg
comandar durante a execuo do GENRICO kernel. Por exemplo:
CPU: AMD Athlon (tm) XP 1700 + processador (1462,51 MHz 686-class CPU)
Origem = "GenuineIntel" Id = 0x662 Stepping = 2
Caractersticas = 0x383f9ff <FPU, VME, DE, PSE, TSC, MSR, PAE, MCE, CX8, setembro, MTRR, PGE, MCA, CMOV, PAT, PS
E36, MMX, FXSR, SSE>
Caractersticas AMD = 0xc0480000 << b19>, AMIE, DSP, 3DNow!>
Isso mostra que o processador, um AMD Athlon XP, uma classe de'' 686'' CPU, de modo a executar um
kernel este processador, voc deve definir I686_CPU no arquivo de configurao.
Desde a verso 5 do FreeBSD, que j no possvel construir um nico kernel com suporte
tanto para o processador 80386 e processadores posteriores: o cdigo para os processadores posteriores
optimizados para usar instrues que o processador 80386 no tem. Escolha entre
I386_CPU ou qualquer combinao dos outros.
ident machine_name
ident especifica um nome usado para identificar o kernel. No arquivo GENRICO GENERIC.
Altere isso para o que voc nomeou seu kernel, neste exemplo, FREEBIE. O valor de
voc colocar em ident ser impresso quando voc inicializar o kernel, por isso til para dar um kernel um
nome diferente se voc quiser mant-lo separado de seu kernel usual (se voc quiser construir
um ncleo experimental, por exemplo). Como mquina e cpu, coloque o seu kernel de
nome entre aspas se ele contm todos os nmeros.
Este nome passado para o compilador C como uma varivel, portanto, no use nomes como Depurao, ou
algo que poderia ser confundido com um outro nome da mquina ou CPU, como VAX.
Opes de kernel
H uma srie de opes de kernel globais, a maioria dos quais voc no precisa mudar. Em
seo seguinte, vamos dar uma olhada em algumas das poucas excees.
Configurao de dispositivos de E / S especficas
Existem alguns dispositivos que o GENRICO do kernel no suporta. Em verses mais antigas do
FreeBSD, necessrio construir um novo kernel para apoi-los. Esse raramente o caso de qualquer
mais: a maioria dos dispositivos pode ser suportado pela kld s. O trabalho est em andamento para apoiar o
restante. Em caso de dvida, procure o arquivo HARDWARE.TXT relativo instalao de CDROM.
605
nmero maxusers
Este valor define o tamanho de uma srie de tabelas importantes do sistema. Est ainda includa no
arquivo de configurao do kernel, mas voc no precisa mais construir um novo kernel para alter-lo. Em vez disso,
voc pode configur-lo no momento da inicializao. Por exemplo, voc pode adicionar a seguinte linha ao seu
/ Boot / loader.conf arquivo:
maxusers = "64"
Mltiplos processadores
FreeBSD 5.0 oferece suporte a sistemas com mltiplos processadores mais modernos. O GENRICO kernel faz
no apoi-los por padro. Para i386, defina as seguintes opes:
# Para fazer um kernel SMP, os dois prximos so necessrios
opes de SMP
# Symmetric Kernel MultiProcessor
opes APIC_IO
# Symmetric (APIC) I / O
SMP
Um kernel SMP no ser executado em uma nica mquina, sem um processador Intel IOAPIC (I / O
Avanado controlador de interrupo programvel) chip. Certifique-se de desativar a cpu
"I386_CPU" e cpu "I486_CPU" opes para kernels SMP.
O arquivo de configurao
606
As opes de depurao
FreeBSD um sistema operacional muito estvel. Nenhum software perfeito, no entanto, e
s vezes ele falha. Quando isso acontecer, ele fornece uma srie de facilidades para ajudar a corrigir o
problema. Algumas delas so dependentes de opes de compilao do kernel.
Mesmo se voc no tem inteno de depurar um problema do kernel, voc deve definir
smbolos de depurao quando voc construir um kernel. Eles custam nada, exceto o espao em disco, e se voc
tem pouco espao em disco, voc pode remover a maioria dos arquivos aps a construo.
Para definir os smbolos de depurao, remova o lder # marcar a partir desta linha na configurao
arquivo:
makeoptions
DEBUG =-g
DDB
BREAK_TO_DEBUGGER
DDB_UNATTENDED
GDB_REMOTE_CHAT
Ktrace
DIAGNSTICO
Invariantes
INVARIANT_SUPPORT
TESTEMUNHA
WITNESS_SKIPSPIN
607
BREAK_TO_DEBUGGER
Use a opo BREAK_TO_DEBUGGER se voc tiver instalado o depurador de kernel e voc
tem o console do sistema em uma linha serial.
DDB_UNATTENDED
Se voc tem um pnico em um sistema com ddb, no ir reiniciar automaticamente. Em vez disso, ele vai
entrar ddb e dar-lhe a oportunidade de examinar os restos do sistema antes de reiniciar.
Isso pode ser uma desvantagem em sistemas que funcionam sozinhas: aps um pnico, eles iriam esperar
at que algum vem passado antes de reiniciar. Use o DDB_UNATTENDED opo de causar
um sistema com ddb para reiniciar automaticamente em pnico.
GDB_REMOTE_CHAT
ddb suporta a depurao remota de outra mquina FreeBSD atravs de uma conexo serial.
Consulte o manual on-line para obter mais detalhes. Para usar esse recurso, defina a opo
GDB_REMOTE_CHAT.
Ktrace
Conjunto Ktrace se voc quiser usar o programa de rastreamento de chamada do sistema ktrace.
DIAGNSTICO
Uma srie de arquivos de origem usar o DIAGNSTICO opo para habilitar a verificao de sanidade mental extra de
estruturas internas. Este apoio no ativado por padro por causa do tempo extra
levaria a verificar estas condies, o que s pode ocorrer como resultado de
erros de programao.
Invariantes e INVARIANT_SUPPORT
Invariantes usado em uma srie de arquivos de origem para permitir a verificao de sanidade mental extra de
estruturas internas. Este apoio no ativado por padro por causa do tempo extra
levaria a verificar estas condies, o que s pode ocorrer como resultado de
erros de programao.
INVARIANT_SUPPORT opo compila suporte para verificar alguns dos internos
estruturas. um pr-requisito para Invariantes. A inteno que voc pode definir
Invariantes para arquivos de origem simples (alterando o arquivo de origem ou especific-lo na
linha de comando) se voc tiver INVARIANT_SUPPORT ativado.
TESTEMUNHO e WITNESS_SKIPSPIN
Uma das grandes alteraes no FreeBSD Release 5 relaciona-se com a maneira pela qual o ncleo
locck recurso. Como resultado, existe o perigo de impasses, bloqueios que no podem ser
desfeito sem reiniciar a mquina. TESTEMUNHA verifica o perigo de impasses e
avisa se encontra num impasse potencial ('' bloqueio ordem reverso''). Isto muito caro
opo de depurao: pode retardar a mquina parada por uma ordem de magnitude, por isso no us-lo
a menos que voc precisa.
Um compromisso que no usa bastante tanto de alimentao do processador a combinao de
building.mm, v v4.15 (2003/04/02 06:30:12)
O arquivo de configurao
608
TESTEMUNHA com WITNESS_SKIPSPIN, o que evita bloqueios de rotao. Ele ainda pode pegar mais
problemas.
SMP
APIC_IO
opes
BREAK_TO_DEBUGGER
opes
SCSI_DELAY = 3000
opes
opes
# Opes
CAMDEBUG
MSGBUF_SIZE = 81920
TIMEREQUESTS
dispositivo
snp
Isso no tudo, claro. Olhe para essa opo SCSI_DELAY. Essa opo j
existe no ficheiro de configurao (com um valor de 15 segundos, em vez de trs). Se voc deixar
ambos, configurao emitir um aviso. Voc precisa comentar a primeira ocorrncia, como a
comentar no topo indica.
cd / usr/src/sys/i386/conf
configurao FREEBIE
cd .. / compile / FREEBIE
fazer depender tudo de instalao
No momento da escrita, isso funciona ainda, mas ele vai embora em algum momento no futuro. Ele
tem a desvantagem de que voc precisa conhecer a sua arquitetura, eo kernel construdo em
building.mm, v v4.15 (2003/04/02 06:30:12)
609
a rvore de cdigo fonte, que no uma boa idia. O novo mtodo de construo do kernel comea a partir de
/ Usr / src, no mesmo diretrio que todas as outras operaes de construo, e constri o kernel no
/ Usr / obj hierarquia.
Voc vai precisar de cerca de 250 MB de espao livre no / Usr / obj para construir um kernel. Se voc for realmente
apertado no espao, voc pode reduzir este valor para cerca de 50 MB, omitindo o makeoptions
DEBUG =-g especificao, mas se voc tiver problemas com o sistema em algum momento mais tarde,
ser muito mais difcil encontrar o que est causando.
H um certo nmero de comandos de alternativas para a construo do ncleo:
#
#
#
#
#
#
cd / usr / src
fazer do kernel KERNCONF = FREEBIE
fazer buildkernel KERNCONF = FREEBIE
fazer installkernel KERNCONF = FREEBIE
fazer reinstallkernel KERNCONF = FREEBIE
fazer do kernel KERNCONF = FREEBIE-DNO_MODULES
Uma possibilidade que voc tenha digitado incorretamente a palavra-chave. Compar-lo com a entrada na
GENRICO ou LINT definies do kernel.
O prximo passo compilar todos os arquivos de origem e criar um kernel e um conjunto de correspondncia
kld s. Pode levar algum tempo, at uma hora em uma mquina lenta. Tambm possvel ter
erros e, infelizmente, eles so geralmente no auto-explicativo. Se o fazer comando
falhar, geralmente sinaliza um erro na descrio do seu kernel que no bvio o suficiente para
configurao para pegar. A mais comum quando voc omitir uma entrada do arquivo de configurao
building.mm, v v4.15 (2003/04/02 06:30:12)
610
que um pr-requisito para uma entrada que est presente. Por exemplo, se voc tiver SCSI
discos (dispositivo da), necessrio o scbus dispositivo, bem como, e se voc tiver apenas sobre qualquer
tipo de carto Ethernet, necessrio o miibus dispositivo, bem como:
dispositivo
dispositivo
scbus
da
dispositivo
dispositivo
miibus
FXP
Se voc deixar scbus ou miibus fora da configurao, configurao no vai reclamar, mas o
fase de ligao kernel ir falhar com muitas referncias no resolvidas.
Se voc no puder resolver o problema depois de comparar o seu arquivo de configurao com GENRICO,
enviar email para questions@FreeBSD.ORG com sua configurao do kernel, e deve ser
diagnosticado muito rapidamente. A descrio de como interpretar esses erros tem sido no
obras por um longo tempo, mas atualmente ainda magia profunda.
Reiniciando
Em seguida, desligue o sistema e reiniciar carregar o novo kernel:
# Shutdown-r now
Ao reconfigurar o kernel, sempre uma boa idia para manter a mo um kernel que
conhecida a trabalhar. Existem dois pontos aqui:
Se o seu kernel no inicializa, voc no quer guard-lo para kernel.old quando voc cria um
novo. No adianta, e se o novo kernel no inicializar qualquer um, voc vai ficar sem
um kernel executvel. Neste caso, usar o reinstallkernel alvo mencionado acima:
# Make buildkernel KERNCONF = FREEBIE
# Make reinstallkernel KERNCONF = FREEBIE
Voc ainda pode cometer um erro e tipo make install, jogando fora sua ltima
bom kernel. fcil o suficiente para acabar com um sistema completamente no arranca como
isto. uma boa idia para manter outra cpia do kernel com um nome como kernel.save, que
o procedimento de instalao no toca.
Depois de iniciar com um bom kernel que voc pode verificar o seu arquivo de configurao e tentar
constru-lo novamente. Um recurso til o / Var / log / messages arquivo que registra, entre
outras coisas, todas as mensagens do kernel de cada arranque bem sucedido. Alm disso, o dmesg
comando imprime as mais recentes mensagens do kernel da inicializao atual. Depois de algum tempo
building.mm, v v4.15 (2003/04/02 06:30:12)
611
as mensagens originais so substitudos, por isso o processo de inicializao do sistema salva as mensagens
em tempo de boot no arquivo / Var / run / dmesg.boot. Note-se que a maioria dos laptops manter a anterior
contedo da memria temporria de mensagens do kernel quando for reiniciado, de modo que o incio da produo do
dmesg pode dizer respeito a uma bota anteriormente. Verifique at o fim antes de saltar para
concluses.
Fazendo ns de dispositivos
FreeBSD Release 5 vem com devfs, o sistema de arquivos do dispositivo. Uma grande vantagem de
devfs que ele cria automaticamente os dispositivos para o hardware que encontra, de modo que voc no
mais necessrio executar o / Dev / MAKEDEV roteiro fornecido com verses mais antigas do FreeBSD.
Tamanho
1d08b0
a000
3000
E000
bf000
Nome
ncleo
ibcs2.ko
ibcs2_coff.ko
linux.ko
vinum.ko
Voc tambm pode descarregar alguns klds, mas no todos eles. Usar kldunload para essa finalidade:
# Kldunload vinum
Voc no pode descarregar um kld que tem recursos ativos. No caso de vinum, por exemplo,
voc s pode descarreg-lo quando nenhum de seus volumes so montados.
612
sysctl
sysctl uma relativamente nova interface do ncleo que permite o acesso a variveis especficas no
kernel. Algumas dessas variveis so somente leitura: Voc pode olhar, mas no tocar. Outros so
mutvel.
sysctl variveis so geralmente referidos simplesmente como sysctls. Cada sysctl tem um nome em
'' Management Information Base'' formulrio (MIB), que consiste em um arranjo hierrquico
de nomes separados por pontos (.). O primeiro componente do nome indica a parte
o kernel a que se refere. Os exemplos a seguir dar uma idia de como usar o
sysctl programa:
$ Sysctl kern.ostype
FreeBSD
$ Sysctl kern
$ Sysctl-a
Net.inet.ip.forwarding # sysctl = 1
net.inet.ip.forwarding: 0 -> 1
613
614
3 Dezembro
Dezembro
5 Setembro
Dezembro
29
29
17
29
10:09
10:10
1999
10:09
limites
kernel.22
minfree
vmcore.22
Os arquivos importantes aqui so kernel.22, que contm uma cpia do kernel em execuo quando
o acidente ocorreu, e vmcore.22, que contm os contedos de memria. O nmero
22 indica que o nmero de sequncia do despejo. possvel ter vrios despejos
em / Var / crash. Note que voc pode perder muito espao assim.
O arquivo limites contm o nmero da prxima descarga (23 neste caso) e minfree
especifica a quantidade mnima de espao livre (em kilobytes) para sair do sistema de arquivos depois
voc copiou o despejo. Se isto no puder ser garantida, savecore no salva o despejo.
savecore copia o kernel a partir do qual voc iniciou. Como vimos, ele normalmente no um
depurar o kernel. No exemplo acima, instalado / Usr/src/sys/i386/conf/FREEBIE/kernel,
mas a verso de depurao foi / Usr/src/sys/i386/conf/FREEBIE/kernel.debug. Esta a nica
que voc precisa. A maneira mais fcil de acess-lo usar um link simblico:
615
# Ln-s / usr/src/sys/i386/conf/FREEBIE/kernel.debug.
# Ls-ll
-Rw-r - r - 1 root wheel
3 29 de dezembro 10:09 limites
-Rwxr-xr-x 1 grog Lemis
16796546 18 de dezembro 14:21 kernel.debug
-Rw-r - r - 1 root wheel
4333000 29 de dezembro 10:10 kernel.22
-Rw-r - r - 1 root wheel
5 17 de setembro de 1999 minfree
-Rw ------- 1 root wheel 268369920 29 de dezembro 10:09 vmcore.22
A primeira coisa que voc v uma mensagem poltica da Free Software Foundation,
seguido por uma repetio das mensagens de coliso, uma listagem da instruo corrente (sempre o
mesmo) e um prompt:
# 0 dumpsys () no .. / / kern / kern_shutdown.c:.. 473
473 se (de dumping + +) {
(Kgdb)
Devido forma como C, gdb e trabalho FreeBSD, a informao real que voc est procurando
Mais abaixo na pilha. A primeira coisa que voc precisa fazer descobrir exatamente onde ele
acontece. Faa isso com o backtrace comando:
(Kgdb) bt
# 0 dumpsys () no .. / / kern / kern_shutdown.c:.. 473
1 0xc01c88bf no boot (howto = 256) em .. / / kern / kern_shutdown.c:.. 313
2 0xc01c8ca5 em pnico (fmt = 0xc03a8cac "% s") a .. / / kern / kern_shutdown.c:.. 581
3 0xc033ab03 em trap_fatal (frame = 0xc99f8ccc, eva = 0)
a .. / ../i386/i386/trap.c: 956
4 0xc033a4ba na armadilha (frame = {tf_fs = 16, tf_es = 16, tf_ds = 16,
tf_edi = -1069794208, tf_esi = -1069630360, tf_ebp = -912290520,
tf_isp = -912290568, tf_ebx = -1069794208, tf_edx = 10, = 10 tf_ecx,
tf_eax = -1, tf_trapno = 9, tf_err = 0, = tf_eip -1071889589, tf_cs = 8,
tf_eflags = 66.182, tf_esp = 1024, tf_ss = 6864992})
a .. / ../i386/i386/trap.c: 618
5 0xc01c434b em malloc (size = 1024, type = 0xc03c3c60, flags = 0)
.. no .. / / kern / kern_malloc.c: 233
# 6 0xc01f015c em allocbuf (pb = 0xc3a6f7cc, tamanho = 1024)
.. no .. / / kern / vfs_bio.c: 2380
7 0xc01effa6 em getblk (vp = 0xc9642f00, blkno = 0, size = 1024, slpflag = 0,
.. slptimeo = 0) no .. / / kern / vfs_bio.c: 2271
8 0xc01eded2 no po (vp = 0xc9642f00, blkno = 0, size = 1024, cred = 0x0,
.. bpp = 0xc99f8e3c) em .. / / kern / vfs_bio.c: 504
9 0xc02d0634 em ffs_read (ap = 0xc99f8ea0) em .. / / ufs / ufs / ufs_readwrite.c:.. 273
10 0xc02d734e em ufs_readdir (ap = 0xc99f8ef0) em vnode_if.h: 334
11 0xc02d7cd1 em ufs_vnoperate (ap = 0xc99f8ef0)
.. no .. / / ufs / ufs / ufs_vnops.c: 2382
12 0xc01fbc3b em getdirentries (p = 0xc9a53ac0, UAP = 0xc99f8f80)
em vnode_if.h: 769
13 0xc033adb5 em syscall2 (frame = {tf_fs = 47, tf_es = 47, tf_ds = 47,
tf_edi = 134567680, tf_esi = 134554336, tf_ebp = -1077937404,
tf_isp = -912289836, tf_ebx = 672064612, tf_edx = 134554336,
tf_ecx = 672137600, tf_eax = 196, tf_trapno = 7, tf_err = 2,
tf_eip = 671767876, tf_cs = 31, tf_eflags = 582, tf_esp = -1077937448,
tf_ss = 47}) em .. / ../i386/i386/trap.c: 1155
14 0xc032b825 em Xint0x80_syscall ()
15 0x280a1eee em? ()
16 0x280a173a em? ()
17 0x804969e em? ()
building.mm, v v4.15 (2003/04/02 06:30:12)
616
18 0x804b550 em? ()
19 0x804935d em? ()
(Kgdb)
O resto deste captulo s de interesse para os programadores com uma boa compreenso do
C. Se voc no um programador, este quase to longe quanto voc pode ir. Salve esta informao
e fornec-lo a quem voc pedir ajuda. Geralmente no suficiente para resolver o problema,
mas um bom comeo, e seu ajudante ser capaz de lhe dizer o que fazer a seguir.
A informao aqui :
3 o nmero de quadros. Este um nmero atribudo pela gdb. Voc pode us-lo para
referncia a moldura numa srie de comandos.
Neste exemplo, o pnico vem de um processo do utilizador. Comeando na parte inferior, dependendo
sobre a plataforma de processador, voc pode ver a pilha de processo do usurio. Voc pode reconhec-los
em uma plataforma Intel pelos endereos abaixo o endereo de base do kernel 0xC0000000. Em
outras plataformas, o endereo pode ser diferente. Em geral, voc no vai obter qualquer simblica
informaes para esses quadros, uma vez que a tabela de smbolos do kernel no inclui smbolos do usurio.
Subindo a pilha, voc encontrar o quadro de pilha de chamada do sistema, neste exemplo em quadros
14 e 13. Este o lugar onde o processo envolveu o kernel. O quadro de pilha acima (quadro
12) geralmente apresenta o nome da chamada do sistema, neste caso getdirentries. A
exercer a sua funo, getdirentries indiretamente chama ffs_read, a funo que l
a partir de um arquivo UFS. ffs_read chamadas po, onde se l no cache buffer. Para faz-lo,
aloca um buffer com getblk e allocbuf, que chama malloc alocar memria
para cache de buffer. A prxima coisa que vemos um quadro de pilha para armadilha: algo foi
errado dentro malloc. armadilha determina que a armadilha em irrecupervel e chamadas
trap_fatal, que por sua vez chama pnico. Os quadros de pilha acima mostram como o sistema
se prepara para despejar e escreve para o disco. Eles no so mais de interesse.
building.mm, v v4.15 (2003/04/02 06:30:12)
617
Voc pode querer olhar para as variveis locais (automtico). Usar informaes locais, o que voc
pode abreviar a i loc:
(Kgdb) i loc
type = (struct malloc_type *) 0xc03c3c60
kbp = (struct kmembuckets *) 0xc03ebc68
Kup = (struct kmemusage *) 0x0
Freep = (struct freelist *) 0x0
indx = 10
NPG = -1071714292
allocsize = -1069794208
s = 6864992
va = 0xFFFFFFFF 0xFFFFFFFF <Address de bounds>
cp = 0x0
savedlist = 0x0
ksp = (struct malloc_type *) 0xFFFFFFFF
(Kgdb)
va = kbp-> kb_next;
618
O problema aqui que o ponteiro kb_next est definido para 0xFFFFFFFF. Deve conter um
endereo vlido, mas como gdb observa, este no no vlido.
At agora, descobrimos que o acidente em malloc, e que causada por um invlido
ponteiro em uma estrutura de dados interna. malloc uma funo que muitas vezes usado um
segundo, por todos os computadores. improvvel que o erro est na malloc. Na verdade, o mais provvel
causa que uma funo que tem usado a memria alocada pelo malloc tem substitudo o seu
limites e golpes estruturas de dados do malloc.
O que vamos fazer agora? Para citar fortuna:
Os sete olhos do Ningauble o Assistente flutuou de volta para sua capa
como relatou a Fafhrd: "Eu tenho visto muito, mas no pode explicar tudo.
A Mouser Gray exatamente 25 ps abaixo do poro mais profundo
o palcio de Gilpkerio Kistomerces. Apesar de vinte e quatro peas em
vinte e cinco dele esto mortos, ele est vivo.
"Agora, sobre Lankhmar. Ela foi invadida, seus muros violado
em todos os lugares e desesperada luta est acontecendo nas ruas, por um
hospedeiro feroz que fora-nmeros de habitantes de Lankhmar em cinqenta a um e equipados com todas as armas modernas. No entanto, voc pode salvar a cidade. "
"Como?" exigiu Fafhrd.
Ningauble encolheu os ombros. "Voc um heri. Voc deve saber."
- Fritz Leiber, de "As espadas de Lankhmar"
De agora em diante, voc est no seu prprio pas. Se voc chegar at aqui, a FreeBSD-hackers correspondncia
lista pode estar interessado em dar sugestes.