Vous êtes sur la page 1sur 639

TRADUO F3R4 @CSROZ

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

A comunidade FreeBSD .............................................................................. 17


Listas de discusso ..................................................................................... 17
Cancelar a assinatura de listas de discusso ........................................................ 19
Os grupos de usurios.................................................................................. 19
Relatar bugs ............................................................................................. 19
O Berkeley daemon .................................................................................... 20

2: Antes de instalar ..................................................................... 25


Usando hardware antigo .............................................................................. 25
Os drivers de dispositivo .............................................................................. 27
PC Hardware ............................................................................................. 27
Como o sistema detecta o hardware ............................................................... 29
Configurando placas ISA ............................................................................. 29
PCMCIA, PC Card e CardBus ...................................................................... 30
PC Card e cartes CardBus ........................................................................... 31
Universal Serial Bus ................................................................................... 31
Discos ...................................................................................................... 31
Layout de dados em disco ............................................................................ 33
BIOS do PC e discos ................................................................................... 33
Particionamento de disco .............................................................................. 34
Dispositivos de bloco e de carter .................................................................... 35
Fazendo com que os sistemas de arquivos ....................................................... 39
Limitaes de tamanho de disco .................................................................... 39
Mostrar hardware ....................................................................................... 40
O hardware ............................................................................................... 41
O teclado ................................................................................................. 41
O mouse ................................................................................................. 41
A placa de vdeo e monitor ............................................................................ 42
Hardware Laptop ....................................................................................... 42
Compaq / Digital mquinas Alpha ................................................................. 42
A distribuio do CD-ROM.......................................................................... 43
CD-ROM de instalao ................................................................................ 43
Vivo CD-ROM File System .......................................................................... 46
CVS Repository CD-ROM ............................................................................ 46
O Ports coleo de CD-ROMs ........................................................................ 46

3: A instalao rpida ................................................................ 47


Tornar as coisas mais fceis para si mesmo ..................................................... 47
FreeBSD em um disco com espao livre ......................................................... 48
FreeBSD compartilhado com Microsoft .......................................................... 49
Configurando o XFree86 ............................................................................. 50

O FreeBSD completo

vii

4: instalao do SO compartilhada .................................... 51


Discos separados ........................................................................................ 51
Compartilhando um disco ............................................................................ 52
Compartilhando com Linux ou outro BSD ...................................................... 52
Repartitioning com FIPS.............................................................................. 52
Repartitioning-um exemplo ........................................................................... 54

5: Instalando o FreeBSD .......................................................... 59


Instalao na arquitetura Intel i386 ................................................................ 59
Iniciando a sysinstall ................................................................................... 60
Os tipos de instalao .................................................................................. 61
Definir as opes de instalao ..................................................................... 62
Particionamento do disco ............................................................................. 63
Parties compartilhadas .............................................................................. 66
Definio de sistemas de arquivos ................................................................. 67
O parties? ............................................................................................. 68
Quanto espao de swap? ............................................................................... 70
Sistemas de arquivos em discos compartilhados ................................................... 75
Seleo de distribuies ............................................................................... 75
Selecionando a mdia de instalao ................................................................ 76
Executando a instalao ............................................................................... 77
Instalando em um sistema Alpha ................................................................... 78
Atualizando uma verso antiga do FreeBSD .................................................... 79
Como desinstalar o FreeBSD ........................................................................ 79
Se as coisas do errado ................................................................................ 80
Problemas com sysinstall .............................................................................. 80
Problemas com a instalao do CD-ROM .......................................................... 80
No possvel inicializar .............................................................................. 80
Instalao de inicializao incorreta ................................................................. 81
Problemas de geometria ............................................................................... 81
Sistema trava durante a inicializao ................................................................ 82
Inicializao do sistema, mas no executado corretamente ..................................... 82
Sistema de arquivos raiz enche ....................................................................... 82
Pnico .................................................................................................... 83
Fixao de uma instalao quebrado................................................................. 84
Mtodos de instalao alternativos ................................................................. 85
Preparando disquetes de inicializao ............................................................... 85
Inicializao a partir de disquetes .................................................................... 86
Instalando via ftp ....................................................................................... 86
Instalando via ftp ....................................................................................... 87
Instalando atravs do NFS ............................................................................ 88
Instalando a partir de uma partio Microsoft ...................................................... 88
Criando disquetes para uma instalao flexvel .................................................... 89

viii

ndice analtico

6: Configurao Ps-instalao .......................................... 91


Instalao de software adicional .................................................................... 92
Workstation instante ................................................................................... 93
Alterar o shell padro para o root .................................................................... 94
Adicionando usurios .................................................................................. 94
Definindo a senha de root ............................................................................. 95
Fuso horrio .............................................................................................. 95
Servios de rede ......................................................................................... 97
Configurando interfaces de rede ...................................................................... 98
Outras opes de rede.................................................................................. 99
Preferncias de inicializao ....................................................................... 100
Configurando o mouse .............................................................................. 101
Configurando o X..................................................................................... 102
Configurao de desktop ............................................................................ 108
Configurao adicional X ........................................................................... 108
Reiniciando o novo sistema ........................................................................ 109

7: As ferramentas do comrcio ..........................................111


Usurios e grupos ..................................................................................... 112
Ganhando acesso ...................................................................................... 113
O desktop KDE........................................................................................ 116
O menu do desktop ................................................................................... 116
O gerenciador de janelas fvwm2 .................................................................. 118
Comeando fvwm2 ................................................................................... 119
Alterar o visor X ...................................................................................... 120
Seleo de profundidade de pixel .................................................................. 121
Conseguir um shell ................................................................................... 121
Shell bsico ............................................................................................ 122
Opes ................................................................................................. 122
Parmetros shell ...................................................................................... 123
Os campos que podem conter espaos ............................................................. 125
Arquivos e nomes de arquivos .................................................................... 125
Os nomes de arquivos e extenses ................................................................. 126
Os caminhos relativos................................................................................ 126
Caracteres englobamento ............................................................................ 126
De entrada e de sada................................................................................. 127
As variveis de ambiente ............................................................................ 128
Linha de edio de comando ........................................................................ 131
Histrico de comandos e outras funes de edio .............................................. 133
Arquivos de inicializao do shell ................................................................. 135
Mudar seu shell ....................................................................................... 136
Diferenas da Microsoft ............................................................................ 138
Cortes: para trs e para a frente ..................................................................... 138

O FreeBSD completo

ix

Caracteres de tabulao .............................................................................. 138


Caracteres de controle do carro ..................................................................... 139

O editor Emacs ........................................................................................ 139


Parando o sistema ..................................................................................... 141

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

9: A Coleo de Ports ..............................................................167


Como instalar um pacote ........................................................................... 168
Construo de um porto ............................................................................. 169
Instalao de portas durante a instalao do sistema ............................................ 169
Instalao de portas a partir do CD-ROM primeiro ............................................. 169
Instalao de portas do sistema de arquivos ao vivo de CD-ROM ............................ 169
Conseguir novos portos .............................................................................. 170
O que est em que porta? ............................................................................ 172
Obtendo o arquivo fonte ............................................................................. 173
Construo do porto .................................................................................. 174
Dependncias do Porto .............................................................................. 174
Documentao do pacote ........................................................................... 174
Ficando somente binrio software ................................................................ 175
Manter as portas ....................................................................................... 176
Atualizando as portas ................................................................................ 176
Usando portupgrade .................................................................................. 176
Controle de portas instaladas ...................................................................... 178
Submeter um novo porto............................................................................ 180

10: Os sistemas de arquivos e dispositivos ...............181


Permisses de arquivo ............................................................................... 181
Mandatory Access Control ......................................................................... 186
Ligaes ................................................................................................. 186
Hierarquia de diretrios ............................................................................. 187
Diretrios padro ..................................................................................... 187
Tipos de sistemas de arquivos ..................................................................... 190
Soft updates ........................................................................................... 191
Snapshots .............................................................................................. 191
Montagem de sistemas de arquivos .............................................................. 192
Arquivos de montagem dos sistemas de arquivos................................................ 193
Desmontando sistemas de arquivos ................................................................ 194
Dispositivos FreeBSD ............................................................................... 195
Resumo dos dispositivos FreeBSD ................................................................ 195
Terminais virtuais .................................................................................... 197
Pseudo-terminais ..................................................................................... 197

11: Discos .......................................................................................199


Adicionando um disco rgido ...................................................................... 199
Instalao de hardware de disco .................................................................... 200
A formatao do disco ............................................................................... 203
Usando sysinstall ..................................................................................... 204

O FreeBSD completo

xi

Faz-lo da maneira mais difcil ................................................................... 209


Criando uma tabela de partio ..................................................................... 210
Rotulagem do disco .................................................................................. 214
Disklabel ............................................................................................... 215
Problemas de execuo disklabel .................................................................. 216
Criando sistemas de arquivos ...................................................................... 217
Montagem dos sistemas de arquivos ............................................................... 217
Movendo sistemas de arquivos .................................................................... 218
Recuperando-se de erros de dados em disco................................................... 218

12: O Vinum Volume Manager ............................................221


Objetos Vinum ........................................................................................ 221
Espao em disco mapeamento para plexos ....................................................... 222
A integridade dos dados ............................................................................. 223
Que organizao complexa? ........................................................................ 224
Criao de unidades Vinum ........................................................................ 225
Comeando Vinum ................................................................................... 225
Configurando Vinum ................................................................................ 226
O arquivo de configurao .......................................................................... 226
Criando um sistema de arquivos.................................................................... 227
Aumento da resilincia: o espelhamento .......................................................... 228
Adicionando plexos para um volume existente .................................................. 229
Adicionando subdiscos de plexos existentes...................................................... 230
Otimizar o desempenho.............................................................................. 232
Resilincia e desempenho ........................................................................... 233
Banco de dados de configurao Vinum ....................................................... 235
Instalando FreeBSD em Vinum ................................................................... 236
Recuperando-se de falhas no disco............................................................... 240
Disco de inicializao falhou ....................................................................... 241
Migrando Vinum para uma nova mquina ..................................................... 241
Coisas que voc no deve fazer com Vinum .................................................. 241

13: gravao de CD-Rs ...........................................................243


Criando uma imagem ISO-9660 .................................................................. 243
Testando o CD-R ..................................................................................... 245
Gravar o CD-R ........................................................................................ 246
Gravar um CD-R em um queimador de ATA .................................................... 246
Gravar um CD-R em um gravador SCSI .......................................................... 248
Cpia de CD-ROMs ................................................................................. 250

xii

ndice analtico

14: Tapes, backups e disquetes ........................................251


Fazer o backup de seus dados ..................................................................... 251
O meio de backup? ................................................................................... 252
Dispositivos de fita ................................................................................... 252
O software de backup ................................................................................ 253
alcatro ................................................................................................. 253
O uso de disquetes no FreeBSD .................................................................. 256
A formatao de um disquete ....................................................................... 256
Sistemas de arquivos em disquete .................................................................. 257
Sistemas de arquivo do Microsoft .................................................................. 259
Outros usos de disquetes ............................................................................ 259
Acessando disquetes Microsoft ..................................................................... 260

15: Impressoras ..........................................................................263


Configurao da impressora ....................................................................... 264
Testando a impressora ............................................................................... 265
Configurando o / etc / printcap ..................................................................... 265
Impresso remota ..................................................................................... 266
Filtros Spooler ........................................................................................ 267
Iniciando o spooler ................................................................................... 268
Testando o spooler ................................................................................... 268
Soluo de problemas ............................................................................... 269
Usando o spooler...................................................................................... 270
Remover trabalhos de impresso ................................................................... 271
PostScript ............................................................................................... 271
Exibir com gv ......................................................................................... 272
Impresso com ghostscript .......................................................................... 273
Qual driver? ........................................................................................... 274
PDF ....................................................................................................... 276

16: Redes e Internet ..................................................................277


Rede de camadas ...................................................................................... 279
A camada de enlace .................................................................................. 280
A camada de rede ..................................................................................... 281
A camada de transporte .............................................................................. 281
Atribuio de portas e servios de Internet ....................................................... 283
As conexes de rede ................................................................................. 284
A conexo de rede fsica ............................................................................ 285
Ethernet.................................................................................................. 286
Como Ethernet funciona ............................................................................. 287
Encontrar endereos Ethernet ....................................................................... 289

O FreeBSD completo

xiii

Quais so os sistemas em que Ethernet? .......................................................... 290


Classes de endereos ................................................................................. 290
Endereos roteado .................................................................................... 291

LANs sem fio .......................................................................................... 291


Como as redes sem fio coexistem .................................................................. 293
Encryption ............................................................................................. 293
A rede de referncia .................................................................................. 294

17: Configurar a rede local ...................................................297


Configurao de rede com sysinstall ............................................................ 297
Configurao manual da rede...................................................................... 299
Descrevendo sua rede ................................................................................ 300
Verificando a configurao da interface ........................................................... 301
Os arquivos de configurao ........................................................................ 302
Configurao automtica com DHCP ........................................................... 302
Cliente DHCP ......................................................................................... 302
Servidor DHCP ....................................................................................... 303
Iniciando dhcpd ....................................................................................... 304
Configurando cartes de rede do PC ............................................................ 304
Retirando as placas de rede ......................................................................... 306
Configurao de rede sem fio ..................................................................... 306
O que podemos fazer agora ......................................................................... 307
Roteamento ............................................................................................. 307
Adicionando rotas automaticamente ............................................................... 309
Adicionar rotas manualmente ....................................................................... 309
Configurao de rota do ISP ....................................................................... 310
Olhando para as tabelas de roteamento ......................................................... 311
Bandeiras .............................................................................................. 312
Encaminhamento de pacotes ....................................................................... 313
Resumo da configurao ............................................................................ 313

18: Conexo Internet ............................................................315


A conexo fsica ...................................................................................... 315
Estabelecendo-se na Internet....................................................................... 317
Qual nome de domnio? ............................................................................. 317
Preparando-se para o registo ........................................................................ 318
Registrando um nome de domnio ................................................................. 318
Obter endereos IP ................................................................................... 318
Escolhendo um provedor de servios de Internet ............................................ 319
Quem esse ISP? ..................................................................................... 319
Perguntas a um ISP ................................................................................... 319
Fazendo a conexo ................................................................................... 323

xiv

ndice analtico

19: As comunicaes seriais ..............................................325


Terminologia ........................................................................................... 326
Comunicao sncrona e assncrona ............................................................. 326
Comunicao assncrona ............................................................................ 326
A comunicao sncrona............................................................................. 327
As portas seriais ....................................................................................... 328
Conexo porta....................................................................................... 328
Quando posso enviar os dados? .................................................................... 330
Modems ................................................................................................. 330
Velocidades de modem .............................................................................. 331
Compresso de dados ................................................................................ 331
A velocidade do link ................................................................................. 332
Discando ............................................................................................... 333
Comandos de modem ................................................................................ 333
Discar manualmente ................................................................................. 335
Discando-um exemplo ............................................................................... 336
Discando ............................................................................................... 338

20: Configurando o PPP .........................................................339


Configurao rpida.................................................................................. 340
Como funciona PPP .................................................................................. 340
As interfaces .......................................................................................... 340
Discagem .............................................................................................. 341
Negociao ............................................................................................ 341
Quem atira a primeira pedra? ....................................................................... 342
Autenticao .......................................................................................... 343
Quais endereos IP no link?......................................................................... 344
A mscara de rede para o link ...................................................................... 345
Endereos estticos e dinmicos ................................................................... 346
A definio de uma rota padro .................................................................... 347
Discagem automtica ................................................................................ 347
A informao que voc precisa saber ........................................................... 347
Configurando o usurio PPP ....................................................................... 348
Configurando o usurio PPP: os detalhes ......................................................... 349
Negociao ............................................................................................ 350
Solicitando LQR ...................................................................................... 351
Autenticao .......................................................................................... 351
Configurao de IP dinmico ....................................................................... 352
Correndo usurio PPP................................................................................ 353
Quanto tempo vamos ficar ligado? ................................................................. 353
Automatizando o processo .......................................................................... 354
Aes em conectar e desconectar .................................................................. 355
Se as coisas do errado .............................................................................. 355

O FreeBSD completo

xv

Configurando o kernel do PPP .................................................................... 355


Autenticao .......................................................................................... 356
Discagem .............................................................................................. 357
Quem atira a primeira pedra? ....................................................................... 358
Configurao de IP dinmico ....................................................................... 358
Execuo do kernel PPP ............................................................................. 358
Automatizando o processo .......................................................................... 359
Parmetros do tempo limite ......................................................................... 359
Resumo da configurao ............................................................................ 359
Aes em conectar e desconectar .................................................................. 360
Coisas que podem dar errado ...................................................................... 361
Problemas ao estabelecer uma conexo ........................................................... 361

21: O Domain Name Service ................................................363


Domnios e zonas ..................................................................................... 364
Zonas ................................................................................................... 365
Configurar um servidor de nome ................................................................. 365
Uso de DNS passiva ................................................................................. 366
Servidor de nomes em um sistema autnomo ................................................. 366
Servidor de nomes em uma rede do usurio final ............................................ 368
O registro SOA ....................................................................................... 368
Os registros A ......................................................................................... 369
Os registros NS ....................................................................................... 370
Apelidos ............................................................................................... 370
Os registros MX ...................................................................................... 370
Os registros HINFO .................................................................................. 371
Juntando tudo ......................................................................................... 371
A pesquisa reversa .................................................................................... 372
A viso distante: o mundo exterior ................................................................. 373
O arquivo named.conf ............................................................................... 373
Servidores de nomes escravos ..................................................................... 376
O prximo nvel abaixo: delegao de zonas .................................................. 377
china.example.org .................................................................................... 377
example.org com a delegao....................................................................... 378
Mensagens de chamada ............................................................................. 379
Atualizando a configurao da verso 4 ........................................................ 380
Olhando-se as informaes de DNS ............................................................. 381
Verificao de DNS para correo ............................................................... 382
Segurana do DNS ................................................................................... 383

xvi

ndice analtico

22: Firewalls, aliasing IP e proxies ...................................385


Segurana e firewalls ................................................................................ 386
ipfw: a definio de regras de acesso .............................................................. 386
Aes ................................................................................................... 388
Escrevendo regras .................................................................................... 388
Os arquivos de configurao ........................................................................ 389
Tentando com isso.................................................................................... 393
Aliasing IP .............................................................................................. 393
Software aliasing IP .................................................................................. 394
natd ..................................................................................................... 395
Os servidores proxy .................................................................................. 396
Instalando o squid .................................................................................... 397
Iniciando squid........................................................................................ 398
Configurao de proxy do navegador ........................................................... 399
Configurando informaes de proxy para ftp ..................................................... 399

23: a depurao de rede .........................................................401


Como abordar problemas de rede ................................................................ 401
Camada problemas ligao ......................................................................... 402
Problemas da camada de rede ..................................................................... 406
traceroute................................................................................................ 407
Perda de pacote de alta............................................................................... 410
tcpdump ................................................................................................. 411
A perda de pacotes revisitado ....................................................................... 412
Camadas de transporte e aplicao ............................................................... 414
Etreo .................................................................................................... 414

24: o acesso rede bsica: clientes ...............................417


A World Wide Web .................................................................................. 418
Os navegadores da Web............................................................................. 418
ssh......................................................................................................... 419
Acesso sem senha ..................................................................................... 420
Criao e distribuio de chaves ................................................................... 421
Autenticao automaticamente ..................................................................... 422
Configurando o X para usar ssh .................................................................... 423
ssh tneis ................................................................................................ 424
X tunelamento ........................................................................................ 425
Outras utilizaes de tneis ......................................................................... 425
Configurando o ssh ................................................................................... 425
Resumo dos arquivos em ~ /. Ssh .................................................................. 428
Conexes ssh para soluo de problemas ...................................................... 428

O FreeBSD completo

xvii

telnet ..................................................................................................... 430


Telnet seguro .......................................................................................... 431
Usando telnet para outros servios ................................................................. 431
Copiando arquivos.................................................................................... 432
scp ........................................................................................................ 432
ftp ......................................................................................................... 433
Especificando nomes de arquivos como URIs ................................................... 434
Outros comandos de ftp ............................................................................. 434
mget .................................................................................................... 435
incitar................................................................................................... 435
reget .................................................................................................... 436
usurio ................................................................................................. 436
sftp ........................................................................................................ 437
rsync ...................................................................................................... 437
Copiando hierarquias de diretrios ................................................................. 438
Usando um servidor rsync .......................................................................... 440
O Network File System ............................................................................. 441
NFS cliente ............................................................................................. 442
Montagem de sistemas de arquivos remotos ...................................................... 442
Onde montar sistemas de arquivos NFS ........................................................... 444
Montagem de sistemas de arquivos NFS automaticamente ..................................... 445
NFS estranheza ........................................................................................ 445
Nenhum dispositivo .................................................................................. 445
Apenas um sistema de arquivos .................................................................... 446

25: o acesso rede bsica: servidores .........................447


Execuo de servidores a partir do inetd ....................................................... 448
Configurando ftpd .................................................................................... 450
ftp annimo ............................................................................................ 450
Restringir o acesso e registro ....................................................................... 452
Execuo sshd ......................................................................................... 453
rsyncd .................................................................................................... 454
Configurando um servidor web ................................................................... 455
Configurando o apache .............................................................................. 455
O arquivo de configurao .......................................................................... 456
httpd.conf .............................................................................................. 456
Hosts virtuais.......................................................................................... 457
Log File Format....................................................................................... 459
O controle de acesso ................................................................................. 460
Os mdulos do Apache .............................................................................. 462
Servidores web proxy ................................................................................ 462
Caching ................................................................................................ 462
Execuo apache ..................................................................................... 462
Servidor NFS .......................................................................................... 463

xviii

ndice analtico

/ Etc / exportaes .................................................................................... 463


Samba .................................................................................................... 464
Instalando o software Samba ....................................................................... 465
smbd e nmbd: os daemons do Samba .............................................................. 466
O arquivo de configurao .......................................................................... 466
Configurao de senhas.............................................................................. 469
Testando a instalao ................................................................................ 469
Exibindo status de Samba ........................................................................... 470

26: Correio eletrnico: clientes ..........................................471


Formatos de correio .................................................................................. 471
Agentes de usurio de email ....................................................................... 472
correio .................................................................................................. 472
Outros MUAs ......................................................................................... 473
Arquivos, pastas ou diretrios? ................................................................... 473
vira-lata ................................................................................................ 474
Criar uma nova mensagem ......................................................................... 477
Respondendo a uma mensagem ................................................................... 478
Usando pastas .......................................................................................... 480
Apagar mensagens.................................................................................... 481
Marcao de mensagens ............................................................................ 481
Configurando o vira-lata ............................................................................ 481
Cores em vira-lata .................................................................................... 483
Aliases e-mail .......................................................................................... 484
Cabealhos de email ................................................................................. 484
Como enviar e responder e-mails .................................................................. 487
Usando anexos MIME ............................................................................... 489

27: Electronic mail: servidores ..........................................491


Como o correio entregue ......................................................................... 492
Arquivos MTA........................................................................................ 492
Quem recebe o e-mail? .............................................................................. 493
Postfix ................................................................................................... 493
Configurando o postfix .............................................................................. 494
Host e nomes de domnio............................................................................ 495
Retransmisso de email .............................................................................. 496
Alias revisitado ....................................................................................... 496
Rejeitando o spam .................................................................................... 498
Rejeitando domnios de spam conhecidas......................................................... 500
Rejeitando locais sem consulta reversa ............................................................ 501
Rejeitando sites listados ............................................................................. 501
Reconhecendo mensagens falsificadas ............................................................ 501

O FreeBSD completo

xix

Restries Remetente: resumo ...................................................................... 501


Correndo postfix no momento da inicializao ............................................... 502
Conversando com o MTA ........................................................................... 502
Baixando mail do seu ISP .......................................................................... 503
POP: o Post Office Protocol ........................................................................ 504
popper: o servidor .................................................................................... 504
fetchmail: o cliente ................................................................................... 504
Listas de discusso: majordomo .................................................................. 505

28: XFree86 em profundidade .............................................507


X configurao: a teoria............................................................................. 507
Como TVs e monitores de trabalho ................................................................ 508
Como monitores diferem das televises ........................................................... 510
Como fritar seu monitor ............................................................................. 510
O controlador CRT ................................................................................... 511
A linha de modo XF86Config ...................................................................... 513
XF86Config ............................................................................................ 516
O layout do servidor ................................................................................. 517
A seo de Arquivos ................................................................................. 517
A seo ServerFlags.................................................................................. 518
A seo Module....................................................................................... 518
A seo InputDevice ................................................................................. 519
A seo do Monitor .................................................................................. 519
A seo Dispositivo .................................................................................. 520
A seo da tela ........................................................................................ 521
Vrios monitores e servidores ..................................................................... 523
Vrios servidores ..................................................................................... 523
X na rede ................................................................................................ 524
Vrios monitores em vrios servidores ............................................................ 525
Parando X ............................................................................................. 525

29: Iniciar e parar o sistema .................................................527


Iniciando o sistema ................................................................................... 528
Coisas que voc pode fazer antes de inicializar ............................................... 529
O que voc est indo para arrancar? ............................................................. 529
Carregador de comandos ............................................................................ 530
loader.conf............................................................................................. 532
Carregar outros mdulos em tempo de inicializao ............................................ 532
Carga automtica kld................................................................................. 533
Rodando o kernel ..................................................................................... 533
Modo de usurio nico .............................................................................. 540
Proteger o modo single-user senha ................................................................. 541

xx

ndice analtico

Desligar e reiniciar o sistema ...................................................................... 541


FreeBSD sem discos ................................................................................. 542
Inicializao via rede ................................................................................ 543
Configurao dos sistemas de arquivos ........................................................... 544
Construindo um kernel diskless .................................................................... 544
Configurando o TFTP................................................................................ 544
Configurando o DHCP............................................................................... 545
Outros cadaros Ethernet ............................................................................ 546
Configurar o equipamento........................................................................... 547
Sistema de compartilhamento de arquivos entre vrias mquinas ............................. 548
Substitutos de disco .................................................................................. 549

30: arquivos de configurao do FreeBSD .................551


/ Etc / rc.conf ........................................................................................... 552
O nosso / etc / rc.conf ................................................................................ 565
Arquivos que voc precisa para mudar ......................................................... 566
/ Etc / exportaes .................................................................................... 566
/ Etc / fstab ............................................................................................ 566
/ Etc / group ........................................................................................... 568
/ Etc / namedb / named.conf ........................................................................ 568
/ Etc / mail ............................................................................................. 568
/ Etc / master.passwd ................................................................................. 568
Arquivos que voc pode precisar de mudar .................................................... 568
/ Etc / crontab ......................................................................................... 569
/ Etc / csh.cshrc, / etc / csh.login, / etc / csh.logout .............................................. 569
/ Etc / dhclient.conf................................................................................... 569
/ Etc / disktab .......................................................................................... 569
/ Etc / ftpusers ......................................................................................... 569
/ Etc / hosts ............................................................................................ 569
/ Etc / hosts.equiv ..................................................................................... 570
/ Etc / hosts.lpd........................................................................................ 570
/ Etc / inetd.conf ...................................................................................... 570
/ Etc / login.access .................................................................................... 570
/ Etc / login.conf ...................................................................................... 570
/ Etc / motd ............................................................................................ 572
/ Etc / newsyslog.conf................................................................................ 572
/ Etc / nsswitch.conf .................................................................................. 572
/ Etc / pccardd.conf ................................................................................... 572
/ Etc / periodic.conf .................................................................................. 572
/ Etc / printcap ........................................................................................ 573
/ Etc / profile .......................................................................................... 573
/ Etc / rc.firewall ...................................................................................... 573
/ Etc / resolv.conf ..................................................................................... 573
/ Etc / syslog.conf..................................................................................... 573

O FreeBSD completo

xxi

/ Etc / ttys .............................................................................................. 573


/ Boot / device.hints .................................................................................. 574

Arquivos que voc no deve mudar.............................................................. 576


/ Etc / gettytab ......................................................................................... 576
/ Etc / manpath.config................................................................................ 576
/ Etc / netconfig ....................................................................................... 576
/ Etc / networks ....................................................................................... 576
/ Etc / passwd ......................................................................................... 576
/ Etc / protocolos ...................................................................................... 577
/ Etc / pwd.db ......................................................................................... 577
/ Etc / rc ................................................................................................ 577
Arquivo / etc/rc.i386 ................................................................................. 577
/ Etc / rc.network e / etc/rc.network6 .............................................................. 577
/ Etc / rc.pccard ....................................................................................... 577
/ Etc / rc.serial ......................................................................................... 577
/ Etc / shells ........................................................................................... 577
/ Etc / services ......................................................................................... 577
/ Etc / spwd.db ........................................................................................ 578
/ Etc / termcap ......................................................................................... 578
/ Etc / peridica ....................................................................................... 578
Arquivos de configurao obsoletos ............................................................. 578
/ Etc / host.conf ....................................................................................... 579
/ Etc / named.boot .................................................................................... 579
/ Etc / netstart ......................................................................................... 579
/ Etc / sysconfig ....................................................................................... 579

31: Manter-se atualizado ........................................................581


FreeBSD lanamentos e CVS ..................................................................... 581
Nomes ou marcas simblicas ....................................................................... 582
FreeBSD lanamentos ............................................................................... 582
FreeBSD-RELEASE ................................................................................. 582
FreeBSD-STABLE ................................................................................... 583
CORREO DE SEGURANA lanamentos .................................................. 583
FreeBSD-CURRENT ................................................................................ 583
Obter atualizaes da Net........................................................................... 584
CVSup ................................................................................................. 585
Que CVSup servidor? ................................................................................ 587
Execuo cvsup ....................................................................................... 587
Obtendo lanamentos individuais .................................................................. 587
Criando a rvore de cdigo fonte ................................................................. 588
Tag lanamento ....................................................................................... 588
Atualizando uma rvore existente .................................................................. 591
Usando uma rvore CVS remoto ................................................................... 591

xxii

ndice analtico

32: Atualizando o software do sistema .........................593


Atualizando kernel eo processo ................................................................... 595
Atualizando o kernel ................................................................................. 597
Atualizando os arquivos de inicializao ....................................................... 598
Atualizando os arquivos de configurao ...................................................... 599
Mesclando o arquivo de senhas..................................................................... 600
Mesclando / etc / group ............................................................................. 602
Mergemaster, segunda vez ......................................................................... 603

33: kernels personalizados...................................................607


Construir um novo kernel .......................................................................... 608
Configurando dispositivos de I / O ............................................................... 608
O diretrio de compilao do kernel ............................................................. 609
O arquivo de configurao ......................................................................... 610
Nomeando o kernel................................................................................... 611
Opes de kernel ..................................................................................... 612
Mltiplos processadores ............................................................................. 613
As opes de depurao ............................................................................. 614
Preparando-se para atualizaes .................................................................. 616
Construir e instalar o novo kernel ................................................................ 616
Reiniciando ............................................................................................ 618
Fazendo ns de dispositivos ....................................................................... 619
Mdulos carregveis do kernel .................................................................... 619
sysctl ..................................................................................................... 620
Viver com FreeBSD-CURRENT ................................................................. 621
Construir kernels com smbolos de depurao ................................................... 621
Resoluo de problemas em FreeBSD-CURRENT.............................................. 621
Analisando despejos de memria do kernel ................................................... 622
Escalada atravs da pilha ............................................................................ 624
Descobrir o que realmente aconteceu .............................................................. 625

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

B: A evoluo do FreeBSD ...................................................633


FreeBSD Libera 1 e 2................................................................................ 633
FreeBSD Release 3 ................................................................................... 633
O driver SCSI CAM ................................................................................. 634
Mdulos carregveis do kernel .................................................................... 635
O formato do objeto ELF ........................................................................... 635
O que aconteceu com minhas bibliotecas? ........................................................ 636
FreeBSD verso 4 .................................................................................... 638
No h mais dispositivos de bloco ............................................................... 640
New ATA (IDE) driver de disco .................................................................. 641
Novo driver do console ............................................................................. 641
FreeBSD Release 5 ................................................................................... 641

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.

Convenes usadas neste livro


Neste livro, eu uso negrito para os nomes das teclas no teclado. Vamos ver mais sobre este
na prxima seo.
Eu uso itlico para os nomes dos utilitrios UNIX, diretrios, nomes de arquivos e URI s (Uniform
Resource Identifier, a nomeao de arquivo de tecnologia da World Wide Web), e
enfatizar novos termos e conceitos quando so introduzidas pela primeira vez. Eu tambm uso este tipo de letra para
Comentrios nos exemplos.

Convenes usadas neste livro

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 #.

s vezes, os comandos s funcionam com a Bourne Shell e seus derivados (zsh,


bash), e eles no vo trabalhar com csh, tcsh e amigos. Nestes casos, eu vou mostrar o
csh alternativa com a norma csh incitar %.
No decorrer do texto que vai ocasionalmente tocar num assunto que no de importncia absoluta, mas
que podem ser de interesse. Vou imprimir essas notas em texto menor, como este.

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

surpreendente quantas existem termos confusos para descrever as teclas individuais no


teclado. Meu favorito o qualquer chave ('' Pressione qualquer tecla para continuar''). Ns no vamos
estar usando o qualquer chave neste livro, mas h uma srie de outras chaves, cujos nomes precisam
entendimento:

O Entrar ou Voltar chave. Vou chamar esta ENTER.

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.

NL o nova linha personagem. Em ASCII, Ctrl-J, mas os sistemas UNIX ger-lo


quando voc pressiona o ENTER chave. UNIX tambm se refere a este personagem como \ N, uma utilizao
que vem da linguagem de programao C.

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

Esta documentao fornecida pelo Projeto de Documentao do FreeBSD'' como '' e


quaisquer garantias expressas ou implcitas, incluindo, mas no limitado a, o implcito
garantias de comerciabilidade ou adequao a um propsito particular, so recusadas. Em nenhum
evento ser o Projeto de Documentao do FreeBSD se responsabiliza por quaisquer danos diretos, indiretos,
, danos especiais, exemplares, incidentais ou conseqentes (incluindo, mas no limitado
a, aquisio de bens ou servios substitutos, perda de uso, dados ou lucros, ou
interrupo de negcios) que sejam causados em qualquer teoria de responsabilidade, seja em
contrato, responsabilidade estrita ou ato ilcito (incluindo negligncia ou no) decorrentes de qualquer forma
do uso desta documentao, mesmo se avisados da possibilidade de tais
dano.

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.

Como este livro foi escrito


Este livro foi escrito e composto inteiramente com ferramentas fornecido como padro com o
Sistema FreeBSD, incluindo a coleo de ports. O texto deste livro foi escrito com
o GNU Emacs editor, e foi formatado em 10 de Abril 2003, com o GNU groff texto
formatador, Verso 1.18, e alguns fortemente modificadas mm macros. O processo era
realizada sob FreeBSD 5.0-CURRENT. Mesmo as verses de desenvolvimento do FreeBSD
so estveis o suficiente para executar o trabalho pesado, como formatao de texto profissional.
Os arquivos de origem para este livro so mantidos sob RCS, o Sistema de Controle de Reviso (Veja o
pgina de manual rcs (1)). Aqui esto as IDs Verso RCS para os captulos deste livro em particular.
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:

title.complete, v 4.2 2003/04/09 19:43:58 grog grog Exp $


preface.mm, v 4.19 2003/04/09 19:26:11 grog Exp $
introduction.mm, v 4.22 2003/04/02 06:36:16 grog Exp $
concepts.mm, v 4.21 2003/04/02 06:37:12 grog Exp $
quickinstall.mm, v 4.11 2003/04/09 19:26:40 grog Exp $
shareinstall.mm, v 4.12 2003/04/09 19:26:50 grog Exp $
install.mm, v 4.21 2003/04/02 06:39:30 grog Exp $
postinstall.mm, v 4.12 2003/04/02 06:40:31 grog Exp $
unixref.mm, v 4.16 2003/04/02 06:41:29 grog Exp $
unixadmin.mm, v 4.13 2003/04/02 06:50:29 grog Exp $
ports.mm, v 4.12 2003/04/02 06:43:08 grog Exp $
filesys.mm, v 4.17 2003/04/02 06:43:57 grog Exp $
disks.mm, v 4.17 2003/04/02 06:44:17 grog Exp $
vinum.mm, v 4.19 2003/04/09 19:56:42 grog Exp $
burncd.mm, v 4.13 2003/04/02 06:46:59 grog Exp $
tapes.mm, v 4.10 2003/04/02 06:47:36 grog Exp $
printers.mm, v 4.17 2003/04/02 06:48:05 grog Exp $
netintro.mm, v 4.16 2003/04/02 06:48:55 grog Exp $
netsetup.mm, v 4.18 2003/04/03 08:57:41 grog Exp $
isp.mm, v 4.10 2003/04/02 03:09:55 grog Exp $
modems.mm, v 4.10 2003/04/02 03:11:02 grog Exp $
ppp.mm, v 4.14 2003/04/02 08:14:21 grog Exp $
dns.mm, v 4.19 2003/04/02 08:43:25 grog Exp $
firewall.mm, v 4.12 2003/04/09 20:40:28 grog Exp $
netdebug.mm, v 4.17 2003/04/03 02:04:14 grog Exp $
netclient.mm, v 4.14 2003/04/03 02:17:18 grog Exp $
netserver.mm, v 4.19 2003/04/09 20:42:40 grog Exp $
mua.mm, v 4.15 2003/04/03 02:07:47 grog Exp $
mta.mm, v 4.16 2003/04/03 01:18:20 grog Exp $
xtheory.mm, v 4.13 2003/04/03 03:13:24 grog Exp $

Como este livro foi escrito


$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:
$ Id:

starting.mm, v 4.21 2003/04/03 02:35:05 grog Exp $


configfiles.mm, v 4.18 2003/04/03 02:42:08 grog Exp $
current.mm, v 4.17 2003/04/09 19:28:00 grog Exp $
upgrading.mm, v 4.6 2003/04/03 01:51:34 grog grog Exp $
building.mm, v 4.17 2003/04/03 02:48:25 grog Exp $
biblio.mm, v 4.7 2003/04/02 04:56:03 grog Exp $
evolution.mm, v 4.13 2003/04/02 04:59:47 grog Exp $
tmac.Mn, v 1.15 2003/04/09 19:56:02 grog Exp $

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:

Computadores baseados na arquitetura CPU Intel i386, incluindo o 386, 486 e


Pentium famlias de processadores, e CPUs compatveis da AMD e Cyrix.

O processador Alpha Compaq / Digital.

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.

64 bits mquinas SPARC da Sun Microsystems.

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

Como usar este livro


Este livro destina-se a um nmero de diferentes pblicos. Ele tenta apresentar o
material sem muitas referncias frente. Ele contm as seguintes partes:
1. A primeira parte, captulos 1-6, diz-lhe como instalar o FreeBSD eo que fazer se
as coisas do errado.
2. Captulos 7 a 15 apresent-lo para a vida com FreeBSD, incluindo a configurao de opcionais
recursos e administrao do sistema.
3. Captulos 16-27 apresent-lo ao suporte de rede rica do FreeBSD.
4. Finalmente, os captulos 28 a 33 olhar para temas de administrao do sistema que se acumulam em todo o
o material anterior.
Em mais detalhes, vamos discutir os seguintes temas:

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 2, Antes de instalar, discute os requisitos de instalao e tericas


fundo de instalar o FreeBSD.

Captulo 3, Instalao Rpida, apresenta uma viso geral do processo de instalao.


Se voc est razoavelmente experiente, isso pode ser tudo que voc precisa para instalar o FreeBSD.

No captulo 4, Instalao OS compartilhada, veremos se preparando para instalar o FreeBSD em um


sistema que j contenha um outro sistema operativo.

No Captulo 5, Instalando o FreeBSD, vamos percorrer uma instalao tpica em detalhe.

Captulo 7, As ferramentas do comrcio, apresenta uma srie de aspectos do FreeBSD que so de


interesse para os recm-chegados (especialmente a partir de um ambiente Microsoft). Ns olharemos
a criao de uma rea de trabalho'','' o conceito de usurios e nomeao de arquivo. Tambm vamos considerar o
noes bsicas de uso da concha e editor, e como desligar a mquina.

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 9, A coleo de ports, descreve os milhares de pacotes de software livre


que voc pode, opcionalmente, instalar em um sistema FreeBSD.

Captulo 6, Configurao ps-instalao, explica a configurao que voc precisa fazer


aps a instalao, para obter um sistema funcional completa.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

Captulo 1: Introduo

Captulo 10, Os sistemas de arquivos e dispositivos, contm informaes sobre o FreeBSD


estrutura de diretrio e nomes de dispositivos. Voc vai encontrar a seo sobre nomes de dispositivos
(A partir da pgina 195) interessante, mesmo se voc um hacker de UNIX experientes.

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.

A partir de Captulo 16, Redes e da Internet, vamos olhar para a Internet ea


servios mais importantes.

Captulo 17, Configurao da rede local, descreve como configurar a rede local.

Captulo 19, Comunicao serial, discute hardware de srie e os pr-requisitos


para PPP e SLIP comunicaes.

No captulo 20, Configurando o PPP, olhamos para duas implementaes de PPP do FreeBSD
e que preciso configur-los.

No captulo 21, O Domain Name Service, vamos considerar o uso de nomes na


Internet.

A segurana um problema crescente na Internet. No captulo 22, Firewalls, IP


aliasing e proxies, vamos dar uma olhada em algumas coisas que podemos fazer para melhor-lo.
Vamos tambm olhar para Aliasing IP, uma vez que anda de mos dadas com firewalls e servidores proxy.

Redes s vezes se tornam notworks. No captulo 23, depurao de rede, ns vamos


ver o que podemos fazer para resolver problemas de rede.

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.

Apesar da World Wide Web, comunicao pessoal bidirecional tradicional ainda


muito popular. Veremos como usar clientes de email no Captulo 26, Correio eletrnico:
clientes.

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.

Captulo 18, Conexo Internet, discute os problemas na seleo de uma Internet


Service Provider (ISP) e estabelecer uma presena na Internet.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

Como usar este livro

Os servidores de correio so um importante tema bastante que h um captulo em separado 27,


Correio eletrnico: servidores.

No captulo 28, XFree86 em profundidade, vamos olhar para a teoria por trs ficando X11
de trabalho.

Captulo 29, Iniciar e parar o sistema, descreve como iniciar e parar a


Sistema FreeBSD e todas as coisas que voc pode fazer para personaliz-lo.

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.

Captulo 33, Kernels personalizados, discute recursos do kernel opcionais.

Apndice B, A evoluo do FreeBSD, descreve as mudanas que tm ocorrido


em FreeBSD desde que foi introduzido h quase dez anos.

Apndice A, Bibliografia, sugere alguns livros para leitura.

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.

Como comerciais UNIX, FreeBSD oferece muitos recursos avanados, incluindo:

FreeBSD utiliza multitarefa preemptiva com ajuste de prioridade dinmica para garantir
partilha suave e justa do computador entre as aplicaes e usurios.

FreeBSD um sistema multi-usurio: muitas pessoas podem usar um sistema FreeBSD


simultaneamente para fins no relacionados. As partes do sistema perifricos, como
impressoras e unidades de fita adequadamente entre todos os usurios do sistema.
No entendo isso confundido com o'''' multitarefa oferecida por alguns comercial
sistemas. FreeBSD um verdadeiro sistema multi-usurio que protege os usurios uns dos outros.

FreeBSD seguro. Sua trajetria confirmado pelos relatrios do CERT, o


organizao lder lidar com a segurana do computador. Ver http://www.cert.org/ para
mais informaes. O projeto FreeBSD tem uma equipe de agentes de segurana em questo
com a manuteno desta liderana.
introduction.mm, v v4.22 (2003/04/02 06:36:16)

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.

Inclui o FreeBSD XFree86 execuo do X11 interface grfica do usurio.

A Coleo de Ports do FreeBSD inclui milhares de ready-to-run aplicaes.

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.

O sistema bsico contm um conjunto completo de C, C + + e Fortran desenvolvimento


ferramentas. Todas as linguagens de programao comumente disponveis, tais como perl, python e
rubi, esto disponveis. Muitas linguagens adicionais para pesquisa avanada e desenvolvimento
mento tambm esto disponveis na coleo de ports.

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.

Extenso documentao on-line, incluindo pginas de manual tradicionais e um hipertexto


baseado manual on-line.

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.

FreeBSD baseado no 4.4BSD UNIX divulgado pela Computer Systems Research


Group (CSRG) da Universidade da Califrnia em Berkeley. O Projeto FreeBSD tem
passaram muitos milhares de horas a afinar o sistema para o mximo desempenho e
confiabilidade. Caractersticas do FreeBSD, desempenho e confiabilidade comparam muito favoravelmente
com os sistemas operacionais comerciais.
introduction.mm, v v4.22 (2003/04/02 06:36:16)

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:

Servio de Internet: a Internet cresceu em torno de Berkeley UNIX. O TCP / IP originais


implementao, lanado em 1982, foi baseado em BSD 4.2, e quase todas as correntes
Implementao TCP / IP tem emprestado a partir dele. FreeBSD um descendente desta
implementao, que foi mantida e polida por dcadas. o mais
maduro e confivel TCP / IP disponveis a qualquer preo. Isso o torna uma plataforma ideal para
uma variedade de servios de Internet, como servidores FTP, servidores de World Wide Web,
servidores de correio eletrnico, servidores de notcias da Usenet, servidores e firewalls nome de DNS.
Com o Samba suite, voc pode substituir um servidor de arquivos da Microsoft.

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.

Desenvolvimento de Software: O sistema FreeBSD bsico vem com um conjunto completo de


ferramentas de desenvolvimento, incluindo o renomado GNU C / C + + compilador e depurador.

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.

O fim das guerras UNIX


No decorrer do projeto FreeBSD, uma srie de coisas mudaram sobre UNIX. Sol
Microsystems mudou-se de uma base de BSD para uma base de V Sistema no final dos anos 80, um movimento que
convenceu muitas pessoas que BSD estava morto e que o Sistema V era o futuro. Coisas
sido diferente: em 1992, a AT & T vendeu USL a Novell, Inc., que introduziu um
produto com base no Sistema de V.4 chamado UnixWare. Embora UnixWare tem muito melhor
especificaes que o sistema antigo V.3 SCO UNIX, ele nunca foi um sucesso, e Novell
finalmente vendeu sua operao de UNIX SCO. SCO em si foi ento comprada pela Caldera
(Que recentemente mudou seu nome de volta SCO), enquanto que a propriedade do comrcio UNIX
marca passou para o Open Group. System V UNIX essencialmente morto: current
verses comerciais do UNIX evoluram medida desde System V que eles no podem ser
considerado o mesmo sistema. Por outro lado, BSD est vivo e saudvel, e vive em
FreeBSD, NetBSD, OpenBSD e Mac OS X, da Apple
A importncia da AT & T cdigo nas verses anteriores do FreeBSD foi certamente
subestimada no processo. Todo o cdigo foi disputada com mais de 10 anos de idade na
tempo, e nada disso foi de grande importncia. Em janeiro de 2002, Caldera lanou todos
'''' Antigas verses do UNIX sob uma licena BSD. Estes especificamente includos todos
verses do UNIX BSD a partir do qual foi derivado: o primeiro-stima edies da Pesquisa
UNIX e 32V, o predecessor de 3BSD. Como resultado, todas as verses do BSD, incluindo
aquelas sobre as quais o processo foi conduzido, esto agora disponveis gratuitamente.

Outros sistemas operacionais UNIX-like livre


FreeBSD no o nico sistema operacional UNIX-like livre disponvel, no mesmo a melhor
conhecido um. O mais conhecido sistema operacional UNIX-like livre , sem dvida, Linux, mas
h tambm um nmero de outros sistemas operativos BSD-derivados. Vamos olh-los em primeiro lugar:

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.

NetBSD um sistema operativo que, para o observador casual, quase idntica


FreeBSD. As principais diferenas so que NetBSD concentrados em hardware
independncia, enquanto FreeBSD se concentra em performance. FreeBSD tambm tenta
mais difcil de ser fcil de entender para um iniciante. Voc pode encontrar mais informaes sobre
NetBSD em http://www.NetBSD.org.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

Outros sistemas operacionais UNIX-like livre

10

OpenBSD um spin-off do NetBSD que se concentra em segurana. tambm muito semelhante ao


FreeBSD. Voc pode encontrar mais informaes em http://www.OpenBSD.org.

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.

Linux um clone e nunca continha qualquer


AT & T cdigo.

FreeBSD um sistema operacional completo, Linux um kernel, pessoalmente, mantido pela


mantido por um grupo central de software
Linus Torvalds e um confivel poucos compandesenvolvedores sob as Concurrent Versions ies. Os programas no do kernel fornecido
Sistema que mantm uma completa histocom Linux fazem parte de um distribuio de
ry do developemnt projeto. Tem
que existem vrios. Distribuies so
apenas uma distribuio do FreeBSD.
no totalmente compatvel com os outros.
O estilo de desenvolvimento do FreeBSD
enfatizar
tamanhos de prestao de contas e
documentao de
mudanas.

O Linux mantida por um pequeno


nmero de pessoas que mantm o controle de todos
mudanas. Os patches no-oficiais no faltam.

Distribuies de Linux tm muitas vezes sutilmente difekernels Ent. As diferenas no so sempre


O kernel fornecido com uma verso especfica documentada.
do FreeBSD est claramente definida.
introduction.mm, v v4.22 (2003/04/02 06:36:16)

11

FreeBSD tem como objetivo ser uma


produo estvel
ambiente.
Como resultado do desenvolvimento
centralizado
estilo, FreeBSD simples e
fcil de instalar.

Captulo 1: Introduo

Muitas verses do Linux ainda esto'' sangramento


ponta'' ambientes de desenvolvimento. Isto
mudando rapidamente, no entanto.
A facilidade de instalao do Linux depende
no distribuio. Se voc mudar de um
distribuio de Linux para outro, voc vai
tem que aprender um novo conjunto de ferramentas de instalao.

Linux no tem quaisquer aes para enfrentar


com, assim por algum tempo ele foi pensado para ser
FreeBSD ainda relativamente desconhecido,
o nico sistema do tipo UNIX livre disponvel.
uma vez que
sua distribuio foi inicialmente restrito
devido
para o AT & T aes judiciais.

Uma quantidade crescente de software comercial


est se tornando disponvel para Linux.

Como resultado da ausncia de conhecimento


Apenas sobre qualquer nova diretoria ter em breve uma
do
driver para Linux.
FreeBSD, relativamente pouco comercial
software est disponvel para ele.
Linux parece no precisa ser capaz de executar
Como um resultado de uma base de
utilizadores mais pequenos,
Programas do FreeBSD.
FreeBSD menos propensos a ter drivers para
novssimo placas que Linux.
Por causa da falta de apli-comercial
ctions e drivers para FreeBSD, FreeBSD executa programas mais Linux, se
comercial ou no.

Linux est licenciado sob a GNU General

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.

Linux tem aficionados que esto preparados para


Algum chama quem ousa sugerir que
no melhor que o FreeBSD.

Em resumo, o Linux tambm um sistema operativo muito boa. Para muitos, melhor do que
FreeBSD.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

Outros sistemas operacionais UNIX-like livre

12

Documentao do sistema FreeBSD


FreeBSD vem com uma quantidade considervel de documentao que veremos no
aps algumas pginas:

O Projeto de Documentao do FreeBSD mantm uma coleo de livros'','' documentos


em formato HTML ou PDF, que tambm pode ser acessado online. Eles esto instalados na
hierarquia de diretrios / Usr / share / doc.

O formato tradicional documento UNIX pginas de manual, documentos individuais


descrevendo a funcionalidade especfica. Eles so curtos e direto ao ponto de ser enigmtico, mas
se voc sabe o que voc est procurando, eles tm apenas o direito quantidade de detalhes.
Eles no so uma boa introduo.

O projeto GNU introduziu o seu prprio formato de documento, Informaes GNU. Alguns GNU
programas no tm outra forma de documentao.

Lendo a documentao on-line


Voc vai encontrar uma srie de documentos HTML no diretrio / Usr / share / doc / en / books:

/ 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 / porteiros-handbook / index.html um manual para os contribuintes


a Coleo de Ports do FreeBSD, que discutiremos no Captulo 9, As Portas
Collection.

/ 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.

Alm do directrio / Usr / share / doc / en / livros, h tambm um diretrio


/ Usr / share / doc / en / Artigos com um nmero de itens mais curtos de documentao.
Note-se a componente en nos caminhos acima. Isso significa Ingls. Um certo nmero de
esses livros tambm so instalados em outras lnguas: mudar en a de para uma verso em alemo,
a es para o espanhol, para fr para o francs, a ja para os japoneses, a ru para o russo, ou zh para
Chins. Esforos de traduo continuam, assim voc pode encontrar documentao em outro
idiomas.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

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)

FreeBSD Manual de Referncia

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)

Documentao do sistema FreeBSD


(Etc)

14

cada operando que nomeia um arquivo do tipo diretrio, ls exibe os nomes.

Neste exemplo em particular, com a excepo da primeira linha, o texto constante


largura negrito no a entrada, a maneira como ele aparece na tela.
O manual online dividido em sees numeradas:
1. Comandos do usurio
2. Chamadas de sistema e nmeros de erro
3. Funes nas bibliotecas C
4. Os drivers de dispositivo
5. Formatos de arquivo
6. Jogos e outras diverses
7. Informao diversa
8. Manuteno do sistema e comandos de operao
9. Documentao da interface Kernel
Em alguns casos, o mesmo tpico pode aparecer em mais do que uma seco do manual on-line.
Por exemplo, h um comando de utilizador chmod e uma chamada de sistema chmod (). Neste caso,
voc pode dizer a homem comando que voc quiser especificando o nmero da seo:
$ Man 1 chmod

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 *

introduction.mm, v v4.22 (2003/04/02 06:36:16)

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 ...

Imprimindo pginas de manual


Se voc preferir ter pginas de manual em verso impressa, em vez de na tela, voc pode fazer isso em dois
maneiras diferentes:

A maneira mais simples redirecionar a sada para o spooler:


$ Man ls | lpr

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.

Voc pode obter uma sada compor com troff :


$ Man-t ls | lpr

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?.

Outra documentao sobre FreeBSD


Usurios do FreeBSD tem acesso a, provavelmente, mais documentao de alta qualidade do que apenas sobre
de qualquer outro sistema operativo. Lembre-se de que a palavra UNIX marca registrada. Claro, o
advogados nos dizem que no podemos nos referir ao FreeBSD como UNIX, UNIX, porque pertence
Open Group. Isso no faz a menor diferena para o fato de que quase todos os livros
em UNIX se aplica mais diretamente para FreeBSD do que qualquer outro sabor do UNIX. Por qu?
introduction.mm, v v4.22 (2003/04/02 06:36:16)

Outra documentao sobre FreeBSD

16

Fornecedores de UNIX comerciais tm um problema, e FreeBSD no ajud-los: por que


as pessoas compram seus produtos quando voc pode obt-lo gratuitamente a partir do Projeto FreeBSD (ou, para que
matria, de outros sistemas operacionais UNIX-like livre como NetBSD, OpenBSD e
Linux)? Uma razo bvia seria'' recursos de valor agregado.'' Assim que adicionar recursos ou
corrigir pontos fracos no sistema, colocar um autor sobre as mudanas e ajudar a bloquear a sua
clientes para o seu especial de execuo. Enquanto as alteraes so muito teis,
isso legtimo, mas faz o sistema operacional menos compatvel com padro''
UNIX'', e os livros sobre o padro UNIX so menos aplicveis.
Alm disso, muitos livros so escritos por pessoas com formao acadmica. No
UNIX mundo, isso significa que eles so mais propensos do que o usurio mdio ter sido
exposto a DEB. Muitos livros gerais UNIX lidar principalmente BSD, possivelmente com uma
captulo adicional sobre a verso comercial do sistema V.
No Apndice A, Bibliografia, voc vai encontrar uma lista de livros que eu acho que vale a pena. Eu gostaria de
destacar alguns que eu acho particularmente bom, e que eu freqentemente me usar:

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.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

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:

FreeBSD-questions@FreeBSD.org a lista para a qual voc pode enviar geral


perguntas, em particular sobre como usar o FreeBSD. Utilize este se voc no tiver certeza
que o mais adequado.

FreeBSD-newbies@FreeBSD.org uma lista de recm-chegados ao FreeBSD. destinado


para as pessoas que se sentem um pouco assustados com o sistema e precisa de um pouco de tranquilidade.
no o lugar certo para fazer qualquer tipo de questo tcnica.

FreeBSD-hackers@FreeBSD.org uma lista de discusso tcnica.


FreeBSD-current@FreeBSD.org uma lista obrigatria para as pessoas que dirigem o
verso de desenvolvimento do FreeBSD, chamado FreeBSD-CURRENT. Falaremos sobre
-CURRENT, como normalmente chamado, nas pginas 580 e 613.

Voc pode encontrar a lista completa no site.


Para participar de uma lista, envie uma mensagem de correio para majordomo@FreeBSD.org com os nomes dos
listas que deseja participar:
subscrever FreeBSD-iniciantes
subscrever FreeBSD-questions

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

Envie esta mensagem para majordomo@FreeBSD.org (Que o que voc faria se s


responder), no para a prpria lista. Voc vai ter uma outra resposta de volta:
Bem-vindo lista de discusso FreeBSD-questions!
Por favor, salve esta mensagem para referncia futura. Obrigado.
Se voc quiser remover-se esta lista,
voc pode enviar e-mail para <Majordomo@FreeBSD.ORG> com a seguinte
comando no corpo da sua mensagem de e-mail:
unsubscribe FreeBSD-questions
ou de outra conta, alm grog@example.org:
unsubscribe FreeBSD-questions grog@example.org
Se voc precisar entrar em contato com o proprietrio da lista,
(Se voc tiver problemas para cancelar ou tiver dvidas sobre o
prpria lista) enviar e-mail para <owner-freebsd-questions@FreeBSD.ORG>.
Esta a regra geral para a maioria das listas de discusso quando voc precisar
entrar em contato com um ser humano.
Aqui est a informao geral para a lista que voc subscreveu,
no caso de voc j no tem isso:
FreeBSD-questions perguntas do usurio
Esta a lista de discusso para perguntas sobre FreeBSD. Voc no deve
enviar "como fazer" perguntas para as listas tcnicas, a menos que voc considere o
pergunta a ser bastante tcnico.

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.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

19

Captulo 1: Introduo

Cancelar a assinatura de listas de discusso


H uma grande quantidade de trfego nas listas de discusso, especialmente em -Questes. Voc pode encontrar
voc no pode lev-la e quer sair de novo. Mais uma vez, envie um e-mail para majordomo @ FreeBSD.org, no lista. Cada mensagem que voc comea a partir das listas de discusso termina com a
o seguinte texto:
Para cancelar a inscrio: envie e-mail para majordomo@FreeBSD.org
com "unsubscribe FreeBSD-questions" no corpo da mensagem

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

Grupos de notcias: alt.humor.best-of-usenet


Subject: [comp.org.usenix] A Grande Daemon Histria
De: Rob Kolstad <kolstad@bsdi.com>
Grupos de notcias: comp.org.usenix
Assunto: A Grande Histria Daemon
Linda Branagan um especialista em daemons. Ela tem uma T-shirt que ostenta o daemon em
tnis que aparece na capa dos manuais 4.3BSD e O Projeto e
Implementao do Sistema Operacional UNIX 4.3BSD por S. Leffler, M. McKusick, M.
Karels, J. Quarterman, Addison Wesley Publishing Company, Reading, MA 1989.
Ela conta a seguinte histria sobre vestindo a t-shirt daemon 4.3BSD:
Na semana passada eu andei em um'' restaurante / rega estilo caseira, 'buraco no local''
Texas para pegar uma ordem de take-out. Falei brevemente para a garonete atrs do balco,
que me disse que meu pedido seria feito em poucos minutos.
Ento, enquanto eu estava ocupado olhando para a implementos agrcolas penduradas nas paredes, eu estava
abordado por dois nativos''.'' Esses caras s poderia ser os rednecks Texas originais.
'' Perdoe-nos, senhora. Importa-se que lhe fazer uma pergunta?''
Bem, as pessoas ficam me dizendo que Texans so reais amigvel, ento eu assenti.
'' um satanista?''
Bem, pelo menos eles no me perguntar se eu gostava de festa.
'' Uh, no, eu no posso dizer que eu sou.''
'' Nossa, minha senhora. Tem certeza sobre isso?'' Eles pediram.
Eu coloquei a minha maior, mais brilhante Dallas Cowboys cheerleader sorriso e disse:'' No, eu sou
positivo. O mais prximo que eu j vir com o satanismo est assistindo Geraldo.''
'' Hmmm. Interessante. Veja, ns s estava me perguntando por que que voc tem o senhor de
escurido em seu peito l.''
Eu estava to perto de tapa um deles e fazendo com que uma cena, ento eu parei e
notado a camisa aconteceu de eu estar usando naquele dia. Com certeza, ele tinha uma foto de um
pequena criatura, com aparncia diablica que tem j h algum tempo foi associada a um
determinado sistema operacional. Nesta representao particular, a criatura estava vestindo
tnis.
Eles continuaram:'' Veja, minha senhora, no exatamente apreci-lo quando as pessoas mostram off
fotos do diabo. Especialmente quando ele est olhando to amigvel.''
Esses idiotas soou terrivelmente srio.
Me:'' Oh, bem, veja, isso no realmente o diabo, apenas, bem, uma espcie de mascote.
Native:?'' E que tipo de time de futebol tem o diabo como mascote''
Me:'' Oh, no uma equipe. uma operao-uh, uma espcie de computador.''
Eu percebi que um caixa eletrnico foi tanta tecnologia como esses caras poderiam
lidar, e eu sabia que se eu tanto como pronunciou a palavra'' UNIX'' Eu s faria
coisas piores.
introduction.mm, v v4.22 (2003/04/02 06:36:16)

21

Captulo 1: Introduo

Native:'' Onde que este computador satnico vem''?


Me:'' Califrnia. E no h nada de satnico nisso de verdade.''
Em algum lugar ao longo da linha aqui, a garonete notou a minha situao, mas esses caras
provavelmente superado seu por 600 libras, ento tudo que ela fez foi olhar para mim com simpatia
e correr para a cozinha.
Native:'' Minha senhora, eu acho que voc est mentindo. E ns apreciaramos se voc deixar o
instalaes agora.''
Felizmente, a garonete voltou mesmo instante com o meu pedido, e eles concordaram que
seria bom para mim, na verdade, pagar a minha comida antes de eu sair. Enquanto eu estava no
registo de dinheiro, eles se divertiam conversando entre si.
Native # 1:'' Voc acha que a polcia sabe sobre esses computadores diabo''?
Native # 2:'' Se eles vm da Califrnia, em seguida, o FBI deveria saber sobre eles.''
Eles me acompanhou at a porta. Eu tentei uma ltima vez:'' Voc realmente est soprando isso tudo
de proporo. Muitas pessoas usam esse 'tipo de computadores. Universidades, pesquisadores,
empresas. Eles so realmente muito til.''
Grande, grande, grande erro. Eu devia ter adivinhado o que veio a seguir.
Native:'' Ser que o governo use esses computadores diabo''?
Me:.'' Sim''
Outro grande boo-boo.
Native:'' E se o governo pagar por eles? Com o dinheiro de nossos impostos?''
Eu decidi que era hora de pular do barco.
Me:'' No. No.. Nem um pouco. Seus dlares de impostos nunca entrou em cena em tudo. Eu
promessa. No senhor, nem um centavo. Nossas boas congressistas cristos nunca deixaria
algo como isso acontecer. No.. Nunca. Bye.''
Texas. O que um pas.
A tradio remonta daemon uma maneira muito. To recentemente quanto 1996, aps a publicao de
a primeira edio deste livro, a seguinte mensagem atravessou o FreeBSD-chat
lista de discusso:
Para: "Jonathan M. Bresler" <jmb@freefall.freebsd.org>
Cc: obrien@antares.aero.org (Mike O'Brien),
joerg_wunsch@uriah.heep.sax.de,
chat@FreeBSD.org, juphoff@tarsier.cv.nrao.edu
Data: Tue, 7 de maio de 1996 16:27:20 -0700
Sender: owner-chat@FreeBSD.org
>
detalhes e gifs POR FAVOR!
Se voc insistir. :-)
Sherman, definir o Wayback Machine por volta de 1976 ou assim (ver Peter Salus " A
Quarto de sculo de UNIX para mais detalhes), quando a primeira reunio UNIX realmente nacional era
realizada em Urbana, Illinois. Isso seria depois de'' quarenta pessoas em um Brooklyn
introduction.mm, v v4.22 (2003/04/02 06:36:16)

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.

introduction.mm, v v4.22 (2003/04/02 06:36:16)

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.

Usando hardware antigo


FreeBSD executado em todas as mquinas relativamente recentes. Alm disso, um monte de hardware mais antigo, que
est disponvel por uma quantia nominal, ou at mesmo de graa, funciona FreeBSD completamente feliz, mas voc
pode precisar de tomar mais cuidado na instalao.
FreeBSD no suporta todo o hardware PC: o PC tem sido no mercado h mais de 20
anos, e mudou muito nesse tempo. Em particular:
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

25

26

Captulo 2: Antes de instalar

FreeBSD no suporta 8 bits e processadores de 16 bits. Estes incluem a 8086 e


8088, as quais foram utilizadas na IBM PC e PC-XT e clones, e a 80286, usado em
o IBM PC-AT e os clones.

O kernel FreeBSD no suporta mais o ST-506 e ESDI. improvvel que voc


ter qualquer um destes: eles so agora to velho que a maioria deles falharam. O wd motorista
ainda inclui suporte para eles, mas no foi testado, e se voc quiser usar este
tipo de unidade que voc pode achar que melhor usar FreeBSD Release 3. Consulte a pgina 31 para encontrar
como identificar essas unidades. Voc pode obter a verso 3 do FreeBSD a partir de
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.x-STABLE. Voc vai ter que performar uma instalao de rede.

Os requisitos de memria para FreeBSD tm aumentado significativamente nos ltimos anos,


e voc deve considerar 16 MB de tamanho mnimo, mas ningum tem recentemente
verificado se ele no iria instalar em, digamos, 12 MB. FreeBSD Release 3 ainda corre na 4
MB, mas voc precisa de 5 MB para a instalao.

Se voc estiver planejando instalar FreeBSD em uma mquina antiga, considere o seguinte para ser um
mnimo absoluto:

PC com 80386 CPU, mquina baseada em Alpha com firmware SRM.

16 MB de memria (Intel) ou 24 MB (Alpha).

80 MB de espao livre em disco (Intel). Ningum tentou uma instalao em um Alpha ou


Mquina SPARC com menos de 500 MB, mas voc provavelmente pode reduzir esse valor
significativamente.

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)

Usando hardware antigo

PC com 80486DX/2-66 ou mquina baseada em Alpha

SVGA placa de vdeo com 2 MB de memria, 1024x768

Mouse

200 MB de espao livre em disco

27

32 MB de memria (i386) ou 64 MB (Alpha)

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

Captulo 2: Antes de instalar

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.

Em paralelo ao MCA, outros fabricantes introduziram um nibus chamado Alargado


Industry Standard Architecture, ou EISA. Como o nome sugere, uma maior
extenso desempenho do ISA, e FreeBSD suporta. Como MCA, obsoleto.

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

de suficiente inteligncia para que o sistema possa configur-los, o que simplifica


a instalao do sistema ou de novas placas.
Placas-me modernas tambm tm um AGP (Accelerated Graphics Port) Slot especifily projetado para suportar exatamente uma placa grfica. Como o nome indica, mais rpido, mesmo
do PCI, mas otimizado para apenas grficos. FreeBSD suporta, claro;
caso contrrio, no poderia ser executado em hardware moderno.
A maioria dos laptops tm disposio para o externo plug-in cartes que estejam em conformidade com o PC Card
(Antigamente chamado PCMCIA) ou CardBus normas. Estes cartes so projetados para serem
inserido e removido a partir de um sistema de execuo. FreeBSD tem suporte para estes
cartes; vamos olh-los com mais detalhes na pgina 30.
Cada vez mais, as portas seriais e paralelas bsicos instalados no incio dos PCs esto sendo
substitudo por um Universal Serial Bus ou USB. Vamos olhar para ele na pgina 31.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

PC Hardware

29

Como o sistema detecta o hardware


Quando o sistema iniciado, cada driver no kernel examina o sistema para encontrar qualquer
hardware que pode ser capaz de controlar. Este exame chamado sondagem. Dependendo
no driver e da natureza do hardware suportado por elas, a sonda pode ser inteligente o bastante
para configurar o hardware em si, ou a reconhecer o seu hardware no importa como ele foi definido
acima, ou pode esperar que o hardware a ser criado de uma maneira especfica, a fim de encontr-lo. Em
Geralmente, voc pode esperar motoristas PCI para ser capaz de configurar a placa para funcionar corretamente. No
caso do ISA ou placas EISA, voc pode no ter tanta sorte.

Configurando placas ISA


Placas ISA esto rapidamente se tornando obsoleto, mas s vezes eles ainda so teis:

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.

Muitas placas seriais ISA e modems internos ainda esto disponveis.

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

Captulo 2: Antes de instalar

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.

PCMCIA, PC Card e CardBus


Laptops no tem espao suficiente para slots de expanso PCI normais, embora muitos usam um
formato de carto PCI menor. mais comum ver PC Card ou CardBus cartes, no entanto.
PC Card foi originalmente chamado PCMCIA, que significa Personal Computer Memory
Associao Internacional de carto: o primeiro objetivo do nibus foi para expandir a memria.
Hoje em dia a expanso de memria tratado por outros meios, e os cartes PC Card so normalmente
perifricos, como placas de rede, modems ou discos. verdade que voc pode inserir compacto
memria flash para cmeras digitais em um adaptador de carto de PC e acess-lo a partir de FreeBSD, mas
mesmo neste caso, o carto de um disco, no um carto de memria.
O padro de carto PC original j tem um p na cova: um barramento de 16 bits que
no funciona bem com computadores portteis modernos. O padro de substituio tem um barramento de 32 bits de largura
e chamado CardBus. As cartas parecem quase idnticos, e laptops mais modernos suportam
ambos os padres. Neste livro eu vou usar usar o termo PC Card para incluir CardBus salvo
indicado de outra forma. FreeBSD Release 5 inclui completamente novo cdigo PC Card. Ele agora
suporta tanto o PC Card de 16 bits e de 32 bits placas CardBus.
PC Card oferece um conceito que os cartes convencionais no: os cartes so hot swappable.
Voc pode inseri-los e remov-los em um sistema em execuo. Isso representa um nmero de
potenciais problemas, alguns dos quais so parcialmente solucionados.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

PCMCIA, PC Card e CardBus

31

PC Card e cartes CardBus


PC Card e CardBus ambos usam a mesma forma de fator cartes: so 54 mm de largura e em
menos 85 mm de comprimento, embora alguns cartes, cartes de rede sem fio, visivelmente so at
120 milmetros de comprimento e projecto para alm da carcaa do laptop. As placas wireless conter uma
antena na parte da placa, que se projecta a partir da mquina.
Cartes PC Card pode ter um dos trs espessuras padro:

Tipo 1 cartes so 3,3 milmetros de espessura. Eles so muito raros.

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.

Universal Serial Bus


O Universal Serial Bus (USB) uma nova maneira de se conectar perifricos externos,
normalmente aqueles que costumava ser conectados por portas seriais ou paralelas. muito mais rpido do que
os componentes antigos: a velha interface serial tinha uma velocidade mxima de 115.200 bps, e
o mximo que voc pode esperar de transferir a porta paralela de cerca de 1 MB / s. Por
comparao, os atuais implementaes USB transferir dados a at 12 Mb / s, e uma verso
com 480 Mb / s est em desenvolvimento.
Como o nome indica, um USB nibus: voc pode conectar vrios dispositivos a um barramento. Atualmente
os dispositivos mais comuns so dispositivos meados de velocidade, tais como impressoras e scanners, mas voc
pode conectar praticamente qualquer coisa, incluindo teclados, mouses, placas Ethernet e massa
dispositivos de armazenamento.

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

32

Captulo 2: Antes de instalar

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.

SCSI o Sistemas Small Computer Interface. geralmente pronunciado'' scuzzy.''


usado para discos, fitas, CD-ROMs e tambm outros dispositivos, como scanners e
impressoras. O controlador SCSI mais corretamente chamado de sediar adaptador. Como IDE,
SCSI tem evoludo significativamente ao longo do tempo. Dispositivos SCSI so conectados por um nico plano
cabo com condutores (50'' SCSI estreito'', que conecta de um total de oito dispositivos) ou 68
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

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.

Layout de dados em disco


Antes de instalar o FreeBSD, voc precisa decidir como voc deseja usar o espao em disco
disponveis para voc. Se desejar, o FreeBSD pode coexistir com outros sistemas operacionais no
Plataforma Intel. Nesta seo, vamos olhar para a forma como os dados so dispostos no disco, e que ns
precisa fazer para criar sistemas de arquivos do FreeBSD no disco.

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

Captulo 2: Antes de instalar

e tambm, opcionalmente, manter a iluso de faixas'''' e'' cabeas'', embora os valores


no tem nada a ver com a organizao interna do disco. No entanto, a configurao do BIOS
rotinas ainda dar-lhe a opo de especificar as informaes sobre as unidades de disco em termos de
o nmero de cilindros, cabeas e setores, e alguns insistem nisso. Na realidade, o disco moderno
setores endereo discos sequencialmente, os chamados Logical Block Addressing ou LBA. CHS
endereamento tem um problema adicional: vrios padres tm limitado o tamanho dos discos a
504 MB ou 8 GB. Ns vamos olhar para isso com mais detalhes na pgina 39.
Drives SCSI so uma questo diferente: o sistema BIOS normalmente no sabe nada
sobre eles. Eles so sempre abordados em modo LBA. at o adaptador host para
interrogar o carro e descobrir quanto espao est nele. Normalmente, o adaptador host tem
um BIOS que interroga a unidade e encontra suas dimenses. Os valores que determina podem
no estar correto: a BIOS limite de endereo GB PC 1 (ver pgina 39) pode mord-lo. Verificar
a documentao do adaptador de host para mais detalhes.

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

Layout de dados em disco

35

Master Boot Record


Partition Table
Partition (fatia) 1
/ Dev/da0s1
Partition (fatia) 2
/ Dev/da0s2
Partition (fatia) 3
/ Dev/da0s3
Partition (fatia) 4
/ Dev/da0s4

Figura 2-1: A tabela de partio


Uso do PC designa, pelo menos, uma fatia como o partio primria, o C: dirigir. Outro
fatia pode ser designado como um partio estendida que contm as outras unidades'''' (todos
juntos em uma fatia).
Sistemas UNIX tem sua prpria forma de particionamento que antecede o PC e no
compatvel com o mtodo de PC. Como resultado, todas as verses do UNIX que pode coexistir com
Microsoft implementar a sua prpria separao dentro de uma nica fatia (partio PC BIOS).
Isso conceitualmente semelhante a uma partio estendida. Sistemas FreeBSD definir at oito
parties por fatia. Eles podem ser usados para as seguintes finalidades:

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.

Dispositivos de bloco e de carter


UNIX tradicional trata dispositivos de disco de duas maneiras diferentes. Como vimos, possvel
pensar de um disco como um grande nmero de blocos sequenciais de dados. Olhando para ele como esta
no lhe d um sistema de arquivo que mais como trat-la como uma fita. UNIX chama esse tipo
de acesso cru acesso. Voc tambm vai ouvir o termo dispositivo de carter.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

36

Captulo 2: Antes de instalar

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:

Como todos os outros dispositivos, o ns de dispositivos, as entradas que descrevem os dispositivos so


armazenado no diretrio / Dev. Ao contrrio tradicional UNIX e verses mais antigas do FreeBSD,
FreeBSD Release 5 inclui o sistema de arquivos do dispositivo ou devfs, o que cria o dispositivo
ns automaticamente, assim voc no precisa se preocupar em criar-los sozinho.

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)

Layout de dados em disco

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

38

Captulo 2: Antes de instalar

Master Boot Record


Partition Table
Bootstrap
Fatia 1 - PC BIOS principal
/ Dev/da0s1

PC BIOS C: conduzir
PC BIOS D: conduzir / Dev/da0s5

Slice 2 - PC BIOS estendida


/ Dev/da0s2

PC BIOS E: conduzir / Dev/da0s6

Slice 3 - FreeBSD
/ Dev/da0s3

/ Dev/da0s3a: / sistema de arquivos


/ Dev/da0s3b: troca
/ Dev/da0s3d: no utilizado
/ Dev/da0s3e: / usr sistema de arquivos
/ Dev/da0s3f: no utilizado
/ Dev/da0s3g: no utilizado
/ Dev/da0s3h: no utilizado

Figura 2-2: A tabela de partio com o sistema de arquivos do FreeBSD


Tabela 2-1 fornece uma viso geral dos dispositivos FreeBSD define para este disco.
Tabela 2-1: Terminologia partio de disco
Nome Slice
/ Dev/da0s1
/ Dev/da0s2
/ Dev/da0s3
/ Dev/da0s5
/ Dev/da0s6
/ Dev/da0s3a
/ Dev/da0s3b
/ Dev/da0s3c
/ Dev/da0s3e
/ Dev/da0a
/ Dev/da0b
/ Dev/da0c
/ Dev/da0e

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

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

Layout de dados em disco

39

Fazendo com que os sistemas de arquivos


Armado com este conhecimento, podemos agora continuar a tomar algumas decises sobre como
instalar nossos sistemas. Em primeiro lugar, preciso responder a algumas perguntas:

Queremos compartilhar este disco com qualquer outro sistema operacional?

Se assim for, ns temos dados sobre o disco que quer manter?

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.

Limitaes de tamanho de disco


Capacidade de armazenamento em disco cresceu em vrias ordens de magnitude desde FreeBSD foi o primeiro
liberado. Como ele fez isso, uma srie de limites tornou-se evidente:

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

40

Captulo 2: Antes de instalar

s 4 GB, alguns controladores de IDE tm problemas porque converter isso em um CHS


mapeamento com 256 cabeas, que no funciona: o maior nmero 255. Novamente, se
voc tem certeza esta a causa dos problemas que voc pode ter um novo controlador pode
ajudar.

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.

Use o endereamento LBA se seu hardware suporta.

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

Em muitos outros ambientes, o GUI eo display grfico so a mesma coisa, e em


alguns sistemas, nomeadamente da Microsoft, no h distino clara entre o operacional
sistema ea GUI. Em UNIX, h pelo menos quatro nveis de abstrao:

O kernel executado no computador.

Interfaces de X com o kernel e corre o display. Ele no exibe em si nada


exceto, possivelmente, um fundo de tela, por padro, um padro de cross-hatch cinza.

O gerenciador de janelas lhe d o controle sobre as janelas, como mover, redimensionar


e iconification (Muitas vezes chamado minimizando em outros sistemas). Ele fornece as janelas
com decoraes como quadros, botes e menus.

O ambiente de trabalho fornece aplicaes e formas de inici-los usados. Muitos


pessoas passar sem um desktop usando a funcionalidade de gerenciador de janelas.

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

42

Captulo 2: Antes de instalar

A placa de vdeo e monitor


X permite-lhe fazer muito mais em paralelo do que outros ambientes de janelas. Como
resultado, tela imobilirio est em um prmio. Use um monitor to grande quanto voc pode pagar, e como
uma alta resoluo de seu monitor pode suportar. Voc deve ser capaz de exibir uma resoluo
de 1600x1200 num monitor ", 1280x1024 em 17" do monitor 21, e em um 1024x768 14 "
monitorar. Qualidade premium 21 "monitores podem exibir 2048x1536. Se isso no for suficiente,
vamos olhar para vrias configuraes do monitor na pgina 523.

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.

Compaq / Digital mquinas Alpha


FreeBSD tambm suporta computadores com base na Compaq (anteriormente Digital) AXP
processador, comumente chamado Alpha. Grande parte das informaes acima tambm se aplica
Alpha; excees notveis so:

Grande parte do hardware PC mencionado acima no foi fornecido com o Alpha. Este
vale principalmente para hardware mais antigo.

A BIOS do PC muito diferente do firmware do console Alpha. Veremos que


abaixo.

Particionamento de disco diferente. FreeBSD no suporta mltiplos sistemas operacionais


na plataforma Alpha.

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)

Compaq / Digital mquinas Alpha

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

44

Captulo 2: Antes de instalar

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.

Tabela 2-2 lista os arquivos tpicos no diretrio principal do CD-ROM de instalao.


Tabela 2-2: O CD-ROM de instalao
Arquivo
ERRATA.TXT

Contedo
A lista de alteraes de ltima hora. Leia este arquivo. Ela pode salvar
um monte de dores de cabea.

HARDWARE.TXT

A lista de hardware suportado.

INSTALL.TXT

Informaes sobre a instalao do FreeBSD.

LEIAME.TXT

O primeiro arquivo tradicional de ler. Ele descreve como utilizar o


outros arquivos.

RELNOTES.TXT

Solte notas.

base

Diretrio de instalao: a distribuio base do sistema.


Este o diretrio somente necessrio para a instalao. Ver
Captulo 5, Instalando o FreeBSD, para obter mais detalhes.

bota

Arquivos relacionados a inicializao, incluindo o kernel de instalao.

catpages

Pginas de manual pr-formatados. Consulte a pgina 13 para mais detalhes.

cdrom.inf

Arquivo legvel por mquina que descreve o contedo do CD-ROM para


o benefcio sysinstall.

compat1x

Diretrio contendo bibliotecas para manter a compatibilidade


com 1.X Lanamento do FreeBSD.

compat20

Diretrio contendo bibliotecas para manter a compatibilidade


com a verso 2.0 do FreeBSD.
concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

A distribuio do CD-ROM

Arquivo
compat21

Contedo
Diretrio contendo bibliotecas para manter a compatibilidade
com a verso 2.1 do FreeBSD.

compat22

Diretrio contendo bibliotecas para manter a compatibilidade


com a Verso 2.2 do FreeBSD.

compat3x

Diretrio contendo bibliotecas para manter a compatibilidade


com a verso 3 do FreeBSD.

compat4x

Diretrio contendo bibliotecas para manter a compatibilidade


com Release 4 do FreeBSD.

crypto

Diretrio de instalao: software de criptografia.

dict

Diretrio de instalao: dicionrios.

doutor

Diretrio de instalao: documentao.

docbook.css

Folha de estilo para a documentao.

nomedeficheiro.txt A lista de todos os arquivos deste CD-ROM.


disquetes

Um diretrio contendo instalao de imagens de disco.

jogos

Diretrio de instalao: games.

Informaes

Diretrio de instalao: GNU Info documentos.

ncleo

O kernel de inicializao.

manpages

Um diretrio contendo as pginas do manual para a instalao.

pacotes

Um diretrio contendo verses instalveis dos Portos


Collection. Consulte a pgina 168.

portas

As fontes para a Coleo de Ports. Consulte o Captulo 9, O


Coleo de Ports, pgina 167.

proflibs

Um diretrio contendo bibliotecas perfilados, til para


identificar problemas de desempenho durante a programao.

src

Um diretrio contendo os arquivos de origem do sistema.

ferramentas

Um diretrio contendo ferramentas para preparar a instalao de


outro sistema operativo.

O . TXT arquivos tambm so fornecidos em formato HTML com um . HTM sufixo.


O contedo do CD-ROM ser quase certamente mudar de uma verso para outra.
Ler LEIAME.TXT para obter detalhes sobre as mudanas.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

45

46

Captulo 2: Antes de instalar

Vivo CD-ROM File System


Embora o CD-ROM de instalao contm tudo que voc precisa para instalar o FreeBSD, o
formato no o que voc gostaria de lidar todos os dias. A distribuio pode incluir um Arquivo Vivo
Sistema CD-ROM, que resolve este problema: contm substancialmente os mesmos dados
armazenado no formato do sistema de arquivos da mesma forma que voc iria instal-lo em um disco rgido.
Voc pode acessar os arquivos diretamente a partir deste CD-ROM.

CVS Repository CD-ROM


Um dos discos pode tambm conter o'' CVS Repository.'' O repositrio o mestre
rvore fonte de todo o cdigo-fonte, incluindo todas as informaes de atualizao. Vamos dar uma olhada em mais
pormenor no captulo 31, Manter-se atualizado, pgina 581.

O Ports coleo de CD-ROMs


Uma parte importante do FreeBSD o Portas coleo, que inclui muitos mil
programas populares. A Coleo de Ports automatiza o processo de software portabilidade para
FreeBSD. A combinao de vrias ferramentas de programao j est disponvel na base
Instalao FreeBSD permite que voc simplesmente digitar fazer instalar um determinado pacote. O
mecanismo de portas faz o resto, ento voc precisa de espao em disco suficiente apenas para construir os portos
querem. Vamos dar uma olhada na coleo de Ports em mais detalhes no Captulo 9. Os arquivos so distribudos
ao longo de vrios CD-ROMs:

Voc encontrar o portas, as instrues para a construo dos pacotes, na instalao


CD-ROM.

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.

concepts.mm, v verso 4.21 (2003/04/02 06:37:12)

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.

Tornar as coisas mais fceis para si mesmo


provavelmente mais fcil de instalar FreeBSD do que qualquer outro sistema operacional do PC, incluindo
Produtos da Microsoft. Bem, na maioria das vezes, pelo menos. Algumas pessoas passam dias tentando
instalar o FreeBSD e, finalmente desistir. Isso acontece com os produtos da Microsoft, bem como, mas
infelizmente isso acontece com mais freqncia com FreeBSD.
Agora voc provavelmente est dizendo:'' Isso no faz sentido. Primeiro voc diz que mais fcil
instalar, em seguida, voc diz que mais provvel que no. Qual a verdadeira histria?''
Como voc poderia esperar, a histria real muito envolvido. No Captulo 2, Antes de instalar, eu
entrou em alguns dos antecedentes. Antes de comear, vamos olhar para o que voc pode fazer para
fazer a instalao mais fcil possvel:

quickinstall.mm, v v4.11 (2003/04/09 19:26:40)

47

48

Captulo 3: A instalao rpida

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.

FreeBSD em um disco com espao livre


Este procedimento aplica-se voc pode instalar o FreeBSD sem ter que abrir espao em
disco. Execute as seguintes etapas:
Boot from CD-ROM. A maioria dos sistemas suportam a inicializao a partir de CD-ROM, mas se o seu
no:

Criar dois disquetes de inicializao, copiando as imagens / Cdrom / disquetes / kern.flp e


/ Cdrom / disquetes / mfsroot.flp de 3 "disquetes. Consulte a pgina 89 para mais detalhes.

Insira o CD-ROM na unidade antes de arrancar.


Inicializar a partir do kern.flp disquete. Aps o carregamento, insira o mfsroot.flp disquete quando
o sistema pede-lhe para faz-lo, em seguida, pressione Enter.
Se voc tem um disquete maior, como 2,88 MB ou LS-120, voc pode copiar a imagem
/ Cdrom / disquetes / boot.flp a ele e iniciar a partir dele. Neste caso, voc no precisa mudar
discos.

1. Hackerspeak para'' Leia o manual''-o F geralmente silencioso.


quickinstall.mm, v v4.11 (2003/04/09 19:26:40)

FreeBSD em um disco com espao livre

49

Selecione o Personalizado instalao. Consulte a pgina 60.


O que voc faz no editor de parties depende se voc quer compartilhar a unidade
com outro sistema operacional ou no:

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.

FreeBSD compartilhado com Microsoft


Se voc tiver um disco com Microsoft instalado em apenas uma parte do disco, e voc no quer
alterar o layout da partio, voc pode proceder como nas instrues acima. Isso muito
incomum, porm: normalmente Microsoft leva o disco inteiro, e difcil persuadi-lo
contrrio. Para instalar o FreeBSD em um disco que atualmente contm um nico Microsoft
partio ocupando todo o disco, passar pelas seguintes etapas:
Faa um backup! No h qualquer possibilidade de apagar os dados, e no h
absolutamente nenhuma razo para que voc deve assumir o risco.
Se voc tiver uma mquina antiga com um disco IDE com mais de 504 MB, voc pode executar em
problemas. Consulte a pgina 32 para mais detalhes.
Bota Microsoft e reparticionar o disco com FIPS. Consulte a pgina 52.
Insira o CD-ROM na unidade antes de arrancar.

quickinstall.mm, v v4.11 (2003/04/09 19:26:40)

50

Captulo 3: A instalao rpida

Desligue a mquina e reiniciar a partir do CD-ROM FreeBSD. Se voc tiver que


inicializar a partir do disquete, consulte a pgina 48 para mais detalhes.
Selecione o Personalizado instalao.
No editor de parties, apague apenas a segunda partio primria Microsoft. O primeiro
partio primria Microsoft contm os dados da Microsoft, e se houver um prolongado
Microsoft partio, ele tambm ir conter seus dados da Microsoft.
Criar uma fatia FreeBSD no espao que foi libertada. Consulte a pgina 63.
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.
Antes de deixar o editor rtulo de disco, selecione tambm os pontos de montagem para as parties DOS
se voc pretende mont-los no FreeBSD. Consulte a pgina 74.
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.

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.

quickinstall.mm, v v4.11 (2003/04/09 19:26:40)

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.

Antes de iniciar a instalao, leia este captulo com ateno.


fcil cometer um erro, e um dos resultados mais freqentes
de erros a perda total de todos os dados no disco rgido.
Atualmente, apenas o ia32 (Intel) port do FreeBSD capaz de compartilhar com os outros
sistemas operacionais. Vamos nos concentrar em como compartilhar o seu sistema com a Microsoft,
porque isso tanto mais difcil ea mais comum, mas a maior parte deste captulo
aplica-se a outros sistemas operacionais tambm. Voc pode querer referir-se discusso de
Layouts de disco da Microsoft e FreeBSD na pgina 34.

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.

Compartilhando com Linux ou outro BSD


Compartilhamento com outros sistemas operacionais livres relativamente simples. Voc ainda precisa ter
espao para o FreeBSD, claro, e ao contrrio da Microsoft, no h ferramentas para encolher
Linux ou BSD sistemas de arquivos: voc vai ter que remov-los ou recri-los. Voc pode encontrar
algumas informaes sobre a partilha com Linux no mini-Howto
em
http://www.linux.org/docs/ldp/howto/mini/Linux+FreeBSD.html.
NetBSD e OpenBSD sistemas de arquivos e fatias so muito semelhantes ao seu FreeBSD
homlogos. Eles no so idnticos, no entanto, e voc pode achar que um dos sistemas
reconhece a partio de outro sistema e reclama sobre isso, porque no muito
direita. Por exemplo, tem uma NetBSD d partio que pode ir para fora do limite do
slice. FreeBSD no permite isso, ento voc receber uma mensagem de erro inofensiva.

Repartitioning com FIPS


Normalmente, se voc estiver executando o Microsoft em sua mquina, ele ir ocupar todo o
disco. Se voc precisar de todo este espao, claro, no h como instalar outro operacional
sistema assim. Freqentemente, porm, voc vai achar que voc tem espao livre suficiente na
partio. Infelizmente, isso no onde voc quer: voc quer o espao em um novo
partio. H uma srie de maneiras de fazer isso:

shareinstall.mm, v v4.11 (2003/04/02 06:38:41)

53

Captulo 4: Instalao OS Shared

possvel reinstalar o software. Esta abordagem comum no mundo da Microsoft, mas


Usurios do FreeBSD tentar evit-lo.

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:

Antes reparticionar seu disco, faa um backup. Voc pode disparar


no prprio p com este mtodo, eo resultado ser quase
invariavelmente haver perda de dados.
Se voc estiver executando o Microsoft em seu sistema por um longo perodo de tempo, os dados da
partio sero espalhados por todo o partio. Se voc acabou de truncar a partio, voc vai
perder uma grande quantidade de dados, portanto, voc primeiro precisa mover todos os dados para o incio da partio.
Faa isso com o utilitrio de desfragmentao Microsoft. Antes de prosseguir, considere alguns
dicas:

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.

Para mais informaes, leia o FIPS documentao / Cdrom / ferramentas / fips.doc. Em


particular, observar essas limitaes:

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.

shareinstall.mm, v v4.11 (2003/04/02 06:38:41)

Repartitioning com FIPS

54

FIPS ainda no funciona em parties Microsoft prolongados.

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

Em seguida, exclua o arquivo.


Se FIPS no oferece espao em disco, tanto para a criao da nova partio como voc espera,
isto pode significar que:

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.

H arquivos ocultos no espao da nova partio que no foram movidos por


o programa de desfragmentao. Certifique-se de que o programa a que pertencem. Se um arquivo um
arquivo de troca de algum programa (por exemplo NDOS), possvel que possa ser seguramente
suprimido (e ser recriada automaticamente depois, quando surge a necessidade). Veja o seu
manual para obter detalhes.

shareinstall.mm, v v4.11 (2003/04/02 06:38:41)

55

Captulo 4: Instalao OS Shared

Se o arquivo pertence a algum tipo de proteo contra cpia, ser necessrio desinstalar o programa para
que pertence e reinstal-lo aps reparticionamento.

Se voc estiver executando verses anteriores do MS-DOS (antes 5,0), ou


outro sistema operacional, como o OS / 2, ou voc est usando programas como o Stacker, SuperStor, ou Doublespace, leia o FIPS
documentao para outros possveis problemas.
Execuo FIPS
Depois de desfragmentar sua partio Microsoft, voc pode executar FIPS:
C: \> D:
D: \> cd \ tools
D: \ tools \> FIPS
... um monte de informaes sobre direitos autorais
omitido
Pressione qualquer tecla
Qual a unidade (1 = 0x80 / 2 = 0x81)?

mude para CD-ROM


certificar-se de que voc est no diretrio de ferramentas
e iniciar o programa FIPS
fazer o que o computador diz

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)

Repartitioning com FIPS


Verificando o setor de boot ... Ok
Pressione qualquer tecla
Bytes por setor: 512
Setores por cluster: 32
Setores reservados: 32
Nmero de FATs: 2
Nmero de entradas RootDirectory: 0
Nmero de setores (short): 0
Descritor de mdia byte: f8h
Setores por FAT: 9784
Setores por trilha: 63
Cabeas da unidade: 240
Setores ocultos: 63
Nmero de setores (longo): 40083057
Nmero da unidade fsica: 80h
Assinatura: 29h

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

Captulo 4: Instalao OS Shared

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.

shareinstall.mm, v v4.11 (2003/04/02 06:38:41)

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.

Instalao na arquitetura Intel i386


Para instalar o FreeBSD necessrio o software de uma forma que o software de instalao
entende. Voc tambm pode precisar de um disquete de boot. Hoje em dia voc vai quase que invariavelmente
instalar a partir de CD-ROM, ento vamos supor que mdio. Na pgina 85, vamos olhar para alguns
alternativas: instalao de disquete ou atravs da rede.
O primeiro passo para a instalao do FreeBSD iniciar uma verso mnima do sistema operativo.
A maneira mais simples iniciar diretamente a partir do CD-ROM de instalao. Se o seu sistema
no suporta este tipo de bota, bota de disquete. Consulte a pgina 85 para mais detalhes.
A descrio neste captulo baseado em uma instalao de vida real em uma mquina real.
Quando voc instalar o FreeBSD em sua mquina, uma srie de coisas ser diferente,
install.mm, v verso 4.21 (2003/04/02 06:39:30)

59

Instalao na arquitetura Intel i386

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.

Figura 5-1: menu de instalao principal


install.mm, v verso 4.21 (2003/04/02 06:39:30)

61

Captulo 5: Instalando o FreeBSD

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:

Possivelmente configurar as opes.

Configure as parties do disco, que discutiremos na prxima seo.

Criar sistemas de arquivos e espao de troca dentro de uma fatia FreeBSD, que comeam na pgina
67.

Escolha o que voc quer instalar, o que discutimos na pgina 75.

Na verdade, instalar o software. Vamos tratar isso na pgina 77.

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Iniciando a sysinstall

62

Figura 5-2: As opes de instalao personalizada

Definir as opes de instalao


O primeiro item do menu para definir as opes de instalao. No h provavelmente muito
voc vai querer mudar. Sobre a nica coisa de interesse pode ser o editor CE, que uma
compromisso entre um editor simples para iniciantes e editores mais complicadas, como vi.
Se voc est planejando para editar nada durante a instalao, por exemplo, o arquivo
/ Etc / exportaes, que ns vamos olhar na pgina 560, voc pode preferir definir um editor com o qual
voc est familiarizado. Seleccionar os campos movendo o cursor para a linha e apertando o espao
bar.

Figura 5-3: Opes de instalao

install.mm, v verso 4.21 (2003/04/02 06:39:30)

63

Captulo 5: Instalando o FreeBSD

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.

Figura 5-4: menu de seleo de disco


Esta tela mostra entradas para cada unidade que sysinstall detectou, neste exemplo, a
sistema tem uma unidade ATA (IDE), / Dev/ad0, e uma unidade SCSI, da0. Voc s tem esse
tela, se voc tiver pelo menos dois discos conectados sua mquina, caso contrrio sysinstall
passa automaticamente para a prxima tela.
Se voc pretende usar mais de um disco para o FreeBSD, voc tem a opo de configurar tudo
discos agora, ou definindo os outros at depois que o sistema est instalado e funcionando. Vamos olhar para o
Esta ltima opo no Captulo 11, na pgina 199.
Para selecionar o disco no qual voc deseja instalar o FreeBSD, mova o cursor para a
linha apropriada e pressione a barra de espao. A tela que voc comea provavelmente ser a aparncia
Figura 5-5. Tabela 5-1 explica o significado das colunas nesta exibio. O primeiro
partio contm o Master Boot Record, que exatamente um setor muito tempo, eo
inicializao, que pode ser de at 15 sectores longo. As ferramentas de particionamento usar o completo
primeira faixa: neste caso, a informao sobre a geometria do BIOS diz que tem 63 sectores
por faixa.
Neste caso, o sistema de arquivos Microsoft usa-se o disco inteiro, exceto para a ltima faixa,
1008 sectores (504 kB), no final do disco. Claramente no h muito deixou de compartilhar. Ns
tem a opo de remover a partio Microsoft, o que veremos aqui, ou podemos
encurt-lo com FIPS. Olhamos para FIPS no Captulo 4, pgina 52, e vamos olhar para o que
a ver com o layout resultante na pgina 66.
install.mm, v verso 4.21 (2003/04/02 06:39:30)

Particionamento do disco

64

Figura 5-5: Menu editor de partio


No se esquea que se voc remover uma partio, voc perde todos os dados
na mesma. Se a partio contm qualquer coisa que voc deseja manter, fazer
se voc tem um backup legvel.
Voc remover a partio com o d de comando. Depois disso, sua tela se parece com:

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.

No utilize o W (Gravar alteraes) comando aqui. destinado


para uso somente quando o sistema estiver em funcionamento.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

65

Captulo 5: Instalando o FreeBSD

Tabela 5-1: informaes fdisk

Compensar

Coluna

Descrio
O nmero do primeiro sector da partio.

Tamanho

O comprimento da partio em sectores.

Final

O nmero do ltimo sector na partio.

Nome

Quando presente, este o nome do dispositivo que o FreeBSD atribui partio.


Neste exemplo, a segunda entrada tem um nome.

Ptype

O tipo de partio. Partio do tipo 6 o Master Boot Record, que


exatamente uma pista longa (note que o cabealho diz que esta unidade tem 63 setores
por faixa). Tipo 2 uma partio normal.

Desc

A descrio textual do tipo de partio. gordura stands para File Allocation


Mesa, uma parte central da estratgia de alocao de espao em disco Microsoft.

Subtipo

O subtipo partio. Isto corresponde ao texto descritivo.

Bandeiras Pode ser um ou mais dos seguintes caracteres:

= A partio alinhado corretamente.


> A partio termina aps o cilindro 1024, que costumava causar problemas
para Microsoft.
A Esta a partio ativa (de arranque).
B A partio emprega bad144 manuseio mau-spot.
C Esta uma partio compatibilidade do FreeBSD.
R Esta partio contm um sistema de arquivos raiz.
Em um PC, a prxima tela pede que tipo de inicializar selector (Por outras palavras, MBR) voc
querem. Voc no consegue isso em um Alpha.

Figura 5-6: Menu selector Bota


install.mm, v verso 4.21 (2003/04/02 06:39:30)

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

um padro do MBR. Voc ser capaz de arrancar apenas do ativo


partio.

Nenhum

No altere a MBR. Isto til se voc j tem um outro bota


gerente instalado. Se nenhum MBR est instalado, no entanto, voc no ser capaz de
iniciar a partir deste disco.

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:

Figura 5-7: parties compartilhadas


Esta tela mostra as duas parties da Microsoft, ad0s1 e ad0s2, que o que voc v
depois de usar FIPS, se voc acabou de instalar o Microsoft em uma partio, a partio ad0s2
no estar presente. Se for, voc primeiro precisa remov-lo. Tenha muito cuidado para remover o
partio correta. sempre a segunda das duas paredes, neste caso ad0s2.
install.mm, v verso 4.21 (2003/04/02 06:39:30)

67

Captulo 5: Instalando o FreeBSD

Remova a partio movendo o cursor para a segunda partio e pressionando d.


Depois disso, o visor parece:

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.

Definio de sistemas de arquivos


O prximo passo dizer ao programa de instalao o que colocar na sua partio FreeBSD.
Primeiro, vamos olhar para o caso simples de instalar o FreeBSD por si s. Na pgina 75, veremos
em que as diferenas existem na instalao ao lado de outro sistema operacional no
mesmo disco.
Quando voc seleciona Etiqueta, voc tem a tela mostrada na Figura 5-8.

Figura 5-8: menu do editor de etiqueta


install.mm, v verso 4.21 (2003/04/02 06:39:30)

Definio de sistemas de arquivos

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:

Figura 5-9: Os tamanhos de sistema de arquivos padro


relativamente simples para estimar o tamanho do sistema de arquivos raiz, e valor do sysinstall
128 MB razovel. Mas o que dizer / Var e / Tmp? de 256 MB muito ou pouco?
Na verdade, ambos os sistemas de arquivos juntos seria perdido na 18,7 GB de / Usr sistema de arquivos.
Por que as coisas ainda assim? Vamos olhar para as vantagens e desvantagens:
install.mm, v verso 4.21 (2003/04/02 06:39:30)

69

Captulo 5: Instalando o FreeBSD

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:

No exemplo que estamos vendo, / Usr de cerca de 19 GB de tamanho. Muitas pessoas no tm


dispositivos de backup que pode escrever isso muitos dados sobre um nico meio.

Muitas pessoas tiveram dificuldade com o link simblico para / Usr / var.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Definio de sistemas de arquivos

70

Como resultado, agora eu recomendo:

Faa um sistema nico de entre 4 e 6 GB de arquivos raiz.

No tem uma separada / Usr sistema de arquivos.

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.

Quanto espao de swap?


Alm de arquivos, voc tambm deve ter pelo menos uma partio swap no disco. muito
difcil prever quanto espao de swap que voc precisa. O automtico opo deu-lhe 522
MB, um pouco mais do que o dobro do tamanho da memria fsica. Talvez voc pode conviver com
64 MB. Talvez voc vai precisar de 2 GB. Como voc decide?
quase impossvel saber de antemo o que o seu sistema vai exigir. Aqui esto algumas
consideraes:

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.

Devoradores de memria conhecidos so programas grficos X11 e integrada como o Netscape


e StarOffice. Se voc us-los, voc provavelmente vai precisar de mais espao de swap. Mais velho
Porcos baseados em UNIX, como o Emacs eo compilador GNU C (gcc) no esto na mesma
liga.

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

71

Captulo 5: Instalando o FreeBSD

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.

Um par de exemplos pode tornar isso mais claro:


1. Alguns anos atrs, eu costumava correr X , StarOffice, Netscape e um monte de outros
aplicaes de memria de fome em um velho 486 com 16 MB. Claro, era muito lento,
especialmente quando mudar de uma aplicao para outra, mas funcionou. Houve
no a quantidade de memria, por isso usei um monte de swap.
Para visualizar a utilizao de swap atual, use pstat. Aqui est uma viso tpica desta mquina de
espao de swap:
$ Pstat-s
Dispositivo
/ Dev/da0s1b

1024-blocos
122880

Usado
65148

Aproveitar Tipo Capacidade


57.668 53% Intercalado

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

Disponvel Usado Tipo Capacidade


14644 1033932
1% Intercalado

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.''

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Definio de sistemas de arquivos

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:

4 GB para o sistema de arquivos raiz, o que inclui / Usr e / Var

512 MB de espao de swap

O resto do disco para o / Home sistema de arquivos

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:

Figura 5-10: Especificar o tamanho da partio


Quando voc pressiona ENTER, voc v uma outra perguntando pronta para o tipo de partio. Selecionar
Um sistema de arquivos:

install.mm, v verso 4.21 (2003/04/02 06:39:30)

73

Captulo 5: Instalando o FreeBSD

Figura 5-11: Seleo de tipo de partio


Quando voc pressiona ENTER, voc v uma outra perguntando prompt para o ponto de montagem para o
arquivo
sistema. Entrar / para o sistema de arquivos raiz, aps o qual o visor se parece com:

Figura 5-12: Atribudo sistema de arquivos raiz


No imediatamente bvio neste momento que as atualizaes macios no esto habilitados para este arquivo
sistema. Imprensa s para permitir, aps o que a entrada na Newfs alteraes da coluna
UFS1 a UFS1 + S. Ver pgina 191 para razes pelas quais voc quer usar soft updates.
Em seguida, repita a operao para a partio swap e / Home sistema de arquivos, entrar no
valores apropriados de cada vez. No altere o valor oferecido para o comprimento de / Home:
basta usar todo o espao restante. No final, voc tem:
install.mm, v verso 4.21 (2003/04/02 06:39:30)

Definio de sistemas de arquivos

74

Figura 5-13: alocao partio Concludo


Voc no precisa ativar as atualizaes suaves para / Home, isso acontece automaticamente.
Isso tudo que voc precisa fazer. Saia do menu pressionando q.
Onde voc est agora
Neste ponto da instalao, voc disse sysinstall o layout geral do disco ou
discos que voc pretende usar para FreeBSD, e se ou como voc pretende compartilh-los com
outros sistemas operacionais. O prximo passo especificar como voc deseja usar o FreeBSD
parties. Primeiro, porm, vamos considerar alguns cenrios alternativos.
a segunda vez atravs de
Se voc j comeou a instalao e abortado por algum motivo aps a criao do
sistemas de arquivos, as coisas parecem um pouco diferente quando voc chegar ao editor rtulo. Ele vai encontrar
as parties, mas no sei o nome dos pontos de montagem, de modo que o texto sob o ttulo Monte
ser <nenhum>. Sob Newfs, voc vai encontrar um asterisco (*) em vez do texto UFS1 Y.
O editor rtulo encontrou as parties, mas no sei onde para montar o arquivo
sistemas. Antes que voc possa us-los, voc obrigao dizer ao editor rtulo os tipos e montar
pontos das parties UFS. Para fazer isso:

Posicione o cursor em cada partio de cada vez.

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

Captulo 5: Instalando o FreeBSD

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.

Sistemas de arquivos em discos compartilhados


Se voc tiver outro sistema operacional no disco, voc vai notar algumas diferenas. Em
particular, o menu do editor de etiqueta da Figura 5-8 (na pgina 68) no estar vazio: em vez disso,
voc ver algo parecido com isto:

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Seleo de distribuies

76

Figura 5-14: menu de seleo de Distribuio


Onde voc est agora
Agora sysinstall sabe o layout do disco ou discos que voc pretende usar para FreeBSD, e
o que colocar neles. Em seguida, voc especifica onde obter os dados.

Selecionando a mdia de instalao


A prxima coisa que voc precisa especificar o lugar onde voc ir obter os dados. Onde voc vai
agora depende do seu meio de instalao. A Figura 5-15 mostra o Mdia menu. Se voc
instalando a partir de qualquer coisa, exceto um servidor FTP ou NFS, voc s precisa selecionar o seu meio
e, em seguida, cometer a instalao, que ns olhamos na pgina 77. Se voc est instalando a partir de
alm de CD-ROM de mdia, consulte a pgina 85.
Neste ponto, sysinstall sabe tudo o que precisa para instalar o software. Ele est apenas esperando
para que voc possa dizer a ele para ir em frente.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

77

Captulo 5: Instalando o FreeBSD

Figura 5-15: Menu mdia de instalao

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 parties e as parties de disco.

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.

Ele monta os sistemas de arquivos e espao de swap.


Ele instala o software no sistema.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Executando a instalao

78

Aps os sistemas de arquivos so montados, e antes de instalar o software, sysinstall comea


processos em outras duas terminals.1 virtual em / Dev/ttyv1 voc recebe a sada do log mostrando-lhe
o que est acontecendo nos bastidores. Voc pode acess-lo com ALT-F2. Logo no
comeo voc vai ver um monte de mensagens de erro como sysinstall tenta inicializar todos
dispositivo que possa pensar. No se preocupe com eles, normal. Para voltar para a instalao
tela, pressione ALT-F1.
Alm disso, depois sysinstall monta o sistema de arquivos raiz, ele inicia um shell interativo em
/ Dev/ttyv3. Voc pode us-lo se algo der errado, ou simplesmente para ver o que est acontecendo
enquanto voc est instalando. Voc pode alternar a ele com ALT-F4.
Depois de instalar todos os arquivos, sysinstall pergunta:
Acesse o menu de configurao geral para a chance de definir
suas ltimas opes?

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.

Instalando em um sistema Alpha


Instalando FreeBSD em um Alpha (oficialmente Compaq AXP) tem algumas pequenas diferenas
devido ao prprio hardware. Em princpio, voc pode executar os mesmos passos para instalar o FreeBSD em
a arquitetura Alpha que voc executa para a arquitetura Intel. Consulte a pgina 42 para alguns
diferenas.
O tipo mais fcil de instalao de CD-ROM. Se voc tem um CD-ROM suportadas
unidade e um CD de instalao do FreeBSD para Alpha, voc pode iniciar a instalao atravs da construo de
um conjunto de discos de boot do FreeBSD a partir dos arquivos disquetes / kern.flp e disquetes / mfsroot.flp como
descrito para a arquitetura Intel na pgina 85. Use o CD-ROM marcado'' Alpha
instalao.'' No prompt do console SRM, inserir o kern.flp disquete e digite o
seguinte comando para iniciar a instalao:
>>> Boot dva0

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.

1. Consulte a pgina 197 para uma explicao de terminais virtuais.


install.mm, v verso 4.21 (2003/04/02 06:39:30)

79

Captulo 5: Instalando o FreeBSD

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

TOSHIBA CD-ROM XM-57 3476


RZ1BB-BS 0658
SEAGATE ST34501W 0015
00-00-F8-75-6D-01
SCSI Bus ID 7 5.27
PCI EIDE

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

Para fazer FreeBSD / Alpha iniciar automaticamente, use os seguintes comandos:


>>> Set boot_osflags um
>>> Set bootdef_dev DKC0
>>> Set auto_action BOOT

Atualizando uma verso antiga do FreeBSD


Paradoxalmente, atualizando uma verso antiga do FreeBSD mais complicado do que instalar
a partir do zero. A razo que voc certamente quer manter o seu velho
configurao. H material suficiente neste tpico para preencher um captulo, de modo que o que eu tenho
feito: ver captulo 31, para mais informaes sobre como atualizar um sistema.

Como desinstalar o FreeBSD


O que, voc quer remover o FreeBSD? Por que voc iria querer fazer isso?
Srio, se voc decidir que quer remover completamente o FreeBSD a partir do sistema, este
no mais uma questo FreeBSD, um problema de qualquer sistema que voc usa para substitu-lo. Para
exemplo, na pgina 63, vimos como remover uma partio Microsoft e substitu-lo por
FreeBSD, nenhum software Microsoft foi necessria para remov-lo. Da mesma forma, voc no
precisar de alguma ajuda do FreeBSD, se voc deseja substitu-lo com um sistema operacional diferente.
install.mm, v verso 4.21 (2003/04/02 06:39:30)

Como desinstalar o FreeBSD

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.

Problemas com sysinstall


sysinstall destina-se a ser fcil de usar, mas no muito tolerante a erros. Voc pode muito bem
achar que voc digitar algo por engano e no pode voltar para onde voc quer estar. Em
caso de dvida, se voc ainda no se comprometeram com a instalao, voc pode sempre reiniciar.

Problemas com a instalao do CD-ROM


Se voc optar por instalar a partir de CD-ROM, voc pode receber a seguinte mensagem:
Nenhum dispositivo de CD-ROM encontrado

Isso pode acontecer mesmo se voc tiver iniciado a partir do CD-ROM! As razes mais comuns
para este problema so:

Voc iniciado a partir do disquete e esqueceu-se de colocar o CD-ROM na unidade antes de


inicializado. Desculpe, esta uma limitao atual do processo de inicializao. Reinicie a instalao
(Press Ctrl-Alt-Del ou o boto de reset, ou desligar e ligar o computador).

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

81

Captulo 5: Instalando o FreeBSD

Instalao de inicializao incorreta


possvel se esquea de instalar o bootstrap, ou at mesmo elimin-lo completamente. Que
soa como um grande problema, mas na verdade ele inofensivo. Consulte a descrio da bota
processo na pgina 525, e iniciar a partir de disquete ou CD-ROM. Interromper o processo de inicializao
com a barra de espao. Voc pode ver:
BTX BTX carregador 1,00 verso 1.01
BIOS drive A: disk0
BIOS unidade C: disk1
BIOS unidade D: disk1
BIOS 639kB/130048kB memria disponvel
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 ...
pressione a barra de espao aqui
ok descarregar
descarregar o kernel atual
ok definir currdev disk1s1a
e defina a localizao do novo
ok carga / boot / kernel / kernel
carregar o kernel
bota ok
em seguida, inici-lo

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.

Sistema trava durante a inicializao


Uma srie de problemas pode levar suspenso do sistema durante o processo de inicializao. Todos os o
problemas conhecidos foram eliminados, mas h sempre a chance de que algo novo
vo surgir. Em geral, os problemas esto relacionados com as sondas de hardware, e o mais
indicao importante o ponto em que o arranque falha. Vale a pena repetir o boot
com a bandeira detalhado: mais uma vez, consulte a descrio do processo de inicializao na pgina 525.
Interromper o processo de boot com a barra de espao e digite:
Bata [Enter] para iniciar imediatamente, ou qualquer outra tecla para o prompt de comando.
Iniciando [ncleo] em 6 segundos ...
pressione a barra de espao aqui
ok definir boot_verbose
definir uma bota detalhado
bota ok
em seguida, continuar

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.

Inicializao do sistema, mas no executado corretamente


Se voc receber o sistema instalado at o ponto onde voc pode inici-lo, mas ele no correr bastante
do jeito que voc quer, no reinstalar. Na maioria dos casos, no vai ajudar a reinstalao. Em vez disso,
tente encontrar a causa do problema, com a ajuda do FreeBSD-questions lista de discusso se
necessrio e corrigir o problema.

Sistema de arquivos raiz enche


Voc pode achar que a instalao for concluda com xito, e voc ter seu sistema
e funcionando, mas quase antes que voc perceba, o sistema de arquivos raiz enche. Isso relativamente
No se voc seguir a minha recomendao para ter um sistema de arquivos para /, / Usr e / Var,
mas se voc seguir as recomendaes, uma possibilidade. Poderia ser, claro, que
simplesmente no ter feito grandes sistemas de arquivos raiz o suficiente, FreeBSD tem maior sobre o
anos. Na primeira edio deste livro, recomendado 32 MB'' para estar no lado seguro.''
Hoje em dia, o padro de 128 MB.
Por outro lado, talvez voc j tem um sistema de arquivos raiz de 128 MB, e ainda enche
up. Neste caso, verifique onde voc colocar o seu / Tmp e / Var sistemas de arquivos. H uma
boa chance de que eles esto no sistema de arquivos raiz, e por isso que ele est enchendo.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

83

Captulo 5: Instalando o FreeBSD

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"

# Nome do dispositivo de despejo de memria para (se habilitado).

Para ativar o dumping, colocar algo como isso em / Boot / loader.conf :


dumpdev = "/ dev/ad0s1b"

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:

install.mm, v verso 4.21 (2003/04/02 06:39:30)

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

Aproveitar Tipo Capacidade


1028
98% Intercalado
14616 78% Intercalado
153516
25% Intercalado
169160
47%

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.

Fixao de uma instalao quebrado


Um acidente muito grande pode danificar o seu sistema de tal forma que voc precisa
reinstalar todo o sistema. Por exemplo, se voc substituir o disco rgido do incio ao
terminar, voc no tem outra escolha. Em muitos casos, porm, o dano reparvel.
s vezes, porm, voc no pode iniciar o sistema para corrigir os problemas. Neste caso, voc tem
duas possibilidades:

Inicializao a partir do CD-ROM segunda (Live Sistema de Arquivos). Ele ser montado como o arquivo de raiz
sistema.

Inicializar a partir do Fixit disquete. A disquete Fixit est na distribuio da mesma


diretrio do disquete de boot, disquetes. Basta copiar disquetes / fixit.flp a um disco na
mesma forma como descrito para disquetes de inicializao na pgina 85. Para utilizar o disquete fixit, primeiro
boot com o disquete de inicializao e selecione'' Fixit disquete'' a partir do menu principal. O Fixit
disquete ser montado sob o MFS raiz / Mnt2.

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

85

Captulo 5: Instalando o FreeBSD

Mtodos de instalao alternativos


A descrio, no incio da presente captulo aplicada instalao mais comum
mtodo, a partir de CD-ROM. Nas sees seguintes, vamos olhar para o relativamente menor
diferenas necessrias para a instalao de outros meios de comunicao. As escolhas que voc tem so, em ordem de
diminuindo atratividade:

Ao longo da rede. Voc tem a opo de ftp ou conexo NFS. Se voc


conectado Internet e voc no estiver com pressa, voc pode carregar diretamente de um dos
os sites de distribuio descrito no FreeBSD handbook.

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.

Preparando disquetes de inicializao


Se a sua mquina no mais o mais jovem, voc pode ser capaz de ler a unidade de CD-ROM,
mas no iniciar a partir dele. Neste caso, voc precisar inicializar atravs de disquetes. Se voc estiver usando 1,44
MB disquetes, voc vai precisar de dois ou trs deles, a Disk Kernel e a MFS Disk Root
e, possivelmente, o Disk Drivers para iniciar os programas de instalao. Se voc estiver usando 2,88
MB disquetes ou um LS-120 de disco, voc pode copiar o nico Disco de inicializao, que 2,88 MB
por muito tempo, em vez de o kernel e discos de raiz MFS. As imagens destes disquetes esto na
CD-ROM distribuio nos ficheiros
disquetes / kern.flp, disquetes / mfsroot.flp, flop
tortas / drivers.flp e disquetes / boot.flp respectivamente. Se voc tem o seu montado CD-ROM
em um sistema Microsoft, que pode ser chamado DISQUETES \ kern.flp, disquetes \ MFSROOT.FLP, disquetes \ drivers.flp e DISQUETES \ boot.flp respectivamente. O
inicializao no se recuperar bad blocks, ento o disquete deve ser 100% legvel.
A maneira como voc tirar a imagem de disco de boot em um disquete real, depende do sistema operacional
que voc usa. Se voc estiver usando qualquer sabor de UNIX, basta executar algo como:
# Dd if = / cdrom / disquetes / kern.flp of = / dev/fd0 bs = 36b
mudar o disquete
# Dd if = / cdrom / disquetes / mfsroot.flp of = / dev/fd0 bs = 36b
mudar o disquete
# Dd if = / cdrom / disquetes / drivers.flp of = / dev/fd0 bs = 36b

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)

Mtodos de instalao alternativos

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.

Inicializao a partir de disquetes


Em quase todos os casos onde voc no iniciar a partir de CD-ROM, voc poder inicializar a partir do disquete, no
importa o meio que voc est instalando a partir de. Se voc estiver instalando a partir do CD-ROM, colocar o
CD-ROM na unidade de antes de arrancar. A instalao pode falhar se iniciar antes
inserir o CD-ROM.
Inicializar o sistema no modo normal a partir do primeiro disquete (aquele que contm o
kern.flp imagem). Depois de carregar o kernel, o sistema ir imprimir a mensagem:
Por favor insira MFS raiz disquete e pressione Enter:

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.

Instalando via ftp


A maneira divertida de instalar o FreeBSD atravs da Internet, mas no sempre a melhor escolha.
H uma grande quantidade de dados a transferir, e se voc tem realmente uma alta velocidade, no sobrecarregado
conexo com o servidor, que poderia durar para sempre. Por outro lado, claro, se tiver
o software em outra mquina na mesma rede local, eo sistema no qual voc quer
instalar o FreeBSD no tem um drive de CD-ROM, essas condies forem satisfeitas, e isso
poderia ser para voc. Antes de decidir, porm, ler sobre a alternativa de NFS
instalao abaixo: se voc no tem um servidor ftp com os arquivos j instalados, muito
mais fcil de configurar uma instalao NFS.
Existem dois modos de instalao FTP que voc pode usar:

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

Captulo 5: Instalando o FreeBSD

Configurar o servidor ftp


Coloque a distribuio FreeBSD no diretrio ftp pblico do servidor ftp. Em BSD
sistemas, este ser o diretrio home do usurio ftp, que no FreeBSD como padro
/ Var / spool / ftp. O nome do diretrio o nome da verso, que neste
exemplo, vamos supor que seja 5.0-RELEASE. Voc pode colocar esse diretrio em um subdiretrio
de / Var / spool / ftp, por exemplo / var/spool/ftp/FreeBSD/5.0-RELEASE, mas a nica
parte opcional neste exemplo o diretrio pai FreeBSD.
Este diretrio tem uma estrutura um pouco diferente da distribuio de CD-ROM. Para configur-lo
acima, supondo que voc tenha o seu CD-ROM de distribuio montado / Cdrom, e que voc
instalar no diretrio / Var/spool/ftp/FreeBSD/5.0-RELEASE, execute o seguinte
passos:
#
#
#
#
#
#

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 -)

Isso copia todos os diretrios de / Cdrom em / Var/spool/ftp/FreeBSD/5.0-RELEASE. Para


uma instalao mnima, voc s precisa do diretrio base. Para instalar apenas de base em vez de
toda a distribuio, alterar a ltima linha do exemplo acima:
# Mkdir base de
# Cp / cdrom / base / * Base

Instalando via ftp


Na pgina 77, vimos o menu de seleo de mdia. Figura 5-16 mostra o menu que voc comea quando
selecionar FTP ou FTP passivo. Para ver o resto dos stios, usar o PageDown
chave. Vamos supor que voc deseja instalar a partir presto, um sistema na rede local. presto
no est nesta lista, claro, para que voc escolha URL. Outro menu aparecer, pedindo um ftp
caminho na forma URL ftp://hostname/pathname. hostname o nome do
sistema, neste caso presto.example.org, eo caminho o caminho em relao ao
diretrio ftp annimo, que em sistemas FreeBSD geralmente / Var / spool / ftp. O
instalar o programa sabe seu nmero de verso, e atribui-lo para o nome que voc fornecer.
Voc pode alterar o nmero da verso do menu de opes, por exemplo, para instalar um instantneo de um
mais recente verso do FreeBSD.

Neste caso, estamos instalando verso 5.0 do FreeBSD, e no diretrio


/ Var/spool/ftp/pub/FreeBSD/5.0-RELEASE. sysinstall conhece a 5.0-RELEASE, assim voc
entrar apenas ftp://presto.example.org/pub/FreeBSD. O menu seguinte pede que voc configure
sua rede. Este o mesmo menu que normalmente preencher na extremidade do
instalao, consulte a pgina 98 para mais detalhes.
Esta informao usada para configurar a mquina aps a instalao, assim que paga para preencher este
informaes corretamente. Depois de inserir essas informaes, continue com Cometer (Na pgina
77).
install.mm, v verso 4.21 (2003/04/02 06:39:30)

Mtodos de instalao alternativos

88

Figura 5-16: Seleo servidor ftp

Instalando atravs do NFS


Se voc est instalando a partir de uma unidade de CD-ROM em outro sistema na rede local, voc
pode encontrar uma instalao via ftp muito complicada para seu gosto. A instalao muito
mais fcil se a outro sistema de suporte NFS. Antes de comear, certifique-se que o CDROM montado na mquina remota, e que a mquina remota exportar o arquivo
sistema (na terminologia System V, a exportao chamado partilha). Quando for solicitado o
nome do diretrio, especifique o nome do diretrio em que o CD-ROM
montada. Por exemplo, se o CD-ROM est montado no diretrio / Cdrom no sistema
presto.example.org, insira presto.example.org :/ cdrom . Isso tudo que existe para ela!
Verses antigas do FreeBSD armazenados a distribuio em um subdiretrio dists. Novas verses armazen-lo
no diretrio raiz do CD-ROM.

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).

Instalando a partir de uma partio Microsoft


Na arquitetura Intel, voc tambm pode instalar a partir de uma partio primria no Microsoft
primeiro disco. Para se preparar para a instalao de uma partio Microsoft, copie os arquivos da
distribuio em um diretrio chamado C: \ FreeBSD. Por exemplo, para fazer um mnimo
instalao de FreeBSD da Microsoft usando arquivos copiados de um CD-ROM, copie o
diretrios disquetes e base aos diretrios Microsoft C: \ FreeBSD \ DISQUETES e
C: \ FreeBSD \ BIN respectivamente. Voc precisa do diretrio DISQUETES porque onde
sysinstall olha para o boot.flp, a primeira imagem em cada instalao.
install.mm, v verso 4.21 (2003/04/02 06:39:30)

89

Captulo 5: Instalando o FreeBSD

Figura 5-17: A especificao de sistema de arquivos NFS


O diretrio somente necessrio base. Voc pode incluir como muitos outros diretrios como voc
quer, mas no se esquea de manter a estrutura de diretrios. Em outras palavras, se voc tambm queria
instalar XF86336 e manpages, voc copi-los para C: \ FreeBSD \ XF86336 e
C: \ FreeBSD \ manpages.

Criando disquetes para uma instalao flexvel


Instalao de disquete definitivamente a pior escolha que voc tem. Voc vai precisar
cerca de 50 disquetes para a instalao mnima, e cerca de 250 para o completo
instalao. A chance de um deles ser ruim alta. A maioria dos problemas em um disquete
instalao pode ser atribuda a mdia ruim, ou diferenas no alinhamento entre a mdia e os
unidade em que so utilizados, da seguinte forma:

Antes de comear, formatar todos os disquetes no drive que voc pretende


utilizar, mesmo se elas so pr-formatado.
Os dois primeiros disquetes que voc precisa o kernel do disquete ea MFS Root floppy, que
foram descritos anteriormente.
Alm disso, voc precisa de, no mnimo, como muitos disquetes que for preciso para manter todos os arquivos no base
diretrio, que contm a distribuio binria. Leia o arquivo LAYOUT.TXT pagante
ateno especial para a seo'' Distribuio formato'', que descreve quais arquivos voc
precisa.
Se voc estiver criando os disquetes em uma mquina FreeBSD, voc pode colocar ufs sistemas de arquivos no
disquetes vez:

install.mm, v verso 4.21 (2003/04/02 06:39:30)

Mtodos de instalao alternativos

90

# Fdformat-f 1,440 fd0.1440


# Disklabel-w-r fd0.1440 floppy3
# Newfs-t 2-u 18-l 1-i 65536 / dev/fd0

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.

install.mm, v verso 4.21 (2003/04/02 06:39:30)

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:

Instale software adicional.

Criar contas de usurios normais.

Configurar o suporte de rede.

Configurar o sistema para iniciar todos os servios que voc precisa.

Configurar o X Window System e desktop.

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

91

O FreeBSD completo

92

Figura 6-1: Menu de Configurao


Como os marcadores sob a palavra Networking indicam, este menu maior do que o
janela, na qual ele aparece. Ns vamos olhar para algumas das entradas adicionais abaixo.
Apenas algumas destas entradas so de interesse em uma instalao normal, ns vamos ignorar o resto.
Pode haver algumas razes para se desviam da seqncia neste captulo. Por exemplo, se
o seu CD-ROM est montado em um sistema diferente, talvez voc precise configurar a rede
antes de instalar software adicional.

Instalao de software adicional


O primeiro ponto de interesse Packages. Estes so alguns dos portos dos Portos
Coleo, que veremos com mais detalhes no Captulo 9.
A coleo de ports contm uma grande quantidade de software que voc pode querer instalar.
Na verdade, h muito que apenas fazer a sua mente o que instalar pode ser um
processo complicado: h mais de 8.000 portas na coleo. Que valem a pena
usando? Eu recomendo a seguinte lista:

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

93

Captulo 6: Configurao Ps-instalao

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.

galeon um navegador web. Vamos olh-lo brevemente na pgina 416.

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.

postfix o Mail Transfer Agent (MTA) recomendou no captulo Captulo 27,


Correio eletrnico: servidores.

xtset um utilitrio para definir o ttulo de uma xterm janela. utilizada pela . Bashrc arquivo
instalado com o instant-workstation pacote.

xv um programa para exibir imagens, em particular jpeg e gif.

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)

Instalao de software adicional

94

possvel que o CD ajust-lo se no incluir instant-workstation. Isso no to


um problema: o que voc acabou de instalar as portas individuais a partir desta lista. Voc tambm pode fazer isso se voc
no gosto da lista de portas.

Alterar o shell padro para o root


Aps a instalao, voc pode querer mudar o shell padro para os usurios existentes para Bash. Se
voc tem
instalado instant-estao de trabalho,
deve copiar
o
arquivo
/ Usr / share / skel / dot.bashrc a diretrio home do root e cham-lo . Bashrc e . Bash_proarquivo. Primeiro, comece
presto #
presto #
presto #
=== Root

cp / usr / share / skel / dot.bashrc. bashrc


ln. bashrc. bash_profile
festa
@ presto (/ dev/ttyp2) ~ 1 -> chsh

O ltimo comando inicia um editor com o seguinte contedo:


# Alterando informaes de banco de dados de usurio para root.
Login: raiz
Senha:
Uid [#]: 0
Gid [# ou nome]: 0
Mudana [ms dia ano]:
Expirar [ms dia ano]:
Classe:
Diretrio home: / root
Shell: / bin / csh
Nome Completo: Charlie &
Office Location:
Telefone Escritrio:
Telefone Residencial:
Outras informaes:

Alterar o Concha linha para:


Shell: / usr / local / bin / bash

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:

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

95

Captulo 6: Configurao Ps-instalao

Figura 6-2: Adicionando um usurio


Voc no precisa entrar nos campos UID e Diretrio home: sysinstall faz isso
para voc. importante garantir que voc est em grupo roda de modo que voc pode usar o su
de comando para se tornar root, e voc precisa estar no grupo operator usar o encerramento
de comando.
No se preocupe em adicionar mais usurios nesta fase, voc pode faz-lo mais tarde. Ns vamos olhar para usurio
gesto no Captulo 8, na pgina 112.

Definindo a senha de root


Em seguida, selecione Senha Root. Falaremos sobre senhas mais na pgina 144. Selecione esta
item para definir a senha no modo normal.

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

Fuso horrio

96

Figura 6-3: Fuso horrio selecione o menu: EUA


O menu seguinte pede para voc selecionar uma regio'','' o que corresponde a uma
continente. Supondo que voc est vivendo em Austin, TX nos Estados Unidos da Amrica, voc
selecionaria Amrica - do Norte e do Sul e, em seguida (depois de deslocamento para baixo) Unido
Unidos da Amrica. O prximo menu, em seguida, se parece com isso: Selecione Horrio
Central e
selecionar Sim quando o sistema pergunta se a abreviatura CST parece razovel.
Este passo particular relativamente pesado. Voc pode achar que mais fcil olhar no
diretrio / Usr / share / zoneinfo aps a instalao. L voc encontra:
# Cd / usr / share / zoneinfo /
# Ls
frica Austrlia
Etc
Amrica CET
Europa
Antarctica CST6CDT
Fbrica
rtico EET
GMT
sia EST
HST
Atlantic EST5EDT
Indiano

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

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

97

Captulo 6: Configurao Ps-instalao

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

Figura 6-4: Menu de servios de rede


O prximo passo configurar o seu equipamento de rede. Figura 6-4 mostra a rede
Menu de servios. H um certo nmero de maneiras de chegar a esse menu:

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

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.

Configurando interfaces de rede


Figura 6-5 mostra o menu de configurao de rede. Num ecr de 80x25 padro requer
rolar para ver o menu inteiro. Se voc instalou via FTP ou NFS, voc j ter
configurar suas interfaces de rede, e sysinstall no vai fazer as perguntas novamente. A nica
placa de rede real nesta lista xl0, a placa Ethernet. Os outros so padro
hardware que pode tambm ser usado como as interfaces de rede. No tente criar uma conexo PPP aqui;
no h mais a configurao de PPP sysinstall pode manipular. Ns vamos olhar para PPP
configurao no captulo 20.

Figura 6-5: menu de configurao de rede


No nosso caso, escolhemos a placa Ethernet. O prximo menu nos pede para definir a internet
parmetros. Figura 6-6 mostra o menu de configurao de rede aps preencher os valores.
Especifique o nome do host local totalmente qualificado, quando voc guia para a Domnio: campo, o
domnio preenchido automaticamente. Os nomes e endereos correspondendo ao exemplo
rede que olhamos no Captulo 16, na pgina 294. Optamos por chamar essa mquina
presto, eo domnio example.org. Em outras palavras, o nome completo da mquina est
presto.example.org. O endereo IP 223.147.37.2. Nesta configurao, o acesso a todos
o mundo exterior passa por gw.example.org, que tem o endereo IP 223.147.37.5.
O nome do servidor est localizado no mesmo hospedeiro, presto.example.org. O nome do servidor no
execuo quando esta informao necessria, de modo que especificar todos os endereos em formato numrico.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

99

Captulo 6: Configurao Ps-instalao

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.

Figura 6-6: menu de configurao de rede


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.

Outras opes de rede


Cabe a voc decidir o que as outras opes de rede que voc gostaria de usar. Nenhum dos
seguir so essenciais, e ningum precisa ser feito agora, mas voc pode eventualmente encontrar
algumas das seguintes caractersticas interessantes:

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

Servios de rede

100

ntpdate e ntpd so programas que estabelecem automaticamente a hora do sistema de tempo


servidores localizados na Internet. Consulte a pgina 156 para mais detalhes. Se desejar, voc pode
selecione o servidor neste momento.

rwhod transmite informaes sobre o estado dos sistemas na rede. Voc


pode usar o ruptime programa para encontrar o uptime de todos os sistemas que executam rwhod, e
rwho para descobrir quem est sendo executado nesses sistemas. Em uma tela de tamanho normal, que voc precisa
para percorrer o menu at encontrar esta opo.

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.

Figura 6-7: menu de configurao de inicializao

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

101

Captulo 6: Configurao Ps-instalao

Os mais importantes so:

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.

Figura 6-8: Menu Rato


postinstall.mm, v v4.12 (2003/04/02 06:40:31)

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.

Figura 6-9: Menu principal xf86cfg


A configurao armazenado em um arquivo chamado XF86Config, embora o diretrio mudou
vrias vezes nos ltimos anos. Ela costumava ser em / Etc/X11/XF86Config ou
/ Etc/XF86Config, mas o actual lugar preferido / usr/X11R6/lib/X11/XF86Config. O
postinstall.mm, v v4.12 (2003/04/02 06:40:31)

103

Captulo 6: Configurao Ps-instalao

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:

Figura 6-10: Menu rato xf86cfg


Com toda a probabilidade de que no ser necessrio. O arquivo de configurao que xf86cfg j tem
criado pode ser suficiente, ento voc pode simplesmente sair e salvar o arquivo. Voc provavelmente vai querer
mudar algumas coisas, no entanto. A seguir, vamos percorrer as mais provveis mudanas
voc pode querer fazer.
Configurando o teclado
Voc pode selecionar um nmero de opes para o teclado, incluindo layouts principais alternativas.
Voc provavelmente no precisar mudar nada aqui.

Figura 6-11: Menu teclado xf86cfg


postinstall.mm, v v4.12 (2003/04/02 06:40:31)

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:

Figura 6-12: menu do monitor xf86cfg


postinstall.mm, v v4.12 (2003/04/02 06:40:31)

105

Captulo 6: Configurao Ps-instalao

Selecione OK para voltar ao menu anterior.


Configurando a placa de vdeo
xf86cfg reconhece placas de vdeo mais modernas, incluindo, provavelmente, todas as placas AGP, assim voc
provavelmente no precisa fazer nada adicional para configurar a placa de vdeo. Se voc encontrar
que o arquivo de configurao resultante no sabe sobre o seu carto, voc ter que selecionar o
smbolo de carto no topo do ecr. Mesmo que o carto tenha sido reconhecida, voc receber esse
exibir:

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:

Figura 6-13: xf86cfg menu de seleo carto


postinstall.mm, v v4.12 (2003/04/02 06:40:31)

Configurando o X

106

Seleo de resolues de tela


A resoluo da tela definido por Linhas de modo que ns vamos olhar em detalhe na pgina
510. Os nomes referem-se a resoluo que oferecem. Por padro, o xf86cfg s lhe d
640x480, ento voc certamente vai querer adicionar mais. Primeiro, escolha o campo na parte superior esquerda da
tela:

Figura 6-14: seleo de configurao xf86cfg


A partir deste menu, selecione Configurar Modeline. Voc v:

Figura 6-15: xf86cfg menu de linha de modo


Se voc passar o cursor sobre a imagem da tela, voc ver o seguinte aviso:

Figura 6-16: xf86cfg aviso linha de modo


Levar a srio. Vamos olhar para esta questo novamente no captulo 28 na pgina 508. Para uma primeira
configurao, voc no deve usar esta interface. Em vez disso, selecione Adicione o modo padro VESA no
topo. Ns temos um outro menu:
postinstall.mm, v v4.12 (2003/04/02 06:40:31)

107

Captulo 6: Configurao Ps-instalao

Figura 6-17: xf86cfg linhas modo VESA


Selecione as resolues que voc quer com a maior frequncia que o seu hardware pode suportar.
Neste caso, voc pode selecionar 1024x768 @ 85 Hz, porque ainda bem dentro da faixa
do monitor. Responder Sim a questo de saber se voc deseja adicion-lo. Voc pode
selecionar quantas resolues quiser, mas a janela do Modeline no mostr-los.
Voc tambm pode usar a janela de Modeline para ajustar a tela, mas mais fcil com outra
programa xvidtune. Veremos esses detalhes no captulo 28.
Por fim, selecione Desistir na parte inferior direita da tela. Voc comea esta janela:

Figura 6-18: xf86cfg quit


Quando voc responder Sim, voc tem uma pergunta semelhante perguntando se voc deseja salvar
o
definio de teclado. Uma vez que voc tiver feito isso, voc est acabado.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

Configurando o X

108

Configurao de desktop
Em seguida, selecione rea de Trabalho a partir do menu de configurao. Voc ganha este menu:

Figura 6-19: menu Desktop select


Qual deles voc instalar? Voc tem a escolha. Se voc sabe o que quer, us-lo.
H muitos mais gerenciadores de janelas que mostrado aqui, ento se voc no v o que voc est
procurando, verifique a categoria x11-wm na Coleo de Ports. O menu de seleo d
voc os mais populares: Gnome, Afterstep, iluminao, KDE, Windowmaker e
fvwm2. Neste livro, vamos considerar o KDE ambiente de trabalho ea fvwm2 gerenciador de janelas.
KDE confortvel, mas requer uma grande quantidade de recursos. Gnome semelhante em tamanho para o KDE.
Em contraste, fvwm2 muito mais rpido, mas exige uma boa quantidade de configurao. Vamos
olhar para KDE e fvwm2 no Captulo 7.

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.

Para cada usurio que executa X, criar um arquivo de configurao X.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

109

Captulo 6: Configurao Ps-instalao

Configurando o xdm
Para ativar xdm, edite o arquivo / etc / ttys. Por padro, ele contm as seguintes linhas:
ttyv8

"/ Usr/X11R6/bin/xdm-nodaemon" xterm

off seguro

Usando um editor, mudar o texto fora a em:


ttyv8

"/ Usr/X11R6/bin/xdm-nodaemon" xterm

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.

Reiniciando o novo sistema


Quando voc chegar at aqui, voc deve ter um sistema funcional. Se voc ainda est instalando a partir de
CD-ROM, voc reiniciar por sair sysinstall. Se voc j tiver reiniciado, voc sair
sysinstall e reiniciar com:
# Shutdown-r now

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.

postinstall.mm, v v4.12 (2003/04/02 06:40:31)

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

113

Captulo 7: As ferramentas do comrcio

A shell, um programa que l os comandos e os executa. MS-DOS usa


o programa COMMAND.COM para executar esta funo. UNIX tem uma grande variedade de
shells: as conchas tradicionais UNIX so o shell Bourne sh eo shell C csh, mas
FreeBSD tambm fornece bash, tcsh, zsh e outros. Eu pessoalmente uso o bater shell,
e os exemplos neste livro so baseados nele.

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.

login pede a senha e verifica o seu ID de usurio.


Se o ID de usurio e senha esto corretos, login inicia o shell designado.

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.

A linha de'' apagar H, matar U, intr C, o estado T'' parece estranha.


dizendo que os caracteres de controle de edio atual. Ns vamos olhar para estes na pgina 131.
Neste ponto, o shell altera o diretrio atual para o seu diretrio home. Tem
nenhuma sada na tela para indicar isso.

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

Captulo 7: As ferramentas do comrcio

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.

Figura 7-1: KDE exibio


unixref.mm, v v4.16 (2003/04/02 06:41:29)

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:

Figura 7-2: Menu KDE


Como o menu indica, voc pode usar esses menus para criar novos arquivos.
O Painel
Na parte inferior da tela o painel, a qual consiste de um nmero de campos. A esquerda
seco mo usada para iniciar aplicaes.

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

Captulo 7: As ferramentas do comrcio

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 konsole emulador de terminal.

O centro de comando, o que voc usa para configurar o KDE.

O sistema de ajuda.

O acesso ao diretrio home com o navegador konqueror.

O acesso Web, tambm com o navegador konqueror.

O Kmail MUA.

O KWord processador de texto, o que pode compreender documentos do Microsoft Word.

O Kspread planilha.

O Kpresenter pacote de apresentao.

O Kate editor.

A prxima seo do painel contm alguns botes de controle e informaes sobre o


layout de rea de trabalho atual:

A seo esquerda mostra o contedo atual de quatro telas, numeradas de 1 a 4.


Tela 1 a tela exibida no momento, voc pode selecionar um dos outros, movendo o
cursor na direo correspondente ou selecionando o campo com o mouse.
direita do que so cones para as janelas ativas no momento. O tamanho e expande
contratos, dependendo do nmero de diferentes tipos de janela ativa. Se voc selecionar um
desses cones com o boto esquerdo do mouse, ele vai iconify ou deiconify ('''' minimizar ou
Maximizar'''') da janela. Se voc tiver mltiplas xterms ativo, voc ter apenas uma
cone. Neste caso, se voc selecionar o cone, voc receber um outro menu de seleo de pop-up para
permitem que voc escolha a janela especfica.
A parte direita do painel contm mais trs campos:

unixref.mm, v v4.16 (2003/04/02 06:41:29)

O desktop KDE

118

O primeiro mostra um cadeado estilizado (para bloquear a sesso quando deixar o


mquina; desbloqueio inserindo a senha) e um switch off estilizado, para sair
da sesso.

A prxima seo mostra um conector de alimentao estilizada, que mostra o poder atual
estado da mquina, e uma rea de transferncia.

O lado direito mostra um relgio digital.

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.

O gerenciador de janelas fvwm2


Se voc vem de um fundo PC convencional, voc no deve ter muita dificuldade
com KDE. um ambiente relativamente completa e integrada. Mas no realmente UNIX.
Se voc vem de um ambiente UNIX, voc pode achar que muito abrangente. Voc pode
Tambm acho que h atrasos significativos quando inicia novas aplicaes.
UNIX tem uma abordagem muito diferente para as janelas. No h ambiente de trabalho, apenas uma janela
gerente. Ele ocupa menos espao em disco, menos tempo de processador e menos espao na tela. Por
padro, vem com o XFree86 twm gerenciador de janelas, mas isso realmente um pouco primitivo.
Com mquinas modernas, no h nenhuma razo para escolher tal gerente bsica janela. Voc
Pode, no entanto, considerar que fvwm2 mais o seu estilo de KDE.
unixref.mm, v v4.16 (2003/04/02 06:41:29)

119

Captulo 7: As ferramentas do comrcio

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:

Esta imagem mostra semelhanas e diferenas em relao com KDE. As semelhanas


incluem:

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

O gerenciador de janelas fvwm2

120

Ainda assim, existem uma srie de diferenas tambm:

A menos que voc tenha uma mquina topo de gama, muito mais rpido no que faz.

O fundo (o janela root) no tem qualquer padro, apenas um cinza crossescotilha.

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

Captulo 7: As ferramentas do comrcio

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.

Seleo de profundidade de pixel


Voc pode configurar a maioria das placas de vdeo para exibir um nmero de diferentes profundidades de pixel (a
um nmero diferente de bits por pixel, o que se traduz em um nmero diferente de cores).
Ao iniciar o X, no entanto, o padro de 8 bits por pixel (256 cores), o que muito
m interpretao. Para inici-lo com um nmero diferente, especifique o nmero de avies. Para
exemplo, para iniciar com 32 bits por pixel (4294967296 cores), digite:
$ Startx --- bpp 32

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.

Obviamente, a primeira a abordagem pretendida, e mais fcil. No entanto, eu recomendo


utilizao xterm pelo menos at que voc tem certeza que quer ficar com KDE: h algumas sutis
diferenas, e konsole destina-se a trabalhar com kde s. Se voc ficar com KDE,
deve alterar a configurao do konsole boto para iniciar xterm em vez disso, que
relativamente simples.
Em fvwm2, voc comea um xterm no menu esquerdo do mouse, como mostrado acima.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

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 r opo diz rm a recursivamente descer para os subdiretrios. Se voc no


especificar isso, seria remover todos os arquivos no diretrio / Usr / obj e depois sair,
reclamando que no pode excluir diretrios.

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.

Alguns programas, como o alcatro e ps, no insista em levar o hfen-in. No captulo 8,


vamos ver o comando:
# Ps Waux

unixref.mm, v v4.16 (2003/04/02 06:41:29)

123

Captulo 7: As ferramentas do comrcio

Este comando tambm podia ser escrito:


# Ps-Waux

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

o programa recebe quatro argumentos, numeradas de 0 a 3:

unixref.mm, v v4.16 (2003/04/02 06:41:29)

Conseguir um shell

124

Tabela 7-1: Argumentos do programa


Argumento Valor
0
rm
1
file1
2
arquivo2
3
file3
O que acontece se voc quiser passar um nome com um espao? Por exemplo, voc pode querer
olhar para o texto'' Correio'' rejeitado em um arquivo de log. UNIX tem um programa padro para
olhar para o texto, chamado grep. A sintaxe :
arquivos expresso GREP

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

Em outras palavras, se colocar aspas "" em torno de um grupo de palavras, a Shell


interpret-los como um nico parmetro. O primeiro parmetro que passado para grep Correio
rejeitado, no "Mail rejeitado".
Este comportamento do shell uma boa razo para no usar nomes de arquivos com espaos em
eles. perfeitamente legtimo para incorporar espaos em nomes de arquivos UNIX, mas uma dor de
usar. Se voc quer criar um nome de arquivo que contm vrias palavras, por exemplo,
Todos os arquivos atualizados desde a semana mudando os espaos sublinhados:
passada, considere
All_files_updated_since_last_week.
ainda mais interessante ver o que acontece quando voc passa um personagem englobamento de um
programa, por exemplo:
$ Cc-o foo *. C

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

Captulo 7: As ferramentas do comrcio

Os campos que podem conter espaos


A soluo para o'' Correio rejeitado problema'' no o ideal, mas funciona muito bem, desde
como voc no tem que lidar com campos com espaos em branco com muita freqncia. Em muitos casos, porm,
particularmente nos arquivos de configurao, os campos com espaos em branco so relativamente comuns. Como resultado,
um nmero de arquivos de configurao do sistema usar dois pontos (:) como um delimitador. Isso parece muito
confuso no incio, mas acaba por no ser to ruim quanto as alternativas. Vamos ver alguns
exemplos no PATH varivel de ambiente na pgina 130, no arquivo de senhas na pgina
144, e no arquivo de classe de login na pgina 564.

Arquivos e nomes de arquivos


Tanto os dados do disco Microsoft ambientes de loja em UNIX e imagens, que por sua vez so colocados
em diretrios. Um arquivo pode ser um diretrio, ou seja, pode conter outros arquivos. O
diferenas entre UNIX e Microsoft comeam com nomes de arquivos. Arquivo tradicional Microsoft
nomes so rgidas: um nome de arquivo composto por oito caracteres, possivelmente seguido por um perodo
e mais trs caracteres (o chamado extenso de nome de arquivo). H significativos
restries sobre quais os caracteres podem ser utilizados para formar um nome de ficheiro, superiores e inferiores
letras minsculas tm o mesmo significado (internamente, a Microsoft converte os nomes para UPPER
CASE). Membros do diretrio so selecionados com uma barra invertida (\), que entra em conflito com outro
significados na linguagem de programao C, consulte a pgina 138 para mais detalhes.
FreeBSD tem um mtodo muito flexvel de nomear arquivos. Os nomes de arquivos podem conter qualquer
caractere, exceto /, E eles podem ter at 255 caracteres. Eles so maisculas e minsculas:
os nomes FOO, Foo e foo so trs nomes diferentes. Isto pode parecer bobo no comeo, mas
qualquer outro meio que os nomes deve ser associado a um conjunto especfico de caracteres.
Como voc upshift o nome alemo ungleichmig? O que se os mesmos caracteres
aparecer em um nome russo? Ser que eles ainda mudar a mesma coisa? A excepo porque o /
personagem representa diretrios. Por exemplo, o nome / Home/fred/longtext-with-a-longnome representa:
1. Primeiro personagem um /, Representando o sistema de arquivos raiz.
2. casa o nome de um diretrio no sistema de arquivos raiz.
3. fred o nome de um directrio / Home.
4. O nome sugere que longtext-com-a-long-name provavelmente um arquivo, no um diretrio,
que voc no pode dizer o nome.
Como resultado, voc no pode usar / em um nome de arquivo. Alm disso, o binrio 0s (a ASCII NUL
personagem) pode confundir um monte de programas. quase impossvel conseguir um 0 binrio em um
nome do arquivo de qualquer maneira: o personagem usado para representar o fim de uma string em C
linguagem de programao, e difcil de introduzi-lo a partir do teclado.
Maisculas e minsculas j no parece to estranho, como j fez: navegadores fizeram
Nomes de arquivo UNIX mais popular com Uniform Resource Indicators ou URIs, que so
derivados de nomes de UNIX.
unixref.mm, v v4.16 (2003/04/02 06:41:29)

Arquivos e nomes de arquivos

126

Os nomes de arquivos e extenses


A conveno de nomenclatura da Microsoft (nome, perodo e extenso) parece similar do
UNIX. UNIX tambm usa extenses para representar tipos especficos de arquivos. A diferena est
que estas extenses (e os seus comprimentos) so implementados por conveno, no pelo arquivo
sistema. Na Microsoft, o perodo entre o nome ea extenso uma tipogrfico
caracterstica que s existe no nvel de exibio: no parte do nome. No UNIX, o perodo
faz parte do nome, e nomes como foo.bar.bazzot so nomes de arquivos perfeitamente vlidos. O
sistema no atribuir qualquer significado particular para apresentar as extenses de nome, em vez disso, ele procura
nmeros mgicos, os valores especficos em lugares especficos no arquivo.

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.

Todos os arquivos com o nome


CONFIG
e uma extenso que comea com
BA, no importa qual seja a ltima
Todos os arquivos.
personagem.

Dependendo da verso do Microsofto, todos os arquivos sem uma


Todos os arquivos que tm um perodo no
extenso,
ou todos os arquivos.
Todos os arquivos com a extenso.

meio do seu nome.

1. Curiosamente, os sistemas de arquivos da Microsoft tambm tm esta caracterstica.


unixref.mm, v v4.16 (2003/04/02 06:41:29)

127

Captulo 7: As ferramentas do comrcio

foo [127]

Em verses mais antigas, invlido. Em Os trs arquivos foo1, foo2 e


nova
foo7.
verses er com o nome de arquivo
longo
suporte, o arquivo com o nome
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

unixref.mm, v v4.16 (2003/04/02 06:41:29)

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

Arquivos e nomes de arquivos

128

Voc pode redirecionar essa sada para um arquivo com o comando:


$ Ls-l> / var / tmp / etclist

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

var / tmp / etclist


raiz
108 31 de janeiro de 2002 csh.cshrc
raiz
482 31 de janeiro de 2002 csh.login
Lemis
110 31 de janeiro de 2002 csh.logout

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

108 31 de janeiro de 2002 csh.cshrc


482 31 de janeiro de 2002 csh.login
110 31 de janeiro de 2002 csh.logout

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

Outro uso para classificar os dados arbitrrios:


$ Ps aux | sort-n +1

Este comando leva a sada do ps comando e classifica-lo pela numrico (-n)


o valor do seu segundo coluna (1). A primeira coluna numerado 0. Ns olharemos ps em
pgina 148.

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

Captulo 7: As ferramentas do comrcio

$ Export TERM = xterm

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

Para iniciar um processo com estas variveis, digite:


% Env vira-lata xterm-color

Tabela 7-3: Variveis de ambiente comuns


Nome
BLOCKSIZE
EXIBIO

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

Arquivos e nomes de arquivos

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

Esta varivel de grande importncia: um dos principais problemas que os novatos tm


ter uma incorreta PATH varivel.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

131

Captulo 7: As ferramentas do comrcio

Imprimir as variveis de ambiente


Ento voc no pode iniciar um programa, e voc est se perguntando se o seu PATH ambiente
varivel definida corretamente. Voc pode encontrar-se com o eco comando:
$ Echo $ PATH
/ Bin :/ usr / bin

O $ no incio $ PATH informa o reservatrio para substituir o valor do ambiente


varivel pelo seu nome. Sem isso, o shell tem nenhuma maneira de saber que uma
varivel de ambiente, assim que passa o texto PATH a echo, que apenas imprime-lo.
Se voc quiser imprimir todas as variveis de ambiente, use o printenv comando:
$ Printenv | tipo
BLOCKSIZE = 1048576
CLASSPATH = / usr / local / java / lib :/ usr / local / java / lib / classes.zip :/ home / grog / netscape /
CVSROOT = / home / ncvs
DISPLAY = freebie: 0
EDITOR = emacs
HOME = / home / grog
PAGER = menos
PATH =. :/ Usr / bin :/ usr / sbin :/ bin :/ sbin :/ usr/X11R6/bin :/ usr / local / bin :/ usr / local / sbin
XAUTHORITY = / home / grog / .Xauthority

Este exemplo classifica as variveis para torn-lo mais fcil de encontr-los. Com toda a probabilidade, voc vai
encontrar mais variveis.

Linha de edio de comando


A digitao uma dor. Se voc for como eu, voc est fazendo continuamente erros, e
voc pode gastar mais tempo corrigindo erros de digitao que fazer a digitao em primeiro lugar.
particularmente frustrante quando voc digitar algo como:
$ Groff-rex = 7,5-r $-RL-RW-RN2-mpic tmac.M unixerf.mm
troff: Erro fatal: no possvel abrir 'unixerf.mm': Arquivo ou diretrio

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)

Arquivos e nomes de arquivos

132

apagar H, matar U, intr C, o estado T

no exemplo na pgina 113. H (Ctrl-H) uma representao alternativa para Backspace.


Os outros trs funes matar, intr e status executar funes de edio semelhantes.
matar apaga a linha inteira, e intr interrompe um programa em execuo.
Mais corretamente, intr envia uma sinalizar chamado SIGINT para o processo. Isto normalmente causa uma
programa para parar.

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

Retomar a produo aps a parada.

SUSP

Ctrl-Z

Linha de fundo. Normalmente, este tambm termina entrada.


Gerar uma SIGINT sinal. Isso normalmente faz com que o processo de
terminar.
Gerar uma SIGQUIT sinal. Isso normalmente faz com que o processo de
terminar e dump de memria, para salvar uma cpia da sua memria para o disco para
posterior anlise.
Apague ltimo caractere. FreeBSD define isso Retrocesso no login, mas
em algumas circunstncias incomuns que voc pode encontr-lo ainda definido para
DEL.
Apagar linha de entrada atual.
Voltar indicao de fim-de-arquivo. A maioria dos programas parar quando eles
receber um EOF.

Processo de suspenso. Esta tecla gera um SIGTSTP sinalizar quando


digitado. Isso normalmente faz com que um programa a ser suspenso. A
reiniciar, utilize o fg de comando.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

133

Captulo 7: As ferramentas do comrcio

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.

Neste caso particular, X realmente significa o carter seguido da letra X, e


no Ctrl-X, o nico personagem criado por mantendo o controle carter e
premente X ao mesmo tempo.

Histrico de comandos e outras funes de edio


Hoje em dia, a maioria das conchas de fornecer uma histrico de comandos funo e funcionalidade adicional
para edit-lo. Vamos dar uma breve olhada nestas caractersticas aqui, para mais detalhes, ver o homem
pginas para o seu escudo.
Shell edio de linha de comando tem sido atravs de uma srie de fases evolutivas. O
originais shell Bourne fornecido nenhuma edio de linha de comando em tudo, embora a verso
fornecido com o FreeBSD oferece muitos dos recursos de edio de conchas mais modernos.
Ainda assim, improvvel que voc vai querer usar o shell Bourne como seu shell: bash, ksh, e
zsh so compatveis com o shell Bourne, mas tambm fornecer uma melhor linha de comando
edio.
A prxima fase da edio de linha de comando foi introduzido com o shell C, csh. Por
padres modernos, tambm bastante lamentvel. descrito no csh pgina man se voc realmente
quero saber. Sobre a nica parte que ainda til a capacidade de repetir a anterior
comando com o ! construir. Conchas modernas fornecer edio de linha de comando que
assemelha-se aos editores vi ou Emacs. Em bash, sh, ksh e zsh voc pode fazer a escolha por
digitando:
unixref.mm, v v4.16 (2003/04/02 06:41:29)

Arquivos e nomes de arquivos


$ Set-o emacs
$ Set-o vi

134
para edio de estilo Emacs
para edio de estilo vi

Em tcsh, os comandos correspondentes so:


% Ligam emacs
% Ligam vi

Normalmente voc colocar um destes comandos no seu arquivo de inicializao.


Em Emacs modo, voc digite os comandos simplesmente digitando-los dentro em vi modo,
tem que pressionar ESC em primeiro lugar. Tabela 7-5 mostra uma viso geral do estilo Emacs mais tpico
comandos Bash. Muitas outras conchas fornecer suporte de edio similar.
Como o nome sugere, o Emacs editor entende os mesmos personagens de edio. Tambm
entende muito mais do que os comandos so mostrados aqui. Alm disso, muitos baseado X
comandos, incluindo navegadores web, compreender alguns desses personagens.
Tabela 7-5: Caracteres de edio do Emacs
Chave
Ctrl-A
Leftarrow
Ctrl-B
Ctrl-D
Ctrl-E
RightArrow
Ctrl-F
Ctrl-K
Ctrl-L
DownArrow
Ctrl-N
UpArrow
Ctrl-P
Ctrl-R
Ctrl-S
Ctrl-T
Ctrl-Y
Ctrl-_
Alt-C
Alt-D
Alt-F
Alt-L

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

Captulo 7: As ferramentas do comrcio

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.

Arquivos de inicializao do shell


Como vimos acima, h uma srie de maneiras de personalizar o seu shell. Seria
inconveniente de ter de coloc-los a cada vez, para que todos os shells fornecer um meio para defini-las
automaticamente quando voc log in Quase todos os shell tem seu prprio arquivo de inicializao. Tabela 7-6
d uma viso geral.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

Arquivos e nomes de arquivos

136

Tabela 7-6: Arquivos de inicializao do shell


Conch
a
bater
csh
sh
tcsh

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

Figura 7-3: Minimal bashrc.


Seria tedioso para todos os usurios para colocar as configuraes em seus arquivos de inicializao privadas, de modo a
conchas tambm leu um grande sistema de arquivos padro. Para a famlia de concha Bourne, / Etc / profile,
enquanto a famlia shell C tem trs arquivos: / Etc / csh.login para ser executado no login,
/ Etc / csh.cshrc a ser executado quando um novo shell iniciado aps o login, e
/ Etc / csh.logout a ser executado quando voc parar um shell. Os arquivos iniciais so executados antes
os arquivos individuais correspondentes.
Alm disso, as aulas de login (pgina 564) oferecem um outro mtodo de configurao do ambiente
variveis, em nvel global.

Mudar seu shell


A instalao do FreeBSD d raiz um shell C, csh. Esta a casca BSD tradicional, mas
que tem uma srie de desvantagens: a opo de edio muito primitivo, e que o script
lngua significativamente diferente do da casca Bourne, que o de fato
padro para scripts shell: se voc ficar com o shell C, voc pode ainda precisa entender
o shell Bourne. A verso mais recente do shell Bourne sh tambm inclui algum comando
edio de linha. Consulte a pgina 133 para obter detalhes sobre como ativ-lo.
unixref.mm, v v4.16 (2003/04/02 06:41:29)

137

Captulo 7: As ferramentas do comrcio

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 $

observe o novo prompt

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

Arquivos e nomes de arquivos

138

Diferenas da Microsoft
Se voc est vindo de um fundo Microsoft, existem algumas dicas que voc pode
tropear.

Cortes: para trs e para a frente


/ (Barra) e \ (Barra invertida) so confusas. Como vimos, UNIX usa / para delimitar
diretrios. A barra invertida \ denominado escapar personagem. Ele tem vrias finalidades:

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

No coloque espaos entre o \ e a extremidade da linha, caso contrrio a concha vai


interpretar o primeiro espao como um parmetro, por si s, e, em seguida, ir interpretar o fim de
A linha como o fim do comando.

Na linguagem de programao C, a barra invertida usada para representar vrios controlar


caracteres. Por exemplo, a \ N meio'' nova linha.'' Esse uso aparece em muitos outros
lugares.

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

139

Captulo 7: As ferramentas do comrcio

Caracteres de controle do carro


Nos tempos antigos, o terminal de computador padro era um teletipo, uma espcie de computador
controlado mquina de escrever eltrica. Quando o carro, que continha a cabea de impresso, tem que
o fim de uma linha, que necessitou de duas operaes mecnicas para se deslocar para o incio do
linha seguinte: o retorno de carro caractere de controle disse que para mover o carro de volta para a
incio da linha, eo avano de linha carter disseram que virar a placa para a prxima linha.
Geraes de sistemas de computador emulado este comportamento, colocando ambos os personagens em
ao fim de cada linha de texto. Isto torna-se mais difcil reconhecer o fim de linha, que utiliza
mais espao de armazenamento, e normalmente no compra muito. Os implementadores de
UNIX decidiu em vez de usar um nico personagem, o que ele chama o nova linha personagem. Para
alguma razo, eles escolheram o avano de linha para representar nova linha, embora o carter
gerado pela Entrar um retorno de carro. Como vimos acima, a linguagem de programao C
representa como \ N.
Isso causa problemas a transferncia de dados entre o FreeBSD e Microsoft, e tambm quando
imprimir em impressoras que ainda espera os dois personagens. Vamos olhar para as questes de transferncia de arquivos
na pgina 260 e os problemas da impressora na pgina 267.

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

O editor Emacs

140

Figura 7-4: Menu principal Emacs


Quando executando sob o X, Emacs exibe uma janela prpria (vi usa um xterm sob estas
circunstncias). Como resultado, se voc comear Emacs a partir de um xterm, voc deve usar o &
personagem para inici-lo em segundo plano:
$ Emacs &

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

Captulo 7: As ferramentas do comrcio

Figura 7-5: Menu arquivos Emacs

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.

unixref.mm, v v4.16 (2003/04/02 06:41:29)

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:

UNIX um sistema operacional multi-usurio. Ns j deslizou sobre a criao de usurio


contas, mas na pgina 144 veremos com mais detalhes.

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.

UNIX implementa multi-tasking atravs de um mecanismo chamado processos. Ns olharemos


los na pgina 148.

A marcao do tempo extremamente importante em um sistema de rede. Se o seu sistema tem a


hora errada, pode causar todos os tipos de efeitos estranhos. Na pgina 155, vamos ver como
garantir que o seu sistema est funcionando o tempo correto.

Uma srie de eventos so de interesse em manter a mquina em funcionamento. O


sistema pode ajudar a se manter a par do que acontece. Um mecanismo para isso log
, arquivos que contm informaes sobre o que aconteceu na mquina. Vamos
olh-los na pgina 157.

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.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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.

Para iniciar e parar o sistema muito simples, mas h um nmero surpreendente


de opes. Muitas delas esto relacionadas com a rede, para o Captulo 29, localiza-se depois de o
seo networking.

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.

Escolher um nome de usurio


Ento, o nome de usurio que voc escolhe? Os nomes de utilizador esto normalmente relacionados com o seu verdadeiro nome e
pode ser de at oito caracteres. Como os nomes dos arquivos, eles so case-sensitive. Por
conveno, eles esto em todas as letras minsculas, mesmo quando eles representam verdadeiros nomes. Tpico
maneiras para formar um nome de utilizador so:

Primeiro nome. No meu caso, isto seria greg.

Sobrenome (lehey).

Primeiro nome ea inicial do sobrenome (gregl).

Inicial do primeiro nome e sobrenome (glehey).

Iniciais (GPL).

Nome de utilizador (por exemplo, grog).

Eu escolho a ltima possibilidade, como veremos na discusso a seguir.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

145

Captulo 8: Tomar o controle

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.

Figura 8-1: vipw exibio


unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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

Senha criptografada. Ao adicionar um novo usurio, deixe este campo em branco


e adicion-lo mais tarde com o passwd programa.
Nmero de usurio.

1001

Nmero do grupo.

(Vazio)

/ Home / yvonne

Entre classe, que descreve uma srie de parmetros para o utilizador.


Ns vamos olhar para isso no Captulo 29, na pgina 564. Este campo no est includo
em / Etc / passwd.
Tempo de mudana de senha. Se no-0, que o tempo em segundos depois de que
a senha deve ser alterada. Este campo no est includo no
/ Etc / passwd.
Tempo de expirao da conta. Se no-0, que o tempo em segundos depois de que
o utilizador expira. Este campo no est includo no / Etc / passwd.
O chamado gecos campo, o qual descreve o utilizador. Este campo usado
por um nmero de programas, em leitores de e-mail em particular, para extrair o real
nome do utilizador.
O nome do diretrio home.

/ Bin / bash

A casca deve ser iniciado quando o usurio fizer login

(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

Captulo 8: Tomar o controle

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.

Tornando-se super usurio


Muitas vezes, quando voc est logado normalmente, voc quer fazer algo que exija
ser root. Voc pode sair e entrar novamente como root, claro, mas no h uma maneira
mais fcil
forma:
$ Su
Senha:
#

se tornar super user


como de costume, no ecoar
prompt de raiz

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

adicione o texto em negrito

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.

Adicionar ou alterar senhas


Se o seu sistema tem qualquer conexo com o mundo exterior, uma boa idia para mudar o seu
palavra-passe ao longo do tempo. Faa isso com o passwd programa. A entrada no parece
muito interessante:
$ Passwd
Alterando a senha local para Yana.
Old password:
no ecoa
New password:
no ecoa
Confirme a nova senha:
no ecoa
passwd: reconstruir o banco de dados ...
passwd: feito

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:

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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

sistema de arquivos raiz montagem de leitura / gravao


sistema de arquivos mount / usr (se separado)
alterar a senha forroot
digite ctrl-D para continuar com a inicializao

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:

Quantos processos esto sendo executados?

Quem est executando os processos?

Por que o sistema to lento?

Qual processo est bloqueando meu acesso ao modem?

Sua principal ferramenta para investigar o comportamento do processo o ps (Estado do processo)


de comando. Ele tem um grande nmero de opes de comando, e posso dizer-lhe uma srie de
coisas que voc s vai entender quando tiver investigado como o kernel funciona,
mas pode ser muito til para uma srie de coisas. Aqui esto alguns usos tpicos:
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

149

Captulo 8: Tomar o controle

Quais os processos que eu tenho correndo?


Aps o incio de um grande nmero de processos em um certo nmero de janelas sob X,
provavelmente no consegue lembrar o que ainda est em execuo. Talvez os processos que voc pensou que tinha
parou ainda esto em execuo. Para apresentar um breve resumo dos processos que estejam em execuo,
utilizar o ps comando sem opes:
$ Ps
PID
187
188
453

TT
p0
p1
p1

STAT
+
Ss
R +

TEMPO
0:01.02
0:00.62
0:00.03

COMANDO
-Bash (bash)
-Bash (bash)
ps

Esta exposio mostra as seguintes informaes:

O PID do processo.

TT curto para teletipo, e mostra as ltimas letras do nome do controle


do terminal, o terminal em que o processo est a correr. Neste exemplo, os terminais
so / Dev/ttyp0 e / Dev/ttyp1.

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.

Os processos que esto a correr?


H muitos mais processos no sistema do que a lista acima shows. Para mostr-los
todo, com o um opo ps. Para mostrar daemons bem (veja a prxima seo para uma definio
de daemon), use o x opo. Para mostrar muito mais detalhes, use o u ou l opes. Para
exemplo:
$ Ps Waux
USER PID% CPU% MEM
raiz 12 95,7 0,0
raiz 11 95,1 0,0
raiz 1 0.0 0.0
raiz 12 0,0 0,0
raiz 13 0,0 0,0
raiz 15 0,0 0,0
raiz 18 0,0 0,0
raiz 20 0,0 0,0
raiz 21 0,0 0,0
raiz 22 0,0 0,0
raiz 23 0,0 0,0

VSZ RSS TT STAT


0 12? RL
0 12? RL
708 84? TIs
0 12? WL
0 12? WL
0 12? DL
0 12? WL
0 12? WL
0 12? WL
0 12? WL
0 12? WL

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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:

USURIO o ID de usurio real do processo, o ID de usurio da pessoa que o iniciou.

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.

% MEM uma indicao aproximada da quantidade de memria fsica que o processo de


est a utilizar.

VSZ (Tamanho virtual) a quantidade de memria virtual que o processo est a utilizar, medido
em kilobytes.

RSS (Tamanho do segmento residente) a quantidade de memria fsica em uso atualmente,


medido em kilobytes.

COMEOU a hora ou a data em que o processo foi iniciado.

Alm disso, um nmero surpreendente de processos no tem um terminal de controlo. Eles so


daemons, e ns vamos olhar para eles na prxima seo.

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.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

151

Captulo 8: Tomar o controle

Voc pode reconhecer daemons em um ps Waux listando pelo facto de eles no tm um


terminal de controle, em vez de ver os personagens ?. Cada daemon tem uma pgina de homem
que descreve o que ele faz.
Normalmente, daemons so iniciados quando o sistema iniciado e executado at que o sistema
parado. Se voc parar por um acidente, normalmente voc pode reinici-los. Uma exceo init,
o qual responsvel por iniciar outros processos. Se voc mat-lo, voc efetivamente matar o
sistema. Ao contrrio dos sistemas tradicionais do UNIX, FreeBSD no permite inicializao para ser morta.

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

Os restantes campos definem a operao a ser realizada. cron no l o seu shell


arquivos de inicializao. Em particular, isso pode significar que ele no vai encontrar programas que voc espera que ele
encontrar. uma boa idia para colocar em explcita PATH definies, ou especificar um caminho absoluto
para o programa, tal como feito neste exemplo. cron mails a sada para voc, ento voc deve
verificar correio de raiz ao longo do tempo.
Para instalar ou listar um crontab, use o crontab programa:
$
$
#
#
#
0

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

Processos em FreeBSD Release 5


Alguns dos processos no exemplo acima so especficos para o FreeBSD Release 5:

FreeBSD Release 5 tem um processo ocioso de utilizar-se o tempo de processamento em excesso e


executar determinadas atividades necessrias quando nenhum processo est ativo. Este exemplo mquina
tem dois processadores, de forma que h dois deles:
raiz 12 95,7 0,0 0
raiz 11 95,1 0,0 0

12? RL
12? RL

1Jan70 1406:43.85 (idle: cpu0)


1Jan70 1406:44.64 (idle: cpu1)

Um certo nmero de processos tm nomes comeam com irq ou swi:


raiz
raiz
raiz
raiz
raiz
raiz
raiz

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

1Jan70 15:04.95 (swi1: net)


1Jan70 21:30.29 (swi6: tty: s
1Jan70
0:00.00 (swi3: Cambi
1Jan70
0:00.00 (IRQ11: ahc0
1Jan70 39:00.32 (IRQ5: rl0)
1Jan70
7:12.92 (IRQ14: ata0)
1Jan70
0:47.99 (IRQ15: ATA1)

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.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

153

Captulo 8: Tomar o controle

$ 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

PRI AGRADVEL SIZE RES STATE


-16 0
0K RUN 12K
-16 0
0K CPU1 12K
97 0 4940K 3932K * gigante
-64 -183
0K ESPERA 12K
96 0
712K 608K select
96 0 2220K 1304K CPU0
96 0
520K 416k select
96 0 13876K 2112K escolha
-68 -187
0K ESPERA 12K
96 0 1528K 956K escolha

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

Figura 8-2: Exibio topo


Por padro, a exibio atualizada a cada dois segundos e contm uma grande quantidade de informaes
a respeito do estado do sistema:

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 quarta linha mostra o uso de memria.

As linhas restantes mostram os dez processos mais ativos (porque o parmetro 10


foi especificado na linha de comando). O -S opo diz topo para incluir sistema
processos, tais como o inactivo e os processos de interrupo. O estado pode ser:

A quinta linha mostra as estatsticas de swap. Quando ocorre a troca de actividade, parece tambm
nesta linha.

Prazo, quando o processo est esperando por um processador para correr.

CPU0 ou CPU1, quando o processo est activamente a execuo.

* Bloqueio, onde travar o nome de um bloqueio do kernel. Neste exemplo, a xterm


aguardando o bloqueio Gigante.

A esperar corda, o que indica um evento em que o processo est em espera.

Veja a pgina de manual top (1) para mais detalhes.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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.

Se EOF no faz-lo, tente a tecla INTR (geralmente Ctrl-C).


Se o processo for ignorando INTR, ou se ele no est associado com um terminal, a utilizar matar
de comando. Por exemplo, para descobrir quem est usando todo o tempo de CPU, use ps e olhar para
o CPU% campo:
# Ps Waux | grep cron
raiz 105 97,3 1,1 236 340?

09:11 137:14.29 cron

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

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

155

Captulo 8: Tomar o controle

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

Quando voc chegar em casa novamente, voc faria:


# Cp / usr / share / zoneinfo / Australia / Adelaide / etc / localtime

Em nenhum momento voc precisa para mudar a data ou hora diretamente.


Porqu Los_Angeles e no San_Francisco? Os desenvolvedores do pacote de fuso horrio
escolheu a maior cidade do fuso horrio. Voc precisa ter uma certa compreenso da
fusos horrios para escolher o correto.

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.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

A marcao do tempo

156

Esta no a mesma que a utilizao do TZ varivel em UNIX System V. System V


no tem tempo arquivos de definio de zona de / Usr / share / zoneinfo, ento o TZ varivel diz
que informaes sobre o fuso horrio. Se voc estiver usando o System V, em Berlim, voc definiria
seu TZ varivel MEZ1MSZ2, indicando nomes de fuso horrio e deslocamentos de UTC.

Mantendo o horrio correto


Se voc estiver conectado Internet em uma base razoavelmente regular, h uma srie de
programas que podem ajud-lo a sincronizar o seu tempo atravs da ntp (Network Time Protocol)
servio.
Um certo nmero de sistemas de todo o mundo informaes de tempo atravs do fornecimento ntp servio. Veja
em http://www.eecis.udel.edu/ ~ mills / ntp / servers.html para encontrar um perto de voc.
Sua escolha do programa depende da natureza de sua conexo com a Internet. Se
voc est conectado em tempo integral, voc provavelmente vai preferir ntpd, que mantm o sistema
sincronizada. Caso contrrio, voc pode usar ntpdate, que voc pode correr como lhe apetecer.
ntpd
ntpd executa consultas peridicas para manter o sistema sincronizado com um servidor de tempo.
H muitas maneiras de execut-lo, veja a pgina man ntpd (8). Na maioria dos casos, voc pode configurar
um sistema na rede para se conectar a uma referncia de tempo externa, e os outros sistemas
na mesma Ethernet pode obter a informao do tempo a partir do primeiro sistema.
Para obter o tempo de uma fonte externa e transmiti-lo aos outros sistemas na
rede, crie um arquivo / Etc / ntp.conf com um contedo como este:
servidor 227.21.37.18
driftfile / etc / ntp.drift
transmitir 223.147.37.255

este endereo invlido, verificar o que est perto de voc

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"

# Execute ntpd Network Time Protocol (ou NO).

O comentrio na primeira linha enganador: o valor de ntpd_enable deve ser SIM.


Voc no precisa de todas as bandeiras. Voc colocou exatamente o mesmo texto no / Etc / rc.conf na outra
mquinas, e simplesmente omitir o arquivo / Etc / ntp.conf. Isso faz com que NTPD em que essas mquinas
unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

157

Captulo 8: Tomar o controle

monitorar mensagens de difuso.


Nas verses anteriores do FreeBSD, ntpd foi chamado xntpd, ento voc pode encontrar coisas como
xntpd_enable na sua / Etc / rc.conf. Se voc fizer isso, voc vai ter que mudar o nome.
ntpdate
Se voc se conectar Internet com pouca frequncia, ntpd pode tornar-se desanimado e no manter
bom tempo. Neste caso, melhor usar ntpdate. Basta execut-lo quando voc deseja definir o
tempo:
Server # ntpdate

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

su: grog para erradicar on / dev/ttyp0


sshd [126]: Servidor :: escutando a porta 22.
sshd [126]: Servidor ouvindo na porta 22 0.0.0.0.
sshd [167]: publickey aceito para grog de 223.147.37.80
su: BAD SU grog a raiz / dev/ttyp0

A primeira linha um sucesso su invocao, a ltima linha um fracassado


(Porque a senha foi digitado errado). As mensagens so de at 00:00:19 sshd
inicializao, ea mensagem de 12:06:52 um login remoto com sucesso ssh.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

Os arquivos de log

158

cron um arquivo de log para cron. relativamente desinteressante:


Jan
Jan
Jan
Jan

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)

Se voc tiver problemas com cron, que pode mudar rapidamente.

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.

maillog contm informaes sobre a entrega de correio.

Os arquivos mount.today e mount.yesterday mostrar os sistemas de arquivos montados atualmente


no formato necessrio para / Etc / fstab.

O arquivo ppp.log contm informaes sobre as conexes PPP. Ns olhamos para ele na pgina
353.

Os arquivos setuid.today e setuid.yesterday conter uma lista de setuid arquivos. A diria


verificao de segurana compara-os e envia uma mensagem de correio se existem diferenas.

O arquivo vinum_history contm informaes sobre vinum atividade.

mensagens o arquivo de log principal.

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

roda 31773 05 de janeiro mensagens 13:01


roda
8014 02 de janeiro 01:00 messages.0.bz2
roda 10087 15 de dezembro 14:00 messages.1.bz2
roda
9940 03 de dezembro 17:00 messages.2.bz2
roda
9886 16 de novembro 11:00 messages.3.bz2
roda
9106 05 de novembro 18:00 messages.4.bz2
roda
9545 15 de outubro 17:00 messages.5.bz2

newsyslog tem um arquivo de configurao / Etc / newsyslog.conf, que discutiremos na pgina 565.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

159

Captulo 8: Tomar o controle

Suporte ao processador Multiple


FreeBSD Release 5 pode suportar mais atual Intel e AMD multiprocessador me
placas com a arquitetura ia32. Ele tambm suporta alguns Alpha, SPARC64 e Intel ia64
motherboards. Documentao em suporte SMP atualmente bastante escassa, mas voc pode encontrar
algumas informaes em http://www.freebsd.org/ ~ FSMP / SMP / SMP.html.
O GENRICO kernel no suporta SMP, ento voc deve construir um novo kernel antes de
pode utilizar mais do que um processador. O arquivo de configurao / Usr/src/sys/i386/conf/GENERIC
contm os seguintes comentada entradas:
# Para fazer um kernel SMP, os dois prximos so necessrios
# Opes de SMP
# Symmetric Kernel MultiProcessor
# Opes APIC_IO
# Symmetric (APIC) I / O

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.

DEVD: O daemon dispositivo


O daemon do dispositivo, DEVD, fornece uma maneira de executar programas userlndia quando determinado ncleo
eventos acontecem. Destina-se a gerenciar a configurao de espao de usurio de dispositivos PC Card como
Placas Ethernet, o que ele pode fazer automaticamente. Ns vamos olhar para esse uso automtico na pgina
304.
DEVD l as informaes do evento do kernel a partir do dispositivo / Dev / devctl e processade acordo com as regras especificadas no arquivo de configurao / Etc / devd.conf, que instalado
com o sistema. Se voc quiser us-lo para outros dispositivos, voc deve modificar / Etc / devd.conf.
Este arquivo contm um nmero de sees, conhecido como declaraes na pgina de manual:

O opes declarao descreve os caminhos de arquivo e uma srie de expresses regulares


(Padres) para procurar nas mensagens que ele l / Dev / devctl.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

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";
};

O device-name entrada usa a expresso regular $ Scsi-controlador-regex a


reconhecer o nome de um controlador SCSI na mensagem anexar. O ao entrada
em seguida, especifica qual ao a ser tomada quando tal dispositivo conectado ao sistema. Em
Neste caso, corre-se o CamControl programa para repetir a verificao dos barramentos SCSI e reconhecer qualquer
novos dispositivos que tenham sido adicionados.
Mltiplo anexar declaraes podem corresponder a um evento especfico, mas apenas um ser executado.
A ordem em que so verificados indicado por um prioridade, um valor numrico depois
a palavra-chave ao. As afirmaes so verificadas em ordem de maior para o menor
prioridade numrica.

separar declaraes tm a mesma sintaxe anexar declaraes. Como o nome sugere,


eles so executados quando um dispositivo destacada.
Nem sempre possvel ou necessrio para executar qualquer ao quando um dispositivo
removido. No caso de placas SCSI, no h separar declarao. Ns vamos olhar para este
emitir em mais detalhe abaixo.

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] +";

Adicionar um anexar seo para o dispositivo:

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

161

Captulo 8: Tomar o controle


anexar 0 {
device-name "$ ata-controlador-regex";
ao "mount / cmera";
};

Restart DEVD :
# Killall DEVD
# DEVD

Depois disso, o sistema de arquivos ser montado automaticamente quando voc inserir o carto.

Remoo de dispositivos PC Card


A prxima coisa que gostaria de fazer desmontar o sistema de arquivos quando voc remove o flash
carto. Infelizmente, isso no possvel. Desmontando pode envolver a transferncia de dados, assim voc
tem que fazer isso antes de remover o carto. Se voc esquecer, e remova o carto sem
desmontagem, o sistema pode entrar em pnico prxima vez que voc tentar acessar o carto.
Depois de desmontar, voc pode remover o carto. No console voc vai ver algo como:
ad4: removido da configurao
ad4: no status, dispositivo reselecting
ad4: comando de tempo limite de envio = E7 = s ff e = 04
ad4: limpeza de cache em detach falhou
ata2: Separada

Cdigo do carto alternativo PC


A implementao PC Card aqui descrito, chamado Newcard, nova no FreeBSD
Solte 5. No momento da escrita, a implementao mais velho, chamado OLDCARD, ainda
includa no sistema. possvel que voc pode ter um carto antigo que suportada
por OLDCARD mas no por Newcard. Nesse caso, voc precisar construir um kernel com
Apoio OLDCARD.
Verifique a
NOTAS arquivos
/ Usr / src / sys / conf e
/ Usr / src / sys / arch / conf, onde arch a arquitetura do seu sistema, e as pginas do manual
pccardd e pccard.conf.

Configurando dispositivos PC Card na inicializao


Um certo nmero de entradas em / Etc / rc.conf referem-se ao uso de dispositivos de placa de PC, mas quase todos
eles so para OLDCARD. Voc s precisa de um para Newcard:
devd_enable = "YES"

Isso inicia DEVD na inicializao do sistema.

unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

Dispositivos PC Card

162

Emulando outros sistemas


Um grande nmero de sistemas operacionais so executados em hardware Intel, e h um monte de software
que est disponvel para estes outros sistemas operacionais, mas no para o FreeBSD.

Emuladores e simuladores
H um certo nmero de maneiras de executar software escrito para uma plataforma diferente. O
mais populares so:

Simulao um processo em que um programa executa as funes que so normalmente


realizada pelo conjunto de instrues nativo de uma outra mquina. Eles simulam a baixa
instrues do nvel da mquina alvo, de modo simuladores no tem que ser executado no mesmo
tipo de mquina que o cdigo que eles executam. Um bom exemplo a porta
emulators/p11, que simula um minicomputador PDP-11, o aparelho para o qual a maioria
primeiras verses do UNIX foram escritas.
Simuladores de correr muito mais lentamente do que o conjunto de instrues nativa: para cada simulado
instruo, o simulador pode executar centenas de instrues da mquina. Surpreendentemente,
na maioria das mquinas modernas, a p11 emulador ainda corre mais rpido do que o original
PDP-11: mquinas modernas so mais de 1.000 vezes mais rpido do que o PDP-11.

Em geral, emuladores executar as instrues de programa directamente e apenas a simular


ambiente operacional do sistema. Como resultado, eles tm que correr no mesmo tipo de
hardware, mas eles no so visivelmente mais lento do que o original. Se houver alguma
diferena no desempenho, por causa das diferenas entre o operacional hospedeiro
e do sistema operacional emulado.

Outro uso para o termo emulador onde o hardware entende um diferente


conjunto de instrues que o nativo. Obviamente, isso no o tipo de emulador que estamos
falando aqui.

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 ir executar programas mais BSD / OS sem problemas. Voc no precisa de um


emulador.

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

Captulo 8: Tomar o controle

olh-lo na pgina 164.

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:

Instalar as bibliotecas de compatibilidade. Estes so, no porto / Usr/ports/emulators/linux_base.

Execute o emulador de Linux kld, linux.

Executando o emulador de Linux


Normalmente voc carregar o emulador de Linux ao inicializar o sistema. Coloque a seguinte linha
na sua / Etc / rc.conf :
linux_enable = "YES"

Se voc no quer fazer isso por algum motivo, voc pode inici-lo a partir da linha de comando:
# Kldload linux

Voc no interagir diretamente com o mdulo emulador: s l para fornecer ncleo


funcionalidade, de modo a obter um novo aviso imediatamente quando voc inici-lo.
linux um kld, por isso no aparece em um ps listagem. Para verificar se ele est carregado, use
kldstat:
$ Kldstat
Id Refs Endereo
1 5 0xc0100000
2 2 0xc120d000
3 1 0xc121b000
5 1 0xc1771000

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

/ Compat / linux / proc linprocfs

rw

Problemas executando Linux binrios


Um dos problemas com o formato ELF usado por mais binrios Linux que eles possam
no contm informaes para identific-los como binrios Linux. Eles podem ser igualmente bem
BSD / OS ou UnixWare binrios. Isso no normalmente um problema, a menos que haja biblioteca
conflitos: o sistema no pode decidir qual biblioteca compartilhada de usar. Se voc tem este tipo de
binria, voc deve marca o executvel usando o programa brandelf. Por exemplo, a
marca o programa StarOffice swriter3, voc deve digitar:
# Brandelf-t Linux / usr/local/StarOffice-3.1/linux-x86/bin/swriter3

Este exemplo deliberadamente mostra uma verso muito antiga do StarOffice: no claro que no
quaisquer binrios modernos que causam esses problemas.

Emulando SCO UNIX


SCO UNIX , Tambm conhecida como OpenDesktop SCO e SCO Open Server, baseado em UNIX
Sistema V.3.2. Esta verso especial do UNIX era corrente no final de 1980. Ele usa um
formato binrio obsoleto chamado COFF (Common Object File Format).
Como suporte ao Linux, SCO apoio para FreeBSD fornecido como um mdulo do kernel carregvel.
Ele no chamado sco, no entanto: um nmero de sistema antigo V.3.2 sistemas, incluindo interativo
UNIX, tambm suportam a ibcs21 padro. Como resultado, o kld chamado iBCS2.
Executar iBCS2 apoio como suporte Linux: inici-lo manualmente, ou modificar / Etc / rc.conf para inici-lo
automaticamente na inicializao:
ibcs2_enable = "YES"

# IBCS2 (SCO) emulao carregados na inicializao (ou NO).

Em alternativa, carregue o kld:

1. iBCS2 stands para Intel System compatibilidade binria 2.


unixadmin.mm, v V4.13 (2003/04/02 06:50:29)

165

Captulo 8: Tomar o controle

# 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.

Emulando Microsoft Windows


O vinho projeto vem trabalhando h algum tempo para dar uma emulao da Microsoft
Windows gama de ambientes de execuo. Est mudando continuamente, por isso h pouco
apontar descrevendo-o aqui.
Voc lata encontrar up-to-date informaes em
http://www.winehq.com/about/, e voc pode instal-lo a partir dos emuladores de porta / vinho. Ser
preparado para uma boa quantidade de trabalho.

Acessando arquivos do Microsoft


Muitas vezes, voc no est to interessado em rodar aplicativos do Microsoft como decodificao de seu
formatos proprietrios. Por exemplo, voc pode receber uma mensagem de e-mail com um anexo
descrita apenas como
[- Attachment # 2: FreeBSD.doc -]
[- Tipo: application / octet-stream, Encoding: x-unknown, tamanho: 15K -]
[- Application / octet-stream no suportado (use 'v' para ver esta parte) -]

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

segundo um que controla a construir a um nvel mais elevado.


5. Instale o pacote. Trata-se de cpia, principalmente os executveis, arquivos de configurao
e documentao criada por uma construo para o local correto na hierarquia do diretrio.
6. Configure o software instalado. Isto semelhante ao conceito de configurao do pacote,
exceto que ele ocorre no ambiente de tempo de execuo. A configurao do pacote pode
executar toda a configurao necessria para voc.
Trata-se de uma srie de etapas, e muitas vezes voc vai achar que est colocada atravs de um campo minado: um falso
mover-se, e tudo explode. Para fazer a portabilidade e instalar o software mais fcil, o
FreeBSD equipe criou um quadro chamado Coleo de Ports, o que torna trivial a
executar essas etapas. Ele tambm proporciona um mtodo de embalagem e de instalar a resultante
portado software, chamado pacotes. A edio em CD-ROM do FreeBSD inclui um grande
nmero de pacotes pr-compilados que podem ser instalados diretamente.
Neste captulo, vamos considerar os seguintes pontos como eles se relacionam com os ports do FreeBSD
coleo:

Como instalar um pacote pr-compilado. Veremos isso na prxima seo.

O que a rvore de ports, e como compilar e instalar ('' construo'') um pacote. Vamos
olhar para isso na pgina 169.

Como criar e enviar um novo porto, na pgina 174.

Como instalar um pacote


No FreeBSD linguagem, um pacote simplesmente um arquivo especial que contm os arquivos
(Geralmente arquivos binrios executveis), que so instalados quando voc construir e instalar uma porta.
Efetivamente um instantneo do processo de construo de porta que vimos acima, tirada aps o passo 4
foi concluda. Em comparao com a porta full-blown, pacotes so muito mais rpidos para instalar-
normalmente, uma questo de segundos. Por outro lado, eles no do a opo de
configurao que a porta faz completa. A distribuio de CD-ROMs contm um diretrio
pacotes com um grande nmero de pacotes de softwares pr-compilados. Alternativamente, voc pode
encontrar pacotes FreeBSD em muitos servidores na internet, verifique o manual on-line para
alguns lugares para olhar.
Para ajudar a manter uma viso geral, ambas as portas e os pacotes so divididos em categorias. Eles
so armazenadas em diretrios nomeados aps a categoria. Consulte o arquivo / Usr / ports / index para uma
lista. Por exemplo, a emacs em editores est atualmente no arquivo packages/editors/emacs-21.2.tgz, embora este nome vai mudar com verses atualizadas do emacs. Para
a verso mais recente dos pacotes s, voc vai encontrar uma outra cpia sem a extenso em
packages / Latest / emacs.tgz. Para instal-lo, digite:

ports.mm, v v4.12 (2003/04/02 06:43:08)

169

Captulo 9: A Coleo de Ports

# Pkg_add / cdrom / packages / Latest / emacs.tgz

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.

Instalao de portas durante a instalao do sistema


A maneira mais simples de instalar a coleo de ports quando voc instala o sistema. Quando
voc escolhe os componentes a serem instalados, sysinstall oferece para instalar a coleo de ports para
voc tambm.

Instalao de portas a partir do CD-ROM primeiro


O arquivo portas / ports.tgz no CD-ROM um primeiro alcatro arquivo que contm todas as portas. Se
voc no instal-lo durante a instalao do sistema, use o seguinte mtodo para instalar o
coleo completa (cerca de 200 MB). Verifique se o seu CD-ROM est montado (neste
exemplo em / Cdrom) e digite:
# Cd / usr
# Tar xzvf / cdrom / ports / ports.tgz

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.

Instalao de portas do sistema de arquivos ao vivo de CD-ROM


Alternativamente, os arquivos tambm esto no CD-ROM do sistema de arquivos ao vivo. Isso no muito de um
vantagem para a instalao, mas voc pode achar que conveniente para navegar atravs da fonte
rvores no diretrio portas no CD-ROM. Vamos supor que voc tenha encontrado um diretrio
/ Usr / ports / grficos / hpscan no CD-ROM, e o seu diretrio de trabalho atual.
ports.mm, v v4.12 (2003/04/02 06:43:08)

Construo de um porto

170

Voc pode mover os dados deparar com o seguinte:


# Cd / cdrom / ports / grficos
# Mkdir-p / usr / ports / grficos
# Tar cf -. | (Cd / usr / ports / grficos; tar xvf -)

Conseguir novos portos


O que acontece quando uma nova verso de um porto sai? Por exemplo, voc est usando
Emacs verso 20 para sempre, e agora Verso 21.2 estiver disponvel? novo, portanto,
no , obviamente, no seu CD-ROM.
Uma maneira de obter a porta via FTP. Isto costumava ser bastante conveniente: voc pode baixar
um tarball direta e extra-lo localmente. Essa , infelizmente, no mais possvel: atualmente
voc deve baixar arquivos de um diretrio de uma vez. Se voc est seguindo a Coleo de Ports em
tudo de perto, voc deve considerar o uso cvsup, que pode manter suas fontes at data
automaticamente. Consulte o Captulo 31, pgina 577, para obter mais detalhes.
Todas as portas so mantidas em subdiretrios do URL ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/.
Este diretrio tem o seguinte contedo:
drwxr-xr-x 6 1006 1006
drwxr-xr-x 209 1006 1006
drwxr-xr-x 6 1006 1006
drwxr-xr-x 3 1006 1006
drwxr-xr-x 83 1006 1006
lrwxrwxrwx uma roda de raiz
lrwxrwxrwx uma roda de raiz
lrwxrwxrwx uma roda de raiz
lrwxrwxrwx uma roda de raiz
drwxr-xr-x 4 1006 1006

512 08 de junho 13:18 alpha


401408 28 de maio 14:08 distfiles
28 maio 1536 17:53 i386
512 06 de abril 13:45 ia64
20 maio 3072 15:35 locais-distfiles
13 01 de junho de 2001 pacotes -> i386/packages
24 01 de junho de 2001 portas -> .. / FreeBSD-current/ports
5 01 de junho de 2001 portas circulante -> portas
5 01 de junho de 2001 portas estveis -> portas
512 09 de abril 10:37 sparc64

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
...

Captulo 9: A Coleo de Ports


ASCII modo conexo de dados para '/ bin / ls'.
3
4
4
4
3
2

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.

ports.mm, v v4.12 (2003/04/02 06:43:08)

Construo de um porto

172

O que est em que porta?


Um problema com a coleo de ports o grande nmero. Ela pode apenas ser difcil encontrar
o que eles deveriam fazer. Se voc construir todas as portas, voc vai estar ocupado durante semanas, e
no h nenhuma maneira que voc pode ler toda a documentao em uma s vida. Onde voc pode obter
uma viso geral? Aqui esto algumas sugestes. Em cada caso, voc deve ter o diretrio
/ Usr / ports como seu diretrio de trabalho atual.

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

ndice o nome de um alvo, a parte de uma regra que o identifica. geralmente um


nome do arquivo ou uma abreviatura de uma operao a ser executada. Veremos uma srie de
fazer metas no decorrer do livro.
O ndice utilizado por outros programas, por isso escrito como uma nica linha longa
por pacote, com campos delimitados pelo caractere de barra vertical (|). Aqui esto dois
linhas como exemplo, envolto em trs linhas para caber na pgina:
mp3asm-0.1.3 | / usr/ports/audio/mp3asm | / usr / local | editor nvel de quadro MP3 | / usr / porta
s/audio/mp3asm/pkg-descr | ports@FreeBSD.org | udio | autoconf213-2.13.000227_1 | | htt
p :/ / mp3asm.sourceforge.net /
mp3blaster-3.0p8 | / usr/ports/audio/mp3blaster | / usr / local | consola MP3 ncurses-base de
d jogador | / usr/ports/audio/mp3blaster/pkg-descr | greid@FreeBSD.org | audio | | | http://
www.stack.nl/ ~ brama/mp3blaster.html

Voc provavelmente vai querer process-lo com outras ferramentas.

Voc pode imprimir o ndice com os seguintes comandos:


# Cd / usr / ports
# Make print-index | lpr

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

Canalizar a sada atravs menos: pode ser muito.


ports.mm, v v4.12 (2003/04/02 06:43:08)

173

Captulo 9: A Coleo de Ports

Voc pode construir uma srie de quase 10 mil html pginas como esta:
# Cd / usr / ports
# Make readmes

Voc pode, ento, procur-los na URL file :/ / / usr / ports / README.html.

Obtendo o arquivo fonte


Voc vai ver no exemplo acima, que no h muitos arquivos no porto. A maior parte do
arquivos necessrios para a construo do software esto no arquivo de cdigo fonte original (o tarball'''')
mas isso no parte do porto.
H um nmero de lugares a partir do qual voc pode obter as fontes. Se voc tem um CDSet ROM, muitos deles esto espalhados ao longo dos CD-ROMs, no diretrio
/ Cdrom / ports / distfiles em cada CD-ROM. As portas Coleo Makefiles procur-los
neste diretrio (outra boa razo para montar o seu CD-ROM em / Cdrom) e tambm na
/ Usr / ports / distfiles.
Se voc no tem o pacote de cdigo, isso no um problema. Parte da funo das portas
Coleo sair na net e lev-los para voc. Isto completamente automtico:
basta digitar fazer, eo processo de construo recebe o arquivo fonte para voc e constri.
De Claro, voc deve estar conectado Internet para que isso funcione.
Se voc montar o seu CD-ROM em outro lugar (talvez porque voc tem mais de um CDROM, e ento voc tem que montar o CD-ROM, digamos, / CD4), a Makefiles no vai
encontrar os arquivos de distribuio e vai tentar carregar os arquivos a partir da Internet. Uma maneira de resolver
este problema criar um link simblico de / Cd4/ports/distfiles a / Usr / ports / distfiles.
O problema com esta abordagem que voc vai, ento no ser mais capaz de carreg-novo
arquivos de distribuio em / Usr / ports / distfiles, porque vai ser em CD-ROM. Em vez disso, faa:
#
#
#
>
>

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

Se voc estiver usando csh ou tcsh, digite:


#
#
#
?
?

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.

ports.mm, v v4.12 (2003/04/02 06:43:08)

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:

Se a porta inclui pginas de manual, que ser instalado em / Usr/X11R6/man se o


pacote est relacionada com X e / Usr / local / man Se eles no o so. Tipicamente, a instalao
pginas de manual a ltima coisa que acontece durante a instalao, por isso voc deve v-lo
no ecr. Se no, ou se voc quiser conferir, voc pode ter um olhar para a lista de pacotes:
ports.mm, v v4.12 (2003/04/02 06:43:08)

175

Captulo 9: A Coleo de Ports


$
$
/
/
/
/

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.

Se o pacote inclui documentao impressa, que pode ou no ser includo no


a porta. O Emacs documentao tambm inclui um guia do usurio e um programador de
guiar. O guia do usurio, todas as 640 pginas do mesmo, est no diretrio homem do Emacs
construir diretrio, mas ele no construdo durante a instalao. Isto tpico da maioria
portos. Neste caso, voc vai ter que construir a documentao de si mesmo.

Ficando somente binrio software


Um monte de software no precisa ser portado. Por exemplo, se voc quiser Netscape, voc pode
basta fazer o download de ftp.netscape.com. Mas como voc instal-lo? Netscape
procedimentos de instalao esto melhorando, mas ainda deixam muito a desejar.
A resposta simples: pegue a porta! Embora Netscape vem apenas na forma binria, o
porto movimenta obter a verso correta e instal-lo para voc. Outra vantagem
utilizando uma porta em vez de instalar o pacote manualmente que a porta instala o
como um pacote de software FreeBSD, o que o torna muito mais fcil remover o software mais tarde.
Este mtodo pode ser usado para instalar algum outro software, bem como, por exemplo StarOffice.
A moral da histria simples: verifique sempre a coleo de ports antes de obter um pacote de software
a partir da rede.

ports.mm, v v4.12 (2003/04/02 06:43:08)

Ficando somente binrio software

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:

ports.mm, v v4.12 (2003/04/02 06:43:08)

177

Captulo 9: A Coleo de Ports

# 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)

ports.mm, v v4.12 (2003/04/02 06:43:08)

Atualizando as portas

178

Se a porta j est atualizado, voc ver algo parecido com isto:


# Portupgrade-v perl-5.8.0_3
** No h necessidade de atualizar 'perl-5.8.0_3' (> = perl-5.8.0_3). (Especificar-f para forar)
---> A comunicao dos resultados (+: sucesso / -: ignorado / *: ignorado /: failed)
- Lang/perl5.8 (perl-5.8.0_3)

Para atualizar todas as portas, use o comando:


# Portupgrade-um

Controle de portas instaladas


Ns j vimos o programa pkg_add ao instalar pacotes pr-compilados. L
um nmero de outros pkg_ programas que podem ajud-lo a manter portas instaladas, se
terem sido instalados por pkg_add ou make install a partir da coleo de ports:

pkg_info diz-lhe que as portas esto instaladas. Por exemplo:


$ Pkg_info | menos
AbiWord 1.0.3Um open-source, multi-plataforma WYSIWYG proces palavra
ImageMagick-5.5.1.1
Ferramentas de processamento de imagem (opcional interativo - Misc
ORBit-0.5.17
Alto desempenho CORBA ORB com suporte para a C
XFree86-4.2.0_1, 1
X11/XFree86 distribuio do ncleo (completo, utilizando min
... etc
O GNU Bourne Again Shell
bash-2.05b.004
bison-1.75
Um gerador de parser de FSF, (principalmente) w compatvel
bonobo-1.0.21_1
O componente e sistema de documento composto por GNO
cdrtools-1.11.a28
Cdrecord, mkisofs e vrios outros programas de re
... etc
ELM Mail User Agent
elm-2.4ME 22
elm-2.4ME +32
ELM Mail User Agent

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

=
<
<
=
<
?

Os smbolos direita os nomes dos pacotes tm os seguintes significados:

ports.mm, v v4.12 (2003/04/02 06:43:08)

179

Captulo 9: A Coleo de Ports

<
>

?
*
!

A verso instalada do pacote atual.


A verso instalada do pacote mais velho do que a verso atual.
A verso instalada do pacote mais recente do que a verso atual.
Esta situao pode surgir com um arquivo de ndice out-of-date, ou quando o teste
novos portos.
O pacote instalado no aparece no ndice. Isto pode ser devido
a um ndice de data ou um pacote que ainda no foi confirmada.
Existem vrias verses de um pacote de software especfico listado na
arquivo de ndice.
O pacote instalado existir no ndice, mas, por algum motivo,
pkg_version foi incapaz de comparar o nmero de verso do instalado
pacote com a entrada correspondente no ndice.

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.

ports.mm, v v4.12 (2003/04/02 06:43:08)

Controle de portas instaladas

180

Manter o controle de atualizaes


A melhor maneira de descobrir sobre as atualizaes assinar o FreeBSD-portas correspondncia
lista. Dessa forma, voc receber notificaes sempre que algo muda. Se voc est acompanhando
a rvore de portas com CVSup, voc tambm ter as atualizaes para a rvore de portas automaticamente.
Caso contrrio, voc ter que baixar o porto. Em ambos os casos, para atualizar o seu instalado
port, basta repetir a construir.

Submeter um novo porto


A Coleo de Ports est em constante crescimento. Dificilmente passa um dia sem uma nova porta
sendo adicionados lista. Talvez voc queira submeter o prximo? Se voc tem algo
interessante que j no est na coleo de ports, voc pode encontrar instrues sobre como
preparar o porto do Manual do FreeBSD Porter. A verso mais recente est disponvel no
Web site do FreeBSD, mas voc tambm vai encontr-lo em seu sistema como / Usr/share/doc/en/portershandbook / index.html.

ports.mm, v v4.12 (2003/04/02 06:43:08)

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:

O proprietrio do arquivo, o ID de usurio da pessoa que possui o arquivo.

O grupo de arquivos, o ID do grupo do grupo que dono de'''' o arquivo.

A lista do que o proprietrio, o grupo e outras pessoas podem fazer com o arquivo. O
aes possveis so ler, escrever ou executar.

filesys.mm, v v4.17 (2003/04/02 06:43:57)

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

Captulo 10: Os sistemas de arquivos e dispositivos

-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

Este formato mostra as seguintes informaes:

Em primeiro lugar, as permisses, o que j discutimos.

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.

Em seguida vm os nomes do proprietrio e do grupo, e o tamanho do ficheiro em bytes.


Voc notar que o arquivo deppert.floppy pertence daemon. Este foi, provavelmente, um
acidente, e que poderia levar a problemas. Alis, olhando para o nome do arquivo
e seu tamanho, bastante bvio que esta uma imagem de 3 "flexvel, isto , um
cpia literal dos dados na disquete completa.

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.

A par das permisses so de interesse. Os diretrios tm todos o x (Executar)


bit de permisso definida. Isso permite acessar arquivos (ou seja, de abertura) no diretrio que o
forma como o termo executar definido para um diretrio. Se eu redefinir a permisso de execuo, eu posso
ainda listar os nomes dos arquivos, mas no consigo acess-los.
Eu sou a nica pessoa que pode acessar o diretrio Mail. Esta a permisso normais
para um diretrio de e-mail.
Alterando permisses de arquivos e proprietrios
Muitas vezes, voc pode querer alterar as permisses de arquivos ou proprietrios. UNIX fornece trs
programas para fazer isso:

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

Note-se que somente raiz pode executar esta operao.

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

# Chown grog: Lemis deppert.floppy

Isso muda o proprietrio chamote, como antes, e altera tambm o grupo de


Lemis.

Para alterar as permisses, use o chmod programa. chmod tem um nmero de


formatos diferentes, mas, infelizmente, a representao de nove personagem no um dos
eles. Leia a pgina de manual chmod (1) a histria completa, mas voc pode conseguir apenas sobre
qualquer coisa que voc quiser com um dos formatos mostrados na tabela 10-1:
Tabela 10-1: cdigos de permisso chmod
Especificao Efeito
Negar permisso para grupo e outros escrevem

go-w

= Rw, + X

Defina a ler e escrever permisses para os padres habituais, mas mantm


qualquer permisses de execuo que esto atualmente definidas

+ X

Crie um diretrio ou arquivo pesquisvel / executvel por todos, se


j pesquisvel / executvel por qualquer pessoa

u = rwx, go = rx

Faa um arquivo legvel / executvel por todos e escrito pelo


proprietrio s

go =

Limpar todos os bits de modo para o grupo e outros

g = u-w

Definir os bits de grupos iguais aos bits do usurio, mas limpar o bit write grupo

As permisses para novos arquivos


Nada disto nos diz o que as permisses para novos arquivos vo ser. O errado
escolha poderia ser desastroso. Por exemplo, se os arquivos foram criados automaticamente com o
permisses rwxrwxrwx, qualquer um pode acess-los de qualquer forma. Por outro lado,
cri-los com r -------- poderia resultar em muito trabalho coloc-los para o que voc
realmente quer que eles sejam. UNIX resolve esse problema com uma coisa chamada umask (User
mscara). Este um no-permisso padro: especifica quais bits de permisso no permitir.
Como se isso no fosse confuso o suficiente, especificado no sistema de numerao octal, em que
os dgitos vlidos so 0 a 7. Cada dgito octal representa trs bits. Por outro lado, quanto
mais sistema hexadecimal comum usa 16 dgitos, 0 a 9 e um a f. As verses originais de
UNIX correu em mquinas que utilizaram o sistema de numerao octal, e desde que as permisses
vm em grupos de trs, fazia sentido deixar o umask valor em octal.
Um exemplo: por padro, voc deseja criar arquivos que qualquer um pode ler, mas s voc pode
escrever. Voc define a mscara 022. Isto corresponde ao padro binrio bit 000010010.
O lder 0 necessrio especificar que o nmero est em octal, no para fazer a trs dgitos. Se voc
deseja definir as permisses para que por default ningum pode ler, voc configur-lo para 0222. Algumas conchas
automaticamente assumir que o nmero octal, ento voc poder ser capaz de omitir o 0, mas no bom
prtica.

filesys.mm, v v4.17 (2003/04/02 06:43:57)

185

Captulo 10: Os sistemas de arquivos e dispositivos

As permisses so permitidos onde o bit correspondente 0:


rwxrwxrwx
000010010
rwxr-xr-x

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 +

Neste exemplo, as permisses no resultado final so realmente as permisses corretas para


ps. impossvel percorrer as permisses para todos os programas padro. Se voc
suspeitar que voc tem o conjunto de permisses incorretamente, use as permisses dos arquivos em
o CD-ROM de sistema de arquivos ao vivo como uma diretriz.
setuid e setgid programas pode ser um problema de segurana. O que acontece se o programa chamado
ps realmente algo mais, um Cavalo de Tria? Temos de definir as permisses para permitir que ele quebrar
para o sistema. Como resultado, o FreeBSD tem encontrado um mtodo alternativo para ps para fazer o seu
trabalho, e no precisa mais ser definidos setgid.

Mandatory Access Control


Para alguns propsitos, as permisses UNIX tradicionais so insuficientes. Verso 5.0 de
FreeBSD introduz Mandatory Access Control, ou MAC, que permite kernel carregvel
mdulos para aumentar a poltica de segurana do sistema. MAC concebida como um conjunto de ferramentas para
desenvolvimento de extenses de segurana locais e vendedor, e inclui um nmero de amostras
mdulos de polticas, incluindo a Segurana Multi-Nvel (MLS) com compartimentos, e um nmero
aumento do nmero de modelos de segurana UNIX, incluindo um firewall de sistema de arquivos. No momento da
escrever ainda considerado software experimental, de modo que este livro no discuti-lo ainda mais.
Veja as pginas de manual para mais detalhes.

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

Captulo 10: Os sistemas de arquivos e dispositivos

como o diretrio que se refere a eles.


Entradas de diretrio so independentes um do outro: cada um aponta para o inode, por isso eles so
completamente equivalente. A contm um inodo contagem de links que mantm o controle de quantas
entradas de diretrio apontar para ele: quando voc remove a ltima entrada, o sistema apaga o arquivo
dados e metadados.
Alternativamente, links simblicos, s vezes chamado soft links, no est restrito ao mesmo
sistema de arquivos (nem mesmo para o mesmo sistema!), e referem-se a outro nome de arquivo, e no ao
prprio arquivo. A diferena mais evidente se voc excluir um arquivo: se o arquivo tem sido difcil
ligado, os outros nomes ainda existe e voc pode acessar o arquivo por eles. Se voc excluir um arquivo
nome que tem um link simblico apontando para ele, o arquivo vai embora eo link simblico
no pode encontr-lo mais.
No fcil decidir qual o tipo de ligao a usar para ver UNIX Power Tools (O'Reilly) para
mais detalhes.

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.

filesys.mm, v v4.17 (2003/04/02 06:43:57)

Hierarquia de diretrios

188

Tabela 10-2: Hierarquia de diretrios do FreeBSD


Diretrio
nome
/

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

Programas executveis de uso geral necessrios na inicializao do sistema


tempo. O nome era originalmente uma abreviao para binrio, mas
muitos dos arquivos aqui so scripts shell.

/ Boot

Arquivos usados durante a inicializao do sistema, incluindo o kernel e sua


ligado klds.

/ Cdrom

Um ponto de montagem para unidades de CD-ROM.

/ Compat

Um link para / Usr / compat: veja abaixo.

/ Dev

Directrio de ns de dispositivos. O nome uma abreviao para


dispositivos. Do FreeBSD 5.0 em diante, esta normalmente uma montagem
ponto de partida para o sistema de arquivos do dispositivo, devfs. Vamos olhar para o contedo
deste diretrio com mais detalhes na pgina 195.

/ Etc

Os arquivos de configurao utilizados na inicializao do sistema. Ao contrrio do System V, / Etc


no contm arquivos de compilao do kernel, que no so necessrios no
inicializao do sistema. Diferentemente das verses anteriores do UNIX, mas tambm no
contm executveis, eles foram transferidos para / Sbin.

/ Home

Por conveno, colocar os arquivos do usurio aqui. Apesar do nome, / Usr para
arquivos do sistema.

/ Mnt

Um ponto de montagem para disquetes e outros sistemas de arquivos temporrios.

/ Proc

O processar sistema de arquivos. Este diretrio contm pseudo-arquivos que


referem-se a memria virtual de processos ativos no momento.

/ Root

O diretrio home do usurio root. No arquivo UNIX tradicional


sistemas, diretrio home do root foi /, Mas isso confuso.

/ Sbin

Executveis do sistema necessrias em tempo de inicializao do sistema. So


arquivos de administrao do sistema que tipicamente usados para ser armazenado em / Etc

/ 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

Um lugar para os arquivos temporrios. Este diretrio um anacronismo:


normalmente sobre o sistema de arquivos raiz, embora seja possvel
mont-lo como um sistema de arquivos separado ou fazer um link simblico para
/ Var / tmp. Ele mantido principalmente para programas que esperam encontrar
lo.

/ Usr

O sistema de arquivos segundo''.'' Veja a discusso acima.


filesys.mm, v v4.17 (2003/04/02 06:43:57)

189

Captulo 10: Os sistemas de arquivos e dispositivos

Diretrio
nome
/ Usr/X11R6

Uso
O Sistema X Window.

/ Usr/X11R6/bin

Programas X11 executvel.

/ Usr/X11R6/include

Arquivos de cabealho para a programao X11.

/ Usr/X11R6/lib

Arquivos de biblioteca para X11.

/ Usr/X11R6/man

Pginas do manual para X11.

/ Usr / bin

Programas executveis padro que no so necessrios na inicializao do sistema.


A maioria dos programas padro que voc usa so armazenadas aqui.

/ Usr / compat

Um cdigo contendo diretrio para sistemas emulados, como o Linux.

/ Usr / games

Jogos.

/ Usr / include

Arquivos de cabealho para programadores.

/ Usr / lib

Arquivos de biblioteca. FreeBSD no tem um diretrio / Lib.

/ Usr / libexec

Arquivos executveis que no so iniciados diretamente pelo usurio, para


exemplo, as fases do compilador C (os quais so iniciados pelos
/ Usr / bin / gcc) ou o getty programa, o qual iniciado por Init.

/ Usr / libdata

Diversos arquivos usados por utilitrios de sistema.

/ Usr / local

Programas adicionais que no fazem parte do sistema operacional. Ele


paralelo ao / Usr diretrio em ter subdiretrios bin incluem
lib, homem, sbin e compartilhar. Este o lugar onde voc pode colocar programas
que voc recebe de outras fontes.

/ Usr / obj

Arquivos objeto criado, quando a construo do sistema. Veja o Captulo 33.

/ Usr / ports

A coleo de ports.

/ Usr / sbin

Programas de administrao de sistemas que no so necessrios ao sistema


inicializao.

/ Usr / share

Diversos arquivos somente leitura, principalmente informativo. Subdiretrios


incluir doc, a documentao do FreeBSD, jogos, informao, o GNU
Informaes documentao, locale, informaes internationization e
homem, as pginas man.

/ Usr / src

Arquivos de origem do sistema.

/ 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

Diretrio com arquivos de log do sistema

/ Var / mail

E-mails recebidos para os usurios deste sistema

filesys.mm, v v4.17 (2003/04/02 06:43:57)

Hierarquia de diretrios do FreeBSD

Diretrio
nome
/ Var / spool
/ Var / tmp

190

Uso
Dados transitrios, tais como correio de sada, os dados de impresso e annimo
FTP.
Arquivos temporrios.

Tipos de sistemas de arquivos


FreeBSD suporta um nmero de tipos de sistemas de arquivos. Os mais importantes so:

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.

FreeBSD suporta um nmero de sistemas de arquivos de outros sistemas operacionais populares.


Voc monta os sistemas de arquivos com o montar comando eo -T opo para especificar
o tipo de sistema de arquivos. Por exemplo:
# Mount-t ext2fs / dev/da1s1 / linux
# Mount-t msdos / dev/da2s1 / C:

montar um sistema de arquivos Linux ext2


montar um sistema de arquivos FAT Microsoft

Aqui est uma lista de sistemas de arquivos suportados atualmente:


Tabela 10-3: Suporte ao sistema de arquivos
Sistema de
arquivos
CD-ROM
DVD
Linux ext2
Microsoft MS-DOS
Microsoft NT
Novell Netware
Microsoft CIFS

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

Captulo 10: Os sistemas de arquivos e dispositivos

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

Voc no pode executar esta operao em um sistema de arquivos montado.

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

Este comando cria um instantneo do / Var sistema de arquivo chamado / Var/snapshot/snap1.


Arquivos de instantneo tem algumas propriedades interessantes:

Voc pode ter vrios instantneos em um sistema de arquivos, at o limite atual de 20.

Snapshots tm o schg sinalizador, o que impede qualquer escrita para eles.

Apesar do schg bandeira, voc ainda pode remov-los.

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)

Tipos de sistemas de arquivos

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.

Montagem de sistemas de arquivos


Plataformas Microsoft identificar parties por letras que so atribudos no momento da inicializao. Tem
nenhuma relao bvia entre as parties, e voc tem pouco controle sobre a forma como o
sistema atribui-los. Por outro lado, todas as parties UNIX tm uma relao especfica com o raiz
sistema de arquivos, que chamado simplesmente /. Essa flexibilidade tem um problema: voc tem o
escolha de onde na estrutura do sistema de arquivos em geral que voc colocar seus sistemas de arquivos individuais.
Voc pode especificar o local com o montar de comando. Por exemplo, voc normalmente
montar um CD-ROM no diretrio / Cdrom, mas se voc tem trs unidades de CD-ROM
anexado ao seu controlador SCSI, talvez voc prefira para mont-los nos diretrios / Cd0,
/ Cd1 e / cd2. Para montar um sistema de arquivos, voc precisa especificar o dispositivo a ser montado,
onde ele para ser montado, e do tipo de sistema de ficheiros (a menos que seja ufs). O ponto de montagem,
(O diretrio onde est a ser montado) j deve existir. Para montar o seu segundo CDROM / Cd1, voc entra:
# Mkdir / cd1
# Mount-t cd9660-o ro / dev/cd1a / cd1

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

sistema de arquivos raiz


trocar
Sistema de arquivos / usr
sistema de arquivo adicional
Sistema de arquivos Linux
Sistema de arquivos Microsoft
sistema de pseudo-arquivo proc
CD-ROM
Sistemas de arquivos NFS em outros sistemas

Sistema de arquivos SMB

filesys.mm, v v4.17 (2003/04/02 06:43:57)

193

Captulo 10: Os sistemas de arquivos e dispositivos

O formato do arquivo razoavelmente simples:

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 segunda coluna especifica o ponto de montagem. Parties swap no tem um monte


ponto, de modo que o ponto de montagem para a partio swap especificado como nenhum.

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.

Arquivos de montagem dos sistemas de arquivos


At o momento, nossos arquivos foram todos em dispositivos, tambm chamado arquivos especiais. s vezes, porm,
voc pode querer acessar o contedo de um arquivo como um sistema de arquivos:

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

filesys.mm, v v4.17 (2003/04/02 06:43:57)

carregar o mdulo kld se necessrio


j carregado no kernel
e configurar o dispositivo
este o nome atribudo no diretrio / dev
ento mont-lo

Montagem de sistemas de arquivos

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.

Desmontando sistemas de arquivos


Quando voc monta um sistema de arquivos, o sistema assume que vai ficar l, e no
questo de eficincia atrasa a gravao de dados de volta para o sistema de arquivos. Este tambm o
razo pela qual voc no pode simplesmente desligue-o quando voc desligar o sistema. Se voc
quero parar de usar um sistema de arquivos, voc deve informar ao sistema sobre ele para que ele possa liberar qualquer
dados restantes. Voc pode fazer isso com o umount de comando. Observe a ortografia deste
comando, no h n no nome do comando.
Voc precisa fazer isso mesmo com uma mdia somente leitura, como CD-ROMs: o sistema assume que
pode acessar os dados de um sistema de arquivos montado, e fica muito infeliz se no puder.
Sempre que possvel, ele bloqueia a mdia removvel para que voc no pode remov-los do dispositivo
at que voc desmont-las.
Utilizao umount simples: basta dizer o que desmontar, ou o nome do dispositivo ou
o nome do diretrio. Por exemplo, para desmontar o CD-ROM montado no exemplo
acima, voc pode digitar um dos seguintes comandos:
# Umount / dev/cd1a
# Umount / cd1

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)

/ Cd1 16 -> umount / cd1


/ Cd1 17 -> cd
~ 18 -> umount / cd1
~ 19 ->

Depois de desmontar um sistema de arquivos vnode, no se esquea de desconfigurar o arquivo:


# Umount / mnt
# Mdconfig-d-u 0

O parmetro 0 refere-se a md 0 dispositivo, em outras palavras / Dev/md0.

filesys.mm, v v4.17 (2003/04/02 06:43:57)

195

Captulo 10: Os sistemas de arquivos e dispositivos

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.

Resumo dos dispositivos FreeBSD


Cada sistema UNIX tem suas peculiaridades quando se trata de nomes de dispositivos e uso.
Mesmo se voc est acostumado com UNIX, voc encontrar o seguinte quadro til.
Tabela 10-4: Nomes dos dispositivos FreeBSD
Dispositivo Descrio
acd0

Primeiro ATA (IDE) unidade de CD-ROM.

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

Primeira unidade de CD-ROM SCSI.

ch0

SCSI CD-ROM trocador (juke box)

consol
cuaa0

Console do sistema, o dispositivo que recebe mensagens do console. Inicialmente,


/ Dev/ttyv0, mas pode ser alterado.
Primeira porta serial em modo de texto explicativo.

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

filesys.mm, v v4.17 (2003/04/02 06:43:57)

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

Kernel memria virtual pseudo-dispositivo.

lpt0

Primeira impressora paralela.

mem

Memria virtual fsica pseudo-dispositivo.

nsa0

Primeira unidade de fita SCSI, modo de no-retrocesso.

nulo

O bit bucket''.'' Enviar dados para este dispositivo se voc nunca quer v-lo
novamente.
PS / 2 mouse.

psm0

acaso

Primeiro mestre pseudo-terminal. Mestre pseudo-terminais so nomeados


/ Dev/ptyp0 atravs / Dev / ptypv, / dev/ptyq0 atravs / Dev / ptyqv, / dev/ptyr0
atravs / Dev / ptyrv, / dev/ptys0 atravs / Dev / ptysv, / dev/ptyP0 atravs
/ Dev / ptyPv, / Dev/ptyQ0
atravs / Dev / ptyQv, / Dev/ptyR0
atravs
/ Dev / ptyRv e / Dev/ptyS0 atravs / Dev / ptySv.
Gerador de nmeros aleatrios.

SA0

Primeira unidade de fita SCSI, retroceder no modo de perto.

sysmouse
tty

Sistema de rato, controlada pela moused. Ns vamos olhar para isso de novo na pgina
516.
Terminal de controle atual.

ttyd0

Primeira porta serial no modo chamando.

ttyid0

Primeira porta serial no modo chamando, estado inicial.

ttyld0

Primeira porta serial no modo chamando, estado de bloqueio.

ttyp0

ugen0

Primeiro escravo pseudo-terminal. Slave pseudo-terminais so nomeados / Dev/ttyp0


atravs / Dev / ttypv, / dev/ttyq0 atravs / Dev / ttyqv, / dev/ttyr0 atravs
/ Dev / ttyrv, / dev/ttyS0 atravs / Dev / ttysv, / dev/ttyP0 atravs / Dev / ttyPv,
/ Dev/ttyQ0 atravs / Dev / ttyQv, / dev/ttyR0 atravs / Dev / ttyRv e
/ Dev/ttyS0 atravs / Dev / ttySv. Alguns processos, como o xterm, s olhar
em / Dev/ttyp0 atravs / Dev / ttysv.
Primeiro virtuais tty. Este o mostrador com a qual o sistema iniciado. At 10
ttys virtuais pode ser ativado adicionando o apropriado getty informaes
o arquivo / Etc / ttys. Consulte o Captulo 19, pgina 338, para obter mais detalhes.
Primeiro dispositivo USB genrico.

ukbd0

Primeiro teclado USB.

ulpt0

Primeira impressora USB.

ptyp0

ttyv0

filesys.mm, v v4.17 (2003/04/02 06:43:57)

197

Captulo 10: Os sistemas de arquivos e dispositivos

Dispositivo Descrio
Primeiro dispositivo de armazenamento em massa USB.

umass0
ums0

Primeiro mouse USB.

uscanner0

Primeiro scanner USB.

vinum

Diretrio para ns de dispositivos Vinum. Consulte Captulo 12, para mais detalhes.

zero

Dispositivo fictcio que sempre retorna o valor (binrio) 0 quando lida.

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

"/ Usr / libexec / getty


"/ Usr / libexec / getty
"/ Usr / libexec / getty
"/ Usr / libexec / getty

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

Processo 1 inicializao -Consulte a pgina 524 para mais detalhes.

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.

Adicionando um disco rgido


Quando voc instalou o FreeBSD, voc criou sistemas de arquivos em pelo menos um disco rgido. Numa
depois ponto, voc pode querer instalar unidades adicionais. H duas maneiras de fazer isso: com
sysinstall e com os tradicionais utilitrios de linha de comando UNIX.
Houve um tempo em que era perigoso usar sysinstall depois de o sistema ter sido
instalado: havia uma chance significativa de tiro no prprio p. H sempre um
oportunidade de fazer algo errado ao inicializar discos, mas sysinstall tornou-se muito
melhor, e agora a ferramenta de escolha. bom saber que as alternativas, no entanto. Neste
seo veremos sysinstall, e na pgina 209, vamos ver como faz-lo manualmente, se
sysinstall no vai cooperar.
Ns j passamos por todos os detalhes do layout do disco e fatias e parties no Captulo 2, para
Eu no vou repeti-las aqui. Basicamente, para adicionar um novo disco para o sistema, voc precisa:

Instale o disco fisicamente. Isso geralmente envolve desligando a mquina.

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

199

Adicionando um disco rgido

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.

Definir uma fatia FreeBSD (que o PC BIOS chama uma partio'''').

Diga o sistema sobre os sistemas de arquivos e onde mont-los.

Criar os sistemas de arquivos.

Definir as parties no slice FreeBSD.

Estas so as mesmas operaes que se realizaram, no Captulo 5.

Instalao de hardware de disco


Antes que voc pode fazer qualquer coisa com o disco, voc tem que instal-lo no sistema. Para fazer isso,
voc deve, normalmente, desligar o sistema e desligar a alimentao, apesar de high-end SCSI
caixas permitem hot-swap, alterando os discos em um sistema em execuo. Se o disco IDE,
e voc j tem um disco IDE no controlador, voc precisa definir o segundo disco como
'' Escravo'' rgido. E voc pode ter que definir o primeiro disco como'' master'' drive: se voc s tem
um carro, voc no definir quaisquer jumpers, mas se voc tiver dois discos, alguns discos exigem que voc
para definir jumpers de ambos os discos. Se voc no fizer isso, o sistema parece travar durante
o power-on self test, e, finalmente, denunciar algum tipo de erro de disco.
Adicionando um disco SCSI mais complicado. Voc pode conectar at 15 dispositivos SCSI a um
Adaptador de hospedeiro, dependendo da interface. Muitos sistemas de restringir o nmero de 7 para
compatibilidade com interfaces de SCSI antigos. Normalmente, o primeiro disco SCSI tero a
SCSI ID 0, eo adaptador de anfitrio ter a SCSI ID 7. Tradicionalmente, o IDs 4, 5 e
6 so reservadas para unidades de fita e CD-ROM, e os IDs de 0 a 3 so reservados para discos,
embora FreeBSD no impor quaisquer restries sobre o que vai onde.
Independentemente do tipo de disco que voc est adicionando, olhe para as mensagens de inicializao, que voc pode recuperar
com a dmesg de comando. Por exemplo, se voc est planejando adicionar um dispositivo SCSI, voc
pode ver:
sym0: <875> porta 0xc400-0xc4ff mem 0xec002000-0xec002fff, 0xec003000-0xec0030ff irq 10
no dispositivo 9.0 em pci0
sym0: Symbios NVRAM, ID 7, Fast-20, SE, SEM paridade
sym0: Open Drain motorista linha de IRQ, usando on-chip SRAM
sym0: usando LOAD / firmware baseado STORE.
sym0: SCAN PARA LUNS desativado para alvos 0.
SYM1: <875> porta 0xc800-0xc8ff mem 0xec001000-0xec001fff, 0xec000000-0xec0000ff irq 9
no dispositivo de 13,0 em pci0
SYM1: No NVRAM, ID 7, Fast-20, SE, verificao de paridade
mais abaixo ...
Aguardar 3 segundos para dispositivos SCSI para resolver
SA0 em sym0 bus 0 target 3 lun 0
SA0: dispositivo <EXABYTE EXB-8505SMBANSH2 0793> removvel de acesso sequencial SCSI-2
SA0: 5.000MB / s transferncias (5.000MHz, offset 11)
sa1 em sym0 bus 0 target 4 lun 0
sa1: <archive Python 28849-XXX 4.CM> dispositivo removvel de acesso sequencial SCSI-2
sa1: transferncias 5.000MB / s (5.000MHz, offset 15)
sa2 em sym0 bus 0 target 5 lun 0
sa2: <TANDBERG TDC 3800 -03:> acesso ao dispositivo removvel sequencial SCSI-CCS
sa2: transferncias 3.300MB / s
pass4 em sym0 bus 0 target 4 lun 1
pass4: dispositivo <archive Python 28849-XXX 4.CM> removvel Changer SCSI-2
disks.mm, v v4.17 (2003/04/02 06:44:17)

201

Captulo 11: Discos

pass4: transferncias 5.000MB / s (5.000MHz, offset 15)


cd0 em sym0 nibus meta de 6 0 lun 0
cd0: dispositivo SCSI-2 <NRC MBR-7 110> removvel CD-ROM
cd0: transferncias 3.300MB / s
cd0: cd presente [322.265 x 2.048 registros de bytes]
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)

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:

disks.mm, v v4.17 (2003/04/02 06:44:17)

Adicionando um disco rgido

202

# CamControl uma nova pesquisa


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)
Re-scan de um nibus foi bem sucedida

H um problema com esta abordagem: note que / Dev/da1 Tem ID 0, e o j


apresentar / Dev/da0 tem ID 3. Se agora voc reiniciar o sistema, eles vo vir para cima com a
dispositivo nomeia o contrrio. Vamos olhar para esta questo com mais detalhes na prxima
seco.
A instalao de um dispositivo SCSI interno
A instalao de um dispositivo SCSI interno o mesmo que instalar um dispositivo externo.
Em vez de cadeias de margarida, voc tem um cabo de banda plana, com uma srie de conectores. Encontre um
que lhe convier, e conecte-o ao dispositivo. Novamente, voc precisa pensar sobre o trmino:

Se estiver a instalar o dispositivo no final da cadeia, que deveria ter cessado


ativado. Voc tambm deve desativar resciso do dispositivo que anteriormente era no
extremidade da cadeia. Dependendo do dispositivo, o que pode implicar a remoo fsica
terminadores ou a criao de um jumper.

Se voc estiver instalando o dispositivo no meio da cadeia, certifique-se que no tem


terminao ativada.

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

203

Captulo 11: Discos

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

Lembre-se que a formatao de um disco destri todos os dados no disco.


Antes de usar o comando, certifique-se de que voc precisa para faz-lo:
h relativamente poucos casos que exigem a formatao de um disco.
Sobre as nicas razes, se voc quiser mudar o fsico
tamanho do setor do disco, ou se voc est recebendo'' mdio formato
erros'' corrompidos do disco em resposta a ler e escrever
pedidos.
FreeBSD pode formatar apenas disquetes e discos SCSI. Em geral, no mais possvel
ATA discos reformatar (IDE), embora alguns fabricantes tm programas que podem recuperar
a partir de alguns problemas de dados. Na maioria dos casos, no entanto, suficiente para gravar a toda a zeros
disco:
# Dd if = / dev / zero of = / dev/ad1s2 bs = 128k

Se isso no funcionar, voc pode encontrar programas de formatao no site do fabricante.


Voc provavelmente vai precisar execut-los sob a plataforma Microsoft.
1. A Microsoft tambm usa o termo formato de alto nvel para o que chamamos de criao de um sistema de arquivos.
disks.mm, v v4.17 (2003/04/02 06:44:17)

Adicionando um disco rgido

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:

Figura 11-1: menu de seleo de disco


Neste caso, queremos partio / Dev/da1, por isso posicionar o cursor no da1 (Como mostrado)
e imprensa Enter. Vemos o menu de partio do disco, o que mostra que o disco atualmente
contm trs parties:

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''.''

A prxima partio ocupa a maior parte da unidade e uma partio Microsoft.


Finalmente, temos 803 setores que sobraram como resultado de um esquema de particionamento.
s vezes, isso pode ser muito mais valores de maior que eu j vi to altas quanto 35 MB. Isto
o preo que pagamos para compatibilidade com PC BIOS particionamento.

Queremos uma partio FreeBSD, no uma partio Microsoft. Neste ponto, temos um nmero
de opes:

disks.mm, v v4.17 (2003/04/02 06:44:17)

205

Captulo 11: Discos

Figura 11-2: Menu partio de disco

Ns podemos mudar o tipo de partio (chamado'' subtipo'' no menu). atualmente 6,


e seria preciso alter-lo para 165. Faa isso com o t de comando.

Ns poderamos excluir a partio, posicionando o cursor sobre as informaes da partio


e pressionando d, em seguida, criar uma nova partio, ou com um se quisermos uma nica partio,
ou com c se queremos mais de uma partio.

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

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:

disks.mm, v v4.17 (2003/04/02 06:44:17)

207

Captulo 11: Discos

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:

A informao importante sobre este menu olhando um pouco vazia a informao no


superior sobre o espao livre disponvel. Ns queremos criar duas parties: a primeira, uma partio swap
de 512 MB, e, em seguida, um sistema de arquivos ocupando o resto do disco. Ns pressionamos C, e so
mostrado um submenu oferecendo-nos todos 8386733 blocos no disco. Temos que apagar e entrar
512m, o que representa 512 MB. Depois, pressione Enter, e outro submenu aparece,
pedindo-nos que tipo de fatia . Ns mover o cursor para baixo para selecionar Um swap
partio:

disks.mm, v v4.17 (2003/04/02 06:44:17)

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:

Depois de pressionar Digite, vemos:

disks.mm, v v4.17 (2003/04/02 06:44:17)

209

Captulo 11: Discos

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.

Faz-lo da maneira mais difcil


Infelizmente, s vezes voc pode no ser capaz de usar a sysinstall mtodo. Voc pode
no ter acesso a sysinstall, ou voc pode querer usar as opes que sysinstall no oferece.
Isso nos deixa com a velha maneira de adicionar discos. A nica diferena que desta vez precisamos
usar ferramentas diferentes. Nas sees seguintes, vamos olhar para o que temos que fazer para
instalar este mesmo 4 GB unidade Seagate manualmente. Desta vez, vamos mudar o particionamento de
conter as seguintes parties:

Um sistema de arquivos Microsoft.

O / Newhome sistema de arquivos para o nosso sistema FreeBSD.

Swap adicional para o sistema FreeBSD.

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

Faz-lo da maneira mais difcil

210

Criando uma tabela de partio


A primeira etapa criar uma tabela de partio modelo BIOS do PC no disco. Como na Microsoft, o
o programa de particionamento chamado fdisk. Na discusso a seguir, voc vai encontrar um bolso
indispensvel calculadora.
Se o disco no novo, ele ter os dados existentes de algum tipo sobre ele. Dependendo
a natureza desses dados, fdisk poderia comear suficientemente confuso para no funcionar corretamente. Se voc
No formate o disco, uma boa idia para substituir o incio do disco com dd :
# Dd if = / dev / zero of = / dev/da1 count = 100
100 0 registros em
100 0 registros fora
51.200 bytes transferidos em um segundos (51.200 bytes / seg)

Vamos atribuir 1 GB para a Microsoft e usar o restante, aproximadamente, 3 GB para


FreeBSD. Nossa tabela de partio resultante deve ser parecido:
Master Boot Record
Partition Table
Fatia 1 - Microsoft primrio
/ Dev/da1s1, 1 GB
Slice 2 - FreeBSD
/ Dev/da1s2, 3 GB

Microsoft partio primria


/ Dev/da1s2b: FreeBSD troca
/ Dev/da1s2h: / newhome sistema de arquivos

Slice 3 (no utilizado)


Slice 4 (sem uso)

Figura 11-3: tabela de partio no segundo disco FreeBSD


O Master Boot Record ea tabela de partio ocupam o primeiro setor do disco, mas
muitas das alocaes so trilha orientada, por isso toda a primeira faixa do disco no
disponvel para alocao. O resto, at ao fim do ltimo cilindro inteiro, pode ser dividido
entre as parties. fcil cometer um erro na especificao dos parmetros e
fdisk executa to bom quanto qualquer verificao. Voc pode facilmente criar uma tabela de partio que tem
absolutamente nenhuma relao com a realidade, por isso uma boa idia para calcul-las com antecedncia.
Para cada partio, preciso saber trs coisas:

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.

O iniciar setor, o primeiro setor na partio.


O setor final para a partio.

disks.mm, v v4.17 (2003/04/02 06:44:17)

211

Captulo 11: Discos

Alm disso, precisamos decidir qual partio o ativo partio, a partio


que queremos arrancar. Neste caso, no faz nenhuma diferena, pois no ser
inicializar a partir do disco, mas sempre uma boa idia para configur-lo de qualquer maneira.
Ns especificar quais as parties que no queremos, dando-lhes um tipo, comece sector a sector e final
de 0. Nosso disco tem 8386733 setores, numerados de 0-8386732. Parties deve comear e
terminar em um limite de cilindro, e queremos que a partio Microsoft em cerca de 1 GB. 1 GB
de 1024 MB e 1 MB de 2048 setores de 512 bytes cada um, por isso, teoricamente, queremos que 1024
2.048, ou 2.197.152 setores. Devido exigncia de que as parties comeam e terminam em um
'' Cilindro'' limite, precisamos encontrar o nmero mais prximo de cilindros'''' a este valor.
Primeiro precisamos descobrir como um grande'' cilindro'' . Podemos fazer isso atravs da execuo fdisk
sem opes:
# Fdisk 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)
fdisk: tabela de partio fdisk invlido encontrado
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 :
<UNUSED>
Os dados para a partio 2 :
<UNUSED>
Os dados relativos a divisria 3 a seguinte:
<UNUSED>
Os dados relativos a partio 4 :
sysid 165, (FreeBSD/NetBSD/386BSD)
comear a 47, tamanho 8.386.539 (4094 Meg), bandeira 80 (ativo)
implorar: cyl 0 / cabea 1 / setor 1;
end: cyl 413 / cabea 12 / setor 47

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)

Faz-lo da maneira mais difcil

212

Tabela 11-1: amostra fdisk parmetros


Divisria
nmero
1
2
3
4

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

Captulo 11: Discos

comear 2091453, 6295133 tamanho (3073 Meg), bandeira 0


implorar: cyl 351 / head 0 / setor 1;
end: cyl 413 / cabea 12 / setor 47
Estamos felizes com essa entrada? [N] y
Os dados relativos a divisria 3 a seguinte:
<UNUSED>
Voc quer mudar isso? [N] Entrar prensado
Os dados relativos a partio 4 :
sysid 165, (FreeBSD/NetBSD/386BSD)
comear a 47, tamanho 8.386.539 (4094 Meg), bandeira 80 (ativo)
implorar: cyl 0 / cabea 1 / setor 1;
end: cyl 413 / cabea 12 / setor 47
Voc quer mudar isso? [N] y
Os dados estticos para a partio DOS 4 foi reinicializado para:
sysid 165, (FreeBSD/NetBSD/386BSD)
comear a 47, tamanho 8.386.539 (4094 Meg), bandeira 80 (ativo)
implorar: cyl 0 / cabea 1 / setor 1;
end: cyl 413 / cabea 12 / setor 47
Fornecer um valor decimal para "sysid (165 = FreeBSD)" [165] 0
Fornecer um valor decimal para o "start" [47] 0
Fornecer um valor decimal para o "tamanho" [8386539] 0
Explicitamente especificar o endereo implorar / end? [N] Entrar prensado
<UNUSED>
Estamos felizes com essa entrada? [N] y
Voc quer mudar a partio ativa? [N] y
Fornecer um valor decimal de "partio ativa" [1] 2
Voc est feliz com essa escolha [n] y
Ns no mudamos a tabela de partio ainda. Esta sua ltima chance.
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)
Informaes do DOS bootblock :
1: 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
2: sysid 165, (FreeBSD/NetBSD/386BSD)
start 2091453, 6295133 tamanho (3073 Meg), bandeira 80 (ativo)
implorar: cyl 351 / head 0 / setor 1;
end: cyl 413 / cabea 12 / setor 47
3: <UNUSED>
4: <UNUSED>
Deveramos escrever nova tabela de parties? [N] y

Voc vai notar algumas coisas aqui:

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.

Os nmeros de cilindros no resumo no final no faz qualquer sentido. Temos


j calculou que a partio Microsoft vai do cilindro 0 a cilindro 3422
inclusive, ea partio FreeBSD vai do cilindro 3423 de cilindro 13725. Mas
fdisk diz que a partio da Microsoft vai do cilindro de 0 a 350, inclusive cilindro,
ea partio FreeBSD vai do cilindro 351 no cilindro 413. O que isso tudo
sobre?

disks.mm, v v4.17 (2003/04/02 06:44:17)

Faz-lo da maneira mais difcil

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.

Todos os deslocamentos so em relao ao incio da fatia, e no o incio do disco.


Tamanhos tambm se referem fatia e no no disco.

A primeira coisa que precisamos a (fatia) rtulo de disco, que fornece informaes gerais sobre
a fatia:

O fato de que uma fatia FreeBSD.

O tamanho da fatia.

Os tamanhos, tipos e layout dos sistemas de arquivos.

Algumas informaes obsoletas sobre detalhes como a velocidade de rotao do disco ea


Tempo de comutao de caminhos-de-track. Este ainda est aqui apenas por razes histricas. Pode ir
embora logo.

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:

/ Dev/da1s2b: troca FreeBSD, 512 MB


/ Dev/da1s2h: / newhome sistema de arquivos, 2,5 GB

Figura 11-4: FreeBSD fatia no segundo disco

disks.mm, v v4.17 (2003/04/02 06:44:17)

215

Captulo 11: Discos

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

Faz-lo da maneira mais difcil

216

Problemas de execuo disklabel


s vezes isso no funciona muito bem. Aqui esto alguns dos erros que voc pode
encontrar:

Voc pode encontrar:


# Disklabel-w-r da1s2 auto
disklabel: / dev/da1s2c: Erro indefinido: 0

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.

No rtulo de disco em disco bastante simples. Voc tentou usar disklabel a


olhar para o rtulo antes de voc ter um rtulo para olhar.

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.

Abrir partio moveria ou encolher provavelmente significa que voc tem


especificou valores incorretos em suas definies de fatia. Verificar que a particularmente c
partio corresponde definio na tabela de partio.

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.

Alm disso, voc pode receber mensagens do kernel, como:


fixlabel: tamanho da partio RAW> tamanho da fatia
ou
fixlabel: compensar parties brutas = fatia compensar

Os significados dessas mensagens deve ser bvia.

Voc pode receber esta mensagem:


# Disklabel-w-r / dev/da1s2 auto
disklabel: "auto" requer o uso de um nome de disco cannica

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:

disks.mm, v v4.17 (2003/04/02 06:44:17)

217

Captulo 11: Discos


# Disklabel-w-r da1s2 definio

onde definio o nome da entrada em / Etc / disktab.

Criando sistemas de arquivos


Uma vez que temos uma etiqueta vlida, precisamos criar os sistemas de arquivos. Neste caso, s h
um sistema de arquivos, em / Dev/da1s2h. Felizmente, isso mais fcil:
# Newfs-U / dev/da1s2h
Aviso: tamanho do bloco e bytes por inode restringir cilindros por grupo de 89.
Warning: 420 sector (s) no ltimo cilindro no alocado
/ Dev/da1s2h: 5246556 setores em 1281 cilindros de um faixas, 4.096 setores
2561.8MB em 15 grupos de cil (89 c / g, 178.00MB / g, 21632 E / g)
backups super-bloco (por fsck-b #) em:
32, 364576, 729120, 1093664, 1458208, 1822752, 2187296, 2551840, 2916384,
3280928, 3645472, 4010016, 4374560, 4739104, 5103648

O -U flag diz newfs para habilitar as atualizaes suaves, que ns olhamos na pgina 191.

Montagem dos sistemas de arquivos


Por fim, o trabalho est feito. Bem, quase. Voc ainda precisa montar o sistema de arquivos, e para dizer
o sistema que tem mais swap. Mas isso no um grande problema:
# Mkdir / newhome
# Mount / dev/da1s2h / newhome
# Swapon / dev/da1s2b
# Df
Filesystem 1024-blocks
Usado
/ Dev/ad0s1a 19966
17426
/ Dev/ad0s1e 1162062
955758
procfs 4
4
presto :/ 15823
6734
presto :/ usr 912271
824927
presto :/ home 1905583 1193721
presto :/ S 4065286 3339635
/ Dev/da1s2h 2582220
2
# Pstat-s
Dispositivo 1K-blocks
Usado
/ Dev/ad0s4b 524160
0
/ Dev/da1s2b 524160
0
Total de 1048320
0

certifique-se que temos um diretrio para montar em


e mont-lo
mostrar sua capacidade, sistemas de arquivos montados
Avail Capacity Mounted on
944
95% /
113340
89% / usr
0
100% / proc
8297
45% / presto / root
41730 95% / presto / usr
521303
70% / presto / home
563039
86% / S
2375642
0%
/ Newhome
mostrar a utilizao de swap
Aproveitar Tipo Capacidade
524160
0%
Intercalado
524160
0%
Intercalado
1048320
0%

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

disks.mm, v v4.17 (2003/04/02 06:44:17)

trocar
ufs

sw
rw

0
0

0
0

Criando sistemas de arquivos

218

Movendo sistemas de arquivos


Muito freqentemente, voc adicionar um novo disco para um sistema porque os discos existentes ficaram sem
espao. Vamos considerar o disco que voc acabou de adicionar e assumir que, actualmente, os arquivos
/ Home esto fisicamente localizados na / Usr sistema de arquivos, e que / Home um link simblico para
/ Usr / home. Ns queremos mov-los para o novo sistema de arquivos e, em seguida, renome-lo para / home.
Aqui est o que fazer:

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!

Remova os arquivos antigos:


# Rm-rf / usr / home

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).

Modificar / Etc / fstab para conter uma linha como:


/ Dev/da1s2h

/ Home

ufs

rw

Desmonte o / Newhome diretrio e mont-lo como / Home:


# Umount / newhome
# Mount / home

Recuperando-se de erros de dados em disco


Discos rgidos modernos so um milagre em evoluo. Hoje voc pode comprar um disco rgido de 200 para
menos de US $ 200, e vai caber no seu bolso da camisa. Trinta anos atrs, um disco tpico era
o tamanho de uma mquina de lavar roupa e armazenados 20 MB. Voc precisaria de 10 mil deles para
loja de 200 GB.

disks.mm, v v4.17 (2003/04/02 06:44:17)

219

Captulo 11: Discos

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

Este comando ir iniciar o seu editor favorito (seja o especificado no EDITOR


varivel de ambiente, ou vi por padro) com os seguintes dados:
AWRE (Auto Write Realocao Enbld): 0
ARRE (Auto Read Realocao Enbld): 0
TB (transferncia Block): 1
EER (Habilitar recuperao rpida): 0
PER (Mensagem de erro): 1
DTE (Desativar Transferncia em caso de erro): 0
DCR (desativar a correo): 0
Leia Retry Count: 41
Escrever Retry Count: 24

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.

disks.mm, v v4.17 (2003/04/02 06:44:17)

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:

Os discos podem ser muito pequenas.

Os discos podem ser demasiado lento.

Os discos podem ser muito confivel.

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:

O objeto mais visvel o disco virtual, chamado de volume. Volumes tm essencialmente


as mesmas propriedades de uma unidade de disco UNIX, embora haja algumas pequenas diferenas.
Eles no tm limitaes de tamanho.

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

vinum.mm, v v4.19 (2003/04/09 19:56:42)

221

222

Captulo 12: A Vinum Volume Manager

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.

Espao em disco mapeamento para plexos


A forma como os dados so compartilhados entre as unidades tem uma forte influncia sobre o desempenho.
conveniente pensar no armazenamento de disco como um grande nmero de setores de dados que so
enderevel por nmero, um pouco como as pginas de um livro. O mtodo mais bvio
dividir o disco virtual em grupos de sectores consecutivos, o tamanho do indivduo
discos fsicos e armazen-los desta forma, um pouco como a forma como uma grande enciclopdia
dividido em um certo nmero de volumes. Este mtodo chamado concatenao, e s vezes
JBOD (Just a Bunch Of Disks). Ele funciona bem quando o acesso ao disco virtual
espalhar uniformemente sobre seu espao de endereo. Quando o acesso concentrada em uma rea menor, o
melhoria menos acentuada. Figura 12-1 ilustra a seqncia em que as unidades de armazenamento
so alocados em uma organizao concatenada.
Disco 1

Disco 2

Disco 3

Disco 4

0
1
2
3
4
5

6
7
8
9

10
11

12
13
14
15
16
17

Figura 12-1: organizao concatenada


Um mapeamento alternativa dividir o espao de endereo em pequenos, de tamanho igual
componentes, chamado listras, e armazen-los seqencialmente em diferentes dispositivos. Para
exemplo, a primeira faixa de 292 kB podem ser armazenados no disco em primeiro lugar, a faixa seguinte sobre o
disco seguinte e assim por diante. Aps o enchimento do ltimo disco, o processo repete-se at que os discos esto cheios.
Este mapeamento chamado striping ou RAID-0, 1 embora o ltimo termo um pouco
enganador: ele no fornece nenhuma redundncia. Striping requer um pouco mais de esforo para localizar
os dados, e pode causar I / O adicional de carga, onde a transferncia est espalhada por vrias
discos, mas tambm pode proporcionar uma carga mais constante entre os discos. Figura 12-2
1. RAID stands para Matriz Redundante de Discos Baratos e oferece vrias formas de tolerncia a falhas.
vinum.mm, v v4.19 (2003/04/09 19:56:42)

Objetos Vinum

223

ilustra a seqncia em que as unidades de armazenamento so alocadas em uma


organizao listrado.
Disco 1

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

Figura 12-2: organizao Listrado

A integridade dos dados


Vinum oferece duas formas de armazenamento de dados redundantes que visa sobreviver falha de hardware:
espelhamento, tambm conhecido como RAID nvel 1 e paridade, tambm conhecido como nveis de RAID 2-5.
Mirroring mantm duas ou mais cpias dos dados em hardware fsico diferente. Qualquer
escrever para o volume escreve para ambos os locais, a leitura pode ser satisfeita a partir de qualquer um, por isso, se um
unidade falhar, os dados ainda esto disponveis na outra unidade. Ela tem dois problemas:

O preo. Exige armazenamento em disco o dobro de uma soluo no-redundante.

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.

vinum.mm, v v4.19 (2003/04/09 19:56:42)

224

Captulo 12: A Vinum Volume Manager

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

Figura 12-3: RAID-5 organizao


Comparado com o espelhamento, RAID-5 tem a vantagem de requerer menos espao de armazenamento significativamente
espao. O acesso de leitura semelhante das organizaes listradas, mas o acesso de gravao
significativamente mais lenta, cerca de 25% do desempenho de leitura.
Vinum tambm oferece RAID-4, uma variante mais simples de RAID-5, que armazena todos os blocos de paridade
sobre um disco. Isso faz com que o disco de paridade um gargalo quando se escreve. RAID-4 no oferece nenhuma
vantagens sobre RAID-5, por isso efetivamente intil.

Que organizao complexa?


Cada organizao complexa tem suas vantagens exclusivas:

Plexos concatenados so os mais flexveis: podem conter qualquer nmero de subdiscos,


e os subdiscos pode ser de comprimento diferente. O complexo pode ser prorrogado por adio
subdiscos adicionais. Eles exigem menos tempo de CPU do que plexes listradas ou RAID-5,
embora a diferena de sobrecarga da CPU de plexos listradas no mensurvel. Eles
so o nico tipo de complexo, que pode ser alargado no tamanho sem perda de dados.

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.

A tabela a seguir resume as vantagens e desvantagens de cada complexo


organizao.
Tabela 12-1: Organizaes complexas Vinum

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

Alta performance em combinao


com acesso altamente concorrente.

RAID-5

no

sim

Armazenamento altamente confivel, principalmente


acesso de leitura.

Tipo Plex

Criao de unidades Vinum


Antes que voc pode fazer qualquer coisa com Vinum, voc precisa reservar espao em disco para ele. Vinum
objetos da unidade so na verdade um tipo especial de partio do disco, do tipo vinum. Ns vimos como
criar parties de disco na pgina 215. Se nesse exemplo quisssemos criar um Vinum
de volume, em vez de uma partio UFS, que teria criado assim:
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.
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.

vinum.mm, v v4.19 (2003/04/09 19:56:42)

226

Captulo 12: A Vinum Volume Manager

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

Este arquivo descreve quatro objetos Vinum:

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.

O volume A linha descreve um volume. O nico atributo necessrio o nome, neste


caso myvol.

O Plex linha define um complexo. O nico parmetro necessrio a organizao, neste


caso concat. Nenhum nome necessrio: o sistema gera automaticamente um nome de
o nome do volume por adio do sufixo . Px, onde x o nmero de identificao do complexo no
volume. Assim, este complexo ser chamado myvol.p0.

O sd linha descreve um subdisco. As especificaes mnimas so o nome de uma unidade


em que armazen-lo, e o comprimento do subdisco. Tal como acontece com plexos, nenhum nome
necessrio: o sistema atribui automaticamente nomes derivados do nome do complexo por
adio do sufixo . Sx, onde x o nmero do subdisco no complexo. Assim Vinum
d a este subdisco o nome myvol.p0.s0
vinum.mm, v v4.19 (2003/04/09 19:56:42)

Configurando Vinum

227

Aps o processamento desse arquivo, vinum (8) produz o seguinte resultado:


Vinum -> criar config1
1 unidades:
D Estado: at

/ 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

Figura 12-4: Um volume Vinum simples


Esta figura, e os que se seguem, representam um volume, o qual contm os plexos,
que por sua vez, contm as subdiscos. Neste exemplo trivial, o volume compreende um plex
e o complexo contm um subdisco.

Criando um sistema de arquivos


Voc pode criar um sistema de arquivos neste volume, da mesma forma como voc faria para um convencional
disco:
# Newfs-U / dev / vinum / myvol
/ Dev / vinum / myvol: 512.0MB (1.048.576 setores) tamanho do bloco 16384, tamanho do fragmento de 2048
com 4 grupos de cilindros de 128.02MB, 8.193 quadras, 16.512 inodes.
backups super-bloco (por fsck-b #) em:
32, 262208, 524384, 786560

vinum.mm, v v4.19 (2003/04/09 19:56:42)

228

Captulo 12: A Vinum Volume Manager

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.

Aumento da resilincia: o espelhamento


A resilincia do volume pode ser aumentado ou por espelhamento ou usando RAID-5
plexos. Ao dispor de um volume espelhado, importante assegurar que as subdiscos
cada complexo esto em unidades diferentes, de modo que uma falha no disco no vai derrubar ambos os plexos.
A seguinte configurao espelha um volume:
unidade b device / dev/da2s2h
espelho de volume
complexo org concat
sd comprimento 512m rgido de um
complexo org concat
sd comprimento 512m unidade b

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

Subdiscos: 1 Tamanho: 512 MB


Subdiscos: 1 Tamanho: 512 MB
Subdiscos: 1 Tamanho: 512 MB
D: um
D: um
D: b

Tamanho:
Tamanho:
Tamanho:

512 MB
512 MB
512 MB

A Figura 12-5 mostra graficamente a estrutura.


Neste exemplo, cada plex contm os totais de 512 MB de espao de endereo. Como no anterior
exemplo, cada complexo possui apenas um nico subdisco.
Note o estado de mirror.p1 e mirror.p1.s0: inicializar e vazio respectivamente.
H um problema quando voc cria dois plexos idnticos: para garantir que eles so idnticos,
voc precisa copiar todo o contedo de um complexo para o outro. Este processo chamado
revivendo, e realiz-la com o incio comando:
Vinum -> start mirror.p1
vinum [278]: reviver mirror.p1.s0
Revivendo mirror.p1.s0 no fundo
Vinum -> vinum [278]: mirror.p1.s0 cabe

vinum.mm, v v4.19 (2003/04/09 19:56:42)

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

Figura 12-5: Um volume Vinum espelhado


Durante o processo de inicializao, voc pode olhar para o estado para ver o quo longe a reviver tem
progrediu:
Vinum -> lista mirror.p1.s0
S mirror.p1.s0
Estado: R 43%

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.

Adicionando plexos para um volume existente


Em algum momento aps a criao de um volume, voc pode decidir adicionar plexes adicionais. Para
exemplo, voc pode querer adicionar um complexo com o volume myvol vimos acima, colocando o seu
subdisco na unidade b. O arquivo de configurao para esta extenso seria parecido com:
Plex nome myvol.p1 org concat volume de myvol
sd tamanho 1g unidade b

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

vinum.mm, v v4.19 (2003/04/09 19:56:42)

Tamanho: 1024 MB
Tamanho: 512 MB
1 Tamanho: 1024 MB
Tamanho:
512 MB
Tamanho: 1024

230

Captulo 12: A Vinum Volume Manager

O comando l sinnimo de lista eo -R opo significa recursiva: ela mostra tudo


objetos subordinados. Neste exemplo, plex myvol.p1 1 GB de tamanho, embora myvol.p0
apenas 512 MB de tamanho. Esta discrepncia permitido, mas no muito til por si s:
apenas a primeira metade do volume est protegido contra falhas. Como veremos na prxima
seo, no entanto, este um trampolim til de aumentar o tamanho de um sistema de arquivos.
Note que voc no pode usar o setupstate palavra-chave aqui. Vinum no possvel saber se o
volume existente contm dados vlidos ou no, ento voc obrigao utilizar o comear comando para
sincronizar os plexos.

Adicionando subdiscos de plexos existentes


Aps a adio de um segundo complexo de myvol, tinha um complexo com 512 MB e outro com 1024
MB. Faz sentido ter os mesmos plexos de tamanho, ento a primeira coisa que devemos fazer adicionar um
segundo subdisco ao complexo myvol.p0.
Se voc adicionar subdiscos para listradas, RAID-4 e RAID-5 plexos, voc vai alterar o mapeamento
dos dados para os discos, o que efectivamente destri o contedo. Como resultado, voc deve usar
o -F opo. Quando voc adiciona subdiscos de plexos concatenados, os dados do existente
subdiscos permanece inalterado. No nosso caso, o complexo concatenado, por isso criar e adicionar
o subdisco assim:
nome sd myvol.p0.s1 complexo myvol.p0 tamanho 512m unidade c

Depois de adicionar este subdisco, o volume parecido com este:

0 MB
myvol.p0.s0

volume
endereo

myvol.p0.s1

myvol.p1.s0

espao
1024

Plex 1

Plex 2

myvol.p0

myvol.p1

Figura 12-6: um volume Vinum estendida

vinum.mm, v v4.19 (2003/04/09 19:56:42)

Configurando Vinum

231

Ele no parece muito feliz, no entanto:


Vinum -> l-r myvol
V myvol
Estado: at plexos: 2
P myvol.p0
C Estado: subdiscos corruptos: 2
P myvol.p1
C Estado: inicializar
S myvol.p0.s0
Estado: at D: a
S myvol.p0.s1
Estado: vazia D: c
S myvol.p1.s0
Estado: velho D: b

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

O comando setstate altera o estado de objetos individuais sem atualizar os de


objetos relacionados. Por exemplo, voc pode us-lo para mudar o estado de um complexo de para cima mesmo que tudo
os subdiscos so para baixo. Se usado incorretamente, pode pode causar corrupo de dados grave.
Ao contrrio dos comandos normais, ele no salvar as alteraes de configurao, para que voc use
saveconfig para isso, depois voc tem certeza que voc tem os estados corretos. Leia a pgina de manual
antes de us-los para qualquer outra finalidade.
Em seguida, voc iniciar o segundo complexo:
Vinum -> start myvol.p1
Revivendo myvol.p1.s0 no fundo
vinum [446]: reviver myvol.p1.s0
Vinum -> vinum [446]: myvol.p1.s0 cabe
l
Trs unidades:
D Estado: at
D b Estado: at
D c Estado: at

/ Dev/da1s2h A: 3582/4094 MB (87%)


/ Dev/da2s2h A: 3070/4094 MB (74%)
/ Dev/da3s2h A: 3582/4094 MB (87%)

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

vinum.mm, v v4.19 (2003/04/09 19:56:42)

algum tempo depois


para o prompt de comando anterior

D: um
D: b
D: c

Tamanho:
Tamanho:
Tamanho:

512 MB
1024
512 MB

232

Captulo 12: A Vinum Volume Manager

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

Este volume representado na Figura 12-7. O escurecimento das linhas indica o


posio dentro do espao de endereamento complexo: as listras mais claras vm em primeiro lugar, o mais escuro passado.

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

Captulo 12: A Vinum Volume Manager

stripe.p0.s0
stripe.p0.s1
stripe.p0.s2
stripe.p0.s3

Plex 1
stripe.p0

Figura 12-7: Um volume Vinum listrado


sd
sd
sd
Plex
sd
sd
sd
sd
sd

comprimento unidade 102480k


comprimento unidade 102480k
comprimento unidade 102480k
480k org listradas
comprimento unidade 102480k
comprimento unidade 102480k
comprimento unidade 102480k
comprimento unidade 102480k
comprimento unidade 102480k

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

Isto pressupe a disponibilidade de dez discos. No essencial ter todos os componentes em


discos diferentes. Voc poderia colocar os subdiscos do segundo complexo nas mesmas unidades como a
subdiscos do primeiro complexo. Se voc fizer isso, voc deve colocar subdiscos correspondentes em
diferentes unidades:

vinum.mm, v v4.19 (2003/04/09 19:56:42)

Configurando Vinum
Plex
sd
sd
sd
sd
sd
Plex
sd
sd
sd
sd
sd

235

480k org listradas


comprimento unidade 102480k
um
comprimento unidade 102480k
b
comprimento unidade 102480k
c
comprimento unidade 102480k
d
comprimento unidade 102480k
e
480k org listradas
c
comprimento unidade 102480k
comprimento unidade 102480k
d
comprimento unidade 102480k
e
comprimento unidade 102480k
um
comprimento unidade 102480k
b

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

Figura 12-8: A espelhado, o volume Vinum listrado

Banco de dados de configurao Vinum


Vinum armazena informaes de configurao em cada unidade essencialmente da mesma forma como em
os arquivos de configurao. Voc pode exibi-lo com o dumpconfig de comando. Ao ler
a partir da base de dados de configurao, o Vinum reconhece um certo nmero de palavras-chave que no so
permitidos nos arquivos de configurao, pois poderia comprometer a integridade dos dados. Para
exemplo, aps a adio do segundo complexo de myvol, a configurao do disco deve conter o
o seguinte texto:
vinum.mm, v v4.19 (2003/04/09 19:56:42)

236

Captulo 12: A Vinum Volume Manager

Vinum -> dumpconfig


Dirija um:
Dispositivo / dev/da1s2h
Criado em bumble.example.org a ter 26 nov 2002 14:35:12
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
Drive / dev/da1s2h: 4094 MB (4293563904 bytes)
Unidade b:

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

As diferenas bvias aqui so a presena de informaes sobre a localizao explcita e nomeando


(Ambos os quais tambm so permitidos, mas desencorajado, para utilizao pelo utilizador), e as informaes
nos estados (que no esto disponveis para o usurio). Vinum no armazena informaes
sobre as unidades de informaes de configurao: ele encontra as unidades, verificando o
unidades de disco configurado para parties com uma etiqueta Vinum. Isto permite identificar o Vinum
unidades corretamente, mesmo que tenham sido atribudos diferentes IDs unidade UNIX.
Quando voc comear com a Vinum vinum start comando, Vinum l a configurao
banco de dados a partir de uma das unidades Vinum. Sob circunstncias normais, cada unidade contm
uma cpia idntica do banco de dados de configurao, por isso no importa que carro lido.
Depois de um acidente, no entanto, Vinum deve determinar qual a unidade foi atualizado mais recentemente
e ler a configurao a partir desta unidade. Em seguida, ele actualiza a configurao, se necessrio,
a partir de unidades progressivamente mais velhas.

Instalando FreeBSD em Vinum


Instalando FreeBSD em Vinum complicada pelo fato de que sysinstall eo carregador
no suportam Vinum, por isso no possvel instalar diretamente em um volume Vinum. Em vez disso,
voc precisa instalar um sistema convencional e, em seguida, convert-lo para Vinum. Isso no to
difcil como pode parecer.

vinum.mm, v v4.19 (2003/04/09 19:56:42)

Instalando FreeBSD em Vinum

237

Uma instalao tpica do disco define parties de disco da seguinte maneira:


da0s3a: / sistema de
arquivos
da0s3b: troca
da0s3e: / usr sistema de

disco inteiro: da0s3c

arquivos
da0s3f: / var sistema de
arquivos

Figura 12-9: layout de partio tpica sem Vinum


Este esquema mostra trs parties do sistema de arquivos e uma partio swap, que no o
o layout recomendado na pgina 68. Ns vamos olhar para as razes para esta abaixo.
Cada partio corresponde logicamente a um subdisco Vinum. Voc poderia incluir todos estes
subdiscos em uma unidade Vinum. O nico problema que Vinum armazena sua configurao
informaes no incio do disco, e a que o sistema de arquivos raiz . Um
maneira de resolver este problema colocar a partio swap antes de torn-lo 265 setores mais
do que o necessrio. Voc pode fazer isso a partir de sysinstall simplesmente criando a partio swap
antes de qualquer outra partio. Considere a instalao de FreeBSD em uma unidade de 4 GB. Criar, em
seqncia, uma partio swap de 256 MB, um sistema de 256 MB de arquivos raiz, uma / Usr sistema de arquivo
2 GB, e um / Var sistema de arquivos para pegar o resto. importante criar o swap
partio no incio do disco, de modo a criar o primeiro. Depois da instalao, a sada
de disklabel parecido com este:
8 parties:
# Tamanho
compensar
a: 524288 532480
b: 532,215
265
c: 8386733
0
e: 4194304 1056768
f: 3135661 5251072

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

vinum.mm, v v4.19 (2003/04/09 19:56:42)

# (Cyl.

0-13726 *)

238

Captulo 12: A Vinum Volume Manager

Depois disso, voc tem a seguinte situao:


da0s3b: troca
da0s3a: / sistema de
arquivos
da0s3e: / usr sistema de

disco inteiro: da0s3c

da0s3h: vinum unidade

arquivos
da0s3f: / var sistema de
arquivos

Figura 12-10: layout de partio com Vinum


A rea sombreada na parte superior da partio Vinum representa a configurao
informao, que corta a partio swap. Para corrigir isso, vamos redefinir a troca
partio para iniciar aps as informaes de configurao Vinum e ser 265 setores menores.
Os sistemas de arquivos so relativamente trivial para recriar: ter o tamanho e valores de deslocamento do
disklabel sada acima e us-los em um arquivo de configurao Vinum:
conduzir rootdev dispositivo / dev/da0s2h
troca de volume
complexo org concat
# B:
532215
265
trocar
sd len 532215s driveoffset 265s unidade rootdev
raiz do volume
complexo org concat
# A:
524288
532480
4.2BSD 2048 16384
sd len 524288s driveoffset 532480s unidade rootdev
usr volume de
complexo org concat
# E:
4194304
1056768
4.2BSD 2048 16384
sd len 4194304s driveoffset 1056768s unidade rootdev
var o volume
complexo org concat
# F:
3135661
5251072
4.2BSD 2048 16384
sd len 3135661s driveoffset 5251072s unidade rootdev

94

89

89

Os comentrios so as linhas correspondentes do disklabel sada. Eles mostram a


valores correspondentes para o tamanho e offset. Correr vinum create contra esse arquivo, e confirme
que voc tem os volumes /, / Usr e / Var.
Em seguida, verifique se voc est pronto para iniciar Vinum com o novo mtodo. Voc deve ter
as seguintes linhas no / Boot / loader.conf :
vinum_load = "YES"
vinum.autostart = "YES"

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)

Instalando FreeBSD em Vinum

239

# Fsck-n-t ufs / dev / vinum / usr


** / Dev / vinum / usr (sem escrita)
** ltima montado em / usr
** 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
35.323 matrculas, 314.115 usados, 718.036 livres (4132 frags, 89.238 blocos, a fragmentao 0,4%)

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

Mud-lo para refletir os volumes Vinum:


# $ Id: fstab, v 1.3 2002/11/14 06:48:16
# Dispositivo
Mountpoint
/ Dev / vinum / swap nenhum
/ Dev / vinum / root /
/ Dev / vinum / usr / usr
/ Dev / vinum / var / var

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.

vinum.mm, v v4.19 (2003/04/09 19:56:42)

240

Captulo 12: A Vinum Volume Manager

Recuperando-se de falhas no disco


Um dos propsitos do Vinum para ser capaz de recuperar de problemas de hardware. Se voc
ter escolhido uma configurao de armazenamento redundante, a falha de um nico componente no
parar o volume de trabalho. Em muitos casos, possvel substituir os componentes sem
tempo de inatividade.
Se uma unidade falhar, execute os seguintes passos:
1. Substitua a unidade fsica.
2. Partio a nova unidade. Algumas restries se aplicam:

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:

Vinum -> start test.p1.s0


Revivendo test.p1.s0 em segundo plano
Vinum -> vinum [295]: reviver test.p1.s0
(Algum tempo depois)
vinum [295]: test.p1.s0 cabe

0B
0B

Tamanho:
Tamanho:
Tamanho:
Tamanho:
Tamanho:

30
30
30
30
30

MB
MB
MB
MB
MB

esta mensagem exibida aps o prompt

vinum.mm, v v4.19 (2003/04/09 19:56:42)

Recuperando-se de falhas no disco

241

Disco de inicializao falhou


Se voc estiver executando o seu sistema de arquivos raiz em um volume Vinum, voc pode sobreviver a falha de
o volume de arranque, se for espelhado com pelo menos dois plexos concatenados contendo cada
apenas um subdisco. Em circunstncias normais, voc pode continuar a correr como se nada
tinha acontecido, mas, obviamente, voc no ser mais capaz de reiniciar a partir desse disco. Em vez disso,
inicializar a partir de outro disco.
O sistema de arquivos raiz tambm tem divisrias individuais UFS, ento voc tem uma escolha do que voc
montar. Por exemplo, se o seu sistema de arquivos raiz tem parties UFS / Dev/da0s4a e
/ Dev/da1s4a, voc pode montar uma dessas parties ou / dev / vinum / root. Nunca monte
mais de um deles, caso contrrio voc pode causar corrupo de dados.
Uma forma ainda mais insidioso e corromper seu sistema de arquivos raiz montar / Dev/da0s4a ou
/ Dev/da1s4a e modific-lo. Neste caso, as duas divisrias j no so as mesmas, mas
no h nenhuma maneira para Vinum para saber isso. Se isso acontecer, voc obrigao marcar o outro subdisco
como colidiu com o vinum parada de comando.

Migrando Vinum para uma nova mquina


s vezes, voc pode querer mover um conjunto de discos Vinum para a FreeBSD diferente
mquina. Isto simples, desde que no existem conflitos de nome entre os objectos em
os discos Vinum e quaisquer outros objectos Vinum voc j pode ter no sistema.
Basta conectar os discos e comear a Vinum. Voc no precisa colocar os discos em todo o
determinado local, e voc no precisa correr vinum create: lojas Vinum o
configurao nas prprias unidades, e quando ele comea, ele localiza-lo adequadamente.

Coisas que voc no deve fazer com Vinum


O vinum comando oferece um grande nmero de subcomandos destinado especfico
propsitos. fcil abusar deles. Aqui esto algumas coisas que voc no deve fazer:

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.

No re-executar o criar comando para objetos que j existem. Vinum j


sabe sobre eles, ea comear comando deve encontr-los.

No nomear seus discos aps o dispositivo de disco em que esto localizados. O


propsito de ter nomes de unidade deve ser independente do dispositivo. Por exemplo, se voc tem
duas unidades um e b, e eles encontram-se em dispositivos / dev/da1s1h e / Dev/da2s1h
respectivamente, voc pode remover as unidades, troque suas localizaes e reiniciar Vinum.
Vinum ainda ir localizar corretamente os drives. Se voc tivesse chamado os discos da1 e da2,
Voc, ento, ver algo confuso como este:

vinum.mm, v v4.19 (2003/04/09 19:56:42)

242

Captulo 12: A Vinum Volume Manager


2 unidades:
D da2
D da1

Estado: at
Estado: at

/ Dev/da1s1h
/ Dev/da1s2h

A: 3582/4094 MB (87%)
A: 3582/4094 MB (87%)

Este no claramente til.

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.

vinum.mm, v v4.19 (2003/04/09 19:56:42)

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.

Criando uma imagem ISO-9660


O primeiro passo o de criar o ISO 9660 imagem do sistema de arquivos, muitas vezes chamado simplesmente de uma ISO
imagem. H um nmero de portas disponveis na coleo de ports, aqui veremos
mkisofs, que faz parte do cdrtools port. A instalao no to simples como
voc poderia esperar: voc precisa de uma bandeira especial para instalar mkisofs:
# Cd / usr / ports / sysutils / cdrtools
# Make install-DMKISOFS

mkisofs tem um nmero de parmetros desconcertante. Aqui esto os mais importantes:

O -A opo especifica o aplicao ID, um texto escrito para o cabealho da


sistema de arquivos para descrever a aplicao'''' na imagem. Ele pode ser de at 128 caracteres
longa.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

243

Criando uma imagem ISO-9660

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.

O -V opo especifica o ID de volume para o sistema de arquivos. Este ser normalmente


mais especfico do que a ID da aplicao, por exemplo, cada CD em um conjunto de CDs pode
tm o mesmo ID do aplicativo e uma ID de volume diferente.

Os parmetros finais so os nomes dos diretrios que sero includos no


imagem. Voc pode especificar vrios diretrios. Em cada caso, todo o diretrio
hierarquia sero includos.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

245

Captulo 13: Escrevendo CD-Rs

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)

Criando uma imagem ISO-9660

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

carregar o mdulo kld se necessrio


j carregado no kernel
configurar o dispositivo
este o nome atribudo
mont-lo

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.

Gravar um CD-R em um queimador de ATA


Para gravar um CD-R em um (ou IDE) queimador ATA, use burncd, que faz parte da base do sistema.
Normalmente, voc s vai ter um gravador de CD-R no sistema, por isso vai ser chamado / Dev/acd0.
Voc vai ter algo parecido com isso em sua dmesg sada:
acd0: CD-RW <RWD RW4224> em ATA1-escravo BIOSPIO

burncd tem duas bandeiras e comandos. Para nossos propsitos, as bandeiras mais importantes so:

O -F dispositivo opo especifica o dispositivo a ser usado para o processo de gravao.

O -M opo diz burncd para fechar o disco no modo multi-sesso.

O -Q opo diz burncd ficar quieto e no para imprimir mensagens de progresso. Na verdade,
no muito detalhado de qualquer maneira.

O -S acelerar opo especifica a velocidade do dispositivo de queimador. O padro 1, de modo


voc vai economizar muito tempo com isso.

O -T opo especifica um teste de escrever: burncd no realmente escrever sobre o meio.


O -V (Verbose) opo imprime algumas mensagens de progresso extras.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

247

Chapter 13: gravao de CD-R

Os comandos mais importantes para escrever ISO 9660 CD-ROMs so:

dados ou mode1 escrever trilhas de dados, tambm conhecido como mode1 faixas, para os arquivos de imagem
chamado na linha de comando.

fixar se fixa o meio, gerando a tabela de contedos. Este deve ser o


ltimo comando para burncd.

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.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

Gravar o CD-R

248

Gravar um CD-R em um gravador SCSI


Se voc tiver um gravador SCSI, use cdrecord, que faz parte do cdrtools porto, instalado
na pgina 243. cdrecord tem um hbito bastante estranho de no usar nomes de dispositivos: em vez disso,
acessa o dispositivo diretamente por seus parmetros SCSI (barramento, unidade e LUN). Voc pode obter
estes parmetros do dmesg na sada / Var / run / dmesg.boot, mas no h uma maneira mais fcil
forma:
# Cdrecord-scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.1) Copyright
Usando a verso libscg 'Schily-0.1'
scsibus0:
0,0,0 0) 'MATSHITA' CD-R
cdrecord: Warning: controlador retorna tamanho zero
cdrecord: Warning: controlador retorna tamanho errado
cdrecord: Warning: controlador retorna pgina errada
0,1,0 1) 'TEAC' CD-ROM CD-532S
0,2,0 2) *
0,3,0 3) *
0,4,0 4) "SDT-10000 'SONY'
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
0,8,0 8) 'QUANTUM' QM318000TD-SW

(C) 1995-2000 Jrg Schilling


CW-7503

''1 .06' Removable CD-ROM


Pgina capacidades CD.
para a pgina de recursos de CD.
0 para a pgina de recursos de CD (2A).
''1 .0 A' CD-ROM removvel
''0101' Fita removvel

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).

burncd.mm, v V4.13 (2003/04/02 06:46:59)

249

Captulo 13: Escrevendo CD-Rs

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%.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

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 exemplo, a -F indica que a opo / Dev/acd0c o (IDE) de CD-R queimador.


/ Dev/cd1c a unidade de CD-ROM (SCSI) com o CD-ROM original. Voc no precisa
montar / Dev/cd1c, j que ele est sendo acessado como dados brutos, no um sistema de arquivos.
Quando voc tiver certeza de que isso vai funcionar, remova o -T bandeira e repita.
Para dispositivos SCSI, introduzir
# Cdrecord-dummy-v dev = 0,0,0-speed = 8 / dev/cd1c

Quando se completar satisfatoriamente, o remover -Dummy e repetir.

burncd.mm, v V4.13 (2003/04/02 06:46:59)

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.

Fazer o backup de seus dados


No importa como o sistema confivel, voc nunca est completamente protegido contra a perda de
dados. Os motivos mais comuns so falhas de hardware e erro humano. Por comparao,
muito raro que um erro de software faz com que a perda de dados, mas isso tambm pode acontecer.
UNIX fala sobre arquivos, que so cpias de dados do disco em uma forma adequada para escrever sobre
um meio de srie, tais como a fita. Voc pode, no entanto, grav-los em arquivos de disco, bem como, e
isso o que as pessoas fazem quando querem mover uma rvore de cdigo fonte de um sistema para outro.
Voc tambm vai ouvir o termo tarball para um pacote feito pela alcatro programa, que ns
discutir a seguir.

tapes.mm, v v4.10 (2003/04/02 06:47:36)

251

Fazer o backup de seus dados

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:

n meios no-retrocesso. Quando o processo que acede a fita fecha-lo, a fita


permanece na mesma posio. Isso inconveniente se voc deseja remover a fita
(Antes que voc deve retroceder), mas a nica forma, se voc deseja manipular
vrios arquivos na fita. O nome do correspondente dispositivo de retrocesso no tem nenhuma n
(Por exemplo, o dispositivo correspondente rebobinagem / Dev/nsa0 / Dev/sa0). Um retrocesso
dispositivo rebobina a fita quando ele fechado.
Verses mais antigas do FreeBSD usou os nomes / Dev/nrsa0 e / Dev/rsa0. r stands para cru, em
outras palavras, um dispositivo de carter. Uma vez que a remoo de dispositivos de bloco, esta carta suprfluo,
mas voc pode v-lo ocasionalmente, em documentos antigos.

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

Captulo 14: Tapes, backups e disquetes

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.

amanda, na Coleo de Ports, outro programa de backup popular.

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.

Extrair arquivos de um arquivo.


Listar o contedo de um arquivo.

alcatro no comprimir os dados. O arquivo resultante ligeiramente maior do que a soma de


os ficheiros que contm, uma vez que tambm contm uma determinada quantidade de informao de cabealho.
Voc pode, entretanto, usar o gzip programa para comprimir um alcatro arquivar e alcatro invoca-lo para
automaticamente com o -Z opo. O tamanho do arquivo resultante depende fortemente
sobre os dados que voc colocar neles. As imagens JPEG, por exemplo, dificilmente comprimir a todos, enquanto
texto comprime muito bem e pode ser to elevada quanto 90% menor do que os ficheiros constituintes.

tapes.mm, v v4.10 (2003/04/02 06:47:36)

Fazer o backup de seus dados

254

Criando um arquivo tar


Crie um arquivo com o c opo. Diferentemente da maioria dos programas UNIX,
alcatro no requer um hfen (-) na frente das opes. Por exemplo, para salvar a sua
completa rvore fonte do kernel, voc pode escrever:
# Tar cvf fonte-arquivo.tar / usr / src / sys
tar: Removendo principal / de nomes de caminho absolutos no arquivo.
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 /
(Etc)

Os parmetros tm o seguinte significado:

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.

fonte-arquivo.tar o nome do arquivo. Neste caso, um arquivo em disco.


/ Usr / src / sys o nome do diretrio para o arquivo. alcatro arquivos de todos os arquivos no
diretrio, incluindo a maioria dos dispositivos. Por razes histricas, alcatro no pode fazer backup de dispositivos
com menores nmeros superiores a 65536, e alterar o formato tornaria
incompatvel com outros sistemas.

A mensagem na primeira linha (Remoo lder / ...) indica que, embora o


nome do diretrio foi especificado como / Usr / src / sys, alcatro trata-o como usr / src / sys. Isto faz
possvel restaurar os arquivos em outro diretrio em um momento posterior.
Voc pode fazer backup em fita no exatamente da mesma maneira:
# Tar cvf / dev/nsa0 / usr / src / sys

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

Depois disto, o exemplo anterior simplifica a:


# Tar cv / usr / src / sys

tapes.mm, v v4.10 (2003/04/02 06:47:36)

255

Captulo 14: Tapes, backups e disquetes

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

Voc obrigao especificar a z opo ao listar ou extrair arquivos compactados, e voc


no deve faz-lo quando a lista ou extrair arquivos no-comprimido. Caso contrrio, voc recebe
mensagens como:
# Tar tzvf fonte-arquivo.tar
gzip: stdin: no em formato gzip
tar: criana retornou estado de um
# Tar TVF-fonte archive.tar.gz
tar: s ler 2302 bytes a partir do arquivo-fonte archive.tar.gz

tapes.mm, v v4.10 (2003/04/02 06:47:36)

Fazer o backup de seus dados

256

O uso de disquetes no FreeBSD


Eu no gosto de disquetes. UNIX no gosta de disquetes. Provavelmente voc no gosta de disquete
discos de qualquer um, mas ocasionalmente tm de viver com eles.
FreeBSD usa disquetes para apenas uma coisa: para, inicialmente, a inicializao do sistema em sistemas
que no pode iniciar a partir de CD-ROM. Ns j vimos que eles so inadequados para arquivo
armazenamento de dados e transferncia de dados. Para isso, o FreeBSD usa fitas e CD-ROMs,
que so muito mais confiveis, e para os volumes de dados envolvidos em computadores modernos,
eles so mais baratos e mais rpidos.
Ento, por que usar disquetes? As nicas boas razes so:

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

Captulo 14: Tapes, backups e disquetes

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.

Sistemas de arquivos em disquete


possvel usar os disquetes como sistemas de arquivos no FreeBSD. Voc pode criar uma UFS arquivo
sistema em um disquete como em um disco rgido. Isso no necessariamente uma boa idia: o UFS
sistema de arquivos foi projetada para desempenho, capacidade no mximo. Por padro, ele no
usar o ltimo 8% de espao em disco, e inclui uma srie de informaes de estrutura que mais
reduz o espao disponvel no disco. Aqui est um exemplo de criao de um sistema de arquivos,
mont-lo no diretrio / A, e listar o restante espao disponvel em um vazio
3 "floppy. Usamos o disktab abordagem para rotular o disco, como vimos na pgina 216.
/ Etc / disktab tem etiquetas para disquetes: use fd1440 para a 3 "1,44 MB disquete,
e fd1200 para a 5 "1.2 MB floppy:
# Disklabel-w-r / dev/fd0 fd1440
rotular o disquete
# Disklabel-r / dev/fd0
e listar as informaes
# / Dev/fd0:
Tipo: desconhecido
disk: fd1440
label:
flags:
bytes / setor: 512
setores / trilha: 18
faixas / cilindro: 2
setores / cilindro: 36
cilindros: 80
setores / unidades: 2880
rpm: 300
intercalam: 1
trackskew: 0
cylinderskew: 0
headswitch: 0
# Milissegundos
caminhos-de-track buscar: 0 # milissegundos
drivedata: 0
3 parties:
# Tamanho
compensar
fstype [fsize bsize bps / cpg]
um: 2880
0 no utilizado # 512 4096 (Cyl. 0-79)
b: 2880
0 no utilizado # 512 4096 (Cyl. 0-79)
c: 2880
0 no utilizado # 512 4096 (Cyl. 0-79)
# Newfs / dev/fd0
criar um novo sistema de arquivos
Aviso: Tamanho do bloco restringe cilindros por grupo de 6.
tapes.mm, v v4.10 (2003/04/02 06:47:36)

O uso de disquetes no FreeBSD

258

Aviso: 1,216 setor (s) no ltimo cilindro no alocado


/ Dev/fd0.1440: 2.880 setores em um cilindros de 1 faixas, 4.096 setores
1.4 em 1 grupos cyl (6 c / g, 12.00MB / g, 736 i / g)
backups super-bloco (por fsck-b #) em:
32,
# Mount / dev/fd0 / A
montar o disquete no / A
# DF / D
exibir o espao disponvel
Filesystem 1024-blocks
Usado Capacidade Disponvel Montado em
/ Dev/fd0 1319
0 1213
0%
/ Mnt

Vejamos isso em um pouco mais de detalhes:

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.

A segunda chamada de disklabel, apenas com a -R opo, lista as informaes


escrito pela primeira invocao. Isto no necessrio para a criao do sistema de ficheiros, mas
ajuda a assegurar que o disco est etiquetado correctamente.

newfs cria o UFS sistema de arquivos no disquete.

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

Captulo 14: Tapes, backups e disquetes

Sistemas de arquivo do Microsoft


Para criar um sistema de arquivos MS-DOS, use o newfs_msdos comando:
$ Newfs_msdos-f 1440 / dev/fd0

A especificao -F 1440 diz newfs_msdos que este um MB de disquete 1.4. Alternativamente,


voc pode usar o mformat comando:
$ Mformat A:

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:

mformat um dos mtools que ns olhamos na prxima seo.

Outros usos de disquetes


Bem, voc pode levar os discos para fora da tampa e us-los como uma espcie de Frisbee. Mas
h uma outra coisa til que voc pode fazer com disquetes: como um meio de arquivo, eles no
precisa de um sistema de arquivos nelas. Eles s precisam de ser de baixo nvel formatado. Por exemplo, a
escrever o contedo do diretrio atual em um disquete, voc pode digitar:
$ Tar CVFM / dev/fd0.
. /
. Xfmrc
. X6530modkey
. Uwmrc
. Twmrc
. Rnsoft
. Rnlast
Etc ...
Prepare volume # 2 para / dev/fd0 e bateu de retorno:

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)

O uso de disquetes no FreeBSD

260

Acessando disquetes Microsoft


Claro que, na maioria das vezes voc recebe os dados em um disquete, ele no est em alcatro formato: tem um
Sistema de arquivos Microsoft nele. Ns j vimos o tipo de sistema de arquivos Microsoft na pgina
190, mas isso um pouco de exagero, se voc s quer copiar os arquivos do disquete. Neste caso, usar
o mtools pacote a partir da coleo de ports. mtools uma implementao da MSProgramas DOS ATTRIB, CD, COPY, DEL, DIR, formato, LABEL, MD, RD, LEIA,
REN e TIPO sob UNIX. Para evitar confuso com utilitrios existentes, o UNIX
verses desses comandos comeam com a letra m. Eles tambm so escritos em letras minsculas.
Por exemplo, para listar o contedo de um disquete e copiar um dos arquivos para o atual
(FreeBSD) diretrio, voc pode digitar:
$ Mdir
Volume na unidade A confuso OS
Directory para um :/

listar o diretrio atual em A:

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

Captulo 14: Tapes, backups e disquetes

No FreeBSD, voc normalmente no ir ter muitos problemas. Ocasionalmente, um programa


reclama de caracteres no-imprimveis em uma linha de entrada. Alguns, como Emacs, mostr-los.
Por exemplo, o Emacs mostra o nosso ltimo arquivo, drives.bat, como este:
net use c: usr / DOSM presto :/
c: M
cd \ nfsM
Use # net f: porsche DOSM :/
# Net use g: porsche :/ usrM

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

Este um resultado tpico de remover o Retorno de carro caracteres. O -T opo


mcopy pode ajudar tambm. Se voc us-lo para copiar a um sistema de arquivos da Microsoft, ele
reinsere os Retorno de carro caracteres.

tapes.mm, v v4.10 (2003/04/02 06:47:36)

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 controla o acesso a impressoras conectadas e impressoras ligadas a outros hosts na


rede.

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

263

O FreeBSD completo

264

Ele pode explicar o uso da impressora.

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

265

Captulo 15: Impressoras

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.

Configurando o / etc / printcap


O prximo passo configurar o arquivo de configurao central, / Etc / printcap. Este arquivo no
o mais fcil de ler, mas depois de um tempo voc vai se acostumar com isso. Aqui esto algumas entradas tpicas:
lp | lj | ps | locais LaserJet 6MP: \
: Lp = / dev/lpt0: sd = / var / spool / output / lpd: lf = / var / log / LPD-erra: sh: mx # 0: \
: If = / usr / local / libexec / lpfilter:
RLP | impressora remota amostra: \
: Rm = freebie: sd = / var / spool / output / brinde: lf = / var / log / LPD-erra: \
: Rp = lp:

Vejamos isso em detalhes:

Todos os campos so delimitados por dois pontos (:).

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.

Os campos a seguir descrevem capacidades, descries de como fazer algo.


Capacidades so descritas por uma de duas letras de palavras-chave e, opcionalmente, um parmetro, que
separado por um delimitador indicando o tipo do parmetro. Se o campo recebe uma string
parmetro, o delimitador =, E se ele tem um valor numrico, o delimitador #. Voc vai
encontrar uma descrio completa na pgina man.

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

Configurao da impressora

266

A entrada lp = / dev/lpt0 informa o spooler o nome do dispositivo fsico ao qual


a impressora est conectada. Impressoras remotas no tm dispositivos fsicos.

sd diz o spooler o diretrio no qual deseja armazenar trabalhos aguardando impresso. Este
diretrio deve existir, o spooler no cri-lo.

lf = / var / log / LPD-erra especifica o nome de um arquivo no qual o log de erros.

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.

Na entrada de impressora remota, rp = lp diz lpd o nome da impressora no controle remoto


mquina. Isso no tem que ser o mesmo nome como o nome da mquina local.

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.

No cliente, voc pode especificar o nome da mquina do servidor com o rm capacidade e


especificar o nome da impressora com o rp capacidade. Voc no especificar qualquer lp
(Nome do dispositivo) de capacidade. Uma entrada tpica pode ter esta aparncia:
lp | HP LaserJet 6MP em freebie: \
: Rm = freebie: sd = / var / spool / output / brinde: lf = / var / log / LPD-erra: mx # 0:

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

267

Captulo 15: Impressoras

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

Ao tentar imprimi-lo, no entanto, voc tem:


PID TT STAT

COMANDO DE TEMPO
2252 p1 Ss

0:01.35 / bin / bash


2287 p1 IW

O resto da pgina est vazia: voc passou ao largo da margem direita.


H um certo nmero de maneiras de resolver este problema:

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

Configurao da impressora

268

H um par de opes para o filtro de impresso. Uma delas, a partir da linha


manual, envia uma seqncia de controle LaserJet antes de cada trabalho. Coloque o seguinte shell
script / Usr / local / libexec / lpfilter:
#! / Bin / sh
printf "\ 033 & K2G" && cat && printf "\ f" && exit 0
exit 2

Figura 15-1: filtro de impresso simples


Esta abordagem no funciona bem com algumas impressoras, como o meu HP LaserJet 6MP,
que pode imprimir tanto PostScript e LaserJet (natural) formatos de forma aleatria. Eles fazem isso
atravs do reconhecimento do texto no incio do trabalho. Este filtro especial confunde-los
o envio de um cdigo de comando LaserJet, para que a impressora imprime o PostScript como se fosse simples
texto.
Neste tipo de situao, os filtros normais no so mais suficientes. Voc pode resolver o
problema com a porta apsfilter, que est na Coleo de Ports.

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"

# Execute o daemon de impressora de linha

Consulte a pgina 546 para mais detalhes sobre / Etc / rc.conf.


Voc tambm pode adicionar uma outra linha referindo-se ao daemon de impressora de linha para / Etc / rc.conf :
lpd_flags = ""

# Flags para o lpd (se habilitado).

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:

printers.mm, v v4.17 (2003/04/02 06:48:05)

269

Captulo 15: Impressoras

Lptest $ 80 5 | lpr

O resultado deve ser parecido:


"# $% & '() * +, -./0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] _'abcdefghijklmnop
"# $% & '() * +, -./0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] _'abcdefghijklmnopq
# $% & '() * +, -./0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] _'abcdefghijklmnopqr
$% & '() * +, -./0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] _'abcdefghijklmnopqrs
% & '() * +, -./0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] _'abcdefghijklmnopqrst

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.

As linhas de vagar direita


borda do papel e nunca so
visto novamente.

Este o efeito escada. Consulte a pgina 268 para uma


par de solues.

Caracteres individuais ou integrais


sees de texto esto faltando.

Este problema ocorre quase exclusivamente em impressoras seriais.


um resultado incorreto pgina aperto de mo-see 330
eo manual on-line para obter mais detalhes.

A sada completamente contido


caracteres aleatrios ininteligvel.

Em uma impressora serial, se os personagens aparecem lentamente,


e h uma predominncia dos personagens {|} ~,
isso provavelmente significa que voc configurou o
parmetros de comunicao incorretamente. Verifique a
manual on-line para uma soluo. Certifique-se de
no confunda este problema com o seguinte.

printers.mm, v v4.17 (2003/04/02 06:48:05)

Voc tem uma escolha quanto ao que fazer em relao a isso.


Normalmente, voc pode configurar a impressora, ou voc pode
tirar o filtro de impresso para imprimir um caractere de alimentao de forma a
o fim do trabalho. Figura 15-1 j faz isso,
esse o printf "\ f".

Soluo de problemas

Problema
O texto era legvel, mas deu
nenhuma relao com o que voc
quer,
ed para imprimir.

O visor da impressora mostra


que os dados esto a chegar, mas o
impressora no imprime nada.

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

Voc recebe a mensagem LPR: canno criar freebie / .seq

Voc esqueceu de criar o diretrio de spool


/ Var / spool / output / brinde.

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

printers.mm, v v4.17 (2003/04/02 06:48:05)

271

Captulo 15: Impressoras

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)

Remover trabalhos de impresso


s vezes, voc pode querer excluir sada carretel sem imprimi-lo. Voc no precisa fazer
isso por causa de um erro de configurao da impressora: basta desligar a impressora, corrigir a configurao do
erro, e ligue a impressora novamente. O trabalho deve ser impresso corretamente. Mas se voc
descobrir que o trabalho de impresso em si contm lixo, voc pode remov-lo com o lprm
programa. Primeiro, porm, voc precisa saber o nmero da tarefa. Supondo que a lista que temos
acima, pode querer remover a tarefa 30:
# Lprm 30
dfA030presto.example.org dequeued
cfA030presto.example.org dequeued
# Lpq
espera de lp para ficar pronto (offline?)
Posio
Arquivos de Trabalho
Proprietrio
313 (entrada padro)
1 grog
31 (entrada padro)
2 yvonne
0 (entrada padro)
3 raiz

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

Este o prlogo (O incio) da sada PostScript para este captulo. O


prlogo de um programa desse tipo pode ser vrias centenas de kilobytes longa se inclui
fontes ou imagens embutidas. Um tamanho mais comum de cerca de 500 linhas.
Voc pode fazer uma srie de coisas com PostScript:

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.

Se a impressora no entende PostScript, voc pode imprimir com a ajuda de


ghostscript. O apsfilter porto faz isso para voc.

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

Captulo 15: Impressoras

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.

Figura 15-2: gv exibio

Impresso com ghostscript


Se a impressora no suporta PostScript, voc ainda pode imprimir alguma semelhana do
texto pretendido com a ajuda de ghostscript. Os resultados so muito aceitvel com moderna
impressoras a laser e jato de tinta, menos com impressoras matriciais mais velhos.
Para imprimir em uma impressora especial, voc primeiro precisa encontrar um motorista para ele em ghostscript. Em
Neste contexto, o termo motorista significa que algum cdigo dentro ghostscript que converte os dados
em algo que a impressora possa imprimir.
Ns j vimos como usar / Etc / printcap. Neste caso, vamos precisar de um filtro de entrada, um
script ou programa que transforma os dados PostScript em uma forma que a impressora
entende. A entrada em / Etc / printcap praticamente o mesmo para todas as impressoras:
printers.mm, v v4.17 (2003/04/02 06:48:05)

PostScript

274

ps | HP OfficeJet 725 com PostScript: \


: Lp = / dev/lpt0: sd = / var / spool / output / color: lf = / var / log / LPD-erra: sh: mx # 0: \
: If = / usr / local / libexec / psfilter:

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 = -

Estas opes de estado:

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.

O tamanho do papel o formato A4 internacional. Por padro, o ghostscript produz


sada para o padro americano 8,5 10 polegadas'' letra'' papel.

O personagem - por si s informa ghostscript que a entrada de stdin. Juntamente com


a sada para stdout, isso faz com que ghostscript funcionar como um filtro.

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

Captulo 15: Impressoras

Drivers de impressora para DeskJets


H pelo menos seis conjuntos de drivers para DeskJets HP. Eles esto todos descritos em
Devices.htm, mas o resumo a seguir podem ajudar:

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, vm trs pilotos independentemente escritas diferentes para modelos especficos de


DeskJet, provavelmente tudo agora obsoleto. Se voc reconhecer a sua impressora ou algo
similar em um deles, que uma boa primeira escolha.

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

As diferenas aqui so:

O nome do driver (stc500ph.upp) especificado de forma diferente.

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

inserir% d ou% ld para pgina #


Formatos de entrada: PostScript PostScriptLevel1 PostScriptLevel2 PDF
Dispositivos disponveis:
x11 x11alpha x11cmyk x11gray2 x11gray4 x11mono x11rg16x x11rg32x md2k
md5k md50Mono md50Eco md1xMono bj10e bj10v bj10vh bj200 bjc600 bjc800
lips2p lips3 lips4 bjc880j lips4v UniPrint dmprt epag escpage lp2000
alc8600 alc8500 alc2000 alc4000 lp8800c lp8300c lp8500c lp3000c lp8200c
lp8000c epl5900 epl5800 epl2050 epl2050p epl2120 lp7500 lp2400 lp2200
lp9400 lp8900 lp8700 lp8100 lp7700 lp8600f lp8400f lp8300f lp1900 lp9600s
lp9300 lp9600 lp8600 lp1800 mjc180 mjc360 mjc720 mj500c deskjet djet500
cdeskjet cdjcolor cdjmono cdj550 cdj670 cdj850 cdj880 cdj890 cdj1600
cdj970 laserjet ljetplus ljet2p ljet3 ljet3d ljet4 ljet4d cljet5 cljet5c
cljet5pr lj5mono lj5gray pj pjxl pjxl300 pxlmono pxlcolor PCL3 hpdj ijs
NPDL RPDL gdi bmpmono bmpgray bmp16 bmp256 bmp16m bmp32b bmpsep1 bmpsep8
faxg3 faxg32d faxg4 jpeg jpeggray pcxmono pcxgray pcx16 pcx256 pcx24b
pcxcmyk pdfwrite bit bitrgb bitcmyk pbm pbmraw pgm pgmraw pgnm pgnmraw
pnm pnmraw ppm ppmraw pkm pkmraw pksm pksmraw pngmono pnggray png16
png256 png16m psmono psgray psrgb pswrite epswrite tiffcrle tiffg3
tiffg32d tiffg4 tiff12nc tiff24nc tifflzw tiffpack nullpage
Pesquisa caminho:
. : / Opt / lib / ghostscript: / opt / lib / ghostscript / fonts:
/ Opt / lib / ghostscript / Garamond: / usr/local/share/ghostscript/7.05/lib:
/ Usr / local / share / ghostscript / fonts
Para mais informaes, consulte / usr/local/share/ghostscript/7.05/doc/Use.htm.
Reportar bugs para bug-gs@ghostscript.com, utilizando o formulrio do Bug-form.htm.

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:

Usar Acrobat Reader, disponvel na Coleo de Ports como / usr/src/print/acroread5.


O 5 refere-se verso do Acrobat Reader e pode mudar. Acrobat Reader
proprietrio, mas ele est disponvel de graa, infelizmente, apenas na forma binria. uma
maneira conveniente de visualizar documentos PDF, e pode imprimi-los em PostScript.
Isso significa que voc tambm pode us-lo para converter PDF para PostScript.

ghostscript tambm compreende PDF, e capaz de converter entre PostScript


PDF e em ambas as direes. ghostscript fornece dois scripts, pdf2ps e ps2pdf,
que funcionam como um front-end para ghostscript para tornar o trabalho mais fcil.

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.

printers.mm, v v4.17 (2003/04/02 06:48:05)

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:

Anos atrs, a CCITT iniciou um grupo de recomendaes para protocolos individuais.


O CCITT agora chamado a ITU-T, e suas recomendaes de comunicao de dados
no ter sido um sucesso estrondoso. O mais conhecido provavelmente recomendao X.25,
, que ainda tem uma grande seguinte em algumas partes do mundo. Um pacote foi X.25
disponvel para FreeBSD, mas morreu por falta de amor. Se voc precisar, voc vai precisar
investir muito trabalho para faz-lo funcionar.

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.

O Protocolos de Internet foram desenvolvidos por os EUA Defesa de Pesquisa Avanada


Agncia de Projetos (DARPA) para a sua ARPANET rede. O software foi originalmente
desenvolvido no incio dos anos 80 por BBN eo CSRG na Universidade da Califrnia em
Berkeley. O primeiro lanamento foi generalizada com o sistema operacional 4.2BSD-o

netintro.mm, v v4.16 (2003/04/02 06:48:55)

277

O FreeBSD completo

278

av de FreeBSD. Aps a introduo de IP, a ARPANET gradualmente


mudou seu nome para Internet.
O Internet Protocol geralmente abreviado para IP. Muitas vezes as pessoas se referem a ele como TCP / IP,
que significa Transmission Control Protocol / Internet Protocol. Na verdade, o TCP
apenas um dos muitos outros protocolos que rodam em cima de IP. Neste livro, refiro-me ao IP
protocolo, mas claro que o FreeBSD inclui todos os outros protocolos TCP e padro.
A implementao IP fornecido com o FreeBSD a tecnologia mais madura voc
pode encontrar em qualquer lugar, a qualquer preo.
Nesta parte do livro, vamos olhar apenas para os protocolos da Internet. Graas sua
fundo, FreeBSD particularmente poderoso concorrente nesta rea, e ns vamos entrar em
um monte de detalhes sobre como configurar e operar as redes e servios de rede. No
captulos seguintes, vamos dar uma olhada em:

Como a Internet funciona, o que veremos no restante deste captulo.

Como configurar conexes de rede local no captulo 17, Configurando o local de


rede.

Como selecionar um Provedor de Servios de Internet no Captulo 18, Conexo Internet.

Como usar PPP no Captulo 20, Configurando o PPP.

Como configurar os servios de nome de domnio no captulo 21, O Servio de Nome de Domnio.

Como se proteger contra intrusos no Captulo 22, Firewalls, aliasing IP e


proxies. Este captulo descreve tambm os servidores proxy e Network Address Translation.

Como resolver problemas de rede no Captulo 23, Depurao de rede.

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.

Como usar o hardware no Captulo 19, Comunicao serial.

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.

O restante deste captulo aborda o referencial terico dos Protocolos de Internet e


Ethernet. Voc pode configurar a rede sem entender nada disso, contanto que voc e
seu hardware no cometer erros. Esta a abordagem a maioria dos sistemas comerciais
tomar. mais ou menos como atravessar um lago em um conjunto de degraus, com os olhos vendados. Neste livro,
Eu ter uma abordagem diferente: em discusso a seguir, voc vai estar dentro com a ao,
no no exterior olhando atravs de uma janela. Pode parecer estranho no incio, mas uma vez
voc se acostumar com isso, voc vai encontr-lo muito menos frustrante.
netintro.mm, v v4.16 (2003/04/02 06:48:55)

279

Captulo 16: Redes e Internet

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

Figura 16-1: modelo de rede Four-layer


Ns vamos olhar para essas camadas de baixo para cima:

O Camada de enlace responsvel por mais baixo nvel de comunicao, entre


mquinas que esto fisicamente conectados. Os tipos mais comuns de conexo so
Ethernet e linhas telefnicas. Esta a nica camada associada com o hardware.

O Camada de rede responsvel pela comunicao entre mquinas que no sejam


fisicamente ligado. Para esta funo, os dados devem passar por outras mquinas
que no esto directamente envolvidas na dados. Esta funo chamada roteamento. Veremos
a forma como ele funciona no Captulo 17.

O Transport Layer responsvel pela comunicao entre quaisquer dois processos,


independentemente das mquinas em que so executados.

O Camada de Aplicao define o formato usado por aplicaes especficas, tais como e-mail
ou na web.

netintro.mm, v v4.16 (2003/04/02 06:48:55)

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

Tempo para viver

Comprimento total em bytes


flags

compensar fragmento

Protocolo

Header Checksum

Endereo IP de origem
Endereo IP de destino

Figura 16-2: Cabealho IP


Ns s vamos olhar para alguns desses campos, para o resto, ver TCP / IP Illustrated, Volume 1.

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

Captulo 16: Redes e Internet

O protocolo especifica o tipo de pacote. Os protocolos mais comuns so TCP


e UDP, o que veremos na seo sobre a camada de rede.

Finalmente chegou o endereo de origem, o endereo do remetente e do destino


de endereos, o endereo do destinatrio.

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

Tempo para viver

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

Comprimento total em bytes

TCP Header

comprim
ento

reservado
Checksum TCP

flags

tamanho da janela
ponteiro urgente

Figura 16-3: cabealho TCP com o cabealho IP


Um nmero de campos so de interesse ao depurar as conexes de rede:

O nmero de seqncia deslocado do ltimo byte o byte que foi enviado para o outro
lado.

O nmero de confirmao a posio de byte do ltimo byte que recebeu


do 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.

netintro.mm, v v4.16 (2003/04/02 06:48:55)

283

Captulo 16: Redes e Internet

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

Tempo para viver

Comprimento total em bytes


flags

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

Figura 16-4: Cabealho UDP com o cabealho IP

Atribuio de portas e servios de Internet


A porto simplesmente um nmero de 16 bits atribudo a processos especficos e que representa o
origem e de destino pontos finais de uma conexo especfica. Um processo pode solicitar
para ser conectado a uma porta especfica, ou o sistema pode atribuir um que no est em uso.
RFC 1700 define uma srie de portas conhecidas que so utilizados para solicitar os servios especficos
a partir de uma mquina. Em uma mquina UNIX, estes so fornecidos por daemons que ouvir nesta
nmero de porta-em outras palavras, quando uma mensagem chega a este nmero da porta, o IP
software passa para eles, e process-la. Estas portas esto definidos no arquivo
/ Etc / services. Aqui est um trecho:

netintro.mm, v v4.16 (2003/04/02 06:48:55)

Rede de camadas

284

Os servios de rede #, estilo Internet


#
Os nmeros de porta # conhecida
#
ftp 21/tcp
# File Transfer [Control]
ssh 22/tcp
# Secure Shell Entrar
ssh 22/udp
# Secure Shell Entrar
telnet 23/tcp
mail # Simples de Transferncia de Correio
smtp 25/tcp
smtp 25/udp
mail # Simples de Transferncia de Correio
domnio 53/tcp
# Domain Name Server
domnio 53/udp
# Domain Name Server
...
http 80/tcp
www www-http
# World Wide Web HTTP
http 80/udp
www www-http
# World Wide Web HTTP

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).

O nmero da porta de destino.

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

Captulo 16: Redes e Internet

netstat mostra o endereo IP neste caso, porque a mquina em questo no tem


reverter mapeamento DNS. Esta mquina o envio de uma mensagem de correio para presto. O segundo
e terceira linhas mostram as conexes de sada de presto portar ssh nos sistemas
andante e hub.freebsd.org. A ltima uma outra mensagem de e-mails recebidos de
www.auug.org.au. Graficamente, voc pode exibir a conexo entre presto e
www.auug.org.au assim:
presto

IP 223.147.37.2
Porto 25

TCP

IP 150.101.248.57
Porto 3691

www

Note-se que o nmero da porta smtp 25.


Por vrias razes, nem sempre possvel conectar-se diretamente da seguinte maneira:

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 conexo de rede fsica


A coisa mais bvia sobre a sua conexo de rede o que parece. Geralmente
envolve algum tipo de cabo de sair do seu computador, mas h uma similaridade nas extremidades.
O FreeBSD suporta interfaces de rede mais modernas:

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)

A conexo de rede fsica

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 reas, Redes Digitais de Servios Integrados (RDIS) so um atrativo


alternativa aos modems. Eles so muito mais rpido que os modems, tanto no tempo de configurao de chamada
e na capacidade de transmisso de dados, e so tambm muito mais fivel. FreeBSD
inclui o isdn4bsd embalagem, o qual foi desenvolvido na Alemanha e permite que o
conexo direta de baixo custo placas ISDN alems para FreeBSD. Em outras partes da
mundo, ISDN no rentvel, e tambm muito mais lento do que o ADSL e cabo.

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:

netintro.mm, v v4.16 (2003/04/02 06:48:55)

287

Captulo 16: Redes e Internet

1. Originalmente, a Ethernet passou a 10 Mb / s em um nico cabo coaxial grosso, geralmente brilhante


de cor amarela. Este tipo de Ethernet muitas vezes referida como espesso Ethernet, tambm
chamado 10b5, e a interface de linha chamada AUI. Voc tambm pode ouvir o amarelo prazo
corda (Para amarrar computadores em conjunto), embora este termo no est limitado a Ethernet de espessura.
Thick Ethernet agora obsoleto: caro, difcil de colocar, e relativamente
no confivel. Exige 50 resistncias em cada extremidade do cabo para transmitir sinais
corretamente. Se voc deix-los fora, voc no vai ter um desempenho degradado: a rede
No ir funcionar em todos.
2. Como o nome sugere, thin Ethernet fino cabo coaxial, e de outra forma gosto bastante
espesso Ethernet. significativamente mais barato (assim, o termo Cheapernet), e a nica
desvantagem de espessura sobre Ethernet que os condutores no podem ser to longo. O cabo
chamado RG58, e os conectores dos cabos so chamados de BNC. Ambos os termos so freqentemente
utilizado para se referir a este tipo de ligao, como 10 Base 2. Voc ainda vai ver thin Ethernet
ao redor, mas uma vez que efetivamente obsoleto. Desempenho ruim, e no barato
de 100 Mb / s Ethernet. Como a espessura de Ethernet, todas as mquinas so ligadas por uma nica
cabo com terminadores em cada extremidade.
3. Ethernets modernos correr a at 1000 Mb / s atravs de cabos multi-pares chamados UTP, para
Par tranado no blindado. Par tranado significa que cada par de fios so torcidos para
minimizar externos eltricos influncia, afinal, as frequncias em um 1000 Mb / s
Ethernet esto subindo na faixa de UHF. Ao contrrio das ligaes coaxiais, onde todos
mquinas esto ligadas a um nico cabo, UTP conecta mquinas individuais para uma cubo
ou mudar, uma caixa que distribui os sinais. Vamos discutir a diferena entre um
hub e um switch na pgina 288. Voc tambm ouvir os termos 10BaseTP, 100BaseTP e
1000BaseTP.
Comparado com coaxial Ethernet, os cabos UTP so muito mais baratos, e so mais
fivel. Se voc danificar ou desconectar um cabo coaxial, toda a rede cai.
Se voc danificar um cabo UTP, voc s perde a uma mquina conectada a ele. No
para baixo lateral, UTP exige switches ou hubs, que custam dinheiro, mas o preo tem
diminuiu para o ponto onde mais barato comprar um switch barato e cabos UTP vez
que s o cabo RG58. UTP sistemas empregam uma arquitectura em estrela em vez de o
cadeia de estaes de coaxiais com terminadores. Voc pode conectar vrios switches
simplesmente invertendo as conexes em uma extremidade de uma ligao switch-interruptor. Em
Alm disso, UTP o nico meio atualmente disponvel que suporta 100 Mb / s
Ethernet.

Como Ethernet funciona


Um grande nmero de sistemas pode ser ligado a uma rede Ethernet. Cada sistema tem uma 48
endereo de bit, o chamado Endereo Ethernet. Endereos Ethernet so geralmente escritos em
bytes separados por dois pontos (:), por exemplo 0: a0: 24:37:0 d: 2b. Todos os dados enviados pela
Ethernet contm dois endereos: o endereo Ethernet do remetente e do Ethernet
endereo do destinatrio. Normalmente, cada sistema apenas responde a mensagens enviadas para ele ou para
um endereo de broadcast especial.
netintro.mm, v v4.16 (2003/04/02 06:48:55)

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

Captulo 16: Redes e Internet

Encontrar endereos Ethernet


Ento, ns enviar mensagens para interfaces Ethernet, definindo o endereo Ethernet correto no
cabealho. Mas como que vamos encontrar o endereo Ethernet? Todos os nossos pacotes IP usar endereos IP.
E no uma boa soluo para apenas estaticamente atribuir endereos Ethernet para endereos IP:
em primeiro lugar, no haveria problemas se uma placa de interface ou um endereo de IP foi mudado, e
em segundo lugar, vrias placas podem ter o mesmo endereo IP.
Endereo de destino superior
Resto do endereo de destino
Endereo de origem superior
Resto do endereo de origem
Verso

Cabealho IP
comprimento

Tipo de quadro

Tipo de servio

identificao
Tempo para viver

Comprimento total em bytes


flags

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

Figura 16-5: quadro Ethernet com TCP datagrama


A soluo escolhida a Address Resolution Protocol, normalmente chamado ARP. ARP envia
uma mensagem no endereo de broadcast Ethernet dizendo efetivamente'' que tem um endereo IP
223.147.37.1? Diga-me o seu endereo Ethernet.'' A mensagem enviada na transmisso
endereo, de modo que cada sistema na rede recebe. Em cada mquina, o protocolo ARP verifica
o endereo IP especificado com o endereo IP da interface que recebeu o pacote. Se
forem iguais, as respostas da mquina com a mensagem'' Eu sou IP 223.147.37.1, meu Ethernet
endereo 00: a0: 24:37:0 d: 2b''
netintro.mm, v v4.16 (2003/04/02 06:48:55)

Ethernet

290

Quais so os sistemas em que Ethernet?


Mltiplos sistemas podem ser acessados atravs de uma Ethernet, ento deve haver algum meio de um
sistema para determinar quais outros sistemas esto presentes na rede. Pode haver uma
muitas delas, vrias centenas, por exemplo. Voc poderia manter uma lista, mas o sistema tem que
determinar a interface para cada pacote, e uma longa lista que poderia retardar as coisas
para baixo. O mtodo preferido o de especificar uma alcance de endereos IP que pode ser alcanado atravs
uma interface especfica. O computador funciona em binrio, para uma das funes mais fceis de
executar um lgico e. Como resultado, voc especificar o intervalo por uma mscara de rede: o
sistema considera todos os endereos em que um conjunto especfico de bits tm um valor especial para ser
acessvel atravs da interface. O conjunto especfico de bits chamado endereo de interface.
Por exemplo, vamos olhar para a frente para a rede de referncia na pgina 294 e considerar a
rede local, que tem o endereo de rede 223.147.37.0 ea mscara de rede
255.255.255.0. O valor de 255 significa que cada bit do byte definido. A lgica e
funo diz'' se um pouco especfica definida em ambos os operadores, definir o bit de resultado para um, caso contrrio, definir
para 0.'' Figura 16-6 mostra como o sistema cria um endereo de rede do IP
endereo 223.147.37.5 ea mscara de rede 255.255.255.0.
11 0 11111

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

Figura 16-6: Mscara Net


O resultado o mesmo que o endereo de IP para os primeiros trs bytes, mas o ltimo byte 0:
223.147.37.0.
Isto pode parecer desnecessariamente complicado. Uma maneira mais fcil de olhar para ele para dizer que o 1
bits da mscara de rede descrever qual parte do endereo a parte de rede ea 0 pedaos
descrever qual parte representa os hosts da rede.
Teoricamente voc poderia escolher sua rede bits da mscara de forma aleatria. Na prtica, claro
que faz mais sentido fazer mscaras de rede uma sequncia de binrios bits 1 seguidos por
uma sequncia de binrios 0 bits. Tornou-se tpica para abreviar a mscara de rede para o
nmero de bits 1. Assim, a mscara de rede 255.255.255.0, com 24 bits de conjunto e 8 bits no
definido, abreviado para / 24. O / personagem sempre parte da abreviatura.

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:

netintro.mm, v v4.16 (2003/04/02 06:48:55)

291

Captulo 16: Redes e Internet

Tabela 16-1: Classes de endereos


Endereo Rede
Classe alcance mscara
255.0.0.0
A 0-127
255.255.0.0
B 128-191
255.255.255.0
C 192-207
255.255.255.240
F 208-215
G
H
K
D
E

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).

LANs sem fio


Um problema bvio com Ethernet que voc precisa de um cabo. medida que mais e mais mquinas
estiverem instalados, o cabeamento pode se tornar um pesadelo. particularmente inconveniente para
laptops: o cabo de rede restringe onde voc pode usar a mquina.
Placas de rede sem fio tm sido em torno de algum tempo, mas nos ltimos anos eles
tornaram-se particularmente popular. Placas modernas so construdas em torno da srie IEEE 802.11
de normas.
A srie 802 de normas abrangem quase todos os dispositivos de rede, no deixe que o nmero 802 sugerem
redes sem fio. 802.3 Ethernet , por exemplo.

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:

netintro.mm, v v4.16 (2003/04/02 06:48:55)

LANs sem fio

292

802.11 FHSS Cartes (Frequency Hopping Spread Spectrum), que funcionam em at 2


Mb / s. Estes so agora obsoletas, mas ainda FreeBSD suporta a placa Aviator WebGear
com a raio motorista.

802.11 DSSS Cartes (Discrete Sequence Spread Spectrum), que tambm so executados em at 2
Mb / s. Estes tambm so obsoletos.

802.11b DSSS cartes, que so executados em at 11 Mb / s. Eles podem interagir com o


lentas 802,11 cartes de DSSS, mas no com cartes de FHSS.

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.

802.11g cartes so os mais novos. Como 802.11a, os que correm em 54 Mb / s, e eles so


no suportado. Novamente, isso pode ter mudado no momento em que voc l este. Como
802.11b, eles correm na banda de 2,4 GHz.

A maioria das placas atuais so 802.11be funciona at 11 Mb / s. Vamos concentrar-los em


o resto desta seo. Eles operam na faixa de 2,4 GHz, que compartilhado com um nmero
de outros servios, incluindo alguns telefones portteis e fornos de microondas. Este tipo de
telefone porttil pode interromper completamente uma rede sem fio. Interferncia e gama so
problemas graves: redes sem fio geralmente no so to confiveis quanto as redes cabeadas.
Placas wireless podem operar em at trs modos diferentes:

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

Captulo 16: Redes e Internet

Como as redes sem fio coexistem


As redes sem fio tm uma srie de questes que no afetam redes Ethernet. Em particular,
vrias redes podem compartilhar o mesmo espao geogrfico. Na maioria das grandes cidades voc encontrar
que praticamente toda a rea compartilhada por vrias redes. Isto levanta uma srie de
questes:

H apenas tanta largura de banda disponvel. Como o nmero de aumento de redes, o


gotas de transferncia.
No h nenhuma soluo completa para este problema, mas feito um pouco mais fcil pela
disponibilidade de vrias frequncias de operao. Dependendo do pas, 802.11b
cartes podem ter entre 11 e 14 canais de frequncia. Se a sua rea tem um monte de trfego
sobre a freqncia que voc est usando, voc pode ser capaz de resolver o problema mudando-se para
outra frequncia. Isso no quer dizer que isso muitas redes podem coexistir no
mesmo espao: como o nome espectro de disperso indica, o sinal de divagar, quer
lado da frequncia base, e na prtica, voc pode usar apenas trs ou quatro distintas
canais.

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)

LANs sem fio

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

PPP link, net 139.130.136.0

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

Figura 16-7: Rede de Referncia

netintro.mm, v v4.16 (2003/04/02 06:48:55)

295

Captulo 16: Redes e Internet

Esta figura contm uma grande quantidade de informaes, que vamos examinar em detalhe no curso de
o texto:

As caixas na linha superior representam os sistemas na rede local example.org:


freebie, presto, bumble, e esperar.

A linha de baixo a Ethernet local.


A rede tem o endereo
223.147.37.0. Tem um total de 256 endereos (Classe'' C''), assim que a mscara de
rede
255.255.255.0.

As mquinas deste Ethernet pertencem ao domnio example.org. Assim, uma plena


nome bumble bumble.example.org. Ns vamos olhar para esses nomes no captulo 21.

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.

A metade inferior do diagrama mostra parte da rede do ISP. Tem tambm um


Ethernet, e seu roteador muito parecido com o nosso. Por outro lado, ela
interfaces para uma terceira rede atravs da mquina igw. A julgar pelo nome do
interface, um FDDI conexo consulte a pgina 285 para mais detalhes.

O ISP executado um servidor de nomes na mquina ns, abordar 139.130.237.3.

presto tem um ponto de acesso sem fio conectado a ele. O diagrama mostra um laptop,
andante, ligado atravs de uma interface de NAT.

As extremidades das redes Ethernet so endurecidas. Isto representa o terminadores necessria no


no final de uma Ethernet coaxial. Ns conversamos sobre eles na pgina 287. Na verdade, esta
uma rede comutada de 100 Mb / s, mas eles ainda so convencionalmente representados
desta forma. Voc pode pensar nas redes Ethernet como os interruptores que controlam cada
rede.

netintro.mm, v v4.16 (2003/04/02 06:48:55)

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

No captulo 16 vimos os conceitos bsicos que cercam networking BSD. Neste


captulo e os dois seguintes, vamos olhar para o que precisa fazer para configurar uma rede,
primeiro manualmente, automaticamente. Configurando PPP ainda muito mais difcil
de configurar uma rede Ethernet, e eles exigem mais pr-requisitos, por isso vamos dedicar
Captulo 20, para essa questo.
Neste captulo, vamos olhar primeiro para example.org na rede de referncia, na pgina 294, desde
o mais fcil de configurar. Depois disso, vamos olhar para o que necessria informao adicional para
configurar as mquinas em example.net.

Configurao de rede com sysinstall


Para configurar uma rede, voc deve descrever a sua configurao para o sistema. O sistema
rotinas de inicializao que discutimos na pgina 524 incluem uma parcela significativa que define
se o ambiente de rede. Alm disso, o sistema contm um nmero de padro IP
arquivos de configurao que definem a viso da rede do seu sistema. Se voc no configurar
a rede quando instalou seu sistema, voc ainda pode faz-lo agora. Entrar como raiz e
comear sysinstall. Selecione o ndice, interfaces de rede. Voc vai ver o menu
da Figura 17-1, que o mesmo como mostrado na Figura 6-4, na pgina 97. Em um padro de 80x25
exibi-lo requer rolagem para ver o menu inteiro. A nica placa de rede real sobre esta
lista xl0, a placa Ethernet. Os outros so hardware padro que tambm pode ser utilizado como
interfaces de rede.
netsetup.mm, v v4.15 (2003/04/02 06:50:16)

297

Configurao de rede com sysinstall

298

Figura 17-1: menu de configurao de rede


Escolha a placa Ethernet, xl0 Voc fica com uma pergunta sobre se voc quiser usar o IPv6
configurao. Este livro que no discute IPv6, assim responder No. Em seguida, voc obter uma pergunta
sobre a configurao DHCP. Discutimos configurao DHCP na pgina 302. Se voc j
tenho um servidor DHCP configurado, voc pode preferir responder Sim a esta questo, que tudo
voc precisa fazer. Se voc responder No, o prximo menu nos pede para definir os parmetros de
internet.
Figura 17-2 mostra o menu de configurao de rede aps preencher os valores.

Figura 17-2: menu de configurao de rede

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

299

Captulo 17: Configurar a rede local

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.

Configurao manual da rede


Normalmente FreeBSD configura sua rede automaticamente quando ele inicia. Para isso, ele usa
os arquivos de configurao em / Etc Ento, por que faz-lo manualmente? Existem vrias razes:

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.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Configurao manual da rede

300

Descrevendo sua rede


Na Tabela 16-7 na pgina 294, vimos que os sistemas se conectar a redes via rede
interfaces. O kernel detecta as interfaces automaticamente quando se comea, mas voc ainda
precisa dizer a ele o que as interfaces esto ligados a qual as redes, e ainda mais
importante, que abordam o sistema tem em cada rede. Alm disso, se a rede
um difundir rede, como uma Ethernet, voc precisa especificar um intervalo de endereos que
pode ser acessado diretamente na rede. Como vimos na pgina 290, que realizamos esta
seleco com o mscara de rede.
Interfaces Ethernet
Uma vez que tenhamos entendido estes conceitos, relativamente simples de usar o ifconfig
programa para defini-las. Por exemplo, para a interface Ethernet no sistema gw, com IP
endereo 223.147.37.5, precisamos configurar a interface dc0. A mscara de rede o
valor padro para uma rede de classe C, 255.255.255.0. Isso tudo o que precisamos saber:
# Ifconfig dc0 inet 223.147.37.5 netmask 255.255.255.0 up

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

Captulo 17: Configurar a rede local

# Ifconfig tun0 139.130.136.133 139.130.136.129 mscara de rede 255.255.255.255

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.

Verificando a configurao da interface


ifconfig no apenas definir a configurao: voc tambm pode us-lo para verificar a configurao.
uma boa idia fazer isso depois que voc mudar alguma coisa:
$ Ifconfig
DC0: flags = 8843 mtu 1500 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
inet 223.147.37.5 netmask 0xffffff00 transmisso 223.147.37.255
inet6 fe80 :: 280: c6ff: fef9: d3fa% dc0 prefixlen 64 ScopeID 0x1
00:80 ter: C6: f9: d3: fa
media: Ethernet autoselect (100baseTX <full-duplex>)
Estado: Ativo
lp0: flags = 8810 mtu 1500 <POINTOPOINT,SIMPLEX,MULTICAST>
lo0: flags = 8049 mtu <UP,LOOPBACK,RUNNING,MULTICAST> 16384
inet6 :: 1 prefixlen 128
inet6 fe80 :: 1% lo0 prefixlen 64 ScopeID 0x3
inet 127.0.0.1 netmask 0xff000000
tun0: flags = 8051 mtu 1500 <UP,POINTOPOINT,RUNNING,MULTICAST>
inet 139.130.136.133 -> 139.130.136.129 netmask 0xffffffff
Outros sistemas BSD requerem que voc escreva ifconfig-a. listar a configurao de todas as interfaces, e
FreeBSD ainda aceita. Alguns outros sistemas UNIX, particularmente o System V, no entendo mesmo
esta bandeira.

H uma srie de coisas a notar aqui:

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.

A interface lp0 o PLIP interface para conexes via porta paralela.


no configurado (em outras palavras, no foi criado para a operao).

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Configurao manual da rede

302

Ns j vimos a interface loopback lo0.


H tambm um tun0 interface para PPP.

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:

hostname o nome do hospedeiro. Voc deve ter definido quando instalou o


sistema (ver pgina 87). Voc tambm pode configur-lo manualmente com o hostname comando:
# Hostname-s gw.example.org

Para cada interface, uma varivel do formulrio ifconfig_interface contm o


parmetros a serem passados para ifconfig para configurar a interface.

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.

Configurao automtica com DHCP


Mantendo as configuraes de rede para um certo nmero de mquinas pode ser uma dor,
especialmente se eles so laptops que vm e vo. H uma alternativa para redes maiores:
usar DHCP, o Dynamic Host Configuration Protocol. DHCP permite que uma mquina para obter
automaticamente a partir de informao de configurao da rede. O conceito expansvel,
mas geralmente voc recebe um endereo IP e mscara de rede e os nomes do nome padro
servidores e roteadores. Em termos de configurao que vimos at agora, este substitui a correr
o ifconfig e rota programas, e tambm o arquivo / Etc / resolv.conf, que descreve a
localizaes dos servidores de nome. Vamos olhar para ele na pgina 366.
Existem duas partes para DHCP: o cliente eo servidor.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

303

Captulo 17: Configurar a rede local

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;
}
}

Este arquivo de configurao diz dhcpd :

Para alocar dinamicamente endereos IP no intervalo 223.147.37.90 a


223.147.37.110 (Palavra-chave range).

Que os servidores de nomes de domnio so freebie.example.com e andante.example.com.


Ns vamos olhar para os servidores de nomes de domnio no captulo 21.

A mscara de rede eo endereo de broadcast.

As variveis -lease-time default e max-lease-time, que so especificados em


segundo, determinar quanto tempo ser antes um sistema verifica sua configurao. O
Os valores aqui representam um dia e trs dias, respectivamente.
netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Configurao automtica com DHCP

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

Configurando cartes de rede do PC


Ns olhamos dispositivos PC Card na pgina 159, mas h alguns problemas especiais envolvidos
na configurao de placas de rede. Claro que, ifconfig trabalha com rede PC Card
cartes em exatamente da mesma maneira como faz com as placas PCI e ISA, mas voc no pode configurar
los do mesmo modo durante o arranque, uma vez que ainda no pode estar presente.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

305

Captulo 17: Configurar a rede local

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

Depois disto, ifconfig mostra:


$ Ifconfig xl0
xl0: flags = 8802 mtu 1500 <BROADCAST,SIMPLEX,MULTICAST>
ter 00:10:04 b: f8: fd: 20
media: Ethernet autoselect (100baseTX <full-duplex>)

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:

Ele l a partir de configurao / Etc / defaults / rc.conf e / Etc / rc.conf.

Se a interface j est acima, ele sai.

Se um arquivo / Etc/start_if.xl0 existe, ele executa. Aps fazer isso, ele continua.

Ele verifica se a varivel removable_interfaces existe e contm o


nome da interface, xl0. Se no, continua.

Se o valor de ifconfig_xl0 no, ele sai.

Caso contrrio, ele executa a ifconfig comandos especificados na varivel ifconfig_xl0.

Se o valor de ifconfig_xl0 DHCP, ele tenta configurar a interface com o DHCP.

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)

Configurando cartes de rede do PC

306

/ Etc/start_if.xl0 e dar-lhe o seguinte contedo:


dhclient xl0
ntpdate freebie
killall ntpd
ntpd &
killall rwhod
rwhod &
mount-t nfs-a

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.

Retirando as placas de rede


Quando voc remove a placa de rede, DEVD invoca / Etc / pccard_ether novamente. As aes
so semelhantes que executa quando a placa est ligada:

Se um arquivo / Etc/stop_if.xl0 existe, ele executado.

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 ifconfig_xl0 contm normais ifconfig parmetros / Etc / pccard_ether remove


quaisquer rotas estticas para essa interface.

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.

Configurao de rede sem fio


Vimos no Captulo 16 que placas wireless tem mais alguns truques na manga que
redes Ethernet convencionais. Para configur-los corretamente, voc precisa saber:

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?

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

307

Captulo 17: Configurar a rede local

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.

Voc est usando WEP? Se sim, qual o segredo?

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

juntar Exemplo de rede


definir o modo de BSS
selecionar o canal 3 (se no no modo BSS)
Ative a criptografia (se estiver usando WEP)
chave de criptografia (para WEP)

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 "

O que podemos fazer agora


Neste ponto, ns configuramos a camada de enlace. Podemos nos comunicar diretamente com
mquinas conectadas. Para se comunicar com mquinas que no esto diretamente conectados, ns
precisa configurar roteamento. Ns vamos olhar para o prximo.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Configurao de rede sem fio

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

Estas decises so a base de roteamento. A aplicao realiza-los com o auxlio


de um tabela de roteamento, que diz ao sistema que os endereos esto disponveis onde. Temos
j visto o mscara de rede no Captulo 16, na pgina 290. Vamos ver o que ele tambm desempenha um
papel significativo na deciso de encaminhamento. Tabela 17-1 mostra uma viso simblica do encaminhamento
mesa para gw.example.org. Ele muito parecido com o ifconfig na sada anterior
seo:

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

Captulo 17: Configurar a rede local

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).

Finalmente, a quarta entrada a grande diferena. Ele no tem uma contraparte no


ifconfig listagem. Ele especifica a forma de chegar a qualquer endereo no j representavam, apenas
sobre toda a Internet. Neste caso, refere-se a outra extremidade do endereo PPP
link.

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:

O conceito de um percurso predefinido j no tem muita importncia. Se cada interface


transporta aproximadamente igual de trfego, voc realmente precisa especificar a interface para cada rede
ou um grupo de redes. Como resultado, as tabelas de encaminhamento pode ser enorme.

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.

Adicionando rotas automaticamente


FreeBSD vem com todo o software de roteamento disponveis atualmente, principalmente os daemons
encaminhado e fechado. encaminhado est na base do sistema, e os mais recentes fechado est nas portas
Collection.
Ambos os daemons tm uma coisa em comum: voc no precisa deles. De qualquer forma, voc no
precisa deles at que voc tenha pelo menos duas conexes diferentes para a Internet, e mesmo assim
no certeza. Como resultado, no vamos discuti-los aqui. Se voc precisa executar o roteamento
daemons, leia tudo sobre eles em Administrao de Redes TCP / IP, por Craig Hunt.
Do nosso ponto de vista, no entanto, os protocolos de roteamento tem um significado especial:
o sistema espera que a tabela de roteamento para ser atualizado automaticamente. Como resultado,
concebido para utilizar a informao fornecida pelos protocolos de roteamento para realizar a atualizao.
Esta informao constituda por duas partes:

O endereo e mscara da rede (em outras palavras, o intervalo de endereos).

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.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Roteamento

310

Adicionar rotas manualmente


Como vimos na seo anterior, o software de roteamento usa apenas endereos, e no o
nome da interface. Para adicionar rotas manualmente, temos que dar a mesma informao.
O programa que adiciona rotas manualmente chamado percurso. Precisamos dele para adicionar rotas para
outros do que aqueles a que estamos diretamente ligados sistemas.
Para configurar as tabelas de roteamento para os sistemas conectados apenas nossa rede de referncia
(Freebie, presto, bumble e esperar), poderamos escrever:
# Route add default gw

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"

# Ajuste o gateway padro (ou NO).

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.

Configurao de rota do ISP


No site do ISP, as coisas so um pouco mais complicado do que em example.org. Vejamos
a mquina gateway free-gw.example.net. Ele tem trs conexes com a Internet global,
a example.org e para uma outra rede, biguser.com (O interface de rede servidas por
ppp0). Para adicionar as rotas requer algo parecido com os seguintes comandos:
# Route add default 139.130.237.65
# Route add-net 223.147.37.0 139.130.136.133
# Route add-net 223.147.38.0-iface ppp0

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

Captulo 17: Configurar a rede local

elo ligado atravs ppp3. No caso de biguser.com, no sabemos o endereo do


terminal remoto, possivelmente ele muda cada vez que ligado. Como resultado, podemos especificar o
nome da interface em vez disso: ns sabemos que sempre conectado via ppp0.
O procedimento de adicionar esta informao aos / Etc / rc.conf semelhante ao que fizemos para o
interface endereos:

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.

Ns colocamos as seguintes entradas em free-gw do / etc / rc.conf :


defaultrouter
static_routes
route_freebie
route_biguser

=
=
=
=

"139.130.237.65" # Configure a porta de entrada padro (ou NO).


"freebie biguser" # lista de rotas estticas
"-net 223.147.37.0 139.130.237.129"
"-net 223.147.38.0 139.130.237.9"

Olhando para as tabelas de roteamento


Voc pode mostrar as tabelas de roteamento com o netstat ferramenta. Opo -R mostra o encaminhamento
tabelas. Por exemplo, em freebie que voc pode ver:
# Netstat-r
As tabelas de roteamento
Internet:
Destino
omisso
localhost
223.147.37
presto
freebie
esperar
bumble
gw
difundir

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

Bandeiras Refs Use


UGSc
9
8732
UH
0
1255
UC
0
0
HULW
13
139702
HULW
3
38698
HULW
6
1062
HULW
2
47
HULW
6
1062
UHLWb
2
5788

Netif vencimento
rl0
lo0
rl0
lo0
rl0
rl0
rl0
rl0

1151
645
1195
645

H muita coisa a notar sobre esta informao:

A primeira coluna o nome de uma mquina ou de uma rede de pacotes que podem ser enviados ou
a palavra-chave padro.

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

Olhando para as tabelas de roteamento

312

A segunda coluna, o gateway, indica o caminho para o destino. Este campo


difere significativamente, mesmo a partir de verses mais antigas do UNIX. Ele pode ser o nome de uma mquina
(Por exemplo, GW), um ponteiro para uma interface (ligao # 2, o que significa que a segunda
Interface de Internet, a produo a partir de ifconfig est na mesma sequncia), ou uma rede Ethernet
endereo (08:00:20: e: 2c: 98). Verses mais antigas do UNIX no utilizam as duas ltimas formas.

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.

O omisso pontos de entrada gw, como seria de esperar. A interface, rl0, o


interface pela qual gw pode ser alcanado.

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

Captulo 17: Configurar a rede local

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

Em / Etc / rc.conf, voc pode definir isso com a varivel gateway_enable:


gateway_enable = "YES"

# Definido para SIM se este host ser um gateway.

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 :

Defina o seu nome de host:


hostname = "free-gw.example.net"

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"

Habilite o encaminhamento IP:


gateway_enable = "YES"

# Definido para SIM se este host ser um gateway.

Sem os comentrios, o que d as seguintes entradas:


hostname = "free-gw.example.net"
ifconfig_rl0 = "inet 139.130.237.117"
defaultrouter = "139.130.237.65" # Configure a porta de entrada padro (ou NO).
static_routes = "freebie biguser" # Definir a lista de rota esttica
route_freebie = "-net 223.147.37.0 139.130.136.133"
route_biguser = "-net 223.147.38.0-iface ppp0"
gateway_enable = "YES" # definido para SIM se este host ser um gateway.

Para uma mquina configurada com DHCP, voc pode ter:


hostname = "andante.example.net"
ifconfig_wi0 = DHCP

netsetup.mm, v v4.15 (2003/04/02 06:50:16)

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:

Analgicas conexes de linha telefnica ainda so a forma mais comum de conexo


pequenas redes na maioria dos pases, mas a sua largura de banda limitada a cerca de 7 kB / s em

isp.mm, v v4.10 (2003/04/02 03:09:55)

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.

H um certo nmero de variantes de DSL: ADSL (Asynchronous Digital Subscriber


Linha) tem diferentes velocidades de uplink e no downlink, enquanto SDSL (Symmetric
Digital Subscriber Line) e HDSL (Alta velocidade Digital Subscriber Line) tm a
mesma velocidade, em cada direco. Velocidades e capacidades diferem muito de um local
para outro. Modificando a maneira como eles transmitem dados atravs de fios de telefone normais,
incluindo o uso de modems especiais, ADSL pode obter velocidades de at 6 Mb / s
jusante (para o usurio final), e cerca de 640 Kbps de upstream. HDSL tem semelhante
velocidades, mas a velocidade a mesma em cada direco. Em contraste com os modems de cabo, voc
no tem que compartilhar essa largura de banda com ningum. Consideraes tcnicas limitar o
comprimento de loop a cerca de quatro milhas, por isso, mesmo nas grandes cidades, voc pode no ser capaz de obt-lo.
Muitos servios DSL so atormentados por problemas tcnicos. H um certo nmero de
diferentes maneiras para ligar a um servio DSL, mas a maioria deles envolve uma converso para
Ethernet.

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.

isp.mm, v v4.10 (2003/04/02 03:09:55)

317

Captulo 18: Conexo Internet

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.

Qual nome de domnio?


Ns vamos continuar a assumir que o seu nome Jerry Dunham. Se voc mora em, digamos, Austin,
Texas, voc tem uma srie de nomes de domnio que voc pode escolher: dunham.org,
dunham.com, dunham.net, ou mesmo dunham.tx.us se voc quiser usar o geogrfica
domnio.
Se voc mora em, digamos, Capetown, as pessoas provavelmente ir sugerir que voc obtenha o domnio
dunham.za, o domnio geogrfico para a frica do Sul. O problema com isto que
voc est limitando-se a esse pas. Se voc mover para, digamos, Holanda, voc teria que
para alterar dunham.nl-a situao s fracionada melhor do que ser ligado a um ISP.
As mesmas consideraes se aplicam a dunham.tx.us, claro.
Sua escolha do nome de domnio tambm afeta a maneira como voc aplica. Nas sees seguintes, I
supor que voc tome o meu conselho e se candidatar a uma organizao, em vez de um geogrfica
domnio.
isp.mm, v v4.10 (2003/04/02 03:09:55)

Estabelecendo-se na Internet

318

Preparando-se para o registo


Era uma vez, o registro foi tratado pelo InterNIC, um corpo profissional. Desde ento
foi delegada s sociedades comerciais, bem como a qualidade do servio tem sofrido
correspondentemente: eles nem sequer parecem saber os termos tcnicos. Por exemplo, voc
pode encontr-los referindo-se a um nome de domnio como um'' Web Address.'' As coisas ainda esto
deteriorar-se, no momento da escrita: novas empresas esto sendo autorizados a registar
nomes de domnio, eo campo parece atrair uma grande quantidade de cowboys.

Registrando um nome de domnio


Os nicos pr-requisitos para registrar um nome de domnio so:

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.

Primeiro, verifique se o nome est disponvel:


$ Whois dunham.org
No jogo de "DUNHAM.ORG".
O InterNIC Anfitrio Servios de Registro contm apenas informaes Internet
(Networks, ASN de, domnios, e do POC).
Por favor, use o servidor whois em nic.ddn.mil para MILNET Informao.

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

Captulo 18: Conexo Internet

Escolhendo um provedor de servios de Internet


Na maioria dos casos, voc ter a sua ligao Internet a partir de um Internet Service
Provider, ou ISP. Como o nome sugere, um ISP ir fornecer os meios para que voc possa se conectar
seu sistema ou rede local Internet. Eles provavelmente vo tambm fornecer outros
servios: a maioria dos ISPs no pode viver em conexes com a Internet sozinha.
Neste captulo, vamos olhar para as coisas que voc precisa saber sobre ISPs, e como obter o
melhor negcio. Vamos concentrar no que ainda a configurao mais comum, PPP sobre uma conexo discada
linha com um modem V.90 (56 kbps), o que lhe dar uma taxa de transferncia de dados de pico de cerca de
7 kB / s.

Quem esse ISP?


medida que a Internet e, em particular, o nmero de conexes dial-up, explode, uma grande
nmero de pessoas que tiveram a idia de se envolver. Nos primeiros dias de pblico
Acesso Internet, muitos ISPs foram as pequenas empresas dirigidas por pessoas muito tcnicas que tm
viu uma oportunidade de mercado e ter agarrado ela. Outros ISPs eram pequenas empresas geridas por
no-tcnicos para que as pessoas que entraram na onda. Ainda outros ISPs so executados por
grandes empresas, em particular as empresas de TV a cabo e as companhias telefnicas.
O que para voc? Como voc pode dizer a que categoria pertence um ISP? Voc se importa?
Voc deveria cuidado, claro. Vamos considerar que voc quer de um provedor, e que o ISP
quer. Voc quer uma alta confiabilidade, velocidade de conexo de baixo custo, alto para a Internet. Voc
tambm pode querer assessoria tcnica e servios de valor agregado, tais como DNS (ver Captulo 21)
e pginas da web.
A principal prioridade de um pequeno ISP (ou qualquer outro ISP, para que o assunto) conseguir uma boa noite de
dormir. Em seguida, ele quer garantir o nmero mnimo de clientes incmodo. Depois disso,
ele quer garantir que ele no vai sair do negcio. Apenas em seguida ele est interessado na
mesmas coisas que voc .
Nos ltimos anos, um grande nmero de ISPs ter sado do negcio, e muitos mais
se fundiram com outras empresas. Em particular, as grandes empresas freqentemente comprados
pequenos ISPs tecnlogo e correu-los no cho com a sua incompetncia. Para um
viso humorstica deste fenmeno, consulte a srie de desenhos animados'' amigvel'' usurio a partir de
http://ars.userfriendly.org/cartoons/?id=19980824.

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)

Quem esse ISP?

320

Que tipo de conexes que voc oferece?


Veja a discusso na pgina 315.

Quanto voc cobra? Em volume, por tempo de conexo, ou taxa fixa?


Uma vez que a maioria dos ISPs cobrado pelo tempo de conexo: voc paga se voc transferir dados ou no. Este
tornou desinteressante para um ISP para proporcionar um bom desempenho, uma vez que isso significaria
que voc poderia terminar a sua sesso mais rapidamente. Hoje em dia, as taxas fixas esto se tornando mais
Populares: voc paga o mesmo, no importa o quanto voc usar o servio. A desvantagem
a taxa fixa que no h incentivo para desligar, ento voc pode achar que difcil
estabelecer conexes.
Comparando o tempo de conexo e as taxas de volume, esperar uma taxa de transferncia mdia de
cerca de 600 bytes por segundo para a maioria das conexes atravs de um modem de 56 kbps. Voc ter at 7
KB por segundo, com operaes de trfego intensivo, como download de arquivos, mas normalmente, voc vai ficar
fazendo outras coisas assim, e sua taxa de dados sobre a sesso mais provvel que seja de 600 bytes
por segundo, se voc estiver razoavelmente ativo, e muito menos se no. Linhas mais rpidas tipicamente
No cobramos por tempo de conexo: em particular, linhas DSL esto permanentemente ligados e, portanto,
carga por volume de dados ou a uma taxa fixa.
Outra alternativa que est novamente se tornando mais popular um limite de download''.'' Seu apartamento
taxa mensal permite que voc baixe at uma certa quantidade de dados, aps o qual adicional
os custos de dados do Money. Isto pode parecer pior do que uma taxa fixa, mas no tendem a manter as pessoas de
abusar do servio.

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.

Qual a velocidade conexes que voc tem a oferecer?


Conexes ADSL tem duas taxas diferentes, a um mais rpido para downloads e uma mais lenta para
o uplink. Isso bom se voc estiver planejando usar o sistema como um cliente. Se voc pretende executar
servidores em seu sistema, as coisas podem parecer muito diferentes.
Se voc estiver usando uma conexo de modem, eles devem ser o mais rpido, claro, que so
atualmente 56 kbps.

Quais as conexes de uplink que voc tem?


O objetivo desta pergunta dupla: primeiro, para ver se ele entende a pergunta. Um uplink
ligao a ligao que o ISP tem para o resto da Internet. Se inadequada,
sua conexo com a Internet tambm ser inadequada. Para julgar se o link rpido
o suficiente, voc tambm precisa saber quantas pessoas esto conectadas a qualquer momento. Veja o
pergunta sobre modems dial-up abaixo.

Quantos saltos existem para a espinha dorsal?


Alguns ISP so um longo caminho desde o backbone Internet. Isto pode ser uma desvantagem, mas
no tem de ser. Se voc estiver conectado a um ISP com T3 todo o caminho at a espinha dorsal,
melhor do que algum conectado diretamente ao backbone por uma Taxa Bsica ISDN
ligao. Todas as outras coisas so iguais, porm, o menor nmero de saltos, melhor.
isp.mm, v v4.10 (2003/04/02 03:09:55)

321

Captulo 18: Conexo Internet

Quantos modems dial-up que voc tem?


Esta questo tem dois pontos para fazer bem. Por um lado, a largura de banda total destas
modems no deve exceder a largura de banda de uplink por demais, vamos dizer que no deve ser
mais que o dobro da largura de banda de uplink. Por outro lado, voc quer ser capaz de obter um livre
linha quando voc discar dentro Nada mais frustrante do que ter que tentar dezenas de vezes antes
voc pode obter uma conexo. Este fenmeno tambm leva as pessoas a no desconectar quando
eles esto acabados, especialmente se no houver uma taxa horria. Isso torna o problema ainda pior.
Claro que, o problema depende do nmero de assinantes, de modo a pergunta seguinte tambm.

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.

Que tipo de hardware e software que voc est correndo?


Esta questo ir resolver os bons ISPs tecnlogo dos wannabes. As respostas no so reais
to importante como a forma como explic-lo. No entanto, considere que voc vai ser melhor
com um provedor que tambm dirige FreeBSD ou BSD/OS.1 Apenas pequenos ISPs podem dar ao luxo de usar UNIX
mquinas (incluindo FreeBSD) como roteadores, os maiores usar roteadores dedicados.
Em seguida, na minha opinio pessoal, vm outros sistemas UNIX (em ordem decrescente de preferncia,
Solaris 2.X, Linux e IRIX) e, finalmente, um longo caminho atrs, o Windows NT. Se voc
procura de apoio tcnico, bem, voc vai ser muito melhor com um ISP que usa
FreeBSD ou BSD / OS. Voc tambm vai ser algo especial para eles: a maioria dos ISPs odeio tentar
resolver os problemas para os usurios comuns do Windows.

Quantos servidores de nomes que voc corre?


A resposta deve ser de pelo menos 2. Voc provavelmente vai estar acessando-los para o seu nome no-local
informaes do servidor, porque isso vai ser mais rpido do que o envio de pedidos em toda a Internet.

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)

Quem esse ISP?

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.

Voc pode me fornecer um endereo esttico? Quanto custa?


altamente desejvel ter endereos estticos. Consulte a pgina 346 para mais detalhes. Infelizmente,
muitos provedores usam IPs estticos para distinguir ligaes para uso comercial daqueles para uso domstico,
e pode cobrar muito mais de um endereo esttico.

Voc d acesso completo Internet, ou voc bloquear algumas portas?


Esta uma pergunta complicada. Muitos servios de bloco ISPs como SMTP (e-mail) ou HTTP (web
servidores). Se eles fizerem isso, voc no pode executar um e-mail ou servidor web em suas prprias mquinas. No caso
de e-mail, isso raramente um problema: eles vo lhe fornecer o seu prprio servidor de correio atravs
que voc deve transmitir o seu e-mail. Isso tambm permite que o provedor de Internet para limitar o spam, o que pode
vir de qualquer outra forma dentro do sistema da rede.
Para http, a situao diferente. Normalmente ISPs cobrar dinheiro para fornecer o acesso ao seu
servidores web prprios. Por outro lado, esta disposio pode proporcionar o acesso Web muito mais rpido,
especialmente se voc estiver conectado por um link lento, e voc tambm pode salvar as despesas de volume.
Em ltima anlise, uma escolha que voc precisa fazer.

Voc tem completar DNS reverso?


Em edies anteriores deste livro, no me fazer esta pergunta: parecia impossvel que qualquer
ISP responderia'' no''. Infelizmente, os tempos mudaram, e uma srie de ISPs no s
no fornecer DNS, eles parecem pensar que no necessrio. No tem nada a ver com eles:
Em primeiro lugar, mostra incompetncia, e em segundo lugar vai causar problemas para voc acessar
uma srie de sites, incluindo o envio de e-mail para as listas de discusso FreeBSD.

isp.mm, v v4.10 (2003/04/02 03:09:55)

323

Captulo 18: Conexo Internet

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

isp.mm, v v4.10 (2003/04/02 03:09:55)

Preencha valor especfico

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.

Sncrona e assncrona comucao


H duas maneiras diferentes de transmitir dados em srie, chamado sncrono e asynchronous comunicao. Eles cresceram em mundos diferentes:

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:

StartParity D7 D6 D5 D4 D3 D2 D1 D0 Stop Stop

Bit 1 Bit 2

Figura 19-1: codificao byte Asynchronous


Esta figura mostra uma codificao para a letra j, em binrio 01101011. Vamos ver um nmero
de coisas sobre ele:

modems.mm, v v4.10 (2003/04/02 03:11:02)

327

Captulo 19: As comunicaes seriais

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.

modems.mm, v v4.10 (2003/04/02 03:11:02)

Comunicao sncrona e assncrona

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.

Como sabemos quando mesmo ligado?


No caso de um modem, como sabemos quando ele estiver conectado ao modem no
outra extremidade?

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.

modems.mm, v v4.10 (2003/04/02 03:11:02)

329

Captulo 19: As comunicaes seriais

Tabela 19-1: Sinais RS-232 e modem LEDs


RS-232
nome
Pin
PG
1
TxD

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

Pedido de envio. Indica que o dispositivo tem dados para


sada.

CTS

Limpar para enviar. Indica que o dispositivo pode receber uma entrada.

DSR

SG

DCD

CD M5

Transportadora detectar. Indica que o modem tem conexo


com outro modem.

DTR

20

DTR S1

Terminal de dados

RD D2

MR PW
ON

Os dados recebidos: dados provenientes do modem para o DTE.

Conjunto de dados pronto. Indica que o modem est ligado


e passou de auto-teste. Em alguns modems, PW indica
que o poder , e MR indica que operativa.
Sinal de terra. Retorno para os outros sinais.

Indica que o terminal ou

pronto.
computador est pronto para conversar com o modem.
RI

22

AA

Indicador Ring. Criada por um modem para indicar que uma


chamada est tocando. O AA indicador em um modem vontade
geralmente intermitente quando a chamada est tocando.

AA

'' Auto Resposta.'' Indica que o modem ir atender uma


chamada.

HS

'' Alta velocidade''. Indica que o modem est funcionando em um


velocidade mais elevada do que o seu Modems individuais
valor mnimo.
interpretar isso de forma diferente, mas voc pode assumir que algo
est errado, se o seu modem tem este indicador e ele est fora
durante a transmisso.

MNP

Indica que a correo de erro est ativo.

OH

'' Gancho'' Off. Indica que o modem tem algum


conexo com a linha telefnica.

PW

Indica que o poder modem est ligado. Pode ou no implicar


DSR.

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

Quando posso enviar os dados?


Existem duas maneiras de determinar se a outra extremidade est preparada para aceitar dados: ferragens
aperto de mo e handshaking software. Ambos so tambm referidos como controle de fluxo. Em
cada caso, o sincronismo simtrica. Vamos olh-la do ponto de vista da
DTE, porque este o ponto de vista mais comum.
Em handshaking de hardware, o DCE levanta CTS (Clear to Send) quando ele est pronto para aceitar
entrada. A DTE s transmite dados quando CTS afirmada a partir da outra extremidade. Voc vai
Muitas vezes vemos que o DTE afirma RTS (Request to send) quando se quer enviar dados. Isto
um retrocesso para os dias de half-duplex modems, que s poderiam transmitir em um
direo de cada vez: RTS era necessrio para mudar o modem para o modo de envio.
Saudao de software Tambm chamado X-ON/X-OFF. O DCE envia um personagem (X-off, que
corresponde Ctrl-S) quando o buffer est cheio, e outra (X-on, o que corresponde a CtrlQ) quando no h espao no tampo de novo. Voc tambm pode usar esse mtodo em um terminal para
interromper temporariamente a exibio de uma srie de dados e, em seguida, reinici-lo. No mais um bom
escolha para modems.
Para handshake de hardware para o trabalho, o modem deve ser configurado corretamente, e voc
devem ter os cabos corretos. Se no estiver, os sintomas sero de resposta muito lenta quando
transferncia de grandes quantidades de dados: em um nvel superior, o TCP pode recuperar estes
derrapagens, mas preciso pelo menos um segundo para faz-lo cada vez. Vamos ver como verificar se
seu modem tem o tipo correto de controle de fluxo na pgina 333.

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:

A conexo do router gw para o modem local ligado a 57.600 bits por


segundo.

A ligao entre os modems, em 56.000 bits por segundo.


A conexo do modem do ISP para o roteador, em 115.200 bits por segundo.

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

Captulo 19: As comunicaes seriais

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

Conexo de modem local, 57.600 bps


Link PPP, 56.000 bps, 2400 baud
Conexo de modem ISP, 115.200 bps

router

Figura 19-2: conexo de modem de rede

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.mm, v v4.10 (2003/04/02 03:11:02)

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

Captulo 19: As comunicaes seriais

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

sem atendimento automtico, ou 1 para auto-resposta.

S2

S6

O escapar de caracteres, que permite retornar do modo on-line para


modo de comando. Normalmente, esse personagem um +. Para voltar ao
modo de comando, espere um segundo depois de qualquer entrada anterior, insira + + +, E
espere um segundo, depois que o modem deve responder com OK.
O tempo, em segundos, para aguardar antes discagem cega. Se voc tiver definido o
modem para no esperar o tom de discagem (talvez porque no
compreender o tom de discagem), ele vai esperar tanto tempo e depois tentar marcar
de qualquer maneira.

modems.mm, v v4.10 (2003/04/02 03:11:02)

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

A durao dos tons DTMF (discagem). Se estes forem mal definido, o


troca de telefone pode no entender o nmero discado.

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

Captulo 19: As comunicaes seriais

Comando
ATSR = n

Significado
Defina o valor de S registo r a n.

ATSnumber?

Exibir o contedo de uma S registrar. Veja o exemplo abaixo.

ATT

Definir tom (DTMF).

ATVnumber

ATXnumber

ATZ
AT & Knumber

AT & Rnumber

AT & Tnumber

AT & V
AT & Wnumber

AT & Ynumber

Se nmero 0, retornar cdigos de resultado em forma numrica. Se um, o retorno de texto.


No confiar em qualquer uma das formas de ser consistente de um modem para a prxima.
Determinar a forma de cdigos de resultado. Isso depende muito do
fabricante, mas importante para os scripts de chat. Se voc tiver problemas,
com os scripts de chat, verifique a documentao do modem.
Redefinir configurao do modem para os valores padro.
Selecione o mtodo de controle de fluxo. Normalmente, 3 permite o controle de fluxo RTS / CTS,
que o que voc quer.
Se nmero representa 0, somente afirmada CTS se o DTE afirma RTS, mesmo se o
modem capaz de receber dados. Se for definido como 1, ele se comporta normalmente. Fazer
certo de que este valor definido como 1.
Realizar o teste do modem especfico do nmero. Este comando a origem da
declarao:'' UNIX uma marca registrada da AT & T nos EUA e em outros
pases. AT & T um comando de teste do modem.''
Ver a configurao atual. Veja o exemplo abaixo.
Armazenar a configurao atual como nmero do perfil. A maioria externo
modems pode armazenar dois perfis, ou configuraes. Se o nmero de no
especificada, escrever o perfil especificado em um anterior AT & Y de comando. Ver
No exemplo abaixo.
Decidir qual perfil (0 ou 1) ser carregado quando o modem reiniciado,
e que ser escrito pelo comando AT & W

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

Captulo 19: As comunicaes seriais

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

O termo perfil refere-se a um conjunto de informaes de configurao completa para o modem.


Modems externos geralmente pode armazenar dois perfis diferentes. Alguns modems podem no ter
qualquer perfis armazenados, ou podem ter um nmero diferente. O AT & V comando mostra o
configurao actual (perfil activo'''') e os dois perfis armazenados. A primeira linha reflete
os parmetros estabelecidos com AT comandos (por exemplo, L0 Significa que o comando ATL0,
desligar o alto-falante, foi emitido). As prximas duas ou trs linhas refletem os valores da
S registra. Alm disso, o modem pode armazenar at quatro nmeros de telefone, uma caracterstica
que raramente de grande interesse.
Se voc olhar para este perfil, voc vai perceber que o perfil ativo inclui o parmetro E K4.
. Isto significa'' uso XON / XOFF controle de fluxo'' Isso no desejvel: melhor usar
Controle de fluxo RTS / CTS. Para corrigi-lo,
at & k3
definir o controle de fluxo RTS / CTS
Ok
escrever o perfil ativo
at & w
Ok
e confira
at & v
Perfil ativo:
B0 E1 L0 M1 N1 Q0 T V1 W0 X4 Y0 & C1 & D2 & G0 e J0 & K3 & 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
O perfil armazenado 0:
B0 E1 L0 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
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

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

estado do modem, e no fazem parte da configurao. Por exemplo, o meu modem


inclui um registo S S86, o Chame No Cdigo de Razo. Se uma falha de chamada, ela pode ser
interessante de olhar para ele. Para fazer isso:
mostrar contedo do S86
Conexo caiu outra extremidade

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

"/ Usr / libexec / getty std.9600"

desconhecido off seguro

Esta informao tem o seguinte significado:

A primeira coluna o nome do ficheiro especial de terminal, em relao ao / Dev. Em outra


palavras, essa entrada representa o arquivo / Dev/ttyd0.

O campo seguinte consiste no texto / Usr / libexec / getty std.9600. Este o


invocao para getty: o getty programa / Usr / libexec / getty, e ele chamado com o
parmetro std.9600. Esta uma etiqueta no arquivo / Etc / gettytab, e descreve um padro
9600 conexo bps. Voc provavelmente vai querer fazer o upgrade para std.57600.

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

modems.mm, v v4.10 (2003/04/02 03:11:02)

Captulo 19: As comunicaes seriais

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.

FreeBSD oferece duas verses do PPP:

BSD implementaes tradicionais de IP esto localizados no kernel, o que contribui para


mais eficincia. A aplicao de produtos fitofarmacuticos correspondente referido como ncleo
PPP. Vamos olhar para ele na pgina 355.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

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.

Como funciona PPP


Os seguintes passos so necessrios para configurar uma conexo 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.

Estabelecer as rotas para os sistemas na outra extremidade da ligao.

Os dois processos de PPP negociar detalhes como endereo IP, protocolo e autenticao
protocolos.

Nas pginas seguintes, vamos olhar para esses pontos em detalhe.

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

Captulo 20: Configurando o PPP

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 permitir um recurso significa:'' pedido esse recurso.''

A incapacitar um recurso significa:'' no solicitar esse recurso.''

A aceitar um recurso significa:'' se os pedidos do outro lado esse recurso, us-lo.''

A negar um recurso significa:'' se os pedidos do outro lado esse recurso, recus-lo.''

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)

Como funciona PPP

342

Quem atira a primeira pedra?


O primeiro passo para a negociao para decidir qual lado comea. Um deles comea a
negociao, e o outro responde. Se voc configurar seu final de forma incorreta, uma das
estas coisas podem acontecer:
1. Voc quer esperar para a outra extremidade para comear. Nada acontece. Depois de um tempo, um de vocs
vezes fora e cai a ligao.
2. Voc tanto fogo imediato e coloque suas demandas, e ouvir o outro para responder. O
software deve reconhecer que o outro lado est falando, tambm, e recuperar, mas muitas vezes
suficiente ambas as extremidades desistir e cair a conexo.
3. Um lado inicia negociaes antes do outro, e as coisas funcionam normalmente, apesar da
configurao incorreta. Este o tipo mais difcil de reconhecer: por vezes, o
conexo funcionar, e s vezes no, aparentemente dependente da fase de
a lua.
Em geral, os sistemas com autenticao de login tambm iniciar a negociao. ISPs com PAP
ou CHAP autenticao tendem a esperar o usurio final para iniciar em primeiro lugar, porque esse o caminho
Microsoft faz isso. mais fcil para a depurao de assumir que o outro lado vai comear. Se
no, e voc tem um modem externo, voc vai perceber que no h trfego na linha,
e que a linha caiu. Em seguida, voc pode alternar para a negociao de modo ativo.
Faz mais sentido para o sistema chamado para iniciar a negociao: o sistema de chamada
pronta a utilizar a ligao imediatamente, mas o sistema de chamada frequentemente um certo valor de
tempo de execuo do seu programa de servidor PPP. Uma causa comum de problemas quando o servidor
mquina est ocupado e isso leva um tempo para invocar o processo de PPP. Neste caso, o chamador
envia seus dados de configurao inicial e dispositivo tty a chamada de sistema pode ecoar de volta,
resultando em uma grande confuso no final do chamador. Usurio PPP normalmente pode sobreviver cerca de
trs reflexes desse tipo antes de ficar muito confuso para se recuperar.
As caractersticas tpicas que exigem negociao so:

Que tipo de autenticao? Autenticao de login no conta aqui, porque


no faz parte do PPP. Voc pode optar por oferecer CHAP ou PAP negociao. Voc tambm pode
exigir do outro lado para se autenticar. Voc pode aceitar tanto CHAP e PAP
autenticao dessa forma, voc pode aceitar o que o outro lado pede. Se o
outra extremidade um ISP, voc provavelmente no ser capaz de autenticar-lo, mas voc deve
verifique com o ISP.
Um problema de configurao comum quando um usurio permite alguma forma de autenticao
sem antes concordar com isso com o ISP. Por exemplo, poucos ISPs realizar
autenticao de seu fim (para provar a voc que eles so realmente o ISP discado).
Voc pode especificar esse tipo de autenticao em seu arquivo de configurao, mas se o ISP
recusa-se a autenticar, voc nunca vai estabelecer uma conexo.

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

Captulo 20: Configurando o PPP

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.

Endereos IP. Em muitos casos, a mquina do servidor atribui um endereo de IP dinmico.


Ns vamos olhar para as implicaes abaixo.

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Como funciona PPP

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.

Quais endereos IP no link?


Depois de passar a autenticao, voc pode precisar de negociar os endereos no link. A princpio
vista, voc acha que os endereos IP no link seria muito importante. Na verdade, voc
muitas vezes pode ignor-los quase que completamente. Para entender isso, precisamos considerar o que
o fim dos endereos IP .
Um endereo IP um endereo colocado na fonte ou o campo de destino de um pacote IP para
ativar o software para encaminh-lo ao seu destino. Como vimos no Captulo 17, Configurando
a rede local, que no necessariamente o endereo da interface para o qual o pacote est
enviada. Se o seu pacote passa atravs de 15 ns na maneira atravs da Internet, um grande
nmero normal, vai ser enviado para 14 ns cujo endereo no est especificado no pacote.
O primeiro n o roteador na outra extremidade da ligao PPP. Este um link ponto-a-ponto,
por isso recebe todos os pacotes que so enviados para baixo da linha, de modo que voc no precisa fazer nada
especial para assegurar que as pessoas. Isto est em contraste marcante com um roteador em uma transmisso
meio como uma Ethernet: em uma rede Ethernet voc deve especificar o endereo IP do roteador para
para receber os pacotes.
Em uma rede Ethernet, embora o endereo IP nos pacotes no menciona o roteador, o Ethernet
cabealhos no especificar o endereo Ethernet do roteador como o endereo de destino. Seu sistema local
precisa do endereo IP para determinar o endereo de Ethernet com o auxlio de ARP, o Address Resolution
Protocolo.

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

Figura 20-1: Configurando uma interface e uma rota

ppp.mm, v v4.12 (2003/04/02 03:12:15)

345

Captulo 20: Configurando o PPP

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

Se gw envia um pacote com esse endereo de origem, no impedi-lo de chegar ao seu


destino, porque o endereo de origem no desempenhar qualquer papel no encaminhamento. Mas quando
as respostas do sistema de destino, ele envia-lo para o endereo especificado no campo de origem, de modo que
no vai voltar.
Ento, como pode isso ainda funciona? Lembre-se que os roteadores no alterar os endereos no
pacotes passam. Se o sistema bumble envia um pacote, ele tem o endereo
223.147.37.3. Ele passa pelo gw sistema configurado incorretamente inalterada, de modo
o pacote de resposta recebe de volta sua fonte sem problemas.
Na prtica, claro, no faz sentido usar endereos IP incorretos. Se no o fizer
especificar um endereo em cada extremidade do link, PPP pode negociar um para voc. O que isto
no significa, porm, que voc no deve se preocupar muito com o que lidar com voc ganha.
H uma exceo, no entanto: a questo da endereamento dinmico. Veremos que
abaixo.

A mscara de rede para o link


Como vimos na pgina 290, com um meio de transmisso que voc use uma mscara de rede para especificar quais
intervalo de endereos pode ser tratado diretamente pela interface. Este um conceito diferente
de roteamento, que especifica intervalos de endereos que podem ser abordados indiretamente atravs da
interface. Por definio, uma ligao ponto-a-ponto apenas tem um endereo na outra extremidade, de modo que o
mscara de rede deve ser 255.255.255.255.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Como funciona PPP

346

Endereos estticos e dinmicos


Tradicionalmente, cada interface tem tido um endereo especfico. Com o aumento do tamanho da
a Internet, isso tem causado problemas significativos: alguns anos atrs, as pessoas afirmaram que
a Internet estava ficando sem endereos. Como soluo, a verso 6 do Internet
Protocolo (geralmente chamado IPv6) aumentou o comprimento de um endereo de 32 bits para 128
bits, aumentando o nmero total de endereos de 4294967296 para 3,4 1038-suficiente para
atribuir vrios endereos IP para cada tomo na Terra (embora ainda possa haver um
limitao quando a Internet cresce em todo o universo). FreeBSD contm completo
suporte para IPv6, mas infelizmente isso no verdade para a maioria dos ISPs, portanto, no presente, IPv6 no
muito til. Este livro no discuti-lo ainda mais.
ISPs no usam IPv6 porque eles encontraram outra soluo'''' para o espao de endereo
questo: endereos IP dinmicos. Com endereos dinmicos, cada vez que voc discar, voc tem uma
endereo IP livre do espao de endereos do ISP. Dessa forma, um ISP s precisa de tantos IP
endereos que ele tem modems. Ele pode ter 128 modems e 5.000 clientes. Com
endereos estticos, ele precisaria de 5.000 endereos, mas com endereos dinmicos que s ele
necessita 128. Alm disso, do ponto de vista da ISP, o encaminhamento trivial se atribui um
bloco de endereos IP para cada pedao fsico de hardware.
Endereos dinmicos tm duas desvantagens muito graves:
1. IP um protocolo peer-to-peer: no h mestre e no escravo. Teoricamente, qualquer
sistema pode iniciar uma ligao a qualquer outra, desde que ele conhece o seu endereo IP. Este
significa que o seu ISP pode iniciar a ligao, se algum estava tentando acessar
seu sistema. Com o endereamento dinmico, absolutamente impossvel para qualquer um para definir
uma conexo: no h nenhuma maneira por qualquer outro sistema para saber com antecedncia o IP
abordar que voc vai ter quando a ligao estabelecida.
Isso pode parecer sem importncia, talvez voc considerar a possibilidade de o ISP chamado
voc mesmo perigoso, mas considerar as vantagens. Se voc estiver viajando em algum lugar
ea necessidade de verificar algo em sua mquina em casa, voc pode simplesmente ligar para ele
com ssh. Se voc quiser deixar algum recolher alguns arquivos do seu sistema, no h nenhuma
problema. Na prtica, no entanto, muito poucos provedores esto preparados para cham-lo, no entanto, que
no torn-lo uma m idia.
2. Ambas as verses do PPP apoiar uma idle timeout caracterstica: se voc no usar o link para um
determinado perodo de tempo, pode desligar. Dependendo de onde voc mora, pode salvar
em contas de telefone e ISP encargos de conexo. Ele s desliga a ligao telefnica, e no
as sesses TCP. Teoricamente voc pode ligar quando quiser continuar, e
a sesso TCP ainda estar ativa. Para continuar a sesso, no entanto, preciso
ter o mesmo endereo IP quando a ligao vem de novo. Caso contrrio, se o
sesso no est morto, voc no pode se reconectar a ela.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

347

Captulo 20: Configurando o PPP

A definio de uma rota padro


Muito freqentemente, a ligao PPP a sua nica conexo com a Internet. Neste caso,
deve definir o rota padro para ir atravs do link. Voc pode fazer isso explicitamente com a rota
adicionar comando, mas ambas as verses do PPP pode faz-lo para voc.
Quando voc definir sua rota padro depende de que tipo de abordagem que voc est usando. Se
voc estiver usando endereamento esttico, voc pode especific-lo como um dos parmetros de configurao.
Se voc estiver usando o endereamento dinmico, isso no possvel: voc no sabe o endereo em que
tempo. Ambas as verses tm uma soluo para isso, que veremos quando chegarmos a eles.

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.

ISP encargos de conexo, tambm por unidade de tempo.


Taxas de dados do ISP, por unidade de dados.

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.

A informao que voc precisa saber


Qualquer que seja a implementao PPP que voc decidir, voc precisa das seguintes informaes:

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.

A identificao de usurio e senha para conexo com o sistema ISP.


O tipo de autenticao usado (geralmente CHAP ou PAP).

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

A informao que voc precisa saber

348

Configurando o usurio PPP: o caminho mais rpido


Este captulo contm uma srie de informaes sobre a configurao do PPP. Se voc estiver com pressa, e voc
ter um'' normais'' conexo PPP, os seguintes passos podem ser o suficiente para ajud-lo a configur-lo
up. Se isso no funcionar, basta ler sobre a explicao detalhada.

Editar / Etc / ppp / ppp.conf. Encontrar essas linhas linhas:


papchap:
(Comentrios omitido)
definir PHONE_NUM telefone
definir username authname
definir authkey SENHA

apenas para conexes de modem

Substitua os textos PHONE_NUM, username e SENHA com as informaes


fornecido pelo ISP. Se voc estiver usando PPPoE, remova o aparelho de telefone linha.

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

No altere este arquivo: basta adicionar a seguinte linha / Etc / rc.conf :


ppp_enable = YES

# Comece user-ppp (ou NO).

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

# Escolha de "auto", "ddial", "direta" ou "dedicado".

Isto diz PPP no desligar em tudo.

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:

ppp.mm, v v4.12 (2003/04/02 03:12:15)

349

Captulo 20: Configurando o PPP


Papchap # / usr / sbin / ppp-quiet-auto

Se isso funciona para voc, voc est feito. Caso contrrio, continue a ler.

Configurando o usurio PPP: os detalhes


Os arquivos de configurao de PPP do usurio esto no diretrio / Etc / ppp. Alm deles, voc
provavelmente vai querer modificar / Etc / rc.conf para comear a PPP e, possivelmente, para incluir Internet global
informao. O arquivo de configurao principal / Etc / ppp / ppp.conf. Contm uma srie de
entradas multi-linha liderado por um rtulo. Por exemplo, a omisso entrada se parece com:
default:
definir o log Phase chat LCP IPCP CCP tun comando
ident user-ppp VERSO (construdo COMPILATIONDATE)
# Certifique-se de que as referncias "Dispositivo" a porta serial correta
# Para o seu modem. (Cuaa0 = COM1, cuaa1 = COM2)
#
definir dev/cuaa1 dispositivo /
dispositivo para utilizar
definir a velocidade 115200
Coloque o disco "ABORT BUSY ABORT
\ "\" OK AT-AT-OK ATE1Q0
definir o tempo limite de 180
permitir dns

conectar a 115.200 bps


NO \ \ sCARRIER TIMEOUT 5 \
OK \ \ dATDT \ \ T TIMEOUT 40 CONNECT "
# 3 minutos temporizador ocioso (o padro)
# Pedir informao DNS (para resolv.conf)

Vejamos esta entrada em detalhe.

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Configurando o usurio PPP: o caminho mais rpido

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.

A entrada padro por si s no fornece informaes suficientes para criar um link. Em


particular, ele no especificar para quem ligar ou o nome de usurio ou senha para usar. Em
Alm da entrada padro, voc precisa de uma entrada que descreve como se conectar a um especfico
local. O mnimo seria a primeira de trs conjunto linhas do papchap entrada em
ppp.conf:
papchap:
#
# Editar as prximas trs linhas e substituir os itens em tampes com
# Os valores que foram atribudos pelo seu ISP.
#
definir PHONE_NUM telefone
definir username authname
definir authkey SENHA
definir ifaddr 10.0.0.1 / 0 10.0.0.2 / 0 255.255.255.0 0.0.0.0
adicionar HISADDR padro
# Adicione a (pegajoso) rota padro

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

ppp.mm, v v4.12 (2003/04/02 03:12:15)

351

Captulo 20: Configurando o PPP

Usurio PPP utiliza quatro palavras-chave para especificar a


forma de negociar:

A permitir um recurso significa:'' pedido esse recurso.''

A incapacitar um recurso significa:'' no solicitar esse recurso.''

A aceitar um recurso significa:'' se os pedidos do outro lado esse recurso, aceit-lo.''

A negar um recurso significa:'' se os pedidos do outro lado esse recurso, recus-lo.''

Vamos ver exemplos desse nas sees seguintes.

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

Endereo IP da chave secreta pares


OurSecretKey
192.244.184.34/24
X4dWg9327
192.244.184.33/32
localPasswdForControl

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Configurando o usurio PPP: o caminho mais rpido

352

Existem algumas coisas a serem observadas aqui:

Como de costume, as linhas comeando com # so comentrios.

As outras linhas contm trs valores: o nome do sistema, a chave de autenticao, e


possivelmente um endereo IP.

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

353

Captulo 20: Configurando o PPP

Correndo usurio PPP


Depois de configurar sua configurao PPP, execute-o assim:
$ Ppp
Trabalhando em modo interativo
Usando a interface: tun0
ppp ON freebie> discagem papchap
Disque tentativa 1 de 1
Telefone: 1234567
discar OK!
Entrar OK!
ppp ON freebie> Modo de pacote.
ppp ON freebie>
PPP ON freebie>

este o nome da entrada em ppp.conf


o nmero de telefone
conexo de modem estabelecido
autenticao completa
PPP est em execuo
ea conexo de rede est completa

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:

Usando a interface: tun0


Iniciado PPP.
Telefone: 1234567
* Conectado!
NewPhase: Autenticao
a = C223, a minha = 0
Valsize = 16, nome = way3.Adelaide
NewPhase: Rede
Desconhecido protocolo 0x8207
myaddr = 139.130.136.133 HISADDR = 139,1

freebie ppp [23679]: Link: OsLinkup: 139.130.136.129


freebie ppp [23679]: Phase: Erros HDLC -> FCS: 0 ADDR: 0 Comd: 0 PRO

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''''.

Quanto tempo vamos ficar ligado?


As seguintes entradas / Etc / defaults / rc.conf relacionar com o usurio ppp:
# 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

Agora, a nossa conexo PPP est instalado e funcionando. Como que vamos parar com isso de novo? H dois
possibilidades:

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Configurando o usurio PPP: o caminho mais rpido

354

Para parar a conexo, mas para deixar o ppp processo ativo, insira fechar:
PPP ON freebie> close
ppp ON freebie>

Para parar a conexo eo ppp processar, introduza q ou quit:


PPP ON freebie> q
#

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

Isso define o tempo ocioso para 300 segundos (5 minutos).

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

Novamente, papchap o nome do perfil de PPP. Esta verso 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 -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.

Finalmente, voc pode apenas escrever


$ Ppp-fundo papchap

ppp.mm, v v4.12 (2003/04/02 03:12:15)

355

Captulo 20: Configurando o PPP

O -Fundo opo diz ao usurio PPP para discar imediatamente e permanecer no


fundo. Aps o perodo de tempo ocioso, o processo de PPP usurio desconecta e
sadas. Se voc deseja se conectar novamente, voc deve reiniciar o processo.

Aes em conectar e desconectar


Se voc no tiver uma conexo permanente, existem algumas coisas que voc pode gostar de fazer
cada vez que voc se conectar, como lavar sua fila de correio de sada. PPP utilizador fornece um
mtodo para fazer isso: criar um / Etc / ppp / ppp.linkup com o mesmo formato
/ Etc / ppp / ppp.conf. Se existir, PPP procura o perfil que voc usou para iniciar PPP (papchap
em nossos exemplos) e executa os comandos nessa seo. Use o ponto de exclamao
(!) Para especificar os comandos que devem ser realizados por uma concha. Por exemplo, para lavar
a fila de e-mail, voc pode escrever:
papchap:
! sendmail-q

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.

Configurando o kernel do PPP


Faz mais sentido para executar PPP no kernel do que no espao do usurio: no kernel mais
teoricamente eficiente e menos propenso a erros. A implementao tem menos recursos do que
usurio PPP, e no to fcil de depurar, por isso no usada tanto.
Os arquivos de configurao do kernel do PPP esto no mesmo diretrio que o usurio PPP
arquivos de configurao. Voc tambm pode criar o seu prprio ~ /. Ppprc arquivo, embora eu no
recomendado o seguinte: O PPP uma funo do sistema e no deve ser manipulado para o utilizador
nvel.
Kernel PPP usa um daemon chamado pppd para monitorar a linha quando ele est ativo. Kernel PPP
nomes de interface comeam com ppp seguido por um nmero. Voc precisa de um para cada concorrente
link. Voc no precisa criar especificamente um kernel para o ppp Interface: FreeBSD Lanamento
5 carrega o mdulo PPP / Boot / kernel / if_ppp.ko dinamicamente e adiciona as interfaces como
necessria. Isto tambm significa que voc no pode mais procurar apoio ppp com o ifconfig
de comando. A interface no vai estar l at que voc precisar.
Kernel PPP usado para fornecer uma srie de opes de compilao para habilitar algumas funes, incluindo
as opes de compresso abaixo descrito. As opes ainda esto l, mas eles esto por definir
padro, ento voc no precisa fazer nada l.
ppp.mm, v v4.12 (2003/04/02 03:12:15)

Configurando o kernel do PPP

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

definir a rota padro aqui quando a linha vem


usar o controle de fluxo de hardware
usar linhas de controle de modem
usar esvaziar compresso
usar preditor de compresso 1
Van faixas de compresso Jacobson
o nosso nome (ndice no arquivo de senhas)
criar um arquivo de bloqueio UUCP

Este um arquivo pequeno, mas cheio de coisas interessantes:

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.

Predictor1 diz PPP usar Predictor 1 compresso, quando possvel.

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

ppp.mm, v v4.12 (2003/04/02 03:12:15)

357

Captulo 20: Configurando o PPP

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

Configurando o kernel do PPP

358

Quem atira a primeira pedra?


Na pgina 342, vimos como especificar se devemos comear a negociar ou se ns
deve esperar para a outra extremidade a iniciar. Por padro, o kernel do PPP comea a negociao. Se voc
quer a outra extremidade para comear, adicione a palavra-chave passiva na sua / Etc / ppp / options arquivo.

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

Estes so os endereos que voc usaria na mquina gw.example.org para configurar o


Link PPP no meio da Figura 16-7 na pgina 294. O primeiro endereo o local final de
a ligao (o endereo do pppn do dispositivo), e o segundo o endereo do remoto
mquina (free-gw.example.net).

Execuo do kernel PPP


Para executar pppd, digite:
# Pppd / dev/cuaa1 115200 connect 'chat-f / etc / ppp / dial.chat'

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

ppp.mm, v v4.12 (2003/04/02 03:12:15)

359

Captulo 20: Configurando o PPP

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.

Parmetros do tempo limite


Uma srie de opes de especificar quando do kernel PPP deve discar e desligar:

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)

Configurando o kernel do PPP


# Arquivo de opes para o DPF
defaultroute
crtscts
modem
domnio example.org
persistir
desinflar 12,12
Predictor1
vj-max-slots de 16
user FREEBIE
139.130.136.133:139.130.136.129

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

/ Etc / ppp / dial.chat mantm-se inalterado a partir do exemplo na pgina 357:


# 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

/ Etc / ppp / chap-secrets contm:


FREEBIE * X4dWg9327

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

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

Aes em conectar e desconectar


Se voc no tiver uma conexo permanente, existem algumas coisas que voc pode gostar de fazer
cada vez que voc se conectar, como lavar sua fila de correio de sada. Ns vimos que o usurio PPP
fornece um mtodo para fazer isto com o / Etc / ppp / ppp.linkup e / Etc / ppp / ppp.linkdown
arquivos. Kernel PPP fornece funcionalidade semelhante com / Etc / ppp / auth-up e / Etc/ppp/authpara baixo. Ambos os arquivos so scripts shell. Por exemplo, para limpar a fila de e-mail, voc
pode colocar a seguinte linha no / Etc / ppp / auth-up:
sendmail-q

ppp.mm, v v4.12 (2003/04/02 03:12:15)

361

Captulo 20: Configurando o PPP

Coisas que podem dar errado


Configurando o PPP usado para ser uma dor. Duas coisas tornaram mais fcil do que costumava ser.
Em primeiro lugar, a adopo generalizada de ligaes Internet dial-up consolidou o
procedimento, de modo one size fits quase todo mundo. Em segundo lugar, o software tem tido algum do
arestas retirado, ento agora quase funciona fora da caixa. Ainda h uma srie de
coisas que podem dar errado.

Problemas ao estabelecer uma conexo


A primeira coisa que voc precisa fazer marcar a ligao. Se voc tiver um modem externo,
voc pode acompanhar o processo atravs do indicador de LEDs. Ocorrem as seguintes etapas:

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.

Em seguida, voc deve ver um breve lampejo da RD e TD LEDs. Se isso no acontecer,


voc tambm pode ter problemas de cabo, ou pode ser um problema com o script de chat.

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.

ppp.mm, v v4.12 (2003/04/02 03:12:15)

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

Desde o incio da ARPAnet, os sistemas tiveram ambos os nomes e endereos IP.


Sistemas UNIX, bem como muitos outros que copiou a implementao IP BSD,
usou o arquivo / Etc / hosts a converso entre nomes e endereos. Este arquivo contm uma lista
de endereos IP e nomes de host correspondente, um por linha.
claramente impossvel ter um / Etc / hosts arquivo que descreve a Internet completa.
Mesmo se voc tivesse espao em disco, o nmero de atualizaes poderia sobrecarregar sua rede. O
soluo um banco de dados distribudo, o Domain Name System, ou DNS. O mais comum
implementao do DNS BIND, o Berkeley Internet Name Domain.1 Voc vai notar a
palavra Berkeley l dentro. BIND parte do BSD, e o nico jogo na cidade.
Apesar de esses nomes, o daemon que executa a resoluo chamado nomeado (O nome
daemon, pronunciado'' name-dee'').
DNS fornece as informaes necessrias para se conectar a sistemas remotos, na forma de
Resource Records ou RRs. Infelizmente, os nomes dos registros no so excessivamente
intuitivo.

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.

1. Isso soa como um acrnimo em busca de um nome?


dns.mm, v v4.17 (2003/04/02 03:15:05)

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.

NS (Name Server) registros descrever servidores de nomes para uma zona.

CNAME (nome cannico) registros Nomes alternativos para descrever um sistema.

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:

supostamente difcil de configurar os arquivos de configurao do DNS.

DNS supostamente gera uma grande quantidade de trfego de rede.

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.

dns.mm, v v4.17 (2003/04/02 03:15:05)

365

Captulo 21: O Domain Name Service

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.

Configurar um servidor de nome


Servio de DNS fornecido pelo nome daemon, chamado nomeado. nomeado pode ser executado em um
nmero de modos diferentes. Neste captulo, vamos nos concentrar em definir o apropriado
configuraes para a nossa rede de referncia. Se voc quiser ir mais longe, verifique o seguinte
documentos:

O BIND documentao on-line, na distribuio fonte no diretrio


/ Usr / src / contrib / bind / doc / html / index.html.

Administrao de Redes TCP / IP, por Craig Hunt (O'Reilly).


DNS e BIND, por Paul Albitz e Cricket Liu (O'Reilly).

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.

dns.mm, v v4.17 (2003/04/02 03:15:05)

Configurar um servidor de nome

366

Uso de DNS passiva


Nem todo sistema precisa executar o seu prprio nome daemon. Se voc tiver uma outra mquina na
mesma rede, voc pode enviar pedidos a ele. Por exemplo, na rede de referncia, freebie
e presto pode estar executando servidores de nome. No h nenhuma razo particular para bumble e
esperar, ambas as mquinas mais lentas, presumivelmente, para faz-lo bem. Em vez disso, voc pode dizer-lhes para
usar o nome dos servidores nas outras duas mquinas.
Para fazer isso, certifique-se que voc no ative nomeado na sua / Etc / rc.conf, e criar um arquivo
/ Etc / resolv.conf com os contedos seguintes:
domnio example.org
nameserver 223.147.37.1
nameserver 223.147.37.2

# 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.

Servidor de nomes em um sistema autnomo


Se voc s tem uma nica mquina conectada rede, e sua prpria mquina
parte da zona do ISP, voc pode usar o resolv.conf mtodo bem. Este um tpico
situao se voc estiver usando uma PPP ou link DSL. Ainda no uma boa idia, no entanto. Cada
pesquisa passa atravs da ligao, que relativamente lenta. Os resultados da pesquisa no so
armazenada em qualquer lugar no local, assim voc pode acabar realizando a mesma pesquisa novamente.
DNS tem uma resposta para o problema: salvar as informaes localmente. Voc pode fazer isso com um
somente de cache do servidor de nomes. Como o nome sugere, a somente de cache do servidor de nomes no
tem qualquer informao de seu prprio pas, mas ele armazena os resultados de todas as consultas que faz a outra
sistemas, por isso, se um programa faz o mesmo pedido novamente, o que acontece frequentemente
apresenta os resultados muito mais rapidamente em solicitaes subseqentes. Configurar uma somente de cache
servidor de nome parecido com isto:

Renomear ou remover / Etc / resolv.conf, e criar um novo com o seguinte


contedo:
nameserver 127.0.0.1

servidor de nomes local

Coloque esta linha no / Etc / rc.conf :


named_enable = "YES"

# Execute o nome, o servidor DNS (ou NO).

Se / Etc / rc.conf no existe, basta criar uma com esse contedo.


dns.mm, v v4.17 (2003/04/02 03:15:05)

367

Captulo 21: O Domain Name Service

Crie um arquivo / Etc / namedb / localhost.rev contendo:


$ TTL 1d
@ IN SOA

IN NS
IN PTR

@ @ Host. root. @ @ host.


(
@ Date @
, Serial
1h
, Renovar
5m
, Repetir
100d
, Expire
1h)
, Cache de Negativa
@ @ Host.
localhost. @ @ domnio.

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.

Edite o arquivo / Etc / namedb / named.conf para conter:


Opes {
diretrio "/ etc / namedb";
forwarders {
139.130.237.3;
};

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

1. Ns vamos olhar para o nmero de srie na pgina 368.


dns.mm, v v4.17 (2003/04/02 03:15:05)

Servidor de nomes em um sistema autnomo

368

Servidor de nomes em uma rede do usurio final


claro que um simples somente de cache do servidor de nomes no ir funcionar quando voc tem seu prprio
domnio. Na verdade, a maioria das autoridades, que atribuem nomes de domnio no vai mesmo deixar voc
registrar um domnio da Internet a menos que voc especifique dois servidores de nomes funcionais, e eles
verific-las antes do registo pode prosseguir. Nesta seo, vamos olhar para o que voc
precisa fazer para executar um servidor de nome real''''.
A primeira coisa que precisamos fazer criar um arquivo de zona para a nossa zona example.org. Vamos colocar
ele e todos os outros arquivos de zona em um diretrio / Etc / namedb e cham-lo / Etc/namedb/db.example.org aps o nome da zona que descreve.

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

Captulo 21: O Domain Name Service

exemplo mostra que a segunda modificao na configurao da regio em 18 de maro


2003.
Os restantes parmetros de descrever as caractersticas da zona de tempo de espera. Use o
valores no exemplo a no ser que voc tenha uma boa razo para alter-los. Os formatos de dados
para os registros de exigir que todas as vezes que ser especificado em segundos, e em verses anteriores do
BIND, esta era a nica opo que tinha. Nas verses atuais do BIND, voc pode usar escala
fatores como d para o dia e h por horas no arquivo de configurao. nomeado converte-a
segundos antes da transmisso.

O refrescar o tempo o tempo aps o qual um servidor de nome remoto ir verificar se o


configurao da zona mudou. 1 dia razovel aqui, a menos que voc mudar a sua
configurao vrias vezes por dia.

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

mquina local, via interface loopback

Na prtica, como veremos no arquivo de configurao concluda, temos a tendncia de colocar a A


registros mais para o final da lista, porque eles geralmente so os mais numerosos. Ele
torna o arquivo mais fcil de ler se coloc-los depois que os grupos menores de entradas.

dns.mm, v v4.17 (2003/04/02 03:15:05)

Servidor de nomes em uma rede do usurio final

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:

dns.mm, v v4.17 (2003/04/02 03:15:05)

371

Captulo 21: O Domain Name Service


IN MX
IN MX

50 bumble.example.org.
100 mail.example.net.

Os nmeros 50 e 100 so chamados preferncias. Teoricamente voc poderia torn-los um


e 2, exceto que voc pode querer colocar outros no meio. Um agente de transferncia de correio envia
enviar para o sistema com menor preferncia, salvo se no responder, ento o tenta
Ficha MX com a preferncia inferior mais prxima, e assim por diante.

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"

"FreeBSD 4.0-CURRENT (BSD 4.4)"


"FreeBSD 3.2 (BSD 4.4)"
"SCO OpenServer"
"Microsoft Windows de 95%"
"FreeBSD 3.2 (BSD 4.4)"

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)

Servidor de nomes em uma rede do usurio final


freebie
presto
bumble
esperar
gw

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

Captulo 21: O Domain Name Service

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.

A viso distante: o mundo exterior


At agora, temos ido a um monte de problemas para descrever nossa prpria pequena parte da Internet.
E quanto ao resto? Como pode encontrar o nome do servidor o endereo de, digamos, freefall.FreeBSD.org? At agora, ele no pode.
O que ns precisamos agora de algumas informaes sobre outros servidores de nomes que pode nos ajudar,
especificamente o 13 servidores de nomes de raiz. Estes so denominados A.ROOT-SERVERS.NET. atravs
M.ROOT-SERVERS.NET .. Elas so descritas em um arquivo que voc pode obter de
ftp://ftp.rs.internic.net/domain/named.root se necessrio, mas voc no precisa: depois
a instalao do FreeBSD, deve estar presente em / Etc / namedb / named.root. Este arquivo tem quase
mudou nos anos-os nomes mudaram uma vez, mas a maioria dos endereos ficado
o mesmo. Claro, sempre uma boa idia para verificar de vez em quando.

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:

O diretrio entrada diz nomeado onde procurar os arquivos de configurao.

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.

Ns vimos a entrada para 0.0.127.IN-ADDR.ARPA j na pgina 367: o


pesquisa inversa para o endereo localhost.

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

Se ele j est em execuo, podemos reinici-lo:


Recarga # ndc
Atualizar iniciada.

1. No Release 9 de nomeado ele vai mudar seu nome para rndc.


dns.mm, v v4.17 (2003/04/02 03:15:05)

375

Captulo 21: O Domain Name Service

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)"

O problema aqui que nomeado no utiliza a conveno UNIX padro para


Comentrios: o caractere de comentrio um ponto e vrgula (;), e no um jogo da velha (#).
A maioria dos outros erros de configurao deve ser auto-explicativo. Na pgina 380 veremos
Mensagens que nomeado produz, durante a operao normal.

dns.mm, v v4.17 (2003/04/02 03:15:05)

A pesquisa reversa

376

Servidores de nomes escravos


Um monte de software depende de resoluo de nomes. Se por qualquer razo um servidor de nomes no
acesso, pode causar graves problemas. Esta uma das razes pelas quais a maioria dos registradores
insistem em pelo menos dois servidores de nomes antes que eles vo registrar um domnio.
Se voc executar vrios servidores de nomes, isso realmente no importa qual respostas. Ento, por um
distino entre mestre e escravo servidores de nomes? puramente organizacional: um mestre
servidor carrega seus nomes dados a partir dos arquivos de configurao que voc criou, como vimos acima. A
servidor de nomes escravo carrega seus dados de um servidor de nomes mestre, se ele est sendo executado. Ele salva o
informaes em um arquivo privado de modo que se for reiniciado enquanto o servidor de nomes mestre no
execuo, ele pode recarregar informaes sobre as zonas que est servindo a partir deste arquivo. Isto faz
muito mais fcil de configurar um servidor de nome de escravo, claro, tudo o que precisamos de
/ Etc / namedb / named.conf :
zone "." {
tipo de sugesto;
arquivo "named.root";
};
zone "example.org" {
Tipo de escravo;
arquivo "backup.example.org";
masters {
223.147.37.1;
};
};
zone "37.147.223.in-addr.arpa" {
Tipo de escravo;
arquivo "backup.example-reverse";
masters {
223.147.37.1;
};
};
zone "0.0.127.in-addr.arpa" {
type master;
arquivo "localhost.rev";
};

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.

dns.mm, v v4.17 (2003/04/02 03:15:05)

377

Captulo 21: O Domain Name Service

O prximo nvel abaixo: delegao de zonas


No exemplo anterior, configuramos um servidor de nomes para uma nica zona sem subzones.
Ns fizemos uma breve considerar o que aconteceria se ns criamos um subdomnio china.example.org. Nesta seo, vamos criar os arquivos de configurao para este subzone e veja como
vincul-lo zona pai, um processo chamado delegao.

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

Em seguida, / Etc / namedb / china-reverse:


, A definio de zona china.example.org
@ IN SOA
beijing.china.example.org. zhang.china.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)
, Servidores de nomes
IN NS

ns.china.example.org.

dns.mm, v v4.17 (2003/04/02 03:15:05)

O prximo nvel abaixo: delegao de zonas

, 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

e finalmente / Etc / namedb / named.conf :


zone "." {
tipo de sugesto;
arquivo "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
arquivo "localhost.rev";
};
zone "china.example.org" {
type master;
arquivo "db.china.example.org";
};
zone "23.169.233.IN-ADDR.ARPA" {
type master;
arquivo "china-reverse";
};

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.

example.org com a delegao


O que faz servidor de nomes example.org 's precisa saber sobre china.example.org? Voc
poderia pensar,'' nada, eles so zonas separadas'', mas isso no totalmente verdade. Para um
nome do servidor remoto para encontrar china.example.org, primeiro ele vai para example.org, para o pai
domnio deve manter as informaes o suficiente para encontrar o domnio filho. Este processo
chamado delegao. O nome do servidor pai mantm registros NS ('' registros delegao'')
e correspondente A registros (registros'' cola'') para a zona filho. Ele tambm pode ser uma boa
idia para os servidores de nome para example.org para manter um servidor de nome secundrio para China:
Dessa forma, podemos salvar uma pesquisa para os servidores de nome de mestre para china.example.org mais de
o tempo. Para faz-lo, adicione a seguinte linha ao / Etc / namedb / named.conf :
zone "china.example.org" {
Tipo de escravo;
arquivo "backup.china";
masters {
223.169.23.1;
223.169.23.2;
};
};
zone "23.169.223.in-addr.arpa" {
Tipo de escravo;
arquivo "backup.china-reverse";
dns.mm, v v4.17 (2003/04/02 03:15:05)

379

Captulo 21: O Domain Name Service


masters {
223.169.23.1;
223.169.23.2;
};

};

Ns adicionamos as seguintes informaes para / Etc / namedb / db.example.org:


@

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

Ns verifique a sada, ou vendo no console do sistema ou usando o comando


tail / var / log / messages. Vamos ver algo como:
18 maro 15:23:40 freebie
18 maro 15:23:40 freebie
erial 2001061701)
18 maro 15:23:40 freebie
18 maro 15:23:40 freebie

chamado [69752]: recarga nameserver


chamado [69752]: master zone "china.example.org" (IN) carregado (s
chamado [69752]: endereo de origem Forwarding [0.0.0.0] 0,4673
chamado [69752]: Pronto para responder a consultas.

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.

Atualizando a configurao da verso 4


O que temos visto at agora se aplica a verses 8 e 9 do nomeado. A verso anterior era
Verso 4 (no pergunte o que aconteceu com 5, 6 e 7, at a verso 9 veio junto, havia
rumores de que a prxima verso seria 16). Verso 8 do nomeado introduzido um completamente
novo formato de arquivo de configurao. Se voc tiver uma configurao de DNS existente a partir da verso 4,
o arquivo de configurao principal ser chamado / Etc / named.boot ou / Etc / named / named.boot.
Voc pode convert-lo para o named.conf formato com o script / Usr / sbin / named-bootconf :
# Named-bootconf </ etc / namedb / named.boot> / etc / namedb / named.conf

dns.mm, v v4.17 (2003/04/02 03:15:05)

381

Captulo 21: O Domain Name Service

Olhando-se as informaes de DNS


Voc pode usar escavao, acolhimento ou nslookup procurar informaes nome. amplamente uma questo de
preferncia que voc usa, mas voc deve observar que nslookup usa a interface resolvedor
que pode resultar em voc obter resultados diferentes do que o seu servidor de nome iria ficar.
O formato de sada cavar me d nos nervos, ento eu uso host. Outros preferem dig porque
formula as perguntas exatamente da mesma forma como o servidor de nomes faz, e sua sada mais
adequado como entrada para nomeado. Por exemplo, o comando dig@a.root-servers.net.
axfr produz um named.root arquivo que nomeado entende. Vamos examinar brevemente host.
Aqui esto alguns exemplos:
$ Hub.freebsd.org anfitrio
procurar um registro
hub.freebsd.org tem endereo 216.136.204.18
correio hub.freebsd.org tratado (pri = 10) por mx1.freebsd.org
$ Host 216.136.204.18
executar uma pesquisa inversa
18.204.136.216.IN-ADDR.ARPA domain name pointer hub.freebsd.org
$ Ftp.freebsd.org anfitrio
outra
ftp.freebsd.org um apelido para ftp.beastie.tdk.net
este um CNAME
ftp.beastie.tdk.net tem endereo 62.243.72.50
e os correspondentes Um registro
ftp.beastie.tdk.net mail est manipulado (pri = 20) por correio in1.inet.tele.dk
ftp.beastie.tdk.net mail est manipulado (pri = 30) por correio in2.inet.tele.dk
ftp.beastie.tdk.net mail est manipulado (pri = 10) por mailport.inet.tele.dk
$ Host-v-t soa freebsd.org
Obter um registro SOA
Tentando domnio nulo
rcode = 0 (Sucesso), ANCOUNT = 1
A resposta que se segue no autoritrio:
freebsd.org 3066 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
)
Para obter respostas oficiais, veja:
freebsd.org 3066 IN NS
ns0.freebsd.org
freebsd.org 3066 IN NS
ns1.iafrica.com
freebsd.org 3066 IN NS
ns1.downloadtech.com
freebsd.org 3066 IN NS
ns2.downloadtech.com
freebsd.org 3066 IN NS
ns2.iafrica.com
Informaes adicionais:
216.136.204.126
ns0.freebsd.org 92727 EM UM
ns1.iafrica.com 92727 EM UM
196.7.0.139
92.727 ns1.downloadtech.com EM UM
170.208.14.3
92.727 ns2.downloadtech.com EM UM
66.250.75.2
ns2.iafrica.com 22126 EM UM
196.7.142.133

H uma srie de coisas para olhar no ltimo exemplo:

Utilizou-se o -V Opo (verbose) para obter mais informaes.

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.

O servidor de nome local em example.org j tinha o registro SOA FreeBSD.org em


seu cache, como resultado, ele no precisa perguntar o nome do servidor que foi autorizado para
a zona. Em vez disso, ele diz que a resposta no era autoritrio e diz-lhe

dns.mm, v v4.17 (2003/04/02 03:15:05)

Olhando-se as informaes de DNS

382

onde voc pode obter uma resposta vlida.

A sada em praticamente o mesmo formato que discutimos anteriormente neste captulo,


mas h alguns nmeros em frente IN em todos os registros de recursos. Estes so o
time-to-live valores para cada registro individual, em segundos. Voc pode coloc-los no
arquivos de zona, tambm, se voc quiser, e que vai substituir o TTL valor para a zona. Neste
impresso, que especifique por quanto tempo ser antes que expire a entrada em cache. Tente novamente
e voc vai ver que o valor menor.

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.

Verificao de DNS para correo


Vrios programas esto disponveis para o diagnstico de problemas de configurao do DNS. Eles so
fora do escopo deste livro, mas se voc estiver gerenciando configuraes de DNS de grande porte, ter um
olhar para a coleo em http://www.isc.org/ .

dns.mm, v v4.17 (2003/04/02 03:15:05)

383

Captulo 21: O Domain Name Service

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.

dns.mm, v v4.17 (2003/04/02 03:15:05)

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:

Um grande nmero de pessoas tm procurado a abusar da sua segurana relativamente frouxa.

O espao de endereo no mais adequado para o nmero de computadores que se conectem a


a rede.

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.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

385

386

Captulo 22: Firewalls, aliasing IP e proxies

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.

ipfw: a definio de regras de acesso


O programa ipfw regras de acesso a processos para o firewall. Cada regra diz respeito ao especfico
tipos de pacotes e descreve o que fazer com eles. Ao receber um pacote, ipfw
examina cada regra em uma ordem predeterminada at encontrar um que combina com o pacote.
Em seguida, ele executa a ao que a regra especifica. Na maioria dos casos, a regra aceita ou
nega o pacote, de modo ipfw no necessita de continuar com o processamento das regras restantes
embora s vezes o tratamento pode continuar depois de um jogo. Se nenhuma regra corresponde, a default
permitir que o trfego no.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

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.

nome ou nmero de servio

Um pacote destinado a um dos servios descritos no


/ Etc / services.

src Intervalo de endereos IP Um pacote com um endereo de origem que corresponda Endereo IP. Ver

abaixo para a interpretao de Intervalo de endereos IP.

dst Intervalo de endereos IP Um pacote com um endereo de destino que corresponda Endereo IP.
via interface

Todos os pacotes que passam a interface especificada. interface pode ser


um nome de interface ou um endereo IP associado a apenas um
interface.

recv interface

Todos os pacotes que chegam pela interface especificada. interface poder


ser um nome de interface ou um endereo IP associado a apenas um
interface.

Xmit interface

Todos os pacotes saindo pela interface especificada. interface poder


ser um nome de interface ou um endereo IP associado a apenas um
interface.

Endereo IP

Este um endereo IP. Ele especifica um jogo exatamente para este


endereo.

Endereo IP / pedaos

pedaos um valor entre 0 e 32. Esta forma corresponde primeira


pedaos bits Endereo IP.

Endereo IP: Mscara

mscara um valor de 32 bits. Esta forma corresponde a esses pedaos de IP


endereo especificados na mscara. Este o mesmo conceito de uma rede
mscara consulte o Captulo 16, pgina 290, para uma descrio da net
mscaras.

Estas opes podem ser combinadas com algumas restries:

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.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

388

Captulo 22: Firewalls, aliasing IP e proxies

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:

A primeira toma a atitude'' tudo proibido, a menos que explicitamente permitido.''

firewall.mm, v v4.12 (2003/04/09 20:40:28)

Segurana e firewalls

389

A segunda tem a atitude'' tudo permitido, a menos que explicitamente proibida.''

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 edit-lo para atender s suas necessidades.

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 = ""

#
#
#
#
#
#

Definida como YES para ativar a funcionalidade de firewall


Qual script para ser executado para configurar o firewall
Tipo de Firewall (veja / etc / rc.firewall)
Definida como YES para suprimir a exibio regra
Definida como YES para permitir o registro de eventos
Bandeiras passado para ipfw quando o tipo um arquivo

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.

O fechado perfil permite apenas o trfego local, atravs da interface de loopback.

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

Captulo 22: Firewalls, aliasing IP e proxies

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

Figura 22-1: perfil do cliente em / etc / rc.firewall


A primeira linha corresponde ao texto cliente se escrito em letras maisculas ou minsculas. Ento ns
tem-se:
setup_loopback
# 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}

Estas regras permitem todo o trfego na rede local.


# Permite TCP atravs de configurao se conseguiu
$ {} Fwcmd adicionar passar tcp from any to any estabelecido

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

Pacotes fragmentados so difceis de reconhecer, e se bloque-los, coisas estranhas poderiam


acontecer. Eles no so geralmente um risco de segurana significativo.
# Permite configurao de e-mails recebidos
$ {} Fwcmd adicionar passar tcp from any to $ {ip} 25 configurao
# Permite configurao de conexes TCP de sada s
$ {} Fwcmd adicionar passar tcp de $ {ip} para qualquer configurao
firewall.mm, v v4.12 (2003/04/09 20:40:28)

Segurana e firewalls

391

Setup # Disallow de todas as outras conexes TCP


$ {} Fwcmd adicionar negar tcp from any to any configurao

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"

Estes endereos e redes correspondem ao link PPP ea ethernet local,


respectivamente.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

392

Captulo 22: Firewalls, aliasing IP e proxies


# Parar spoofing
$ {} Fwcmd adicionar negar tudo a partir de $ {inet}: $ {} imask a qualquer in via $ {OIF}
$ {} Fwcmd adicionar negar tudo a partir de $ {onet}: $ {} omask a qualquer in via $ {iif}

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

# Permitir o acesso ao nosso WWW


$ {} Fwcmd adicionar passar tcp from any to $ {80} OIP configurao

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.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

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.

Tentando com isso


Voc provavelmente vai achar que a sua primeira tentativa de configurao de firewall no ser o
ptima. Voc provavelmente vai descobrir requisitos que voc no tinha pensado e que so
agora esto sendo negadas pela regra padro. Esteja preparado para gastar algum tempo para tudo
para o trabalho, e fazer isso no console do sistema. No h nenhuma boa alternativa.

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

Captulo 22: Firewalls, aliasing IP e proxies

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

Figura 22-2: Acessando a Web via NAT


Neste diagrama, os endereos IP so acima das caixas, os nomes de interface acima do
linhas de conexo, e os nmeros de porta abaixo as linhas de conexo. A conexo deve
ser iniciada andante, porque no h nenhuma maneira para encaminhar a ele diretamente de fora da
ligao local. Ele encontra o endereo de www.FreeBSD.org (216.136.204.117) e envia-lo para fora
sua rota padro, neste caso a nica interface, wi0. presto recebe o pacote na interface
xl0 e encaminha-lo atravs da interface dc0.
At agora, isso no nada especial, o que qualquer router faz. A diferena que presto
muda o endereo de origem eo nmero da porta. Na ligao sem fios, endereo do andante
192.168.27.17, eo nmero da porta para esta conexo 2731. Na ligao remota,
o endereo IP torna-se 223.147.37.2, da presto endereo prprio, eo nmero da porta em
neste caso, 3312. Teoricamente, o'''' mudado de endereo de porta pode ser o mesmo que o
inicial, uma vez que no existe qualquer relao. O endereo IP de destino eo nmero da porta no pode
mudar, claro, o pacote ou nunca chegar ao seu destino.
No retorno, o inverso acontece: www.FreeBSD.org respostas a presto, que reconhece a
nmero da porta, converte-lo para endereo do andante IP ea porta de origem e envia-lo para Andante
na rede local.

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}

Adicione o seguinte / Etc / rc.conf :


firewall_enable = YES
gateway_enable = "YES"
natd_enable = "YES"
natd_interface = "dc0"
firewall_script = "/ etc / rc.nat"
firewall_type = "cliente"

firewall.mm, v v4.12 (2003/04/09 20:40:28)

# Definido para SIM se este host um gateway.


# Script para apenas NAT
# Tipo de firewall se estiver rodando um firewall

396

Captulo 22: Firewalls, aliasing IP e proxies

O nome de interface, na segunda linha, DC0, o nome da interface externa (o


uma com os endereos IP reais).
Se voc estiver usando NAT, mas no um firewall, voc no precisa especificar um firewall_type,
pois que se relaciona com / Etc / rc.firewall. Voc precisa especificar o nome do script
para executar, no entanto.

Ativar o firewall, como mostrado acima na seo de firewall. Se voc no pretende


reiniciar agora, basta executar / Etc / rc.firewall (Ou / Etc / rc.natd) pela mo do console, e
em seguida, iniciar natd :
apenas para NAT
para NAT e firewall

# Sh / etc / rc.nat
# Firewall_type = client sh / etc / rc.firewall
# Natd dc0

A expresso firewall_type = client diz o shell Bourne para definir o valor do


varivel firewall apenas para este comando. Se voc estiver usando csh ou tcsh, utilize o
seguinte seqncia:
(Setenv firewall_type = cliente; sh / etc / rc.firewall)

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

Figura 22-3: Acessando a Web por meio de um servidor proxy


Este muito parecido com a Figura 22-1. A nica coisa que parece ter mudado
o nmero da porta Presto xl0 interface. Na verdade, h mais do que isso: na Figura 22-1,
firewall.mm, v v4.12 (2003/04/09 20:40:28)

Os servidores proxy

397

andante estabelece uma ligao com www.FreeBSD.org. Aqui se estabelece uma


ligao com presto.example.org.

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

firewall.mm, v v4.12 (2003/04/09 20:40:28)

398

Captulo 22: Firewalls, aliasing IP e proxies

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

Finalmente, voc pode comear lula :


# Lula

No reincio do sistema, lula ser iniciada automaticamente a partir do roteiro de / Usr/local / etc / rc.d / squid.sh.

firewall.mm, v v4.12 (2003/04/09 20:40:28)

Instalando o squid

399

Configurao de proxy do navegador


Como mencionado anteriormente, proxies no so transparentes para a aplicao. Voc tem que configurar
seu software para conversar com o proxy. Para isso, voc precisa configurar o navegador da web
em conformidade. Por exemplo, com a galeon voc selecione Configuraes Preferncias Ad Avanadas> Rede e obter a seguinte tela:

Figura 22-4: configuraes de proxy Galeon


lula compreende os protocolos individuais que ele suporta, por isso pode dizer a diferena
entre, digamos, um http solicitao na porta 8080 e um ftp solicitar a mesma porta.
No entanto, considere se uma boa idia usar lula para FTP. Ele no acelera
acessar a primeira vez que voc pegar o arquivo, e se voc acessar cada arquivo apenas uma vez, voc no
ter qualquer ganho atravs da utilizao de squid. Por outro lado, o ftp dados podem poluir o cache.

Configurando informaes de proxy para ftp


ftp entende proxies, e usa-los somente para conexes no-interativas. Coloque o
seguinte declarao em seu . Perfil arquivo:
export http_proxy = presto.example.org: 8080
exportao ftp_proxy = presto.example.org: 8080

firewall.mm, v v4.12 (2003/04/09 20:40:28)

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.

Como abordar problemas de rede


Lembre-se do captulo 16 que o software de rede e hardware operar em pelo menos quatro
camadas. Se uma camada no funcionar, os acima no quer. Ao resolver problemas,
que, obviamente, faz sentido comear na parte inferior e trabalhar para cima.
A maioria das pessoas entender isso at um certo ponto. Ningum espera que uma conexo PPP para o
Internet para funcionar se o modem no pode discar o ISP. Por outro lado, um grande nmero de
mensagens para o FreeBSD-questions lista de discusso mostram que muitas pessoas parecem pensar
que uma vez que esta conexo foi estabelecida, tudo o resto vai funcionar automaticamente.
Se isso no acontecer, eles esto confusos.
Infelizmente, a Internet no to simples. Na verdade, muito complicado dar um hard-andmetodologia rpida em tudo. Depurao de rede quanto pode parecer mais mgico do que
nada racional. No entanto, um nmero surpreendente de problemas de rede pode ser resolvido
usando os passos abaixo. Mesmo se eles no resolverem o problema, l-los.
Eles podem lhe dar algumas idias sobre onde procurar.
netdebug.mm, v v4.15 (2003/04/02 03:23:15)

401

Como abordar problemas de rede

402

Camada problemas ligao


Para testar a camada de enlace, comece com ping. pingar um programa relativamente simples que envia um
Pacote ICMP echo para um endereo IP especfico e verifica a resposta. De ICMP, a Internet
Control Message Protocol, usado para relatrios de erros e testes. Ver o TCP / IP
Ilustrada, de Richard Stevens, para mais informaes.
Um tpico pingar sada pode parecer:
Bumble $ pingue
PING bumble.example.org (223.147.37.156): 56 bytes de dados
64 bytes from 223.147.37.156: icmp_seq = 0 ttl = 255 time = 1.137
ms
64 bytes from 223.147.37.156: icmp_seq = 1 ttl = 255 time = 0.640
ms
64 bytes from 223.147.37.156: icmp_seq = 2 ttl = 255 time = 0.671
ms
64 bytes from 223.147.37.156: icmp_seq = 3 ttl = 255 time = 0.612
ms
C
--- Bumble.example.org estatsticas de ping --4 pacotes transmitidos, 4 pacotes recebidos, 0% de perda de pacotes
round-trip min / avg / max / stddev = 0.612/0.765/1.137/0.216 ms

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.

Diz-lhe quantos pacotes no faz-lo.

Ele tambm imprime um resumo das estatsticas de pacotes.

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

Captulo 23: a depurao de rede

at que tenhamos depurado no link e camadas de rede.


Se as coisas no funcionam, h duas possibilidades:

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:

Uma das interfaces (fonte ou destino) pode ser errada. Devem


ambos tm a mesma gama de endereos de rede. Por exemplo, os dois seguintes
configuraes de interface no podem falar uns com os outros diretamente, mesmo que eles esto na mesma
rede fsica:
mquina 1
DC0: flags = 8843 mtu 1500 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
inet 223.147.37.81 netmask 0xffffff00 transmisso 223.147.37.255
mquina 2
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

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

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

Camada problemas ligao

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

H muitas coisas a verificar aqui:

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.

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

405

Captulo 23: a depurao de rede

O estatuto associado? A alternativa nenhuma transportadora. Alguns cartes, incluindo


este, mostram nenhuma transportadora ao se comunicar com uma estao operando em IBSS
modo, mas eles nunca mostrar ligado a menos que eles realmente esto associados.

Se o carto no associado, verifique as freqncias eo nome da rede.


Verifique os parmetros WEP (criptografia) para garantir que eles correspondem. Note-se que
ifconfig no exibe a chave do WEP, a menos que voc root.
Seu carto pode mostrar ligado mesmo se a chave WEP no corresponde. Em tal
caso, ele sabe sobre a rede, mas no pode se comunicar com ele.

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.

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

Camada problemas ligao

406

Problemas da camada de rede


Uma vez que sabemos que a camada de enlace est funcionando corretamente, podemos voltar nossa ateno para a prxima
camada acima, a camada de rede. Bem, em primeiro lugar devemos verificar se o problema ainda est conosco.
Precisamos de ferramentas adicionais para a camada de rede. pingar uma ferramenta til para dizer-lhe
se os dados so a chegar ao destino, e se sim, quanto est chegando.
Mas e se sua rede local verifica muito bem, e voc no pode chegar a um remoto
rede? Ou se voc est perdendo 40% de seus pacotes para foo.bar.org, e os restantes
esto ocupando a 5 segundos para passar. Onde est o problema? Com base na recente
'' Atualizar'' o seu ISP executada, eo fato de que voc teve problemas para chegar a outros sites,
suspeitar que os problemas de desempenho pode estar ocorrendo na rede do ISP. Como possvel
voc descobriu?
Como vimos, para investigar a camada de enlace, um completo fracasso muitas vezes mais fcil de resolver do que
uma falha parcial. Se nada est chegando, voc provavelmente tem um problema de roteamento.
Confira a tabela de roteamento com netstat. Em bumble, que voc pode ver:
$ Netstat-r
As tabelas de roteamento
Internet:
Destino
omisso
localhost
223.147.37
sat-gw
bumble
presto
freebie
223.147.37.255

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

Use netif vencimento


8
xl0
525 lo0
0 xl0
0
xl0 1150
24 lo0
5
xl0 1200
760.334 xl0
1159
403 xl0

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:

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

407

Captulo 23: a depurao de rede

$ 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 ...

Porta de entrada Bandeiras Refs


free-gw.example.ne UGSc
24
localhost UH
1

Use netif vencimento


5724 ppp0
123 lo0

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:

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

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

Captulo 23: a depurao de rede

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

Para um roteador, este valor deve ser 1. Se for 0, mud-lo com:


# Sysctl-w net.inet.ip.forwarding = 1
net.inet.ip.forwarding: 0 -> 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.

Mas talvez os dados se tornam um salto adiante:


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 ***
4 ***
C

Neste caso, no certamente um problema em example.net. Este seria o correcto


tempo para usar o telefone.
netdebug.mm, v v4.15 (2003/04/02 03:23:15)

traceroute

410

Perda de pacote de alta


Mas talvez dados passar. Bem, alguns dados, de qualquer maneira. Considere isso pingar
sesso:
Freefall.FreeBSD.org $ pingue
Freefall.FreeBSD.org PING (216.136.204.21): 56 bytes de dados
64 bytes from 216.136.204.21: icmp_seq = 0 ttl = tempo 244 = 496,426 ms
64 bytes from 216.136.204.21: icmp_seq = 1 ttl = tempo 244 = 491,334 ms
64 bytes from 216.136.204.21: icmp_seq = 2 ttl = tempo 244 = 479,077 ms
64 bytes from 216.136.204.21: icmp_seq = 3 ttl = tempo 244 = 473,774 ms
64 bytes from 216.136.204.21: icmp_seq = 4 ttl = tempo 244 = 733,429 ms
64 bytes from 216.136.204.21: icmp_seq = 5 ttl = tempo 244 = 644,726 ms
64 bytes from 216.136.204.21: icmp_seq = 7 ttl = tempo 244 = 490,331 ms
64 bytes from 216.136.204.21: icmp_seq = 8 ttl = 244 time = 839,671 ms
64 bytes from 216.136.204.21: icmp_seq = 9 ttl = tempo 244 = 773,764 ms
64 bytes from 216.136.204.21: icmp_seq = 10 ttl = 244 time = 553,067 ms
64 bytes from 216.136.204.21: icmp_seq = 11 ttl = 244 time = 454,707 ms
64 bytes from 216.136.204.21: icmp_seq = 12 ttl = 244 time = 472,212 ms
64 bytes from 216.136.204.21: icmp_seq = 13 ttl = tempo 244 = 448,322 ms
64 bytes from 216.136.204.21: icmp_seq = 14 ttl = tempo 244 = 441,352 ms
64 bytes from 216.136.204.21: icmp_seq = 15 ttl = 244 time = 455,595 ms
64 bytes from 216.136.204.21: icmp_seq = 16 ttl = tempo 244 = 460,040 ms
64 bytes from 216.136.204.21: icmp_seq = 17 ttl = tempo 244 = 476,943 ms
64 bytes from 216.136.204.21: icmp_seq = 18 ttl = 244 time = 514,615 ms
64 bytes from 216.136.204.21: icmp_seq = 23 ttl = tempo 244 = 538,232 ms
64 bytes from 216.136.204.21: icmp_seq = 24 ttl = tempo 244 = 444,123 ms
64 bytes from 216.136.204.21: icmp_seq = 25 ttl = tempo 244 = 449,075 ms
C
--- 216.136.204.21 estatsticas de ping --27 pacotes transmitidos, 21 pacotes recebidos, 22% de perda de pacotes
round-trip min / avg / max / stddev = 441.352/530.039/839.671/113.674 ms

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.

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

411

Captulo 23: a depurao de rede

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)

Este resultado parece confuso no incio. Vejamos com mais detalhes:

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

No incio de cada mensagem de uma hora, com uma resoluo de 1 s. Estes


vezes so relativamente precisos, voc freqentemente ver diferenas de tempo de menos de 1 ms.
Neste exemplo, as duas ltimas mensagens so 108 s separados. Estes tempos so importantes: a
srie de problemas de rede so problemas de desempenho, e h uma grande diferena na
desempenho entre um lquido, onde uma resposta leva 100 s e na qual uma resposta leva
100 ms.

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

tcpdump

412

Para facilitar as coisas, eu coloquei um nmero de linha em itlico no incio de cada


linha. Ela no aparece no tcpdump impresso.

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.

Linha 2 no uma mensagem de IP de todo. tcpdump mostra os endereos Ethernet e


incio do pacote. Ns no consideramos este tipo de solicitao neste livro.

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.

Linha 8 a resposta de ARP freebie a presto dando o seu endereo Ethernet.

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.

A perda de pacotes revisitado


Voltando ao nosso problema de perda de pacotes, o exemplo a seguir mostra o resultado da
comunicao em uma menos-que-perfeito ssh ligao a hub.FreeBSD.org, especificamente
entre a porta 1019 em freebie e a porta 22, o ssh porta, em hub. Para tornar as coisas mais
legvel, os nomes foram truncadas aos freebie e hub. Na sada da vida real, eles
seria relatado como freebie.example.org e hub.FreeBSD.org. Alm disso, o tcpdump
relata um tos (Tipo de servio) de campo, o qual tambm foi removido. Ele no nos interessa
aqui.
# Tcpdump-i ppp0 hub.freebsd.org anfitrio
14:16:35.990506 freebie.1019> hub.22:
P 20:40 (20) 77 ack
14:16:36.552149 hub.22> freebie.1019:
P 77:97 (20) ack 40
14:16:36.722290 freebie.1019> hub.22:
. ack 97 win 17520
14:16:39.344229 freebie.1019> hub.22:
P 40:60 (20) ack 97
14:16:41.321850 freebie.1019> hub.22:
P 40:60 (20) ack 97

ganhar 17520
ganhar 17520
(DF)
ganhar 17520
ganhar 17520

(DF)
(DF)
(DF)
(DF)

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

413

Captulo 23: a depurao de rede

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

60:80 (20) ack 117 win 17520 (DF)


80:100 (20) ack 117 win 17520 (DF)
100:120 (20) ack 117 win 17520 (DF)
137:157 (20) ack 100 win 17520 (DF)

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

win 17520 (DF)


(20) ack 117 win 17520 (DF)
win 17520 (DF)
(100) ack 160 win 17520 (DF)

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:

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

tcpdump

414

14:16:55.251358 freebie.1019> hub.22:. ack 217 win 17420 (DF)


14:16:56.690779 hub.login> freebie.1015:. ack 3255467530 win 17520
14:16:56.690941 freebie.1015> hub.login:. ack 1 win 17520 (DF)

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.

Camadas de transporte e aplicao


Se voc chegou at aqui, as chances so de que as coisas agora vai funcionar. Problemas no transporte
camada so raros. Sobre as nicas coisas que ainda podem causar problemas so o indivduo
aplicaes. Ns vamos olhar para alguns deles nos captulos pertinentes.
Um problema particular o Domain Name Service. Esta uma parte integrante da
Protocolos de Internet que as pessoas tendem a esquecer que ele realmente um aplicativo. Se voc receber uma
tempo limite de acesso a uma URL da web, por exemplo, h uma boa chance de que o DNS est causando
o problema. D uma olhada em Captulo 21, O Domain Name Service, para algumas idias.

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:

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

415

Captulo 23: a depurao de rede

Figura 23-1: Exibio etreo


A tela dividida em trs janelas:

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.

A janela inferior mostra os dados brutos como hexadecimal e ASCII.

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.

netdebug.mm, v v4.15 (2003/04/02 03:23:15)

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.

A World Wide Web


Para a grande maioria do pblico, da Internet e da World Wide Web so os mesmos
coisa. FreeBSD um candidato importante nesta rea. Alguns dos maiores web do mundo
sites, incluindo o Yahoo! (http://www.yahoo.com/) Administrado FreeBSD. At a Microsoft corre
FreeBSD em seu servio Hotmail (http://www.hotmail.com/), embora eles tm freqentemente
negou, e por razes de imagem que eles esto se movendo para o seu prprio software.

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

Captulo 24: o acesso rede bsica: clientes

no Captulo 6.

konqueror est includo com o porta KDE.


pera um novo navegador que algumas pessoas gostam. A verso na coleo de ports
livre, mas torna-se para ele, dando-lhe ainda mais anncios do que a web
pginas dar-lhe de qualquer maneira. Voc pode comprar uma verso que no exibe a anunciarmentos.
lince um navegador web para as pessoas que no usam X. Ele exibe apenas o texto.

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.

A solicitao de senha para a mesma senha que voc veria localmente. O


formato ligeiramente diferente esclarecer exatamente qual a senha que voc deve entrar.
Mais uma vez, uma srie de faanhas so possveis onde voc pode encontrar-se dando um
senha para um intruso, por isso essa cautela se justifica.

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.

Acesso sem senha


O envio de senhas atravs da Net, mesmo se eles so criptografados, no uma garantia completa
que ningum mais pode entrar em: h uma srie de maneiras de fora bruta para quebrar uma mensagem criptografada
senha. Para resolver esse problema, ssh tem um mtodo de acesso que no exige
senhas: em vez disso, usa uma tcnica chamada A criptografia de chave pblica. Voc tem duas
chaves, uma das quais voc pode dar livremente, e outra de que voc guarda com cuidado.
Voc pode criptografar ou descriptografar com qualquer chave: dados criptografados com a chave pblica pode ser
decifrada com a chave privada, e os dados criptografados com a chave privada pode ser decifrada
com a chave pblica.
Depois de ter essas teclas no lugar, voc pode usar o desafio-resposta mtodo para
autenticao. Para iniciar uma ssh ligao, ssh envia sua chave pblica para o sshd
processar no sistema remoto. O sistema remoto j deve ter uma cpia desta chave.
Ele usa-lo para criptografar um texto aleatrio, uma desafio, que ele envia de volta para o sistema. O
ssh processo em seu sistema decifra-lo com sua chave privada, que no armazenada
em qualquer outro lugar, e envia a chave descodificada de volta para o controle remoto sshd. Apenas o seu sistema
pode decodificar o desafio, por isso esta uma prova para o controle remoto sshd que realmente voc.
netclient.mm, v v4.12 (2003/04/02 03:42:50)

419

Captulo 24: o acesso rede bsica: clientes

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)

Criao e distribuio de chaves


Voc pode criar teclas com o programa ssh-keygen. Aqui est um exemplo de gerao de todos os trs
chaves:
$ Ssh-keygen-t rsa1
Gerando par pblico / privado chave rsa1.
Digite o arquivo no qual deseja salvar a chave (/ home / grog / .ssh / identity): (ENTER pressionado)
Enter passphrase (empty sem senha): (Sem eco)
Digite mesma senha novamente:
(Sem eco)
Sua identificao foi conservada em / home / grog / .ssh / identity.
Sua chave pblica foi gravada em / home / grog / .ssh / identity.pub.
A impresso digital da chave :
02:20:01 d: 50:78: c5: 7c: 56:7 b: 1d: e3: 54:02:2 c: 99:76 grog@bumble.example.org
$ Ssh-keygen-t rsa
Gerando par pblico / privado de chaves RSA.
Digite o arquivo no qual deseja salvar a chave (/ home / grog / .ssh / id_rsa): (ENTER pressionado)
Enter passphrase (empty sem senha):
(Sem eco)
Digite mesma senha novamente:
(Sem eco)
Sua identificao foi conservada em / home / grog / .ssh / id_rsa.
Sua chave pblica foi gravada em / home / grog / .ssh / id_rsa.pub.
A impresso digital da chave :
95: D5: 01: ca: 90:04:7 d: 84: f6: 00:32:07 um: ea: a6: 57:2 d grog@bumble.example.org
$ Ssh-keygen-t dsa
Gerando um par de chaves DSA pblico / privado.
Digite o arquivo no qual deseja salvar a chave (/ home / grog / .ssh / id_dsa): (ENTER pressionado)
Enter passphrase (empty sem senha):
(Sem eco)
Digite mesma senha novamente:
(Sem eco)
Sua identificao foi conservada em / home / grog / .ssh / id_dsa.
Sua chave pblica foi gravada em / home / grog / .ssh / id_dsa.pub.
A impresso digital da chave :
53:53: af: 22:87:07:10: e4: 5a: 2c: 21:31: ec: 29:1 c: 5F grog@bumble.example.org

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)

Acesso sem senha

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

No original, cada tecla est em uma nica linha.


Obviamente, voc no quer que ningum mexer com o seu authorized_keys arquivos, de modo ssh
requer que os arquivos pertencem a voc e so apenas gravvel por voc. Estes dois ficheiros
geralmente contm vrias chaves, para adicionar um novo, basta anex-lo ao final do arquivo. Para
exemplo, se voc receber uma nova chave e armazen-lo no arquivo newkey, copi-lo assim:
$ Cat newkey >> ~ / .ssh / authorized_keys

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.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

421

Captulo 24: o acesso rede bsica: clientes

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

tty> / dev / null


ssh-add-l> / dev / null
if [$? -Ne 0], ento
eval 'ssh-agent'
fi

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.

Configurando o X para usar ssh


Se voc trabalha com X, voc tem a oportunidade de comear um grande nmero de concorrentes ssh
sesses. Seria chato ter que inserir as chaves para cada sesso, ento h uma
mtodo alternativo: comece com um X ssh-agent, e vai passar a informao a qualquer
xterms que comea. Adicione os seguintes comandos para sua xinitrc.:
eval 'ssh-agent'
ssh-add </ dev / null

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.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

Acesso sem senha

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

Captulo 24: o acesso rede bsica: clientes

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

O nome deve ser em forma totalmente qualificado: ssh no entende o atalho ~ / a


representar o seu diretrio home. Voc no precisa criar . ~ / Xauthority, no entanto: ssh lata
fazer isso por voc.
Uma vez que voc tem isso no lugar, voc pode configurar X tunelamento de duas maneiras diferentes. Para inici-lo
a partir da linha de comando, digite algo como:
$ Ssh-X-f website xterm

Como antes, o -F opo diz ssh ir para o fundo. O -X opo especifica X


tunelamento, e ssh executa um xterm na mquina local. O EXIBIO ambiente
varivel aponta para a (remota) host local:
$ Echo $ DISPLAY
localhost: 13.1

Outras utilizaes de tneis


Tunelamento tem muitos outros usos. Outro interessante colmatar redes. Para
exemplo, http://unix.za.net/gateway/documentation/networking/vpn/fbsd.html descreve
como configurar uma VPN (Virtual Private Network) utilizando usurio PPP e uma ssh tnel.

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.

A entrada Hospedeiro especial: as opes que se seguem, at ao final do processo ou o prximo


seguido Hospedeiro argumento, dizem apenas respeito s mquinas que combinam com os argumentos sobre a
Hospedeiro
linha.
Opcionalmente, ssh pode comprimir os fluxos de dados. Isso pode salvar uma grande quantidade de trfego, mas
tambm pode aumentar o uso da CPU, ento por padro ele est desativado. Voc pode fazer isso passando
o -C bandeira para ssh, mas voc tambm pode faz-lo atravs da criao Compression yes no
arquivo de configurao.
Voc pode escapar a partir de uma ssh sesso para emitir comandos para ssh com a
EscapeChar. Por padro, ele o til personagem, ~. Outros programas, notadamente rlogin,
usar esse personagem to bem, ento voc pode querer mud-lo. Voc pode definir esse valor de
o ssh linha de comando com o -E opo.
Para encaminhar uma conexo X11, como mostrado acima, voc pode tambm definir o ForwardX11
varivel Sim. Isto pode ser til se voc costuma acessar uma mquina remota e
requerem encaminhamento X. Isto tambm define o EXIBIO varivel ao ambiente correctamente
passar por cima de um canal seguro.
Por padro, o ssh envia mensagens peridicas para o controle remoto sshd servidor para verificar se o
sistema remoto tem ido para baixo. Isso pode causar conexes para ser descartado em um esquisito
ligao. Defina o KeepAlive opo no para desativar esse comportamento.
Use o LocalForward parmetro para configurar um tnel. A sintaxe semelhante ao do
o -L opo acima: em andante, em vez da linha de comando:
$ Ssh-L 4096: presto.example.org: 80 presto.example.org

voc deve colocar o seguinte em seu ~ / .ssh / Config:


presto.example.org anfitrio
LocalForward 4096 presto.example.org: 80

Note-se que a primeira porta separado dos outros dois parmetros por um espao, e no um
clon.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

425

Captulo 24: o acesso rede bsica: clientes

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

voc deve colocar o seguinte em seu ~ / .ssh / Config:


andante.example.org anfitrio
RemoteForward 4096 presto.example.org: 80

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.

Normalmente ssh se conecta ao servidor na porta 22 (ssh). Se o servidor remoto utiliza um


porta diferente, especifique-o com o Porto palavra-chave. Voc tambm pode usar o -P opo
o ssh linha de comando.

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

Isto no impede que os avisos, mas ssh continua:


@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @
@ ATENO: identificao de hosts remotos MUDOU!
@
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @
possvel que algum est fazendo algo DESAGRADVEL!
Algum poderia estar espionando voc agora (man-in-the-middle)!
tambm possvel que a tecla de hospedeiro DSA apenas foi alterada.
A impresso digital para a chave DSA enviado pelo host remoto
95:80:4 c: fb: cc: 96:1 b: 36: C5: C9: 2b: cb: d1: d4: 16:68.
Por favor, contate o administrador do sistema.
Adicionar chave de host correto em / home/grog/.ssh/known_hosts2 para se livrar desta mensagem.
Ofender-chave na / home/grog/.ssh/known_hosts2: 39

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

netclient.mm, v v4.12 (2003/04/02 03:42:50)

Configurando o ssh

426

Resumo dos arquivos em ~ /. Ssh


Alm dos arquivos que discutimos, voc vai encontrar dois outros arquivos no ~ /. Ssh
diretrio:

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.

de origem_aleatria uma semente utilizada para gerar as chaves.

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

grog 1705 26 de outubro de 1999 authorized_keys


grogue 844 27 de janeiro 22:18 authorized_keys2
grogue
25 20 de outubro ambiente 01:35
grogue 736 19 de julho 15:40 id_dsa
grogue 611 19 de julho 15:40 id_dsa.pub
grogue 951 19 de julho 15:40 id_rsa
grogue 231 19 de julho 15:40 id_rsa.pub
grogue 536 19 de julho de identidade 15:39
grogue 340 19 de julho 15:39 identity.pub
grog 1000 25 de julho de 1999 known_hosts
grogue 512 25 de julho de 1999 origem_aleatria

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.

Conexes ssh para soluo de problemas


Um nmero surpreendente de coisas podem dar errado com a criao de ssh conexes. Aqui esto
alguns dos mais comuns:

Depois de algum atraso, voc recebe a mensagem:


ssh: conectar-se a abordar 223.147.37.76 porta 22: A operao excedeu o tempo limite

Isso provavelmente significa que o host remoto est para baixo, ou que voc no pode alcan-lo, devido
problemas de rede.

Voc fica com a mensagem:


ssh: conectar-se a abordar 223.147.37.65 porta 22: Conexo recusada

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

Captulo 24: o acesso rede bsica: clientes

Isso significa que voc no tenha executado ssh-agent. Faa assim:


$ Eval 'ssh-agent'
Agente pid 95180
$ Ssh-add-l
O agente no tem identidades.
$ Ssh-add
Enter passphrase for / home / grog / .ssh / id_rsa: sem eco
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@freebie.lemis.com)
$ 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)

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.

Voc recebe uma mensagem como esta:


@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @
@ ATENO: identificao de hosts remotos MUDOU!
@
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @
possvel que algum est fazendo algo DESAGRADVEL!
Algum poderia estar espionando voc agora (man-in-the-middle)!
tambm possvel que a tecla de hospedeiro DSA apenas foi alterada.
A impresso digital para a chave DSA enviado pelo host remoto
95:80:4 c: fb: cc: 96:1 b: 36: C5: C9: 2b: cb: d1: d4: 16:68.
Por favor, contate o administrador do sistema.
Adicionar chave de host correto em / home/grog/.ssh/known_hosts2 para se livrar desta mensagem.
Ofender-chave na / home/grog/.ssh/known_hosts2: 39

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)

Conexes ssh para soluo de problemas

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.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

429

Captulo 24: o acesso rede bsica: clientes

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.

Usando telnet para outros servios


A maneira como ns usamos telnet At o momento, ele se conecta porta padro, telnet (Nmero 23,
como voc pode ver no arquivo / Etc / services). Esta no a nica possibilidade, porm: voc pode
dizer telnet qual a porta para se conectar. No captulo Captulo 27, Correio eletrnico: servidores,
vamos ver como se comunicar com sendmail utilizao telnet na porta smtp pgina 500, e
como se comunicar com POP na porta pop, pgina 502. Existem muitas outras utilizaes.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

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.

Use o -R opo para copiar recursivamente diretrios.

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

Captulo 24: o acesso rede bsica: clientes

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.

H uma srie de coisas a notar sobre esta transferncia:

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.

A linha de **** uma indicao do progresso da transferncia. especfico para BSD;


outro ftp clientes no mostrar nada aqui.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

ftp

432

Especificando nomes de arquivos como URIs


Esta transmisso bastante tpico, e a maneira tradicional de fazer isso. FreeBSD tem
outro mtodo, no entanto, que pode ser de uso: em vez de uma abordagem interativa, voc pode
especifique o nome do arquivo como um URI, e voc pode usar ftp baixar documentos HTTP a partir de um
servidor web. Por exemplo, a ltima transferncia pode ser simplificado para:
$ Ftp ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/xtset-1.0.tar.gz
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 visitantes de login ok, aplicar restries de acesso.
Tipo de sistema remoto UNIX.
Usando modo binrio para transferir arquivos.
200 Tipo definido para I.
250 comando CWD bem sucedida.
250 comando CWD bem sucedida.
250 comando CWD bem sucedida.
250 comando CWD bem sucedida.
Local: remoto xtset-1.0.tar.gz: xtset-1.0.tar.gz
229 Entering Passive Mode Extended (| | | 59779 |)
150 Opening BINARY conexo de dados para o modo 'xtset-1.0.tar.gz' (4239 bytes).
100% | ************************************* | 4239 5.82 KB / s 00:00
226 Transferncia concluda.
4239 bytes recebidos em 00:00 (5,81 kb / s)
221 Adeus.

Note-se que este mtodo implica annimo ftp:you no tm para entrar


Da mesma forma, voc pode baixar uma pgina web como esta:
$ Ftp http://www.FreeBSD.org/index.html
Solicitando http://www.FreeBSD.org/index.html
100% | ************************************* | 26493
12.20 KB / s
26.493 bytes recuperados em 00:02 (12.17 KB / s)

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.

Outros comandos de ftp


ftp tem cerca de sessenta comandos, alguns dos quais podem ser de uso. Veremos mais
comandos teis nas seguintes sees.

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>

Captulo 24: o acesso rede bsica: clientes


117 1001
76271
117 1001
8047
117 1001 5994 481
117 1001
10753
117 1001
14726
117 1001 5955 006
117 1001 5997 896
completar.

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

Em outras palavras, voc tem a opo de transferncia de 6 MB de software em gcc-2.5.8.tar.gz


ou sete arquivos de patch incremental com um total de menos de 250 kB. Por outro lado,
copiar os diffs requer a digitao de todos estes, nomes de arquivos longos complicadas, ento voc pode
decidir que mais fcil apenas para duplicar toda a 6 MB.
Existe uma maneira mais fcil: mget (Mltipla obter) duplica arquivos correspondentes a um wild card. Voc
poderia realizar a transferncia completa com:
ftp> mget gcc-2 * diff.gz
mget gcc-2.5.0-2.5.2.diff.gz? y
200 comando PORT sucesso.
150 Opening BINARY conexo de dados de modo a
gcc-2.5.0-2.5.2.diff.gz (43.667 bytes).
226 Transferncia concluda.
43.667 bytes recebidos em 19 segundos (2,298 Kbytes / s)
mget gcc-2.5.1-2.5.2.diff.gz? n
no precisamos de um presente
mget gcc-2.5.2-2.5.3.diff.gz? y
200 comando PORT sucesso.
150 Opening BINARY conexo de dados de modo a
gcc-2.5.2-2.5.3.diff.gz (78.731 bytes).
226 Transferncia concluda.
78.731 bytes recebidos em 33 segundos (2,835 Kbytes / s)
... etc

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.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

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:

netclient.mm, v v4.12 (2003/04/02 03:42:50)

435

Captulo 24: o acesso rede bsica: clientes

ftp> user 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.

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.

Copiando hierarquias de diretrios


rsync tem um nmero impressionante de opes para sincronizao de diretrios. Considere o
caso em que voc manter pginas da web localmente, mas o seu servidor web principal co-localizados
em outro lugar. Depois de atualizar as pginas web locais, voc pode executar um script para atualizar o
pginas remotas com comandos como:
rsync-LHzav - exclude = RCS - exclude = "* ~" ~ grog / public_html / * Site: htdocs / grog
# H coisas aqui que no queremos copiar, por isso no v recursiva.
rsync-LHztpgov - exclude = "* ~" website: htdocs

O primeiro rsync comando sincroniza o diretrio local ~ Grog / public_html ao


diretrio remoto htdocs / grog no sistema website. Ele inclui todos os subdiretrios com
excepo do RCS diretrios. O segundo comando sincroniza o nvel superior
diretrio web somente, e no os subdiretrios, muitos dos quais no devem ser mantidos em
o site remoto. Em cada caso, os arquivos que terminam em ~ so excludos (estes so normalmente Emacs
backup de arquivos) e, no segundo caso, o RCS subdirectrios tambm so excludos. Vamos
olhar mais atentamente para todas as opes:

-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.

-H praticamente o oposto do -L: por padro, rsync no verifica se ele tem


j copiou um arquivo, por isso, se encontra um outro link para ele, ele ir criar um novo arquivo no
mquina remota. -H diz-lhe para manter o controle de ligaes e simplesmente criar um outro link para
qualquer arquivo j copiado na mquina de destino. Isso s pode funcionar se o
dois links foram copiados pela mesma invocao rsync.

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:

-R: copiar subdiretrios de forma recursiva.

-L: criar links simblicos se necessrio. Neste exemplo, ele rejeitado pelo
-L opo.

-D: ns de dispositivos de cpia (apenas para o root).

netclient.mm, v v4.12 (2003/04/02 03:42:50)

437

Captulo 24: o acesso rede bsica: clientes

As outras opes so -P,-t,-g e -O. Ns no queremos copiar subdiretrios no


segundo exemplo, para que indic-las explicitamente. Juntos, eles correspondem aproximadamente a
o -P Opo de alguns outros programas de cpia (preservar).

A opo -P diz rsync para definir as permisses de cpia remota para ser o mesmo que
aqueles do arquivo original.

A opo -T diz rsync para preservar os tempos de modificao do arquivo original no


cpia remota.

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.

Ns j vimos o -V opo: d informaes sobre o que rsync est fazendo.

Ao copiar os diretrios com rsync, relativamente fcil de acabar com os arquivos no


nvel de diretrio errado: ou eles esto no diretrio pai, ou em um subdiretrio do
mesmo nome. Considere o seguinte comando para sincronizar uma pasta de correio para um laptop:
$ Cd / home / grog
$ Rsync-zHLav presto casa :/ / grog / Mail Correio

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.

Usando um servidor rsync


O uso de rsync que temos visto at agora no necessita de um servidor, mas requer um
ssh. rsync tambm oferece um meio diferente de acesso que utiliza um servidor, rsyncd. Este
mtodo destina-se mais para o acesso a sistemas para os quais voc no tem uma senha,
algo como annimo FTP.
Ns vamos olhar para a criao de um rsync servidor na pgina 451. O lado do cliente relativamente simples.
Use duas vrgulas quando se refere ao sistema remoto. Por exemplo, voc pode digitar:
$ Freebie rsync ::
Isto freebie.example.org. Seja gentil.
grogue
tivo

Pginas web de Greg


rea de teste TiVo

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)

Usando um servidor rsync

438

disponvel, juntamente com um comentrio sobre o seu propsito. A documentao chama


mdulos. Como veremos na pgina 451, que correspondem aos diretrios na mquina do servidor,
embora os nomes no precisam ser relacionados.
Para descobrir o que nestes diretrios, voc pode usar o seguinte tipo de comando,
que especifica um mdulo em particular, mas no h destino:
$ Rsync freebie :: grogue
Isto freebie.example.org. Seja gentil.
drwxr-xr-x
-Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r -Rw-r - r Etc ...

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

Para transferir um arquivo, especifique o seu nome e um destino:


$ Rsync-v freebie :: grogue / AOSS-programme.html.
Isto freebie.example.org. Seja gentil.
AOSS-programme.html
escreveu 98 bytes ler 11,744 bytes 23.684,00 bytes / seg
de tamanho total de 11590 acelerao de 0,98

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 ...

O Network File System


O Network File System, ou NFS, a maneira padro para compartilhar arquivos UNIX atravs de uma
rede.
Ns j vimos que os sistemas de arquivos UNIX so acessveis em uma nica rvore, montagem
los em um diretrio especfico. NFS continua essa iluso toda a rede.
Do ponto de vista do usurio, existe uma pequena diferena: voc usa a mesma montar comando,
e realiza o que parece ser a mesma funo. Por exemplo, se o sistema da presto
netclient.mm, v v4.12 (2003/04/02 03:42:50)

439

Captulo 24: o acesso rede bsica: clientes

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.

Montagem de sistemas de arquivos remotos


Como vimos, podemos montar arquivos NFS com a mesma montar comando que usamos para locais
sistemas de arquivos. Esta uma outra iluso: montar apenas um programa front-end que determina
qual o programa para comear. No caso dos sistemas de ficheiros locais, comear mount_ufs, e para
Sistemas de arquivos NFS ele vai comear mount_nfs.
netclient.mm, v v4.12 (2003/04/02 03:42:50)

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

Use NFS Verso


2 protocolo.
Por padro, o
mount_nfs tenta NFS verso 3 do protocolo em primeiro lugar, e
cai de volta para a verso 2, se do outro lado no pode lidar com
Verso 3. No use NFS verso 2, a menos que
precisa.

repetir = num

-Rnum

Repetir at Num vezes antes de abortar um I / O


operao.

-O ro

-O ro

Monte o sistema de arquivos para acesso somente leitura.

-O rw

-O rw

Monte o sistema de arquivos para leitura e gravao de acesso.

-R Num

-R Num

Repetir a operao de montagem at Num vezes. Se voc


ter escolhido montagem macio, falhar operaes de I / O depois
Num tentativas. O valor padro 10.

Continue tentando a montagem no fundo se


ele expira na primeira tentativa. Isto muito
boa idia / Etc / fstab, porque seno o boot
processo de espera at que todas as montagens foram concludos. Se
voc teve apenas uma falha de energia, isso pode causar
impasses de outra forma.

-R tamanho -R tamanho Defina o tamanho do bloco de dados de leitura para tamanho bytes. tamanho

deve ser uma potncia de 2 entre 1024 e 32768.


O valor padro 8192. Use tamanhos de blocos menores
para UDP monta se voc tiver fragmentos'' freqentes
caiu devido s mensagens de'' timeout no cliente.

suave

-S

-T Num

-T Num

tcp

-T

Se as operaes no sistema de arquivos do tempo fora, no se repetir


para sempre. Em vez disso, dar-se aps Tentar novamente tempos de espera. Ver
opo -R.
Time out e repetir uma operao, se isso no acontecer
completo com a num/10 segundos. O padro
valor 10 (1 segundo).
Use TCP em vez de UDP para montagens. Isto mais
confivel, mas um pouco mais lento. Alm disso, nem todos
implementaes de NFS apoio de transporte TCP.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

441

Captulo 24: o acesso rede bsica: clientes

fstab
opo

mount_nfs
opo

Significado

-W tamanho -W tamanho Defina o tamanho do bloco de dados de gravao para tamanho bytes. tamanho

deve ser uma potncia de 2 entre 1024 e 32768.


O valor padro 8192. Use tamanhos de blocos menores
para UDP monta se voc tiver fragmentos'' freqentes
caiu devido s mensagens de'' timeout no servidor.

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.

A operao tpica de montagem poderia ser:


# Mount-o macio presto :/ usr / presto / usr

Onde montar sistemas de arquivos NFS


Voc pode montar um sistema de arquivos NFS em qualquer lugar que voc montar um arquivo local
sistema. Ainda assim, algumas consideraes vai tornar a vida mais fcil. Nesta discusso, vamos supor
que temos um grande nmero de sistemas de arquivos montados em freebie, e ns queremos fazer
los acessveis a presto.

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.

freebie tem um trocador de CD-ROM, e monta os discos em / Cdrom / 1 a / Cdrom / 7.


presto descobre que muito confuso, e monta um deles em / Cdrom.

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

netclient.mm, v v4.12 (2003/04/02 03:42:50)

Avail Capacity Mounted on


960
97% /
44034 96% / usr
243052
72% / src
629192
67% / home
0
100% / proc
0
100% / cdrom / 1

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 presto, que voc pode ver:


# Df
Filesystem 1024-blocks
Usado Capacidade Disponvel Montado em
/ Dev/da0s1a 29727
20593 6756
75% /
/ Dev/da0s1e 1901185
742884 1006207
42% / usr
procfs 4
4 0
100% / proc
freebie :/ 30206
26830 960
97% / freebie
freebie :/ usr 1152422 1016198 44032 96% / brinde / usr
freebie :/ home 2049812 1256638 629190
67% / home
freebie :/ src 931630
614047 243052
72% / src
freebie :/ S 3866510 1437971 2119219
40% / S
freebie :/ cdrom / 1 656406
656406 0
100% / cdrom

Montagem de sistemas de arquivos NFS automaticamente


Se voc deseja montar arquivos NFS automaticamente no momento da inicializao, fazer uma entrada para eles na
arquivo / Etc / fstab. Voc pode at fazer isso se voc no necessariamente quer mont-los: basta adicionar
a palavra-chave noauto, e mountall ir ignor-los no momento da inicializao. A vantagem que
ento voc s precisa especificar, por exemplo,
# Mount / src

em vez de:
# Mount-s freebie :/ src / src

Veja a descrio da / Etc / fstab na pgina 560 para mais informaes.

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

Captulo 24: o acesso rede bsica: clientes

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.

Apenas um sistema de arquivos


NFS exporta sistemas de arquivos, e no hierarquias de diretrios. Considere o exemplo na pgina 441.
presto tem montado tanto freebie :/ e freebie :/ usr. Se fosse apenas para montar freebie :/, ns
veria o diretrio / Brinde / usr, mas seria vazio.
As coisas podem ficar ainda mais estranha: voc pode montar um sistema de arquivo remoto em um diretrio que
no vazio. Considere o seguinte cenrio:

Voc instala no sistema FreeBSD freebie. No modo single-user, antes de montar o


outros sistemas de arquivos, voc pode criar um diretrio / Usr / bin e um arquivo / Usr / bin / vi. Uma vez que o
/ Usr sistema de arquivos no est montado, este arquivo vai para o sistema de arquivos raiz.

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.

netclient.mm, v v4.12 (2003/04/02 03:42:50)

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:

Ns j olhou Servidores X brevemente no Captulo 8, Tomar o controle, e vamos ver


mais em Captulo 28, XFree86 em profundidade.

Captulo 21 discutiu DNS servidores de nomes.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

447

448

Captulo 25: o acesso rede bsica: servidores

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.

Execuo de servidores a partir do inetd


Se voc olhar para / Etc / services, voc vai descobrir que existem mais de 800 servios disponveis, a maioria
que so suportados apenas de um pequeno nmero de mquinas. Nem sempre a melhor idia para
iniciar um daemon para cada servio possvel, voc pode querer oferecer. IP fornece um
alternativa: inetd, o servidor de Internet, s vezes chamado de super-servidor, que atende em
vrias portas. Quando um pedido chega em uma porta especfica, inetd inicia um daemon especfico
para a porta. Por exemplo, o FreeBSD suporta ftp annimo, mas a maioria das pessoas no
receber pedidos suficientes para justificar ter o daemon ftp, ftpd, correndo o tempo todo.
Em vez disso, inetd inicia um ftpd quando uma requisio chega na porta 21.
Na inicializao, inetd l um arquivo de configurao / Etc / inetd.conf para determinar quais portas
monitorar e o que fazer quando uma mensagem vem dentro Aqui est um trecho:
# $ FreeBSD: src / etc / inetd.conf, v 1.58 2002/08/09 17:34:13 gordon Exp $
#
# Banco de dados de configurao do servidor Internet
#
# Ftp stream tcp nowait root / usr / libexec / lukemftpd ftpd-l-r
# Ftp stream tcp nowait root / usr / libexec / ftpd
ftpd-l
# Ftp fluxo tcp6 nowait root / usr / libexec / ftpd
ftpd-l
# Telnet stream tcp nowait root / usr / libexec / telnetd
# Telnet fluxo tcp6 nowait root / usr / libexec / telnetd
# Shell stream tcp
nowait raiz
/ Usr / libexec / rshd rshd
# Shell fluxo tcp6
nowait raiz
/ Usr / libexec / rshd rshd
# Login stream tcp
nowait raiz
/ Usr / libexec / rlogind rlogind
# Login fluxo tcp6
nowait raiz
/ Usr / libexec / rlogind rlogind
# Exec stream tcp nowait root / usr / libexec / rexecd
rexecd
# Shell fluxo tcp6
nowait raiz
/ Usr / libexec / rshd rshd

Este arquivo tem o seguinte formato:

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

netserver.mm, v v4.19 (2003/04/09 20:42:40)

Execuo de servidores a partir do inetd

449

As prximas trs colunas de determinar a natureza da ligao, o protocolo a utilizar,


e se inetd deve esperar que o processo seja concludo antes de ouvir de novo
conexes. No exemplo, todos os servios so TCP, mas existem entradas para tanto
tcp (O protocolo TCP normal para IP verso 4) e tcp6 (O mesmo servio para IP
Verso 6).

A coluna seguinte especifica como o utilizador que a funo deve ser executada.

Todas as colunas restantes so os parmetros a serem passados para o daemon.

A prxima coluna o caminho completo do programa (quase sempre um daemon) para


comeam quando uma mensagem vem dentro Alternativamente, pode ser a palavra-chave interno
que especifica que inetd deve executar a prpria funo.

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"

# Execute o daemon despachante de rede (SIM / NO).

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.

sftp-server o servidor para sftp. Ela iniciada a partir de sshd.

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

/ Usr / local / bin / rsync rsync - daemon

O nome rsync no um erro de digitao. rsync e rsyncd so a mesma coisa, o


- Daemon opo que faz rsync executado como um daemon.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

450

Captulo 25: o acesso rede bsica: servidores

inetd no percebe alteraes / Etc / inetd.conf automaticamente. Depois de modificar o arquivo,


voc deve enviar uma SIGHUP sinal:
# Killall-HUP inetd

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:

Adicione a seguinte linha em / Etc / rc.local:


echo-n 'iniciar daemons locais:'
# Colocar o seu material local aqui
echo "" && ftpd ftpd-D

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

/ Usr / libexec / ftpd

ftpd-l

Ou reiniciar, ou causa inetd reler seu arquivo de configurao:


# Killall -1 inetd

enviar uma SIGHUP

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:

Ele restringe o acesso ao diretrio home do usurio FTP. Do ponto de vista da


usurio remoto, diretrio home do ftp o diretrio raiz, e ele no pode acessar todos os arquivos
fora deste diretrio. Note que isto significa que voc no pode usar links simblicos fora
o ftp diretrio, tambm.
netserver.mm, v v4.19 (2003/04/09 20:42:40)

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

512 fevereiro 28 12:57 bin


512 07 outubro 05:55 recebidas
512 03 de junho 14:03 pub

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

512 03 de junho 14:03 pub

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.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

452

Captulo 25: o acesso rede bsica: servidores

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.

Restringir o acesso e registro


Um certo nmero de ftpd opes de torn-lo mais fcil de controlar e monitorar ftp Acesso:

O -L opo registra cada sesso, se bem sucedido ou no, syslogd com a


facilidade LOG_FTP. Para ativar esse registro, o / Etc / syslog.conf deve conter uma linha
como
ftp. *

/ Var / log / ftpd

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.

Voc pode restringir o acesso a apenas annimo ftp com a -A opo.

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

Esse trecho log mostra trs tipos de mensagem:

As mensagens comeando com o texto conexo ocorrer quando um ftp conexo


feita. Eles no significam que qualquer permisso para acessar foi dado. Estes
mensagens so registradas pelo -L opo.

O ANONYMOUS FTP LOGIN mensagens mostram que algum tenha logado


anonimamente. O nome do seguinte modo, nem sempre no formato nome desejado. O
padro ftpd no cumprir este requisito, voc pode encontrar algo que faz em
a Coleo de Ports. Estas mensagens so registradas pelo -S opo.

As linhas completas de ! marcas mostram arquivos que esto sendo transferidos. O ! marcas de delimitar o
campos, que so:

O ano, como uma extenso do timestamp.

O ID do usurio.

O endereo de IP do sistema para o qual os dados so transferidos.

O nome do arquivo transferido.

O nmero de bytes transferidos.

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

sshd l um arquivo de configurao


/ Etc / ssh / sshd_config. Como sua companheiro
/ Etc / ssh / ssh_config, que contm principalmente comentada linhas que mostram os valores padro.
A maioria deles no necessitam de mudana, mas as seguintes entradas podem ser de interesse:

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.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

454

Captulo 25: o acesso rede bsica: servidores

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

Sftp-server / usr / libexec /

Ele deve estar presente por padro.

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

enviar presto.example.org [192.109.197.74] grogue () barra


enviar presto.example.org [192.109.197.74] grogue () barra
enviar presto.example.org [192.109.197.74] grogue () barra
enviar presto.example.org [192.109.197.74] grogue () slides
enviar presto.example.org [192.109.197.74] grogue () estoque
netserver.mm, v v4.19 (2003/04/09 20:42:40)

rsyncd

455

A prxima parte do arquivo de configurao descreve mdulos, hierarquias de diretrio que


rsyncd torna disponvel. Se voc est acostumado a arquivos de configurao de estilo Microsoft, isso vai
parecem relativamente familiar. Os nomes dos mdulos so colocados entre colchetes ([]), e
eles no tm de ter qualquer relao com o nome do diretrio. Neste caso,
tem dois mdulos. Ambos tm um comentrio, um texto descritivo impresso quando voc listar o
mdulos, e ambos permitem listando o nome do mdulo (list = yes). Alm disso:

Mdulo grogue disponibiliza o diretrio / Home / grog / public_html, meu web


pginas, para acesso somente leitura. rsyncd acessa o mdulo como usurio grog. Qualquer host em
o endereo do bloco 256 comeando com 223.147.37.0 pode acessar os dados.

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.

Configurando um servidor web


FreeBSD um sistema de escolha para a execuo de servidores web, de modo que no surpreendente que um grande
nmero esto disponveis. Provavelmente o mais popular Apache, que est disponvel no
Portas de cobrana. Instale com:
# Cd / usr/ports/www/apache13
# Make install

Em futuras verses, o nome apache13 mudar. Apache vem com um monte de


documentao em formato HTML (de campo), que instalado na / Usr/local / share / doc / apache / manual. Voc pode achar que til para colocar um link simblico para ele em
seu diretrio web:
# Cd / usr / local / www / data
# Ln-s / usr / local / share / doc / apache / manual apachedoc

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.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

456

Captulo 25: o acesso rede bsica: servidores

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.

Scripts CGI so armazenados em / Usr / local / www / cgi-bin.

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.

ServerType estados se voc inici-lo a partir de inetd ou autnomo (o padro).


no uma boa idia para comear httpd de inetd, ento voc deve deixar essa entrada inalterado.

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.

A extenso Mant-Vivo a HTTP, como definido pela HTTP/1.1 projecto, permite


conexes persistentes. Estas sesses HTTP de longa durao permitem que vrios pedidos para ser
enviado sobre a mesma ligao TCP e, em alguns casos, tm sido mostrados para provocar
uma acelerao de quase 50% nos tempos de latncia para documentos HTML, com muitas imagens.

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.

O parmetro ProxyRequests Apache permite funcionar como um servidor proxy. Vamos


olha para isto com mais detalhe abaixo.
netserver.mm, v v4.19 (2003/04/09 20:42:40)

Configurando um servidor web

457

Os parmetros iniciais com Esconderijo aplicam-se somente a servidores proxy, ento vamos olhar para
bem como os abaixo.

O Ouvir parmetro define portas alternativas em que Apache escuta.


DirectoryIndex uma lista de nomes que httpd reconhece como a pgina principal
('' ndice'') no diretrio. Tradicionalmente index.html. Este o meio pelo qual
httpd muda um nome de diretrio em um ndice. Ele procura os nomes, na ordem
especificada. Por exemplo, se voc estiver usando PHP, DirectoryIndex fica definido para a cadeia
index.php3 index.php index.html, e essa a seqncia em que parece
para uma pgina.

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.

ServerAdmin o ID do administrador do sistema e-mail. Para o servidor principal, que definido


a you@your.address, o que obviamente precisa ser mudado. Voc no necessariamente
precisa de um ServerAdmin para cada domnio virtual, que depende de como voc executar o
sistema.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

458

Captulo 25: o acesso rede bsica: servidores

DocumentRoot o nome do diretrio que ser a raiz da web


hierarquia da pgina que o servidor oferece. Por padro, para o servidor principal
/ Usr / local / www / dados, o que no realmente um lugar muito bom para os dados que as mudanas
com freqncia. Voc pode preferir mudar isso para / Var / www, como algumas distribuies Linux
fazer. Este um parmetro que voc deve fornecer para cada domnio virtual, caso contrrio
o domnio que tm o mesmo contedo que o servidor principal. Neste caso, o
localizao dos arquivos http://www.example.com/.

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>

Neste caso, temos duas opes adicionais:

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.

MultiViews permite Multiviews baseados em contedo, o que ns no discutimos aqui.

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.

Normalmente, voc deve definir ServerName. Por exemplo, a www.example.org um CNAME


para freebie.example.org (Ver pgina 370), e se voc no definir este valor, os clientes
acessar www.example.org, mas o servidor ir retornar o nome freebie.example.org.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

Configurando um servidor web

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.

A directiva Opes + SymLinksIfOwnerMatch limites seguintes links simblicos


para os links que pertencem ao mesmo proprietrio do link. Normalmente, o Opes
diretiva especifica todas as opes: no mesclar as opes padro. O + assinar
indica que a opo especificada deve ser adicionado para os padres.

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 ).

Log File Format


httpd registros de acessos e os erros nos arquivos que voc especificar. importante compreender o que
dentro deles. O exemplo a seguir mostra cinco entradas do registro. Normalmente, cada entrada tudo sobre
uma linha de tempo muito longo.
p50859b17.dip.t-dialin.net [01/Nov/2002: 07:06:12 1030]
"GET / Images / yaoipower.jpeg HTTP/1.1"
200
19365

nome do sistema, mais


data de acesso
Comando HTML
status (OK)
comprimento da transferncia de dados

aceproxy3.acenet.net.au [01/Nov/2002: 07:35:34 1030]


"GET / Images / randomgal.big.jpeg HTTP/1.0"
304 -

status (em cache)

218.24.24.27 [01/Nov/2002: 07:39:55 1030]


"GET / scripts / root.exe? / C + dir HTTP/1.0"
404 284

sistema sem DNS reverso


procurando um arquivo invlido
status (no encontrado)

218.24.24.27 [01/Nov/2002: 07:39:56 1030]


"GET / MSADC / root.exe? / C + dir HTTP/1.0" 404 282
218.24.24.27 [01/Nov/2002: 07:39:56 1030]
"GET / c/winnt/system32/cmd.exe? / C + dir HTTP/1.0" 404 292
218.24.24.27 [01/Nov/2002: 07:40:00 1030]
"GET / _vti_bin / ..% 255c .. / ..% 255c .. / ..% 255c../winnt/system32/cmd.exe? / C + dir HTTP/1.0"
404 323

netserver.mm, v v4.19 (2003/04/09 20:42:40)

460

Captulo 25: o acesso rede bsica: servidores

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:

netserver.mm, v v4.19 (2003/04/09 20:42:40)

Configurando um servidor web

461

Para isso, adicione algo assim para o seu . Htaccess arquivo:


AuthType Bsico
Grog AuthName
AuthDBUserFile / usr / local / etc / apache / passwd
Require valid-user

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

Isso adiciona senhas de usurios grogue e convidado. O AuthName sugere um nome


autenticar, mas Require valid-user afirma que ele pode ser qualquer usurio. Mesmo se voc no fizer isso
importa qual o usurio faz login, voc precisa especificar um AuthName linha. Se voc fazer insistem em que s
usurio grogue pode logar, voc pode escrever:
Exigir grog usurio

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

/ Usr / local / etc / apache / grupo poderia, ento, conter:


bigshots: davidb davidp gordon grog liz malcolm

Isso permitir que qualquer um dos usurios especificados nesta linha para acessar o diretrio.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

462

Captulo 25: o acesso rede bsica: servidores

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.

Servidores web proxy


Apache capaz de funcionar como um servidor proxy: pode aceitar solicitaes de pginas da Web de
outros sistemas. Isto pode ser uma alternativa a um pacote geral de IP, tal como o aliasing natd
(Ver pgina 393) se voc precisar dele apenas para acesso web. tambm til em conjuno com
cache.
Infelizmente, por padro, a verso atual do Apache no suporta servidores proxy.
Voc precisa reconstruir o pacote manualmente depois de ativar-lo no arquivo de configurao. Ver
o arquivo INSTALAR no diretrio de compilao porta para mais detalhes. Este arquivo estar presente
depois de
Apache a partir da fonte, e ter
um nome como
construir
/ Usr/ports/www/apache13/work/apache_1.3.23/src/INSTALL. Alm reinstalar
o servidor com cdigo para servir de proxy, voc deve definir ProxyRequests a Em , para permitir o
servidor proxy.

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

A diferena entre um normal e um gracioso'''' reiniciar que o reincio graciosas espera


para as conexes existentes para completar antes de reiniciar os processos individuais do servidor.
A menos que voc est com muita pressa, utilize o reincio graciosas.
netserver.mm, v v4.19 (2003/04/09 20:42:40)

Configurando um servidor web

463

Servidor NFS
necessria uma srie de processos para fornecer a funcionalidade do servidor NFS:

O NFS daemon, nfsd, o servidor NFS bsico.

O mount daemon, mountd, os processos de montar as solicitaes dos clientes.

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.

O status de monitoramento daemon, rpc.statd, fornece um servio de monitoramento de status.

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 -MAPROOT opo descreve como tratar root. Por padro, a raiz no tm


privilgios especiais no sistema remoto. Em vez disso, NFS muda o ID de usurio para usurio
ningum, que usurio 65534 (ou -2). Voc pode mudar isso com o MAPROOT opo.
Por exemplo, para mapear raiz ao real raiz usurio para um sistema de arquivo especfico, voc faria
adicionar -MAPROOT = 0 para a linha que descreve o sistema de arquivo.

O -Mapall opo mapeia os IDs de usurio de outros usurios. Isso relativamente incomum.
Veja a pgina de manual exportaes (5) para mais detalhes.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

464

Captulo 25: o acesso rede bsica: servidores

O -Ro opo restringe o acesso a somente leitura.

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.

O -Rede opo restringe o acesso aos sistemas da rede especificada.

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

Um tpico / Etc / exportaes para presto poderia ser:


/
/ Usr

-MAPROOT = 0
-MAPROOT = 0
-Alldirs

Presto bumble esperar gw


-Rede 223.147.37.0

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.

nmbd, que fornece servios de nome de NetBIOS.

smbpasswd, o que configura senhas de rede de Samba.

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.

testparm, que testa a Samba arquivo de configurao, smb.conf.


smbstatus diz-lhe que est usando o smbd daemon.

Instalando o software Samba


Instalar Samba da porta:
# Cd / usr / ports / net / samba
# Make install

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.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

466

Captulo 25: o acesso rede bsica: servidores

smbd e nmbd: os daemons do Samba


O principal componente do Samba smbd, o daemon SMB. Alm disso, necessrio o
Samba nome daemon, nmbd, que fornece servios de nome NetBIOS para o Samba. smbd
requer um arquivo de configurao, que veremos a seguir, ao mesmo tempo que voc normalmente no precisa
um para nmbd. Por padro, o nmbd nomes de host mapas DNS (sem a parte do domnio) para
Nomes NetBIOS, embora possa desempenhar outras funes, se voc precisar deles. Neste captulo
vamos supor que o comportamento padro. Veja a pgina de manual nmbd (8) para outras possibilidades.
Voc tem duas opes de como executar smbd e nmbd : Voc pode inici-los no momento da inicializao
de / Usr / local / etc / rc.d / samba.sh, ou voc pode deixar o inetd inici-los. A equipe Samba
recomenda inici-los no momento da inicializao
Quando voc instala o Samba a partir da coleo de ports, ele instala um arquivo / Usr/local / etc / rc.d / samba.sh.sample. Voc s precisa renome-lo para / usr / local / etc / rc.d / samba.sh.
Como o nome sugere, um script shell. Voc pode modific-lo, se necessrio, mas geralmente
no necessrio.
A pgina man smbd d um certo nmero de parmetros para especificar o ficheiro de configurao
eo arquivo de log. Enquanto voc ficar com os nomes de arquivos especficos, voc no precisa
mudar alguma coisa: por padro, smbd procura o arquivo de configurao em / Usr/local / etc / smb.conf, e este arquivo contm os nomes dos outros arquivos.
Executando os daemons do inetd
Para executar os daemons de inetd,

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

/ Usr / local / sbin / smbd


/ Usr / local / sbin / nmbd
/ Usr / local / sbin / swat

smbd
nmbd
golpe

golpe uma ferramenta de administrao que ns no discutimos aqui.

Ou reiniciar, ou enviar um sinal HUP para causar inetd reler seu arquivo de configurao:
# Killall -1 inetd

enviar uma SIGHUP

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

opes de socket dificilmente mencionado na documentao, mas muito importante:


muitas implementaes Microsoft de TCP / IP so ineficientes e estabelecer uma nova TCP
conexo com mais freqncia do que o necessrio. Selecione as opes de socket TCP_NODELAY e
IPTOS_LOWDELAY, o que pode acelerar o tempo de resposta de tais aplicaes por
mais de 95%.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

468

Captulo 25: o acesso rede bsica: servidores

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

Note-se a impresso na opo [Printers] seco: esta a opo que


distingue entre impressoras ('' sim'') e compartilhamentos de arquivos ('' no'').
Outras sees: descries de servios
Samba toma qualquer nome da seo, exceto para [Global], [homes] ou [Printers] como
definio de servio. Um exemplo tpico pode ser:
[Ftp]
comment = rea de arquivos do servidor ftp
path = / var / spool / ftp / pub
ler apenas = yes
public = yes
Lista de escrever = grog

Esta entrada define o acesso ao annimo ftp seco. Qualquer um pode l-lo, mas apenas
usurio grogue pode escrever para ele.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

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.

como habitual, sem eco

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.

netserver.mm, v v4.19 (2003/04/09 20:42:40)

470

Captulo 25: o acesso rede bsica: servidores

$ Smbclient-L freebie-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]
Nomepartilha
--------casas
ftp
grogue
IPC $
ADMIN $

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.

Exibindo status de Samba


Voc pode exibir o status das conexes de samba com smbstatus. Por exemplo, a
$ Smbstatus
Samba verso 2.2.7a
Servio uid
gid pid
mquina
------------------------------------------ftp grog
exemplo 37390
freebie (223.147.37.1) Seg 31 maro 2003 13:48:13
No h arquivos bloqueados

netserver.mm, v v4.19 (2003/04/09 20:42:40)

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.

A parte do servidor o Mail Transfer Agent ou MTA. Como o nome sugere,


responsvel pela movimentao e-mail de um sistema para outro. Ns vamos olhar para MTAs no
prximo captulo, Captulo 27, Correio eletrnico: servidores.

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.

mua.mm, v v4.12 (2003/04/02 04:07:59)

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.

Agentes de usurio de email


A Mail User Agent um programa que faz a interface entre o usurio eo sistema de correio. Ele
permite que o usurio leia, avanar e responder a e-mails recebidos e enviar seu prprio e-mail.
Alm disso, ele normalmente tem facilidades para a criao e manuteno pastas, onde voc pode
manter mensagens de correio recebidas. Para a maioria dos MUAs UNIX, a pasta a mesma coisa que um arquivo,
mas alguns MUAs, que no vamos discutir aqui, manter mensagens de correio como arquivos individuais,
ea pasta corresponde a um diretrio.

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

Captulo 26: Correio eletrnico: clientes

Longjob $ 2> & 1 | Email me

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.

pinho no elm-que o que a sigla significa. bem como elm, no entanto.


vira-lata tambm semelhante olmo e pinho. o meu favorito atual, e vamos olhar para isso em
na prxima seo.

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.

Sylpheed um mais recente mailer X-based. Voc pode preferir a xfmail.

Arquivos, pastas ou diretrios?


H duas escolas de pensamento sobre como armazen-mail:

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.

vira-lata pode usar qualquer mtodo, mas o padro o mtodo mbox.

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)

Arquivos, pastas ou diretrios?

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.

Figura 26-1: menu principal vira-lata


vira-lata conjuntos reverter vdeo por padro. Voc pode alterar a forma como ele exibe as coisas, no entanto.
Na pgina 479, vamos ver como mudar isso com o estilo mostrado no mostrado na Figura 26-2.
Esta exposio mostra uma srie de coisas:

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.

A linha inferior d um breve resumo dos comandos mais comuns. Cada


comando um nico personagem. Voc no precisa pressionar Entrar para executar o
de comando.

O resto da tela contm informaes sobre as mensagens na pasta. O primeiro


coluna d a mensagem de um nmero, em seguida, vm algumas bandeiras:

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

Captulo 26: Correio eletrnico: clientes

Figura 26-2: menu principal vira-lata

Na mesma coluna, N sinaliza uma novo mensagem (uma mensagem no lida que tem
chegou aps a ltima invocao de vira-lata acabado).

O smbolo D significa que a mensagem foi marcado para excluso. No ser


excludo at que voc deixar vira-lata ou atualizar a tela com o $ comando, e at
ento voc poder recuper-lo com a u comando

O smbolo + significa que a mensagem dirigida a mim, e s para mim. Vamos


veja abaixo como vira-lata decide quem eu sou.

O smbolo T significa que a mensagem dirigida a mim e outras pessoas.

O smbolo F significa que a mensagem de mim.

O smbolo C significa que a mensagem dirigida a outras pessoas, e que eu


foram copiados.
O smbolo * significa que a mensagem est marcado : Certas operaes de trabalhar em todas
mensagens marcadas. Veremos que na pgina 478.

A coluna seguinte a data (na notao internacional no presente exemplo, mas que pode ser
alterado).

A coluna seguinte o nome do remetente, ou, se eu sou o emissor, o nome do


destinatrio.

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.

A coluna seguinte apresenta o tamanho da mensagem. O formato varivel: voc pode


especificar o nmero de linhas (como no exemplo), ou o tamanho de kilobytes.

mua.mm, v v4.12 (2003/04/02 04:07:59)

Arquivos, pastas ou diretrios?

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.

Figura 26-3: exibio de mensagem vira-lata


Aqui, a tela foi alterado para mostrar o contedo da mensagem. O top de linha agora
diz que o remetente da mensagem, o assunto, e quanto a mensagem
apresentada, neste caso 50%. Como antes, a linha de fundo diz que o mais comum
comandos que voc pode precisar neste contexto: eles no so todos iguais como na tela do menu.
A mensagem em si dividido em trs partes: as primeiras seis linhas so uma seleo dos
cabealhos. Os cabealhos pode ser bastante longo. Eles incluem informaes sobre a forma como a mensagem
cheguei aqui, quando ela foi enviada, que o enviou, que foi enviado, e muito mais. Ns olharemos
los com mais detalhes na pgina 482.
Os cabealhos so separados a partir do corpo da mensagem por uma linha vazia. A primeira parte, que
mua.mm, v v4.12 (2003/04/02 04:07:59)

475

Captulo 26: Correio eletrnico: clientes

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.

Respondendo a uma mensagem


Para responder a uma mensagem, basta pressionar r. vira-lata comea seu editor favorito para voc. Como
ele sabe qual? Se voc definir o seu EDITOR varivel ao nome do ambiente
seu editor, ele comea editor que, caso contrrio, ele comea vi. Voc tambm pode especific-lo no vira-lata
arquivo de configurao, que veremos a seguir.
Neste caso, vamos comear emacsclient. emacsclient no realmente um editor em tudo: ele simplesmente encontra
um Emacs processo e agarra-lo. Isto muito mais rpido do que iniciar uma nova instncia de
Emacs: praticamente instantnea, ao passo que mesmo em mquinas modernas, rpidas, comeando
Emacs provoca um pequeno atraso. Para sair do cliente, voc pode usar a combinao de teclas c-x c-#.
Antes de entrar em qualquer texto, a tela do editor parece com a Figura 26-4. Voc vai notar que vira-lata
'''' automaticamente citaes no texto. O texto original comeou com:
> Acho que agora eu entendo o problema aqui. Tente o seguinte patch
> E me diga se ele resolve o problema:
>
> --- Vinumio.c
02 maio de 2002 08:43:44 -0000
1.52.2.6
> + + + Vinumio.c
19 de setembro de 2002 05:10:27 -0000
Tentei patch. Sistema no l ad0h/ad2h, mas aps a segunda
'Start vinum ", o sistema mostra 0 unidades (listas de nada" vinum ld').

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.

mua.mm, v v4.12 (2003/04/02 04:07:59)

Respondendo a uma mensagem

476

Figura 26-4: Respondendo a uma mensagem: estado inicial


Neste caso, uma vez que em resposta a uma questo tcnica, eu mudar o De: cabealho para o meu
FreeBSD.org abordar e copiar a lista de discusso de origem. Eu tambm remover texto irrelevante
e adicionar uma resposta, como se mostra na Figura 26-5. No era necessrio reformatar o original
texto, uma vez que era relativamente curta. O mtodo citando faz linhas crescer, embora, e
MUAs muitos tm dificuldade com linhas longas, por isso uma boa idia para reformatar longo
pargrafos. Ver http://www.lemis.com/email.html para mais detalhes.
Neste exemplo, eu respondo com a r (Resposta ao remetente) de comando. Eu tambm poderia fazer um grupo
responder com a g chave, que incluem todos os recipientes originais, de modo que no seria
necessrio acrescentar a lista de discusso novamente.
Em seguida, deixo o editor com c-x c-# e voltar para a tela na Figura 26-6. Aqui eu
ter outra oportunidade para mudar alguns dos cabealhos antes de enviar a mensagem.
Voc vai notar o que parece ser um par de cabealhos adicionais nesta tela: PGP e FCC:.
Na verdade, eles no so os cabealhos em tudo. PGP afirma que partes da mensagem, se houver, deve ser
criptografado com pgp ou gpg. Neste caso, Limpar (O padro) significa no criptografar
nada.
FCC: tambm no um cabealho. Ele especifica o nome de uma pasta na qual deseja salvar a sada
mensagem. Ns vamos olhar para as pastas na prxima seo.
Depois de fazer quaisquer alteraes nos cabealhos, eu enviar a mensagem com a y
comando, depois que eu voltar para a tela anterior.

mua.mm, v v4.12 (2003/04/02 04:07:59)

477

Captulo 26: Correio eletrnico: clientes

Figura 26-5: Respondendo a uma mensagem: aps a edio

Figura 26-6: Respondendo a uma mensagem: pronto para enviar

mua.mm, v v4.12 (2003/04/02 04:07:59)

Respondendo a uma mensagem

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

Alternativamente, voc pode alterar as pastas com o c de comando.

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

Captulo 26: Correio eletrnico: clientes

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:

Lemis, PO Box 460, Echunga SA 5153, Australia


+61-8-8388-8286

Estas linhas e cabealhos mais se tornam em mensagens enviadas, voc pode v-los na
exemplos acima.
definir editor = emacsclient

Esta linha substitui o editor padro no EDITOR. Ns j vimos o uso de


emacsclient.
definir pager_index_lines = 10

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

hdr_format um printf -Como string de formato que descreve o layout, status_on_top


inverte as linhas de informao na parte superior e na parte inferior do ecr, sort = tpicos define um
exibio de rosca por padro (voc pode alter-lo pressionando o), e date_format est definido para
convenes internacionais.

Figura 26-7: Leitura de uma mensagem com pager_index_lines definir

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

Estas variveis especificar a forma de escrever e responder a mensagens de correio:

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.

atribuio descreve o formato da atribuio ao incio de uma resposta, o texto


Sexta-feira 20 de Setembro de 2002
08:13:44 -0500, Jaime Bozza
escreveu: no exemplo acima.

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

Captulo 26: Correio eletrnico: clientes

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

Esta a cor padro bsico, substituindo o vdeo reverso mostrado acima.


cor hdrdefault brightblack branco
cor citado brightblack branco

Isto diz vira-lata para destacar cabealhos e texto citado em negrito.


cor status amarelo preto

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

mua.mm, v v4.12 (2003/04/02 04:07:59)

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 seguida o nome do alias (perguntas e estvel neste exemplo).


Em seguida, vem o ID e-mail em uma das duas formas: ou o nome seguido do ID correio
entre colchetes angulares (<>), ou o ID de correio seguido do nome entre parnteses (()).

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 Entregue-To: cabealho especifica o nome do usurio a quem a mensagem foi


entregue.

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.

A seguir Recebido: cabealhos localizar a origem da mensagem, atravs


hub.freebsd.org, onde passou por trs transformaes. Antes disso, ele passou
atravs mail1.thinkburst.com, mailgate.thinkburstmedia.com, sigma.geocomm.com
e dhcp00.geocomm.com. Por pura coincidncia, cada um destes sistemas foi
funcionamento postfix. Cada cabealho contm um identificador de mensagem, o nome do servidor e seu IP
endereo. Em um caso, no entanto, o nome de um aspecto diferente:
mua.mm, v v4.12 (2003/04/02 04:07:59)

483

Captulo 26: Correio eletrnico: clientes

Figura 26-8: cabealhos completos


Received: from mailgate.thinkburstmedia.com (gateway.thinkburstmedia.com [204
.214.64.100])

O primeiro nome o nome que o servidor diz ser, e o segundo o nome


retornado por um DNS reversa do endereo IP do servidor.

mua.mm, v v4.12 (2003/04/02 04:07:59)

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.

As prximas trs conectores relacionar MIME e descrever a verso e a maneira pela


que a mensagem foi codificado (7 bit texto ASCII simples).

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.

O In-Reply-To: cabealho mostra a identificao da mensagem em que esta uma resposta.


vira-lata utiliza este campo para enfiar as mensagens no ndice.

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.

Em seguida, vem o Sender: cabealho o endereo do remetente real. Embora esta


mensagem De: Jaime Bozza, foi reenviado do FreeBSD-estvel lista de discusso.
Este cabealho documenta o fato.

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.

O Precedncia: cabealho usado internamente pelo sendmail para determinar a ordem em


quais mensagens devem ser enviadas. massa uma baixa prioridade.

O X-Spam-Status: cabealho adicionado por spamassassin, que usado para detectar


spam. Esta mensagem foi dado um atestado de sade.

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).

O Content-Length: especifica o cabealho aproximado comprimento da mensagem


(Sem os cabealhos) em bytes. Ele usado por alguns MUAs para acelerar as coisas.
mua.mm, v v4.12 (2003/04/02 04:07:59)

485

Captulo 26: Correio eletrnico: clientes

O Linhas: cabealho indica o comprimento da mensagem em linhas.

Como enviar e responder e-mails


No mundo impessoal da Internet, as mensagens de correio so a coisa mais tangvel
sobre voc. Enviar uma mensagem clara e legvel, bem pensado, e voc deixar uma boa
impresso. Envie uma mensagem mal formatada e mal soletrado mal formulado, e
voc deixar uma m impresso.
Ento, o que bom eo que ruim? Isso uma questo de opinio (e de auto-expresso), de
curso. Ns vimos algumas das seguintes coisas j:

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):

Figura 26-9: Uma linha por pargrafo


Ao enviar'''' correio convencional, verifique se voc aderir ao
normas.
Mais uma vez, os utentes da Microsoft so muitas vezes mal a este respeito: sem
dizendo,
Eles podem tanto transformar pargrafos em uma longa linha, ou eles
quebrar linhas
em dois, um longo e um curto. A aparncia resultante da
mensagem parece
gosto (tendo este nmero como um exemplo):

Figura 26-10: Linhas longas e curtas alternativos


A coisa insidiosa sobre essas converses que voc pode no estar ciente delas. Se
voc receber mensagens de outras pessoas que parecem ser ilegvel, o seu cliente pode ser
reformatar-los chegada, no caso em que possvel reformatar-los antes
transmisso.
mua.mm, v v4.12 (2003/04/02 04:07:59)

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

Figura 26-11: resposta menos legvel


> 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

Figura 26-12: resposta mais legvel

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.

mua.mm, v v4.12 (2003/04/02 04:07:59)

487

Captulo 26: Correio eletrnico: clientes

Usando anexos MIME


MIME permite conectar todos os tipos de dados a uma mensagem de e-mail, incluindo imagens e
clipes de som. uma grande vantagem, mas, infelizmente, muitas pessoas se recusam a us-lo,
talvez porque a comunidade UNIX no tem o seu agir em conjunto. Crdito onde
crdito devido, esta uma rea onde a Microsoft est frente da multido UNIX.
No entanto, voc pode fazer um monte de coisas erradas com anexos MIME. Aqui esto algumas
dos mais comuns:

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.

No use acessrios exclusivos. De vez em quando, recebo anexos que assumem


que eu tenho o mesmo software como o remetente. As tpicas so application/octetcrrego com formatos proprietrios da Microsoft (por exemplo, um do Microsoft Word
e formatos) application/mac-binhex40, que usado pelo MAC para utentes
imagens. Se as pessoas que voc est enviando para no ter este software, eles no podem usar o
anexo.

No envie cpias mltiplas em diferentes formatos. Alguns utentes enviar tanto a


text / plain e um text / html anexo. Isto desperdia espao e pode causar uma srie de
confuso.

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.

mua.mm, v v4.12 (2003/04/02 04:07:59)

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:

Se sendmail funciona para voc, use-o. Se tiver dificuldades, use


postfix vez.
As sees a seguir mostram como configurar um sistema de correio usando postfix. Em geral,
sendmail bastante semelhante. Voc encontrar todos os detalhes no livro morcego, eo original
sendmail distribuio, disponvel a partir de http://www.sendmail.org/ , Contm instrues para
especialistas.

Como o correio entregue


Idealmente, para enviar e-mail, a fonte MTA em contato com o MTA destino e envia o
mensagem. Na prtica, isso nem sempre funciona. Aqui est o mtodo geral:

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 o menor registro MX aponta para a prpria mquina do MTA, ento no h um e-mail


errada: o MTA no sabe o que fazer com ele no local, mas o MX
dizendo-lhe para entreg-lo localmente. Quando isso acontece, o MTA rejeitar a mensagem ('' correio
loops back to myself'').

Se no houver registros MX em tudo (o que implica que o MTA no tem um


qualquer um), a maioria, mas nem todas as verses do sendmail ir procurar um registro para o sistema
nome. Se encontrar um, eles vo tentar entregar l, e somente l.

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

Captulo 27: Correio eletrnico: servidores

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.

Quem recebe o e-mail?


De acordo com a RFC 2822, um ID e-mail algo como grog@example.org. Isso parece
muito parecido com um ID de usurio, o @ assinar, bem como o nome de uma mquina. Esta semelhana
destina, mas ainda apenas uma semelhana. Considere o gestor do sistema de example.org. Em
diferentes pocas, ele pode enviar e-mails a partir de freebie.example.org, bumble.example.org, e
wait.example.org. Se o ID de correio foram associados com a mquina, ele teria trs
diferentes IDs mail: fred@freebie.example.org, fred@bumble.example.org e
fred@wait.example.org. Tornaria as coisas muito mais simples (e mais fcil de
tipo) se o seu ID de correio eram simplesmente fred@example.org. Esta mudana de nome chamado
disfarado.
Uma maneira de fazer isso seria associar o nome example.org como CNAME com um de
as mquinas, digamos wait.example.org. Isso poderia funcionar, mas isso significaria que o correio
sempre teria de vir de e ir para wait.example.org. Se, por qualquer razo que
mquina eram inacessveis, o e-mail no iria passar. Na prtica, possvel
executar MTAs em mais de uma mquina. DNS resolve esse problema com uma classe especial de
registro, o MX registro (troca de mensagens). Registros MX pode apontar para mais de uma mquina,
por isso, se uma mquina no estiver acessvel, o e-mail pode ser enviado para outro. Ns vimos como adicionar
los na pgina 370. Registros MX no esto diretamente associados com qualquer mquina particular,
embora eles apontam para os nomes das mquinas que executam um MTA.

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

Figura 27-1: menu de configurao do Postfix


A construo continua por um tempo, e finalmente voc obter as informaes:
Documentao HTML instalada em / usr / share / local / doc / postfix
===> Gerar lista de embalagem temporria
Gostaria de ativar Postfix em / etc / mail / mailer.conf [n]? y

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.
#
#
#
#
#
#
#

O parmetro mail_owner especifica o proprietrio da fila Postfix


e da maioria dos processos daemon Postfix. Especifique o nome de um usurio
conta que no compartilha o seu usurio ou ID de grupo COM OUTRAS CONTAS
E QUE POSSUI NENHUM outros arquivos ou processos no sistema. Em
particular, no especificar ningum ou daemon. Por favor use um DEDICADO
USER.
mta.mm, v v4.15 (2003/04/02 05:01:57)

493

Captulo 27: Correio eletrnico: servidores

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.

Host e nomes de domnio


Uma parcela significativa do arquivo de configurao define nomes de host. Por padro, a varivel
myhostname o nome completo do host do sistema, por exemplo, freebie.example.org. Normalmente, voc deve deix-lo assim, no idntico ao nome que ir
aparecem em e-mails.
A prxima varivel mydomain, cujo padro o nome do sistema de domnio. Novamente,
voc normalmente no ir querer mud-lo.
Em seguida, vem a varivel myorigin, que o nome que aparece no e-mail de sada. Ele
padres para myhostname, que provavelmente no uma boa escolha. Como sugerido acima, um
melhor nome seria o nome de domnio, mydomain. Faa as seguintes alteraes
main.cf :
# O parmetro myorigin especifica o domnio que localmente publicado
# Correio parece vir de. O padro acrescentar $ myhostname,
# O que bom para pequenos sites. Se voc executar um domnio com mltiplas
# Mquinas, voc deve (1) mudar isso, para US $ mydomain e (2) estabelecer
# Um banco de dados de alias todo o domnio que aliases que cada usurio
# User@that.users.mailhost.
#
# Myorigin = $ myhostname
myorigin = $ mydomain

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

Registro MX beispiel.org deve apontar para este host.


Mais adiante, veremos um recurso chamado virtual hosting. Esta uma forma de e-mail para alocar
endereos para pessoas sem conta UNIX nesta mquina. Ele funciona no nvel do usurio,
no o nvel de nome de domnio.

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

Captulo 27: Correio eletrnico: servidores

Aliases sistema # bsicas - estes devem estar presentes


MAILER-DAEMON: postmaster
postmaster: root
Redirecionamentos # gerais para contas pseudo
bin: root
daemon: root
jogos: raiz
ingres: raiz
ningum: root
sistema: root
toor: root
uucp: root
#
#
#
#
#

Aliases conhecidos - estes devem ser preenchidos!


root:
gerente:
dumper:
operador:

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).

Outro uso de apelidos para mordomo, o gerenciador de lista de discusso veremos em


pgina 503.

Por padro, o postfix no tem um arquivo de alias especfico. main.cf contm:


# Alias_maps
# Alias_maps
# Alias_maps
# Alias_maps

=
=
=
=

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:

mta.mm, v v4.15 (2003/04/02 05:01:57)

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

mta.mm, v v4.15 (2003/04/02 05:01:57)

497

Captulo 27: Correio eletrnico: servidores

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])

O primeiro cabealho est correto: o nome que afirma ser (femail.sdc.sfba.home.com)


coincide com a pesquisa inversa. No segundo caso, no entanto, u319 no um componente totalmente
nome de domnio qualificado, e no existe um segundo nome: a pesquisa inversa falhou. Alguns
MTAs usar a palavra desconhecido neste caso, e alguns mesmo adicionar um aviso.
Por que o IP de um MTA no resolver? ideal para os spammers, claro: ele
torna quase impossvel de rastrear. Neste caso, provvel que a faixa de IP
pertence home.com, porque eles aceitaram a mensagem para a afinao, mas a falta de
uma pesquisa inversa vlido no diz nada pelo seu profissionalismo.

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:

reject_unknown_client: rejeitar o pedido se o cliente hostname desconhecido, ou seja,


se a pesquisa inversa de DNS falhar.

reject_maps_rbl: rejeitar se o cliente est listado em $ maps_rbl_domains. Vamos


discutir este abaixo.

reject_invalid_hostname: rejeitar hostname com m sintaxe.

mta.mm, v v4.15 (2003/04/02 05:01:57)

Rejeitando o spam

498

reject_unknown_hostname: rejeitar hostname sem registro DNS A ou MX.

check_sender_access maptype: mapname. Procure o endereo do remetente at no


mapa especificado e decidir se a rejeit-la. Veremos isso com mais detalhes abaixo.

reject_non_fqdn_hostname: rejeitar HELO hostname que no est em forma FQDN.

reject_unknown_sender_domain: rejeitar domnio do remetente sem registro A ou MX.


Este provavelmente um domnio forjado.

reject_non_fqdn_sender: rejeitar endereo de remetente que no est em forma FQDN.

Rejeitando domnios de spam conhecidas


Se voc identificou domnios que voc preferia no ouvir de novo, use o formulrio
check_sender_access maptype: mapname. Por padro, o mapa armazenado em / Usr/local / etc / postfix / access.db. Adicione o seguinte texto ao main.cf :
smtpd_sender_restrictions = acesso :/ usr / local / etc / postfix / haxixe

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

Correio rejeitado. Conhecido site de spam.

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

Correio rejeitado. Conhecido site de spam.

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:

mta.mm, v v4.15 (2003/04/02 05:01:57)

499

Captulo 27: Correio eletrnico: servidores

access.db: acesso
/ Usr / local / sbin / postmap acesso

Em seguida, adicione a seguinte linha / Etc / crontab:


1 **** raiz

(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.

Rejeitando locais sem consulta reversa


Um nmero muito grande de sites de spam no tem pesquisa inversa em seus endereos IP. Voc
pode rejeitar todas essas mail: afinal de contas, errada. Basta adicionar o reject_unknown_sender_domain palavra-chave para o smtpd_sender_restrictions. Infelizly, alguns srios empresas comerciais tambm no precisa de pesquisa inversa. A escolha sua
se deseja aceitar e-mails com eles e abrir as comportas para o spam, ou ignorar
eles. O projeto FreeBSD escolheu a segunda opo: se voc no tem inversa
pesquisa, voc no ser capaz de enviar e-mail para FreeBSD.org.

Rejeitando sites listados


Outra alternativa rejeitar sites que foram listadas em uma lista pblica de sites de spam,
por vezes referido como um RBL (Realtime Blackhole List). O exemplo dado no
arquivo de configurao http://www.mail-abuse.org/ , Mas h outros tambm. Eles
manter uma lista de sites de spam que voc pode consultar antes de aceitar todas as mensagens.
Eu no gosto desses sites para um nmero de razes:

Eles retardar as coisas.

Eles freqentemente custam dinheiro.

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

O nome rbl.maps.vix.com vem do arquivo de amostra. Substitu-lo com informaes


do seu fornecedor RBL.

Reconhecendo mensagens falsificadas


H tanta coisa que postfix pode fazer para restringir o spam. A coleo de ports contm
um par de outras ferramentas teis, procmail e spamassassin, que juntos podem rejeitar uma
monte de spam. Trata-se de uma quantidade razovel de trabalho, infelizmente. D uma olhada as portas se
voc estiver interessado.
mta.mm, v v4.15 (2003/04/02 05:01:57)

Rejeitando o spam

500

Restries Remetente: resumo


As restries acima so interdependentes. Eu recomendaria remetentes rejeitando baseados
no endereo e falta de pesquisa inversa. Para fazer isso, adicione apenas as seguintes linhas ao seu
main.cf :
smtpd_sender_restrictions = reject_unknown_sender_domain,
de hash :/ usr / local / etc / postfix / access

Correndo postfix no momento da inicializao


Por padro, o sistema iniciado sendmail no momento da inicializao. Voc no precisa fazer nada
especial. Basta definir os seguintes parmetros no / Etc / rc.conf :
sendmail_enable = "YES"
sendmail_flags = "-bd"
sendmail_outbound_enable = "NO"
sendmail_submit_enable = "NO"
sendmail_msp_queue_enable = "NO"

As bandeiras tm os seguintes significados:

sendmail_enable um pouco de um equvoco. Deve ser chamada mail_enable.

-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.

Conversando com o MTA


O Simple Mail Transfer Protocol, ou SMTP, um protocolo baseado em texto. Se voc quiser, voc
pode conversar com o MTA diretamente no smtp port. Tente isto com telnet:
$ Telnet localhost smtp
Tentando :: 1 ...
telnet: conectar-se a abordar :: 1: Conexo recusada
tentar se conectar com IPv6
Tentando 127.0.0.1 ...
Conectado ao localhost.
Caractere de escape ']'.
220 freebie.example.org ESMTP Postfix no FreeBSD, a escolha do profissional
ehlo freebie.example.org
dizer quem voc
250 freebie.example.org
nome
250-PIPELINING
e lista de recursos disponveis
250-SIZE 10240000
250 ETRN
mta.mm, v v4.15 (2003/04/02 05:01:57)

501

Captulo 27: Correio eletrnico: servidores

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.

Baixando mail do seu ISP


Como discutimos antes, a Internet no foi projetada para uso dial-up. A maioria dos protocolos
assumir que os sistemas so uma grande parte do tempo: o tempo para baixo indica algum tipo
de falha. Isso pode causar problemas de distribuio do correio, se voc no estiver conectado permanentemente
para a Internet.
Se voc tem um registro MX de que aponta para outro sistema que est permanentemente conectado,
este no parece ser um problema: o e-mail ser enviado para esse sistema em seu lugar. Quando voc
conectar, o e-mail pode ser enviado a voc.
Como funciona o sistema de correio de saber quando voc se conecta? Normalmente isso no acontece. Essa a primeira
problema. A maioria dos sistemas de configurar seu MTA para tentar entregar o correio a cada 30 a 120 minutos.
Se voc estiver conectado por muito tempo, as chances so boas de que o e-mail ser entregue
automaticamente, mas no sei quando.
Uma possibilidade aqui para dizer a MTA remoto quando voc est conectado. Voc pode fazer isso
com o SMTP ETRN de comando. Telnet para o smtp porta no sistema onde o e-mail
fila:
$ Telnet mail.example.net smtp
Tentando 139.130.237.17 ...
Conectado a mail.example.net.
Caractere de escape ']'.
220 freebie.example.org ESMTP Sendmail 8.8.7/8.8.7 pronto em Seg, 05 de maio de 1997
00:55:10 0930 (CST)
etrn freebie.example.org
250 Queuing para o n freebie.example.org comeou
desistir
221 conexo fechamento mail.example.net
Conexo fechada pelo host estrangeiro.

O e-mail comea a chegar depois da mensagem Queuing para o n freebie.example.org


iniciado. Dependendo da quantidade de correio que , ele pode demorar um pouco, mas voc
no precisa
esperar por ela.
Outra alternativa o Post Office Protocol, ou POP. POP foi projetado originalmente para
Computadores de estilo Microsoft que no podem executar daemons, ento eles tm de pedir explicitamente a
mta.mm, v v4.15 (2003/04/02 05:01:57)

Baixando mail do seu ISP

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.

POP: o Post Office Protocol


O Post Office Protocol um meio de transferncia de correio j entregue a outro
local. Ele consiste de duas partes, o cliente eo servidor. Um nmero de clientes e
servidores esto disponveis. Nesta discusso, vamos olhar para o servidor popper e o cliente
fetchmail, sendo que ambos esto na Coleo de Ports.

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

/ Usr / local / libexec / popper

popper

Esta linha comentadas com a # personagem. Remover o personagem para ativar a


servio. Ento causar inetd reler seu arquivo de configurao:
# Killall -1 inetd

enviar uma SIGHUP

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

Captulo 27: Correio eletrnico: servidores

Mensagem de 2 a leitura ....


rubor mensagem 3
ler a mensagem 3 ...
rubor mensagem 4
leitura de mensagem 4 ...
rubor mensagem 5
mensagem de 5 de ler ....

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.

Listas de discusso: majordomo


majordomo um gerenciador de lista de e-mail. Se voc executar listas de discusso, voc provavelmente vai querer usar
majordomo: voc economiza modificar manualmente as listas de discusso. Como de costume, voc pode encontrar
majordomo na Coleo de Ports, no diretrio / Usr / ports / mail / mordomo. Quando
instalao, voc ver uma mensagem:
Para finalizar a instalao, o "su" para root e digite:
make install-wrapper
Se no instalar o wrapper, tipo
cd / usr / local / mordomo;. / invlucro config-teste
(No 'su' necessrio) para verificar a instalao.
. / Install.sh-o root-g 54-m 4755 invlucro / usr / local / mordomo / invlucro

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.

Certifique-se de que existe um usurio de email mordomo-proprietrio no sistema. A melhor maneira de


lidar com isso adicionar uma entrada no / Etc / mail / aliases (Ver pgina 494):
mordomo-proprietrio:

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.

mta.mm, v v4.15 (2003/04/02 05:01:57)

Listas de discusso: majordomo

504

Adicionar / Usr / local / mordomo / aliases.majordomo lista postfix aliases. Olhamos


neste ponto acima, voc precisa de pelo menos a parte do texto em negrito da seguinte linha em
/ Usr / local / etc / postfix / main.cf :
alias_maps = de hash :/ etc / mail / aliases, de hash :/ usr / local / mordomo / aliases.majordomo

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.

mta.mm, v v4.15 (2003/04/02 05:01:57)

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:

A prxima seo descreve a formao tcnica de execuo X monitores.

Na pgina 513, vamos olhar para a configurao do XF86Config arquivo.

Na pgina 520, vamos olhar com mais de um monitor com X.

Na pgina 521, vamos olhar com X em uma rede.

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:

Como exibir placas e monitores de trabalho.

Como configurar o XFree86 para trabalhar com o seu hardware.

Como sintonizar o seu hardware para o mximo desempenho de exibio.

Como fritar seu monitor.

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.

Como TVs e monitores de trabalho


Voc no precisa ser um especialista em computador para ver a semelhana entre monitores e TVs:
tecnologia monitor atual derivada de tecnologia de TV, e muitos de exibio mais velho
placas tm modos que podem usar TVs ao invs de monitores. Aqueles de ns que estavam no
cena microcomputador de 20 a 25 anos vai se lembrar da alegria de ter um computador
exibir em uma TV porttil, um copo tty'''' conectados por uma linha serial rodando a 300 ou 1200
bps.
Existem pelo menos duas maneiras de criar imagens em um tubo de raios catdicos: um derivado
osciloscpios, onde cada personagem individualmente varrido pelo feixe de eltrons, ao invs
como escrever na areia com o dedo. Alguns terminais incio usado esta tecnologia, mas
tem sido obsoleto por vrias dcadas.
TVs e monitores de exibir a imagem por varredura de linhas igualmente espaadas ao longo de toda
tela. Como em um livro, a primeira linha comea no canto superior esquerdo da tela e vai para o topo
direita. Cada linha sucessiva comea um pouco abaixo da linha anterior. Isso continua at que
a tela est cheia. A imagem formada atravs da alterao da intensidade de um feixe de electres como
ele verifica as linhas.
Para realizar esta anlise, a TV tem dois unidades de desvio: um varreduras da esquerda para a direita e os
outros scans, muito mais lentamente, de cima para baixo. No surpreendentemente, estas unidades so
chamado horizontal e vertical unidades de deflexo. Voc tambm pode encontrar os termos linha
e quadro deflexo.
A Figura 28-1 mostra o padro resultante.
Primeira linha de varredura
Segunda linha de varredura
etc
Flyback

Figura 28-1: padro de digitalizao no monitor


xtheory.mm, v v4.11 (2003/04/02 04:22:45)

507

Captulo 28: XFree86 em profundidade

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:

HDE SHR EHR

HT

Figura 28-2: linha de digitalizao e registrar valores


O registo de informao na parte inferior do quadro refere-se ao controlador de vdeo
registra. Veremos como interpret-los na pgina 509.
Isso, em poucas palavras, como obras de deflexo horizontal. Deflexo vertical funciona
quase da mesma maneira, apenas mais lento, com uma excepo menor. Este ecr bsico
mecanismo foi desenvolvido para TVs em 1930, numa poca em que termos como high-tech (ou
xtheory.mm, v v4.11 (2003/04/02 04:22:45)

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.

Como monitores diferem das televises


Ento, como podemos aplicar isso a monitores de computador? Vamos olhar para os EUA padro NTSC
sistema de sistemas SECAM PAL internacional e so quase idnticos, exceto para o
nmero de linhas e uma pequena diferena nas frequncias. NTSC especifica 525 linhas, mas
que inclui o tempo de flyback vertical, e na verdade apenas cerca de 480 linhas so visveis. O
proporo de um televisor normal de 4:3, por outras palavras, a tela de um tero maior que
alto, por isso, se queremos pixels quadrados, uma precisamos ter um tero a mais pixels por linha. Este
significa que podemos exibir 640 pixels por linha em 480 lines.2 Esta resoluo normalmente
abreviado para'' 640x480.'' PAL e SECAM verticais tm freqncias mais baixas, que
permite um valor nominal de 625 linhas, das quais cerca de 600 so exibidos. De qualquer forma, estes valores
tem duas grandes desvantagens: primeiro, a resoluo apenas aceitvel para os modernos
grficos exibe, e por outro lado eles esto entrelaados monitores. Hardware de vdeo mais antigo PC,
como a CGA e alguns modos EGA, foi capaz de gerar estes sinal
freqncias, mas placas grficas normais no podem mais faz-lo. Em vez disso, a sada de TV dedicado
cartes esto disponveis, se isso que voc quer fazer.
O primeiro problema entrelaado: ele funciona razoavelmente bem para TVs, mas uma dor para computador
mostra-ainda h mais do que um piscar de verdade 50 Hz ou 60 Hz exibio. Tela moderna
placas ainda pode correr em modo entrelaado, mas nem pense em faz-lo, a menos que voc est
forada a-quadro resultante parece fora de foco e muito cansativo para ler.
O segundo problema a resoluo: hoje em dia, 1024x768 uma resoluo mnima, e
alguns monitores exibir at 2048x1536 pixels. Por outro lado, mesmo 60 Hz refresh
taxa pouco adequado: ler qualquer literatura de marketing e voc vai descobrir que 72 Hz o
ponto em que a cintilao desaparece de repente. Para obter alta resoluo e alta taxa de atualizao
exibe, voc precisa de algum olhar muito alta interna freqncias: ns naquele mais abaixo.

Como fritar seu monitor


Lembre-se que um monitor apenas uma TV glorificado? Bem, uma das restries de projeto de
plano real que eles tm apenas uma nica frequncia horizontal e vertical, apenas uma nica
freqncia. Isto simplifica o design de hardware consideravelmente: a deflexo horizontal
utiliza um circuito de sintonia para criar tanto a frequncia de deflexo e a alta voltagem necessria
para executar o tubo. Este circuito composto por um transformador (o transformador de linha) e um
condensador. Executar um transformador de linha mesmo fracionada fora de sua freqncia pretendida e executado
muito menos eficiente e usar mais atual, que convertida em calor. Se voc executar um
monitor convencional de off spec para qualquer perodo de tempo, ele vai queimar o transformador de linha.
1. Um pixel um quadrado com a mesma altura e largura. Eles no tm que ser assim, mas faz grficos
software muito mais simples.
2. Ser que isso parece familiar?
xtheory.mm, v v4.11 (2003/04/02 04:22:45)

509

Captulo 28: XFree86 em profundidade

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:

Nunca deixe o monitor fora de especificao. Se o seu monitor confuso


acima, h uma boa chance de que as freqncias esto fora, de modo a
transformar desligar o monitor.
Monitores no so a nica coisa que voc pode queimar, claro. Se voc tentar, voc pode
tambm queimar fichas em algumas placas de vdeo, executando-os em freqncias que esto fora de
spec. Na prtica, porm, isso no acontece com tanta freqncia.
Outra diferena entre TVs e monitores o tipo de sinal que eles tomam. A verdadeira TV
inclui um receptor, claro, que voc tenha uma conexo de antena, mas TVs modernas tambm
tm conexes para entradas de videocassetes, que normalmente so dois sinais de udio e um vdeo
sinal. O sinal de vdeo contm cinco componentes importantes: os vermelho, verde e azul
, e os sinais de impulsos de sincronizao horizontal e vertical. Este tipo de sinal chamado
de vdeo composto. Em contraste, a maioria dos monitores modernos separar estes sinais em separado
linhas de sinal, e as placas mais antigas, como as EGA, mesmo utilizados vrias linhas por cor.
Infelizmente, no h acordo completo sobre como esses sinais deve funcionar: o
a polaridade dos impulsos de sincronizao pode variar, e algumas placas de batota e fornecer os impulsos de sincronismo em
a linha de sinal verde. Isto principalmente de interesse histrico, mas, ocasionalmente, voc vai
atravs de uma verdadeira pechincha 20 "monitor que s tem trs conexes de sinal, e voc no pode
ser capaz de faz-lo funcionar, esta poderia ser uma das razes.

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 Fim de retorno horizontal registo (EHR) define o fim do impulso de sincronismo. O


largura do impulso de sincronizao a diferena entre o contedo deste registo e as
SHR registo.

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.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

511

Captulo 28: XFree86 em profundidade

A linha de modo XF86Config


Um dos passos na criao de XFree86 definir esses valores de registro. Felizmente, voc
no tem que se preocupar com que os bits para definir no estouro registrar: as linhas modo de contagem
em pontos, e cabe ao servidor para converter a contagem de pontos em algo que a exibio
placa pode entender. A linha de modo tpico se parece com:
Modeline "640x480a" 28 640 680 728 776 480 480 482 494

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.

A freqncia de clock de 28 MHz, neste exemplo.

O valor inicial Horizontal Refaa (SHR).

O valor Horizontal Total (HT).

O valor Vertical exibio End (VDE). Este valor e os trs seguintes so


especificado nas linhas.

O valor inicial Vertical Refaa (SVR).

O valor Vertical Total (VT).

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).

O valor End Vertical Refaa (EVR).

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

Horizontal sync pulso: 1-4 s, varanda 0,18-2,1 s, de volta varanda 1,25-3,56 s.


Como veremos, a prova desses parmetros de tempo est no display. Se a tela parece
bom, os parmetros esto OK. Eu no sei de qualquer maneira de danificar o monitor puramente por
modificar esses parmetros, mas h outras boas razes para manter esse intervalo. Como
regra geral, se voc definir cada um dos trs valores a 2 s para comear, voc no vai muito longe
errado. Alternativamente, voc pode comear com os valores padro NTSC: o padro
especifica que o pulso de sincronismo horizontal dura 4,2-5,1 s, a varanda da frente deve ser de pelo
menos 1,27 s. NTSC no define o comprimento da parte traseira alpendre -em vez disso, define o
supresso total da linha, que tem a durao de 8,06-10,3 s. Para os nossos propsitos, podemos considerar o
prtico volta a ser o comprimento da supresso total menos o comprimento do prtico frontal e
o impulso de sincronismo. Se voc pegar os valores em algum lugar no meio das faixas, voc tem uma frente
varanda de 1,4 s, um pulso de sincronizao de 4,5 s, total e cega 9 s, o que implica uma volta
varanda de 9 - 1,4-4,5 = 3,1 s.
Para o nosso exemplo, vamos ficar com 2 s por valor. Temos uma frequncia horizontal de 40 kHz,
ou 25 s por linha. Aps tirar a nossa 6 s para o controle flyback,temos apenas 19 s partiu para
os dados de exibio. Para obter 640 pixels, neste momento, precisamos de um pixel a cada 19 640 s, ou
cerca de 30 ns. Este corresponde a uma frequncia de 33,6 MHz. Este o nosso relgio de pontos desejado.
A prxima pergunta : ns temos um relgio de pontos desta freqncia? Talvez. Esta deve ser
na documentao placa de vdeo, mas eu vou tomar uma aposta que no . No importa, o
XFree86 servidor inteligente o suficiente para descobrir isso por si mesmo. No momento, vamos supor
que voc tem um relgio de pontos de 33MHz.
Se voc no tem um relgio adequado, voc vai ter que dar o prximo menor freqncia de clock que voc faz
tem-se: voc no pode ir mais alto, uma vez que este exemplo assume o mais alto possvel horizontal
freqncia.

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.

Neste ponto, nossa linha de modo vestigial se parece com:


Modeline "640x480"

28

640 704 768 832

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

513

Captulo 28: XFree86 em profundidade

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 a nossa linha modo completa:


Modeline "640x480" 28 640 704 768 832 480 481 483 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.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

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'

Note-se que X no coloque o arquivo de configurao resultante no local padro. O


a inteno que voc deve test-lo primeiro e, em seguida, mov-lo para o local final quando voc est
feliz com isso. Como gerado acima, bom o suficiente para rodar XFree86, mas voc possivelmente
quer mud-lo. Por exemplo, ele s lhe d uma nica resoluo, o mais alto que puder
encontrar. Nesta seo, vamos dar uma olhada no arquivo de configurao em mais detalhes, e como mudar
lo.
XF86Config dividido em vrias seces, conforme mostrado no Quadro 28-1. Vamos olhar para eles
na ordem em que aparecem no gerado XF86Config arquivo, o que no a mesma ordem de grandeza
na pgina de manual.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

515

Captulo 28: XFree86 em profundidade

Tabela 28-1: Sees XF86Config


Seo
ServerLayout

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

Define a fonte padro e caminhos RGB.

ServerFlags

Definir algumas opes globais.

Mdulo

Descreve os mdulos de software para carregar para a configurao.

InputDevice Configura teclados, mouses e outros dispositivos de entrada.


Monitor

Descreve seu monitor para o servidor.

Dispositivo

Descreve o hardware de vdeo para o servidor.

Tela

Descreve como usar o monitor e hardware de vdeo.

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.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

XF86Config

516

A norma Arquivos seco se parece com:


Seo "Arquivos"
RgbPath
ModulePath
FontPath
FontPath
FontPath
FontPath
FontPath
FontPath
EndSection

"/
"/
"/
"/
"/
"/
"/
"/

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

"/ Usr/X11R6/lib/X11/fonts/100dpi /"


"/ Usr/X11R6/lib/X11/fonts/75dpi /"

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

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

517

Captulo 28: XFree86 em profundidade

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

No h muito a ser dito sobre o teclado. As verses anteriores do XFree86 permitiu-lhe


para definir as coisas como NumLock manuseio e taxa de repetio, mas o primeiro no mais necessrio,
e o ltimo mais fcil de manusear com a xset programa.
Mice ainda no so to padronizada como teclados, ento voc ainda precisa de um Protocolo e uma linha
nome do dispositivo. Os padres mostrados aqui esto corretas para os ratos mais modernos, o rato
motorista pode detectar o tipo de mouse corretamente. Se voc estiver usando o daemon de mouse, moused,
alterar essa entrada para o moused dispositivo / Dev / sysmouse.
Se voc estiver usando um mouse serial ou um com apenas dois botes, e Se voc no estiver usando
moused, voc precisa alterar as entradas do dispositivo e especificar o Emulate3Buttons
opo. Isso tudo o descrito na pgina do homem, mas, em geral, mais fcil de usar moused.

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:

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

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

640 672 768 864

480 488 494 530

111

800 864 928 1088

600 604 610 640

165 1024 1056 1248 1440

768 771 781 802

195 1280 1312 1440 1696

1024 1031 1046 1072-hsync-vsync

195 1600 1616 1808 2080

1200 1204 1207 1244 + hsync + vsync

200 1920 1947 2047 2396

1440 1441 1444 1483-hsync + vsync

220 1920 1947 2047 2448

1440 1441 1444 1483-hsync + vsync

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

Captulo 28: XFree86 em profundidade


"PciRetry"
"SyncOnGreen"
"NoAccel"
"ShowCache"
"Overlay"
"MGASDRAM"
"ShadowFB"
"UseFBDev"
"ColorKey"
"SetMclk"
"OverclockMem"
"VideoKey"
"Girar"
"TexturedVideo"
"Crtc2Half"
"Crtc2Ram"
"INT10"
"AGPMode"
"DigitalScreen"
"TV"
"TVStandard"
"CableType"
"Nohal"
"SwappedHead"
"DRI"
"Card0"
"Mga"
"Matrox"
"MGA G200 AGP"
"PCI: 01:00:00"

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

[<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.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

521

Captulo 28: XFree86 em profundidade

Vrios monitores e servidores


J vimos acima que X fornece para mais de um monitor por servidor. Se voc tem
vrias placas e monitores, deixe o servidor gerar a XF86Config arquivo:
gera um arquivo que suporta todos os dispositivos identificados. A seo de layout do servidor resultante
pode ter esta aparncia:
Seo "ServerLayout"
Identificador
"XFree86 Configured"
Tela 0
"Screen0" 0 0
Tela 1
"Screen1" RightOf "Screen0"
Tela 2
"Screen2" RightOf "Screen1"
InputDevice
"Mouse0" "CorePointer"
InputDevice
"Keyboard0" "CoreKeyboard"
EndSection

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)

Vrios monitores e servidores

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

Ao olhar para a interao cliente-servidor X, lembre-se de que o servidor o software


componente que controla a exibio. Isto significa que voc est sempre sentado no servidor,
no no cliente. Por exemplo, se voc quer comear uma xterm cliente em freebie e exibir
lo presto, voc vai estar sentado no presto. Para fazer isso, voc pode digitar, em presto,
$ Ssh freebie xterm-ls-display presto: 0 &

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:

Usar xhost para especificar os nomes dos sistemas que tm acesso:


$ Xhost freebie presto bumble esperar gw

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"

Altere esta linha para ler:


listen_tcp =

Isso permite conexes remotas a prxima vez que voc iniciar o servidor.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

523

Captulo 28: XFree86 em profundidade

Vrios monitores em vrios servidores


Vimos acima que um servidor pode lidar com vrios monitores, e um sistema pode lidar com
vrios servidores. Um problema com vrios monitores que a maioria dos computadores s pode
tratar um pequeno nmero de quadros de afixao: uma nica placa de AGP e possivelmente um nmero de
Placas PCI. Mas placas PCI so difceis de encontrar hoje em dia, e eles so mais lentos e tm
menos memria.
Se voc tem um nmero de mquinas fisicamente ao lado do outro, voc tem a alternativa de
rodando o X em cada um deles e controlar tudo a partir de um teclado e mouse.
Voc pode fazer isso com o x11/x2x port. Por exemplo: freebie, presto e bumble ter
acompanha ao lado do outro, e presto tem dois monitores. Da esquerda para a direita, eles so
freebie: 0.0, presto: 0.0, presto: 0,1 e bumble: 0.0. O teclado eo mouse so
ligado presto. Para incorporar o brinde: 0,0 e bumble: 0,0 no grupo, entre estes
comandos presto:
$ DISPLAY =: 0.0 x2x-oeste para freebie: 0 &
$ DISPLAY =: 0,1 x2x-east-to bumble: 0 &

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.

xtheory.mm, v v4.11 (2003/04/02 04:22:45)

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:

Na prxima seo, vamos olhar para o processo de inicializao mais detalhadamente.

Na pgina 525 veremos como controlar o processo de inicializao.

Se algo der errado, eo sistema no chegar, as mensagens que


rolaram para fora da tela so muito importantes. Ns vamos olhar para o que eles significam na pgina 525.

No to bvio que voc precisa de aderir a um procedimento ao desligar o


sistema. Vamos olhar para os comos e os porqus na pgina 537.

H um certo nmero de formas de iniciar o sistema para aplicaes particulares. Em


pgina 538 veremos como o FreeBSD sem um disco.

starting.mm, v v4.19 (2003/04/02 04:32:28)

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.

Aps a sonda, o kernel inicia dois processos. O primeiro, o processo 0, o swapper


e responsvel pela compensao de emergncia de memria quando o padro virtual
algoritmos de memria no so rpidos o suficiente.

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

Captulo 29: Iniciar e parar o sistema

/ 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.

Coisas que voc pode fazer antes de inicializar


Voc pode fazer uma srie de coisas antes de iniciar o sistema:

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.

O que voc est indo para arrancar?


Se voc tiver vrios sistemas operacionais em seu sistema, voc pode usar o gerenciador de boot
descrito na pgina 64, para escolher qual deles para arrancar. Por exemplo, se voc tem dois discos,
a primeira das quais contm quatro parties, a primeira fase do arranque semelhante
isto:
F1:
F2:
F3:
F4:
F5:

FreeBSD
Windows
Linux
FreeBSD
Unidade 1

Padro: F1

Aps 10 segundos, o gerenciador de boot tenta carregar o bootstrap do padro


partio, voc pode escolher qualquer uma das selees pressionando a funo correspondente
chave. Se voc pressionar F5, voc tem um menu que mostra as parties no segundo disco, com F5
para regressar ao primeiro disco.
Se voc escolher para iniciar o FreeBSD, a carga carregadores de inicializao, e voc ver algo como:
/
BTX loader
BIOS unidade
BIOS unidade
BIOS unidade

este um'' girando batuta''


1,00
A:
C:
D:

Verso BTX 1,01


disk0
disk1
disk1

starting.mm, v v4.19 (2003/04/02 04:32:28)

O que voc est indo para arrancar?

526

BIOS 639kB/130048kB memria disponvel

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

Neste ponto, voc normalmente continuar com o boot, pressionando a Entrar


chave ou apenas esperando os 10 segundos. Vamos ver o que acontece em seguida, na pgina 529.
s vezes, voc pode querer mudar as caractersticas de software ou hardware. Neste caso,
voc pressiona o'' qualquer outra tecla'' (por tradio a barra de espao) e digite os comandos para o
carregador.

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

O arquivo contm dicas entradas da seguinte natureza:


hint.sio.0.at = "isa"
hint.sio.0.port = "0x3F8"
hint.sio.0.flags = "0x10"
hint.sio.0.irq = "4"
hint.sio.1.at = "isa"
hint.sio.1.port = "0x2f8"
starting.mm, v v4.19 (2003/04/02 04:32:28)

527

Captulo 29: Iniciar e parar o sistema


hint.sio.1.irq = "3"
hint.sio.2.at = "isa"
hint.sio.2.disabled = "1"
hint.sio.2.port = "0x3E8"
hint.sio.2.irq = "5"
hint.sio.3.at = "isa"
hint.sio.3.disabled = "1"
hint.sio.3.port = "0x2e8"
hint.sio.3.irq = "9"

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

bandeiras 0x10 IRQ 4


irq 3
IO_COM3 IRQ 5
IO_COM4 irq 9

A linha correspondente no arquivo de configurao Release 5 :


dispositivo

sio

# 8250, 16 [45] 50 portas seriais baseados

Mais importante, porm, isso significa que voc no precisa recompilar o kernel se
voc alterar os endereos de hardware.

Voc pode digitar comandos diretamente para o prompt de comando.

Quando voc bater a barra de espao, voc recebe a seguinte mensagem:


Tipo '?' Para uma lista de comandos, 'help' para ajuda mais detalhada.
ok?
Comandos disponveis:
reiniciar reiniciar o sistema
pilha mostram o uso de heap
bcachestat obter estatsticas de cache de bloco de discos
CARREGADOR um arquivo ou do kernel carregado
autoboot iniciar automaticamente depois de um atraso
ajudar a ajuda detalhada
? comandos da lista
mostrar varivel show (s)
definir definir uma varivel
unset unset uma varivel
mais contedo mostra de um arquivo
lista de todos os dispositivos lsdev
incluir comandos de leitura de um arquivo
lista arquivos ls
carregar carregar um kernel ou mdulo
descarregar descarregar todos os mdulos
lsmod lista os mdulos carregados
pnpscan varredura para dispositivos PnP

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.

starting.mm, v v4.19 (2003/04/02 04:32:28)

O que voc est indo para 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"

# Definida como Sim para sada carregador detalhado

# Autoboot_delay = "10" # atraso em segundos antes autobooting


# Console = "vidconsole" # Configure o console atual
# Currdev = "disk1s1a" # Defina o dispositivo atual
module_path = "/ boot / kernel ;/ boot / mdulos mdulos ;/" # Define o caminho de pesquisa do mdulo
Prompt # = "\ $ {interpretar}" # Configure o prompt de comando
# Root_disk_unit = "0" # Fora o nmero da unidade de disco raiz
# Rootdev = "disk1s1a" # Defina o sistema de arquivos raiz

O ncleo entrada d o nome do kernel, relativo ao diretrio do kernel


/ Boot / kernel. s vezes pode ser do interesse de mudar esse valor, por exemplo
durante o teste.

console = vidconsole diz o carregador de onde a sada de suas mensagens. vidconsole


abreviado para console de vdeo, voc tambm pode selecionar comconsole se voc tiver um terminal serial
ligado a uma porta serial especificada.

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.

Carregar outros mdulos em tempo de inicializao


Por padro, o carregador carrega apenas o kernel. Isso pode no ser o que voc quiser. Voc pode
deseja carregar um kernel diferente, ou voc pode querer carregar um kld bem.
H duas maneiras de fazer isso. Se voc s quer fazer isso uma vez, voc pode interromper o
Seqncia de inicializao pressionando a barra de espao, e dizer carregador o que fazer:
Iniciando [ncleo] em 6 segundos ...
esta contagem regressiva de 10 segundo
(Barra de espao hit)
Tipo '?' Para uma lista de comandos, 'help' para ajuda mais detalhada.
ok descarregar
no o kernel queramos
OK carga / boot / kernel.old / kernel
carregar o kernel antigo
/ Boot / kernel.old / kernel text = dados 0x3e474c = 0x52f00 0 x81904 syms = [0x4 x4cab0 +0 +0 +0 x4 x5
b458]
OK carga / boot / kernel.old / vinum.ko
e o mdulo de idade vinum
/ Boot / kernel.old / vinum.ko text = 0x149a4 data = 0xaf75c 0 X164 syms = [0x4 x11e0 +0 +0 +0 x4 xcac]
bota ok
em seguida, iniciar o kernel
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
Kernel do elfo pr-carregado "/ boot / kernel.old / kernel" no 0xc072a000.
starting.mm, v v4.19 (2003/04/02 04:32:28)

529

Captulo 29: Iniciar e parar o sistema

Mdulo elfo pr-carregado "/ boot / kernel.old / vinum.ko" no 0xc072a0bc.


Timecounter "i8254" freqncia 1.193.182 Hz
(Etc)

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.

Carga automtica kld


O mtodo descrito acima complicado se voc quiser carregar o kld cada vez que voc
arrancar. Neste caso, mais fcil adicionar a seguinte linha / Boot / loader.conf :
vinum_load = "YES"

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"
...

Driver de disco # concatenada


# Concatenada / mirror / raid motorista
# Driver de disco de memria (vnode / swap / malloc)

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.

Aqui o kernel identifica-se com a informao sobre o nmero da verso, quando e


onde foi construdo, e onde ele foi carregado.
Timecounter "i8254" freqncia 1.193.182 Hz
CPU: Pentium II / Pentium II Xeon / Celeron (467,73 MHz 686-class CPU)
Origem = "GenuineIntel" Id = 0x665 Stepping = 5
Caractersticas = 0x183fbff <FPU, VME, DE, PSE, TSC, MSR, PAE, MCE, CX8, APIC, setembro, MTRR, PGE, MCA, CMOV, P
AT, PSE36, MMX, FXSR>
memria real = 134217728 (128 MB)
memria disponvel = 123465728 (117 MB)

As linhas acima identificar o equipamento bsico. Existe um contador de tempo (alguns


placas-me tem dois), o processador um Celeron, Pentium II ou Xeon, e funciona em 466
MHz. Esta informao relativamente fivel. O valor da memria real, que o tamanho da memria RAM.
Alguns mais velhos sistemas de reserva 1 kB de RAM em modo real, mas isso no deve ter qualquer
efeito sobre o valor da memria real. A memria disponvel a memria disponvel para os usurios
Depois que o kernel foi carregado e inicializado.
Em algumas mquinas mais antigas, o kernel relata apenas 16 MB, embora o sistema tenha mais
memria. Isto devido a incompatibilidades de BIOS, e ocorre com uma freqncia surpreendente em grande
Nome mquinas. Para corrigi-lo, construir um kernel personalizado que especifica o tamanho da memria
explicitamente para ver a descrio da MAXMEM parmetro, que descrito na
arquivo de configurao detalhado / Usr/src/sys/i386/conf/NOTES.
Esta mquina de fato um multiprocessador com duas CPUs, ento vejamos:
Programao de 24 pinos em IOAPIC # 0
IOAPIC # 0 intpin 2 -> irq 0
IOAPIC # 0 intpin 16 -> IRQ 10
IOAPIC # 0 intpin 17 -> IRQ 9
IOAPIC # 0 intpin 18 -> IRQ 11
FreeBSD / SMP: sistema multiprocessador
Detectado: 2
cpu0 (BSP): ID APIC: 0, verso:
0x00040011,
cpu1 (AP): ID APIC: 1, verso:
0x00040011,
io0 (APIC): ID APIC: 2, verso:
0x00170011,

CPUs
em 0xfee00000
em 0xfee00000
em 0xfec00000

O IOAPIC o I / O avanado controlador de interrupo programvel utilizado pelo SMP


apenas mquinas. Ele atribui novamente alguns pedidos de interrupo. Esta informao fornecida no caso
starting.mm, v v4.19 (2003/04/02 04:32:28)

531

Captulo 29: Iniciar e parar o sistema

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

coprocessador numrico, no chip

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)

O sistema no sabe quais os dispositivos so implementadas internamente no chipset, que


so chips separados na placa me, e que so em placas plug-in. At agora, ele tem
encontrou os controladores IDE, mas no os discos, ele vai procur-los mais tarde.
Em seguida encontramos dois adaptadores host SCSI Symbios:
sym0: <875> porta 0xc400-0xc4ff mem 0xec002000-0xec002fff, 0xec003000-0xec0030ff irq 1
0 no dispositivo 9.0 em pci0
sym0: Symbios NVRAM, ID 7, Fast-20, SE, SEM paridade
sym0: Open Drain motorista linha de IRQ, usando on-chip SRAM
sym0: usando LOAD / firmware baseado STORE.
sym0: SCAN PARA LUNS desativado para alvos 0.
SYM1: <875> porta 0xc800-0xc8ff mem 0xec001000-0xec001fff, 0xec000000-0xec0000ff irq 9
no dispositivo de 13,0 em pci0
SYM1: No NVRAM, ID 7, Fast-20, SE, verificao de paridade

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

controlador de porta paralela


impressora de linha na porta paralela
alternar I / O na mesma porta

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

Captulo 29: Iniciar e parar o sistema

APIC_IO: Teste 8254 entrega de interrupo


APIC_IO: routing 8254 via IOAPIC # 0 intpin 2
SMP: AP CPU # 1 Lanado!

Finalmente, o sistema detecta os discos ligados a esta mquina:


ad0: 19574MB <WDC WD205BA> [39770/16/63] em ata0-master UDMA33
ad4: 19574MB <WDC WD205BA> [39770/16/63] em ata0-master UDMA66
Esperar 15 segundos para que os dispositivos SCSI para resolver
(Noperiph: sym0: 0: -1: -1): SCSI BUS redefinir entregue.
da0 em SYM1 bus 0 target 3 lun 0
da0: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto Fixo SCSI-2
dispositivo
da0: 20.000MB / s transferncias (10.000MHz, offset 15, 16 bits), Tagged
Filas Ativado
da0: 4095MB (8.386.733 setores de 512 bytes: 255H 63S / T 522C)
da1 em SYM1 bus 0 target 0 lun 0
da1: <SEAGATE ST15230W SUN4.2G 0738> Acesso Direto Fixed SCSI-2
dispositivo
Filas Ativado
da1: 20.000MB / s transferncias (10.000MHz, offset 15, 16 bits), Tagged
da1: 4095MB (8.386.733 setores de 512 bytes: 255H 63S / T 522C)

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:

starting.mm, v v4.19 (2003/04/02 04:32:28)

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)

Se o sistema deixou de funcionar, no entanto, devido a um problema de software ou hardware, ou


porque ele no foi desligado corretamente, ele ir executar uma verificao do sistema de arquivos (fsck), que
Pode demorar um pouco, at uma hora em sistemas de arquivos muito grandes. Voc ver algo como:
AVISO: / no foi devidamente desmontado
/ Dev/da0s1a: 6311 livre (367 frags, 743 blocos, a fragmentao 0,9%)

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:.

Neste exemplo, no havia opes de roteamento adicionais e sem daemons de roteamento. O


mensagens de acordo no tem nada entre o carter : e o perodo final. Voc vai
ver isso com relativa freqncia.
Em seguida, / Etc / rc monta os sistemas de arquivos de rede, limpa / Var / run e, em seguida, comea a
syslogd :
Montagem de sistemas de arquivos NFS.
Daemons adicionais: syslogd.

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

Captulo 29: Iniciar e parar o sistema

ntpdate, ntpd, cronometrado, portmap, ypserv, rpc.ypxfrd, rpc.yppasswdd, ypbind, ypset,


keyserv e rpc.ypupdated :
Fazendo configurao de rede adicional: o nome xntpd portmap.
partida. 8.1.2 chamado Sun 09 de maio 13:04:13 CST 1999 grog@freebie.example.org :/ usr
/ Obj / usr.sbin / named
mestre zone "example.org" (IN) carregado (serial 1997010902)
mestre zone "37.147.223.in-addr.arpa" (IN) carregado (serial 1996110801)
escutando [223.147.37.149] 0,53 (ep0)
escutando [127.0.0.1] 0,53 (lo0)
Endereo de origem Forwarding [0.0.0.0] 0,1063
Pronto para responder a perguntas.

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:

Neste momento, estamos no incio do Captulo 7 (pgina 111).

starting.mm, v v4.19 (2003/04/02 04:32:28)

Rodando o kernel

536

Modo de usurio nico


s vezes inconveniente que vrios usurios podem acessar o sistema. Por exemplo, se
voc reparticionar um disco, voc no quer que outras pessoas andando por todo o disco enquanto
voc est fazendo isso. Mesmo se voc for o nico usurio do sistema, daemons podem estar fazendo
coisas no fundo. Para evitar esse problema, voc pode parar o processo de inicializao antes
a maioria dos daemons foram iniciados e entrar modo de usurio nico. Para fazer isso, defina a
boot_single variveis, ou especificar o -S bandeira no momento da inicializao:
ok boot-s

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

starting.mm, v v4.19 (2003/04/02 04:32:28)

537

Captulo 29: Iniciar e parar o sistema

Tabela 29-1: nveis de inicializao


Nvel
0
1
6
c
q

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.

Proteger o modo single-user senha


Se voc executar um ambiente seguro, voc pode estar preocupado com o fato de que voc pode comear
no modo de usurio nico, sem digitar uma senha. Esse o padro-normalmente, se
algum pode acessar o console do sistema, uma senha no mais muito uso, e pode
ser um incmodo, mas voc pode alter-la. Encontre esta entrada / Etc / ttys e alterar a palavra
proteger a inseguro:
# Se voc quiser ser solicitado para a senha, altere "seguro" para "inseguro" aqui
nenhum consola
desconhecido fora inseguro

Se voc fizer isso, voc estar em apuros se voc esquecer a senha de root.

Desligar e reiniciar o sistema


FreeBSD utiliza um nmero de tcnicas sofisticadas para atingir o seu alto desempenho. Em
particular, quando voc gravar dados em um disco, o sistema no coloc-lo no disco
imediatamente: ele aguarda mais dados para chegar, o que reduz o nmero de acessos a disco
at vrias ordens de magnitude e, assim, melhora o desempenho dramaticamente.
O resultado do poder de desligar antes de os dados so gravados igualmente dramtica. Voc pode
acabou de perder os dados, mas se os dados esto informaes sobre uma mudana na estrutura do sistema de arquivos, o
sistema de arquivos ser danificado. Para verificar isso, o sistema executa um programa chamado fsck
(File System Check) na inicializao. fsck pode reparar pequenos danos, mas , obviamente, uma melhor
idia para evitar danos, garantindo que o sistema desligado de forma ordenada.

Nunca pare de sua mquina por apenas desligar a energia. O


resultados podem ser devastadores.
A maneira correta de desligar um sistema com o encerramento de comando. Para citar o
pgina de manual shutdown (8):
Shutdown fornece um procedimento de desligamento automtico para super-usurios bem notificar os usurios
quando o sistema desligado, salvando-os de administradores de sistema, hackers e gurus,
que de outra forma no se preocupar com tais sutilezas.
starting.mm, v v4.19 (2003/04/02 04:32:28)

Desligar e reiniciar o sistema

538

Este comando tem um nmero de opes teis:

Use o -R opo para reiniciar o computador. s vezes, voc precisa fazer isso, pois
exemplo, depois de instalar um novo kernel.

Use o -H opo para parar a mquina. Este no o padro.

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.

Certifique-se de esperar por essa mensagem antes de desligar a energia.

FreeBSD sem discos


Os discos esto ficando muito mais barato e sua capacidade est aumentando continuamente, por isso fcil de
acho que nunca haveria uma razo para querer correr FreeBSD sem um disco em tudo.
Ainda assim, h razes:

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.

Discos so barulhentos. Existem lugares onde voc no pode querer o barulho.

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.

Discos so sensveis. Voc no pode querer coloc-los em alguns ambientes.

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

Captulo 29: Iniciar e parar o sistema

Inicializao via rede


Inicializao via rede no uma idia nova. Foi a razo original para Sun Network File
Sistema, que ns olhamos nos captulos 24 e 25. Hoje em dia as pessoas normalmente usam NFS
para sistemas de arquivos compartilhados adicionais, no caso de inicializao via rede, voc monta sua prpria privada
Sistema de arquivos NFS como seu sistema de arquivos raiz. Claramente, a primeira coisa que voc precisa fazer
criar este sistema de arquivos.
Em seguida, voc precisa encontrar uma maneira de inicializar o sistema. Existem algumas possibilidades aqui:

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.

Configurao dos sistemas de arquivos


H um certo nmero de maneiras de colocar os ficheiros no servidor NFS:

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.

starting.mm, v v4.19 (2003/04/02 04:32:28)

Inicializao via rede

540

Voc pode combinar os dois mtodos e copiar um sistema recm-instalado em um arquivo


sistema onde voc precisar dele.

Ns vamos olhar para aperfeioar esta tcnica depois que o sistema est instalado e funcionando.

Construindo um kernel diskless


Voc ainda precisar construir um kernel especial para estaes de trabalho sem disco. As seguintes entradas
o arquivo de configurao so relevantes:
# Kernel suporte BOOTP
opes
opes
opes
opes
opes

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.

Neste caso, voc vai precisar carregar um carregador, como pxeboot.


Como uma concesso menor a segurana, o tftpd daemon se recusa a acessar arquivos fora do seu
hierarquia de diretrios de dados, que por conveno chamado / Tftpboot. Voc pode usar simblico
ligaes, no entanto. Faz mais sentido ter o kernel no mesmo lugar, como em mquinas
com discos, ou seja, em / Boot / kernel / kernel no sistema de arquivos raiz, por isso criamos simblico
links:
# Mkdir / tftpboot
# Ln-s / src / nodisk / bumble / boot / kernel / kernel / tftpboot / kernel.bumble
# Ln-s / boot / pxeboot / tftpboot / pxeboot

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

Captulo 29: Iniciar e parar o sistema


dgram
dgram

udp
udp6

esperar
esperar

raiz
raiz

/ Usr / libexec / tftpd


/ Usr / libexec / tftpd

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

enviar uma SIGHUP

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;
}

starting.mm, v v4.19 (2003/04/02 04:32:28)

Inicializao via rede

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 /
}

se em uma mquina diferente


para a inicializao direta
para PXE
nodisk / bumble;

Existem algumas coisas a serem observadas aqui:

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.

Outros cadaros Ethernet


Se a sua placa Ethernet no tem uma ROM de inicializao, voc pode fazer uma com a net / etherboot
porta, ou voc pode copiar as informaes necessrias para um disquete ou CD-R e usar isso para
inicie o bootstrap. Em ambos os casos, voc primeiro construir o porto e, em seguida, copiar os dados para o seu
seleccionado mdio. Por exemplo, para criar um disco de inicializao para um carto RL2000 Compex, a 10
Mb / s clone PCI NE-2000, voc primeiro procurar o carto na / Usr/ports/net/etherboot/work/etherboot-5.0.5/src/NIC, onde se l:
# Compex RL2000
compexrl2000 NS8390

0x11f6, 0x1401

Esta informao principalmente para o processo de construo, voc s precisa saber o


compexrl2000, que o nome do condutor.
#
#
#
#

cd / usr / ports / net / etherboot


fazer tudo
cd work / ter * / src
cat bin/boot1a.bin bin32/compexrl2000.lzrom> / dev/fd0

bin/boot1a.bin um disco de inicializao a inteno de carregar e iniciar compexrl2000.lzrom. Voc


tambm pode colocar compexrl2000.lzrom em uma EPROM. Isso requer um pouco mais de cuidado, eo
informaes esto sujeitas a alteraes. Voc pode encontrar informaes detalhadas sobre como proceder
no site http://etherboot.sourceforge.net/doc/html/documentation.html.
etherboot usa NFS, no TFTP. Como resultado, as coisas mudam: voc pode usar o caminho absoluto
nomes, e voc no pode usar links simblicos. Uma entrada dhcpd.conf para este mtodo pode
parecido com este:

1. Ver http://www.freebsd.org/doc/en_US.ISO8859-1/articles/pxe/index.html para a documentao para a criao de


pxeboot em FreeBSD.
starting.mm, v v4.19 (2003/04/02 04:32:28)

543

Captulo 29: Iniciar e parar o sistema

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";
}

Ao inicializar dessa maneira, voc no v as mensagens de inicializao. As sadas do carregador de inicializao


vrias telas cheias de perodos, cada um indicando um bloco baixado. Ele termina assim:
................................ Feito
.

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.

Atualmente no possvel adicionar swap em um sistema de arquivos NFS. swapon (Normalmente


chamado a partir de scripts de inicializao) relatrios, incorretamente:
11 de dezembro 14:18:46 bumble savecore: 192.109.197.82 :/ src / nodisk / swap / bumble: No such
arquivo ou diretrio

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

starting.mm, v v4.19 (2003/04/02 04:32:28)

rw

0
0
0

0
0
0

Inicializao via rede

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.

Sistema de compartilhamento de arquivos entre vrias mquinas


Em muitos casos, voc pode ter um nmero de mquinas que voc deseja executar diskless. Se voc
ter suficiente em disco (uma imagem para cada mquina), voc no tem nada para se preocupar,
mas muitas vezes isso pode ser atraente para compartilhar os arquivos de sistema entre eles. H uma srie de
coisas a considerar aqui:

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.

starting.mm, v v4.19 (2003/04/02 04:32:28)

545

Captulo 29: Iniciar e parar o sistema

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.

starting.mm, v v4.19 (2003/04/02 04:32:28)

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

Captulo 30: arquivos de configurao do FreeBSD

$ Cd / usr / src / etc / defaults


$ Cvs diff-wu-r1.159 rc.conf

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"

# Ajuste o nome do arquivo de swap se aux swap desejado.

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 cobrir APM, Advanced Power Management.


devd_enable = "NO" # Run DEVD, para acionar programas sobre alteraes na rvore de dispositivos.
pccard_enable = "NO" # Definida como YES se voc quiser configurar dispositivos PCCard.
pccard_mem = "DEFAULT" # Se pccard_enable = YES, este o endereo do carto de memria.
pccard_beep = "2" # pccard tipo bip.
pccard_ifconfig = "NO" # Especializada configurao ethernet pccard (ou NO).
pccardd_flags = "-Z" # flags adicionais para pccardd.
pccard_conf = "/ etc / defaults / pccard.conf" # pccardd (8) arquivo de configurao
pccard_ether_delay = "5" # Atraso antes de tentar iniciar dhclient em pccard_ether

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:

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

/ 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

Se voc vem de um V de fundo do sistema, voc esperaria encontrar esses scripts no


diretrios como / Etc/rc2.d.
rc_conf_files = "/ etc / rc.conf / etc / rc.conf.local"

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"

#
#
#
#

Definida como YES para fsck-y se o preen inicial falhar.


Tentar executar fsck em segundo plano
Lista de tipos de sistemas de arquivos de rede extra para atraso
montar na inicializao (ou 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

Captulo 30: arquivos de configurao do FreeBSD

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"

Continuando / Etc / defaults / rc.conf,


nisdomainname = "NO"

# Ajuste o domnio NIS se utilizando NIS (ou NO).

Se voc estiver usando o NIS do Sol, definir isso. Ns no discutimos NIS neste livro.
dhcp_program = "/ sbin / dhclient"
dhcp_flags = ""

# Caminho para o programa cliente dhcp.


# Flags adicionais para passar para o cliente DHCP.

As configuraes para o DHCP cliente dhclient. Normalmente voc no precisar mud-los.


Ns conversamos sobre DHCP , na pgina 302.
firewall_enable = "NO" # Configure como yes para ativar a funcionalidade de firewall
firewall_script = "/ etc / rc.firewall" # Qual script para ser executado para configurar o firewall
firewall_type = "Desconhecido" # tipo de Firewall (veja / etc / rc.firewall)
firewall_quiet = "NO" # Definida como YES para suprimir a exibio regra
firewall_logging = "NO" # Configure como yes para ativar o registro de eventos

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"

# Configure como yes para ativar a funcionalidade de firewall


# Tipo de Firewall (veja / etc / rc.firewall)

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"

# Set primeira porta alocada dinamicamente


ltima porta alocada dinamicamente # Set

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"

# Defina para Sim para executar setkey em ipsec_file


# Nome do arquivo de configurao para setkey

Parmetros para IPsec. No discutimos IPSec neste livro.


natd_program = "/ sbin / natd"
natd_enable = "NO"
natd_interface = ""
natd_flags = ""

#
#
#
#

caminho para natd, se voc quiser uma diferente.


Ativar natd (se firewall_enable == YES).
Interface pblica ou IPaddress de usar.
Flags adicionais para natd.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

/ 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"

# Definido para SIM se este host um gateway.


# Script para apenas NAT
# Tipo de firewall se estiver rodando um firewall

Continuando com / Etc / defaults / rc.conf,


ipfilter_enable = "NO" # Configure como yes para ativar a funcionalidade ipfilter
ipfilter_program = "/ sbin / IPF" # onde os IPfilter programa vidas
ipfilter_rules = "/ etc / ipf.rules" # governa arquivo de definio para ipfilter, consulte
# / Usr / src / contrib / ipfilter / regras para exemplos
ipfilter_flags = "" # flags adicionais para ipfilter
ipnat_enable = "NO" # Configure como yes para ativar a funcionalidade ipnat
ipnat_program = "/ sbin / ipnat" # onde o programa vidas ipnat
ipnat_rules = "/ etc / ipnat.rules" # governa arquivo de definio para ipnat
ipnat_flags = "" # flags adicionais para ipnat
ipmon_enable = "NO" # definida como Sim para ipmon; precisa ipfilter ou ipnat
ipmon_program = "/ sbin / ipmon" # onde os IPfilter programa monitor vidas
ipmon_flags = "-Ds" # normalmente "-Ds" ou "-D / var / log / ipflog"
ipfs_enable = "NO" # Definida como YES para permitir salvar e restaurar
# De tabelas de estado no desligamento e na inicializao
ipfs_program = "/ sbin / IPFs" # onde o programa vidas IPFs
ipfs_flags = "" # flags adicionais para IPFs

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

Captulo 30: arquivos de configurao do FreeBSD


netmask 255.255.255.0 "

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 so os parmetros para o SPPP implementao para isdn4bsd e a Tnel genrico


Interface, os quais no vamos discutir aqui. Veja o homem pginas spp (4) e gif (4) para
mais detalhes.
# 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

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

Para que isso funcione, adicione o seguinte ao / Etc / rc.conf em gw:


syslogd_flags = ""

Em seguida, vm alguns parmetros relativos inetd, o Daemon Internet, s vezes chamado de


super-servidor. Ele o responsvel por iniciar servios em nome de clientes remotos.
inetd_enable = "NO" # Execute o daemon despachante de rede (SIM / NO).
inetd_program = "/ usr / sbin / inetd" # caminho para inetd, se voc quiser uma diferente.
inetd_flags = "-ww" flags # opcionais para o inetd

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"

# Execute o nome, o servidor DNS (ou NO).

Continuando com / Etc / defaults / rc.conf,


kerberos4_server_enable = "NO"
kerberos4_server = "/ usr / sbin / kerberos"
kadmind4_server_enable = "NO"
kadmind4_server = "/ usr / sbin / kadmind"
kerberos5_server_enable = "NO"
kerberos5_server = "/ usr / libexec / kdc"
kadmind5_server_enable = "NO"
kadmind5_server = "/ usr/libexec/k5admind"
kerberos_stash = "NO"

#
#
#
#
#
#
#
#
#

Executar um servidor mestre IV Kerberos (ou NO).


caminho para Kerberos IV KDC
Executar kadmind (ou NO)
caminho para Kerberos IV administrador daemon
Executar a 5 servidor mestre Kerberos (ou NO).
caminho para Kerberos 5 KDC
Executar kadmind (ou NO)
caminho para Kerberos 5 administrador daemon
a chave mestra kerberos escondido?

Definir estes se voc deseja executar Kerberos. Ns no discutimos Kerberos neste livro.
rwhod_enable = "NO"
rwhod_flags = ""

# Execute o rwho daemon (ou NO).


# Bandeiras para rwhod

Definir isso se voc deseja executar o rwhod daemon, que transmite informaes sobre o
carga do sistema.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

553
rarpd_enable = "NO"
rarpd_flags = ""
bootparamd_enable = "NO"
bootparamd_flags = ""
xtend_enable = "NO"
xtend_flags = ""

Captulo 30: arquivos de configurao do FreeBSD


#
#
#
#
#
#

Executar rarpd (ou NO).


Bandeiras para rarpd.
Executar bootparamd (ou NO).
Bandeiras para bootparamd
Execute o daemon controlador X-10 poder.
Bandeiras de Xtend (se habilitado).

Estes referem-se entrada de rarpd, bootparamd e os X-10 daemons, o que fazemos no


discutir neste livro. Veja as respectivas pginas man.
pppoed_enable = "NO" # Execute o PPP over Ethernet daemon.
pppoed_provider = "*" # Provider e ppp (8) entrada do arquivo de configurao.
pppoed_flags = "-P / var / run / pppoed.pid"
# Flags para pppoed (se habilitado).
pppoed_interface = "fxp0" # A interface que pppoed executado.

pppoed o PPP Over Ethernet daemon. Discutimos brevemente na pgina 348.


sshd_enable = "NO"
sshd_program = "/ usr / sbin / sshd"
sshd_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).

Bandeiras para NFS. Alguns deles mudaram de verses anteriores do FreeBSD. Em


nomeadamente, single_mountd_enable agora chamado mountd_enable, e portmap tem
foram substitudos por rpcbind, assim portmap_enable agora chamado rpcbind_enable,
portmap_program agora chamado rpcbind_program e portmap_flag agora chamado
configfiles.mm, v v4.16 (2003/04/02 04:41:37)

/ Etc / rc.conf

554

rpcbind_flags. Consulte a pgina 438. Estabelecemos os seguintes


valores em / Etc / rc.conf para gw:
nfs_client_enable = "YES"
nfs_server_enable = "YES"

# Este acolhimento um cliente NFS (ou NO).


# Este host um servidor NFS (ou NO).

Para andante, que permitem apenas o cliente (a primeira linha). A seguir, veja:
keyserv_enable = "NO"
keyserv_flags = ""

# Execute o servidor de chaves SecureRPC (ou NO).


# Bandeiras para keyserv (se estiver ativado).

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).

cronometrado, ntpdate e ntpd So trs maneiras diferentes de sincronizar o aparelho com o


data e hora atual. Como vimos na pgina 155, usaremos ntpd. Ns adicionamos o seguinte
A linha a / Etc / rc.conf para cada sistema:
ntpd_enable = "YES"

# Execute ntpd Network Time Protocol (ou NO).

Continuando com / Etc / defaults / rc.conf,


# Network Information Services
nis_client_enable = "NO"
nis_client_flags = ""
nis_ypset_enable = "NO"
nis_ypset_flags = ""
nis_server_enable = "NO"
nis_server_flags = ""
nis_ypxfrd_enable = "NO"
nis_ypxfrd_flags = ""
nis_yppasswdd_enable = "NO"
nis_yppasswdd_flags = ""

(NIS) opes: todos precisam rpcbind_enable = "YES" # # #


# Ns somos um cliente NIS (ou NO).
# Flags para ypbind (se habilitado).
# Execute ypset no momento da inicializao (ou NO).
# Flags para ypset (se habilitado).
# Ns somos um servidor NIS (ou NO).
# Bandeiras para ypseerv (se estiver ativado).
# Execute rpc.ypxfrd no momento da inicializao (ou NO).
# Flags para rpc.ypxfrd (se habilitado).
# Execute rpc.yppasswdd em tempo de boot (ou NO).
# Flags para rpc.yppasswdd (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 :

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

555

Captulo 30: arquivos de configurao do FreeBSD

defaultrouter = "139.130.136.133" # Configure a porta de entrada padro (ou NO).


gateway_enable = "YES" # definido para SIM se este host ser um gateway.

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 = ""

#
#
#
#
#

Definida como YES para permitir que um daemon de roteamento.


Nome do daemon de roteamento para usar se estiver ativado.
Bandeiras para daemon de roteamento.
Fazer roteamento multicast (veja / etc / mrouted.conf).
Bandeiras para multicast daemon de roteamento.

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 = ""

# Configure como yes para ativar o roteamento IPX.


# Definida como YES para executar o daemon de roteamento IPX.
# Bandeiras para IPX daemon de roteamento.

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

Alguns diversas opes de IP e parmetros de ATM e ISDN. Este livro no


discutir qualquer uma delas.
# Opes de rede # # Diversos: # # #
icmp_bmcastecho = "NO" # responder para transmitir pacotes de ping

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

Estes parmetros descrevem a utilizao de teclado alternativo mapeamentos quando se utiliza o


apenas os terminais padro baseados em caracteres. Consulte os arquivos em / Usr / share / syscons / keymaps para
arquivos de mapa de chaves e / Usr / share / syscons / fontes para fontes alternativas. Esses parmetros no tm
efeito sobre os displays baseados em X que este livro assume. Voc pode ativar um protetor de tela
definindo a varivel salvador a SIM.
moused_enable = "NO"
moused_type = "auto"
moused_port = "/ dev/psm0"
moused_flags = ""
mousechar_start = "NO"
allscreens_flags = ""
allscreens_kbdflags = ""

#
#
#
#
#
#
#
#
#

Execute o daemon mouse.


Consulte a pgina man para as configuraes disponveis.
Defina a sua porta de mouse.
Quaisquer flags adicionais para moused.
se o intervalo padro 0xd0-0xd3 est ocupou na sua
tabela de cdigos de linguagem, especificar o intervalo alternativa
comear como mousechar_start = 3, ver vidcontrol (1)
Defina este modo vidcontrol para todas as telas virtuais
Defina este modo kbdcontrol para todas as telas virtuais

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

Captulo 30: arquivos de configurao do FreeBSD

sendmail_msp_queue_flags = "-L sm-msp-queue-Ac-q30m"


# Bandeiras para sendmail_msp_queue daemon.

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 = ""

# Execute o daemon de impressora de linha.


# Caminho para lpd, se voc quiser uma diferente.
# Flags para o lpd (se habilitado).

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"

# Execute o daemon de impressora de linha.

Em seguida, vemos:
usbd_enable = "NO"
usbd_flags = ""

# Execute o daemon usbd.


# Flags para usbd (se habilitado).

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 = ""

# Nome do dispositivo de despejo de memria para (se habilitado).


# Diretrio onde despejos de memria sero armazenados
# Usado se dumpdev est habilitado acima, e presente.

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

Ns no discutimos cotas ou de contabilidade neste livro. Olhamos para os parmetros


ibcs2_enable na pgina 164 e linux_enable na pgina 163. Tambm no discutimos
System V e OSF-1 de emulao.
clear_tmp_enable = "NO"

# Clear / tmp na inicializao.

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"

# Nvel de segurana do kernel (veja init (8)),


# Intervalo: -1 .. 3; '-1' o mais inseguro
# Atualiza informaes sobre a verso em / etc / motd (ou NO)

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

Captulo 30: arquivos de configurao do FreeBSD

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"

# Definido para YES para iniciar vinum

Olhamos Vinum na pgina 221. No vamos colocar o seguinte texto em / Etc / rc.conf a
inici-lo na inicializao:
start_vinum = "YES"

# Definido para YES para iniciar vinum

Finalmente, temos algumas entradas diversas:


unaligned_print = "YES"
entropy_file = "/ entropia"
entropy_dir = "/ var / db / entropia"
entropy_save_sz = "2048"
entropy_save_num = "8"
harvest_interrupt = "YES"
harvest_ethernet = "YES"
harvest_p_to_p = "YES"
dmesg_enable = "YES"

#
#
#
#
#
#
#
#
#

imprimir avisos de acesso no alinhados no alpha


Definida como No desabilita o cache entropia atravs de reboots
Definido para NO para desativar o cache entropia via cron.
Tamanho dos arquivos de cache da entropia.
Nmero de cache de entropia arquivos para economizar.
Entropia colheitas dispositivo interromper aleatoriedade
Entropia dispositivo colheitas ethernet aleatoriedade
Entropy dispositivo colheitas ponto-a-ponto aleatoriedade
Salvar dmesg (8) para / var / run / dmesg.boot

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 nosso / etc / rc.conf


Para resumir as mudanas dos padres, / Etc / rc.conf para gw agora deve conter o
seguintes entradas:
hostname = "gw.example.org"
firewall_enable = "YES"
firewall_type = "cliente"
natd_enable = "YES"
natd_interface = "tun0"
syslogd_flags = ""
inetd_enable = "YES"
named_enable = "YES"
sshd_enable = "YES"
nfs_client_enable = "YES"
nfs_server_enable = "YES"
ntpd_enable = "YES"
defaultrouter = "139.130.136.133"
gateway_enable = "YES"
lpd_enable = "YES"
start_vinum = "YES"

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

Definida como YES para ativar a funcionalidade de firewall


Tipo de Firewall (veja / etc / rc.firewall)
Ativar natd (se firewall_enable == YES).
Interface pblica ou IPaddress de usar.
Permitir registro de outros sistemas
Correr inetd
Executar nomeado, o servidor DNS (ou NO).
Ativar o sshd
Este acolhimento um cliente NFS (ou NO).
Este host um servidor NFS (ou NO).
Executar ntpd Network Time Protocol (ou NO).
Defina a porta de entrada padro (ou NO).
Definido para SIM se este host ser um gateway.
Execute o daemon de impressora de linha.
definido para YES para iniciar vinum

O correspondente / Etc / rc.conf para andante agora deve conter os seguintes dados:

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

/ 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

Arquivos que voc precisa para mudar


rc.conf apenas uma parte da histria, claro. O / Etc diretrio contm um grande nmero de
outros ficheiros, quase todos eles relacionados com a configurao. Alguns deles, como o
/ Etc / amd.map e / Etc / dm.conf, destinam-se a subsistemas especficos que no
discutir aqui. Em geral, eles tm comentrios neles para explicar sua finalidade, e eles
tem uma pgina de homem na seo 5 do manual.
A maioria dos arquivos em / Etc se destinam a ser deixado do jeito que so. Alguns, no entanto, ser
definitivamente precisa mudar, e h outros que voc pode precisar de mudar. Neste
seo, vamos olhar para o que voc quase certamente precisam mudar, e na pgina 562 vamos
olhar para o que voc pode ter que mudar. Na pgina 569, vamos olhar para a parte da
mais interessantes que voc normalmente deve deixar em paz.

/ 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

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

561

Captulo 30: arquivos de configurao do FreeBSD

/ 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

Esta informao tem o seguinte significado:

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.

As linhas que comeam com # so comentada: mount ignora-los completamente.

A terceira coluna o tipo de sistema de arquivos (ou trocar).

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.

A segunda coluna um ponto de montagem ou a palavra-chave nenhum no caso de um


partio que no est montada, tal como permuta.
A quarta coluna so bandeiras relativas ao sistema de arquivo especfico que est sendo montado.
Vamos olh-los abaixo.

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.

Para NFS bandeiras de montagem, consulte Captulo 24, pgina 439.


Por que existem tantas entradas com o noauto palavra-chave? Se voc no se preocupam em montar
eles, por que se preocupar para mencion-los?
configfiles.mm, v v4.16 (2003/04/02 04:41:37)

Arquivos que voc precisa para mudar

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

Com a entrada, voc pode simplificar isso:


# Mount / 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 / namedb / named.conf


/ Etc / named / named.conf o principal arquivo de configurao para nomeado, o nome de domnio
Daemon servio. Olhamos para ele no captulo 21. As verses anteriores do nomeado utilizado um
forma diferente de arquivo de configurao armazenado em / Etc / named.boot.

/ 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.

Arquivos que voc pode precisar de mudar


Voc no precisa personalizar qualquer um dos seguintes arquivos para obter o sistema instalado e funcionando.
Voc pode achar que necessrio alter-los para fazer coisas especficas, no entanto.

/ 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:

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

563
0

Captulo 30: arquivos de configurao do FreeBSD


0

/ Home / grog / Scripts / gira-log

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

/ Home / grog / Scripts / gira-log

Consulte a pgina 151 para mais detalhes sobre cron.

/ Etc / csh.cshrc, / etc / csh.login, / etc / csh.logout


Estes so os arquivos de inicializao padro para csh. Veja a pgina man csh (1) para mais detalhes.

/ 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.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

Arquivos que voc pode precisar de mudar

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.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

565

Captulo 30: arquivos de configurao do FreeBSD

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.

O usurio pode bloquear um mximo de 10 MB de memria por processo.

No h limite para o tamanho dos arquivos de dados ou arquivos de dump de memria que o usurio pode criar.

O utilizador pode ter at 64 processos.

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.

O uso total da memria por processo no pode exceder 100 MB.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

Arquivos que voc pode precisar de mudar

566

O sistema usa o esquema de autenticao padro para este usurio.

Veja a pgina de manual login.conf (5) para mais detalhes.

/ 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

Captulo 30: arquivos de configurao do FreeBSD

/ 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

"/ Usr / libexec / getty Pc"

cons25 sobre seguro

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

cons25 sobre seguro


cons25 sobre seguro
cons25 sobre seguro
off seguro

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)

Arquivos que voc pode precisar de mudar

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:

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

569

Captulo 30: arquivos de configurao do FreeBSD

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"

Fiao para baixo dispositivos SCSI


Outro exemplo a chamada fiao para baixo Dispositivos SCSI e ATA. Olhamos para este
assunto na pgina 202. Por padro, o FreeBSD atribui nmeros de unidades SCSI, na ordem em que
ele encontra os dispositivos no barramento SCSI. Se voc remover ou adicionar uma unidade de disco, os nmeros
mudar, e voc pode ter que modificar seu / Etc / fstab arquivo. Para evitar esse problema, voc pode
fio para baixo seus dispositivos SCSI para que um determinado nibus, alvo, ea unidade (LUN) sempre vm em
A linha com a mesma unidade de dispositivo.
A atribuio unidade comea com o primeiro no-fio para baixo unidade para um tipo de dispositivo. Unidades
que no so especificados so tratados como se especificou como LUN 0. Por exemplo, se voc ligar um disco
como sd3, o primeiro disco sem fio atribudo SD4.
O exemplo a seguir mostra as entradas do arquivo de configurao para um sistema com trs Adaptec
2940 adaptadores de host de classe, um deles com dois nibus. O primeiro tem um disco em ID 0 que
deseja chamar / Dev/da0, o segundo tem uma fita na ID 6 que queremos chamar / dev/sa0, o primeiro
nibus do terceiro adaptador tem um disco no ID 3, que queremos chamar / Dev/da2, ea segunda
nibus do terceiro adaptador tem um disco em um ID que queremos chamar / Dev/da1.
hint.scbus.0.at = "ahc0"
hint.scbus.1.at = "ahc1"
hint.scbus.1.bus = "0"
hint.scbus.3.at = "ahc2"
hint.scbus.3.bus = "0"
hint.scbus.2.at = "ahc2"
hint.scbus.2.bus = "1"
hint.da.0.at = "scbus0"
hint.da.0.target = "0"
hint.da.0.unit = "0"
hint.da.1.at = "scbus3"
hint.da.1.target = "1"
hint.da.2.at = "scbus2"
hint.da.2.target = "3"
hint.sa.1.at = "scbus1"
hint.sa.1.target = "6"

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:

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

Arquivos que voc pode precisar de mudar


controlador
controlador
controlador
controlador
disco
disco
disco
fita
dispositivo cd0 em

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

Arquivos que voc no deve mudar


Os arquivos na seo seguinte esto l como um tipo de informao de referncia. Normalmente
voc no deve alter-los, embora possa haver circunstncias excepcionais em que
faz sentido para mud-los.

/ 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.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

571

Captulo 30: arquivos de configurao do FreeBSD

/ 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.network e / etc/rc.network6


Os principais roteiros para iniciar a rede so / Etc / rc.network, que em FreeBSD anteriores
lanamentos foi chamado / Etc / network, e / etc/rc.network6, que inicia os servios IPv6. Voc
normalmente no alterar esses arquivos: eles lem todas as definies necessrias de
/ Etc / rc.conf, e isso o arquivo que voc deve mudar.

/ 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.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

Arquivos que voc no deve mudar

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.

Arquivos de configurao obsoletos


No decorrer do tempo, uma srie de arquivos de configurao vm e vo. Isto pode ser
complicado se voc estiver atualizando um sistema: alguns arquivos de configurao antigos poderiam permanecer e quer
confundi-lo por no funcionar da maneira esperada, ou causar mau funcionamento de alguns
efeito colateral da presena do ficheiro.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

573

Captulo 30: arquivos de configurao do FreeBSD

/ 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.

configfiles.mm, v v4.16 (2003/04/02 04:41:37)

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.

Como as fontes do sistema so armazenados, e como voc pode atualiz-los.

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.

FreeBSD lanamentos e CVS


O projeto FreeBSD mantm toda as fontes do sistema operacional em uma nica fonte de mestre
rvore, denominada repositrio, que mantido pelo Concurrent Versions System ou CVS.
includo na maioria das distribuies multi-CD-ROM do FreeBSD. O repositrio contm
todas as verses do FreeBSD volta a Verso 2.0 ea ltima verso do computador
Sciences Research Group, da Universidade da Califrnia, em Berkeley, 4.4BSD-Lite, mediante
qual foi baseado. Por motivos de direitos autorais FreeBSD Release 1 no foi includa, pois
no momento em que, como resultado dos processos descritos na pgina 8, no foi permitido
distribu-lo livremente. Essa situao mudou no incio de 2002, mas agora tarde demais para incluir
FreeBSD Release 1 no repositrio.
current.mm, v v4.17 (2003/04/09 19:28:00)

581

582

Captulo 31: Manter-se atualizado

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.

Nomes ou marcas simblicas


Alm dos identificadores numricos, cada um dos quais refere-se apenas a um nico arquivo, RCS
permite anexar nomes simblicos para revises especficas. CVS geralmente chama esses
nomes tags, e esse o termo que voc ver na maioria das vezes. FreeBSD utiliza tags para indicar o
revises correspondentes a uma verso especfica.
Por exemplo, no directrio
/ Usr / src / sys / kern, reviso 1.13 da kern_clock.c, a reviso 1.12 do kern_fork.c e reviso
1.21.4.1 de kern_exec.c participar RELENG_2_1_0_RELEASE. Ns vamos olhar para marcas em
mais detalhes na pgina 588.
RCS armazena seus arquivos ou no mesmo diretrio dos arquivos de trabalho de monitoramento, ou em um
subdiretrio RCS se ele existir. Para evitar conflitos de nome de arquivo, RCS acrescenta os personagens , V
para o arquivo RCS, ento o arquivo de trabalho main.c corresponderia ao arquivo RCS main.c, v
Para mais detalhes sobre RCS, consulte a pgina do manual.
CVS uma extenso do RCS que permite o acesso simultneo, tornando-o mais adequado para
projetos que envolvam mais de uma pessoa. Ao contrrio RCS, ele armazena seus arquivos RCS em separado
hierarquia de diretrio, chamado de repositrio. Cada diretrio na rvore de trabalho contm uma
subdiretrio CVS com informaes sobre a localizao do repositrio, as revises do
arquivos e um tag de trabalho, se a reviso no no tronco.
Se voc um desenvolvedor srio, h uma srie de vantagens em manter uma cpia do
repositrio. Se voc um usurio casual, provavelmente um exagero.

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.

CORREO DE SEGURANA lanamentos


Apesar do nome, FreeBSD-STABLE est sujeito a alguns problemas. Toda mudana para um
rvore de cdigo fonte tem o potencial de dar errado. Em muitos casos, voc est mais interessado em
manter o sistema funcionando do que voc na obteno de correes de bugs. FreeBSD tambm
mantm uma filial'' segundo'' estvel consiste no lanamento e s bug muito importante
correes, incluindo atualizaes de segurana. Este ramo no tem um nome bem definido, mas
geralmente referida como o ramo de segurana.

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

Captulo 31: Manter-se atualizado

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.

As pessoas s vezes tm outras razes para querer usar o FreeBSD-CURRENT. O


A seguir esto no boas razes:

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.

Se voc decidir usar -CURRENT, leia as sugestes na pgina 621.


Snapshots
FreeBSD-CURRENT disponvel sob a forma de imagens ISO (CD-ROM). De tempos a
tempo, em intervalos irregulares quando a rvore relativamente estvel, a equipa de libertao faz
instantneo libertar da -CURRENT rvore fonte. Eles tambm esto disponveis em CD-ROM
a partir de alguns fornecedores, verificar o manual on-line para obter detalhes. Isto uma alternativa possvel
para atualizaes on-line, se voc no quiser a verso mais nova do sistema.

Obter atualizaes da Net


H um certo nmero de possibilidades para acompanhar as alteraes dirias para a fonte
rvore. A primeira pergunta : quanto espao voc quer investir em manter as fontes?
A Tabela 31-1 mostra o espao necessrio aproximado por diferentes partes das fontes. Nota
que o repositrio continua crescendo mais rpido do que a rvore fonte, porque inclui todos os antigos
revises bem.

current.mm, v v4.17 (2003/04/09 19:28:00)

Obter atualizaes da Net

585

Tabela 31-1: Tamanhos rvore fonte aproximados


Componente
Tamanho (MB)
Repositrio src / sys
250
Repositrio src
1000
Repositrio portas
300
rvore de cdigo fonte / Usr /
110
src / sys
450
rvore de cdigo fonte /
200
Usr / src
160
rvore de cdigo fonte /
Usr / ports
rvore de objetos / Usr /
obj
O tamanho de / Usr / src / sys inclui os arquivos envolvidos em uma nica construo do kernel. Voc pode
remover todo o diretrio de compilao do kernel, mas se voc quer ser capaz de analisar um pnico
despejar, voc deve manter o kernel.debug apresentar no kernel do diretrio de construo. Isso muda
o tamanho de / Usr / src bem, claro. Os outros arquivos objeto so construdas no diretrio
/ Usr / obj. Novamente, voc pode remover esta rvore de diretrio completo, se voc quiser, com a
rm de comando ou com make clean. Do mesmo modo, o tamanho do / Usr / ports inclui alguns
portos. Ser, naturalmente, crescer muito grande (muitos gigabytes) se voc comear a portar todos
pacotes disponveis.
Se voc est mantendo vrias rvores de origem (digamos, para diferentes verses), voc ainda s
precisa de uma cpia do repositrio.

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 rvore fonte ou repositrio, que no precisa ser atualizado. Isto no


absolutamente necessrio, mas a configurao inicial ser mais rpido se voc fizer isso dessa maneira.

Uma cpia do cvsup programa. Instale-o com pkg_add a partir do CD-ROM


(/ Cdrom / packages / Latest / cvsup.tbz).

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:

current.mm, v v4.17 (2003/04/09 19:28:00)

586

Captulo 31: Manter-se atualizado

* Liberao default = cvs


* Default host = cvsup9.freebsd.org
* Base de default = / src / cvsup
* Default prefix = / home / ncvs
* Excluso padro
* Default use-rel-suffix
* Compressa padro
src-all
portas-tudo
doc-tudo

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).

Aonde quer obt-los? Dois parmetros responder a esta pergunta:


host = cvsup9.freebsd.org especifica o nome da mquina na qual carregar o
arquivos e lanamento = cvs especifica a utilizar o cvs liberar. O liberar opo
obsoleta, mas uma boa idia para deix-lo l at que seja oficialmente removida.

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.

current.mm, v v4.17 (2003/04/09 19:28:00)

Obter atualizaes da Net

587

Que CVSup servidor?


Neste exemplo, ns escolhemos um dos servidores de backup dos EUA, cvsup9.FreeBSD.org. Em
prtica, isso pode no ser a melhor escolha. Um grande nmero de servidores esto espalhados ao redor do
mundo, e voc deve escolher o topograficamente mais prxima de voc. Esta no a mesma
coisa que ser geograficamente mais prximo, eu vivo em Adelaide, Austrlia do Sul, e alguns ISPs
na mesma cidade esto mais longe na Net que muitos sistemas na Califrnia. Contemplar
o web site http://www.FreeBSD.org para uma lista up-to-date.

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

O arquivo / Root / extract-updates contm, entre outras coisas,


cvsup-g-L2 / src / cvsup / cvs-cvsupfile

/ Src / cvsup / cvs-cvsupfile o nome do cvsupfile ns olhamos acima. A outra


parmetros para cvsup especificar no utilizar a GUI (g), e -L2 especifica para produzir
detalhe moderado sobre as aes que esto sendo realizadas.

Obtendo lanamentos individuais


O exemplo cvsupfile acima til se voc est mantendo uma cpia do repositrio. Se
voc s quer manter uma cpia das fontes de uma verso, digamos, Verso 5.0, utilize o
seguinte arquivo em vez disso:
* Default
* Default
* Default
* Default
* Default
* Default
* Default
* Default
src-all

tag = RELENG_5_0_0_RELEASE
lanamento = cvs
host = cvsup9.freebsd.org
base = / usr
prefix = / home / ncvs
excluir
use-rel-suffix
comprimir

para / usr / doc, / usr / ports, / usr / src

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.

current.mm, v v4.17 (2003/04/09 19:28:00)

588

Captulo 31: Manter-se atualizado

Criando a rvore de cdigo fonte


Se voc est acompanhando o repositrio, voc no est terminado ainda. Uma vez que voc tem um up-to-date
repositrio, o prximo passo a criao de uma rvore de origem. Por padro, a rvore de origem chamado
/ Usr / src, mas muito comum para / usr / src para ser um link simblico a uma rvore fonte em um
sistema de arquivos diferente. Voc cria a rvore com cvs.
Antes de verificar qualquer coisa com cvs, que voc precisa saber:
1. O que voc quer fazer check-out? Voc pode especificar isso com um nome de mdulo, que geralmente
corresponde a um nome de diretrio (por exemplo, src). H um nmero superior demdulos de nvel, incluindo doc, portos, src e www.
2. Qual verso voc quer conferir? Por padro, voc tem a verso mais recente,
que FreeBSD-CURRENT. Se voc quiser uma verso diferente, voc precisa especificar
sua tag.
3. Possivelmente, a data da ltima atualizao que voc quer ser includo no checkout. Se
voc especificar esta data, cvs ignora as atualizaes mais recentes. Esta opo frequentemente
til quando algum descobre um bug recentemente introduzida no -CURRENT: voc verifique
os mdulos como eram antes do bug foi introduzido. Voc pode especificar a data
com a -D opo, como veremos a seguir.

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)

Criando a rvore de cdigo fonte

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.

portas contm a coleo de ports.

src contm as fontes no sistema.

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

current.mm, v v4.17 (2003/04/09 19:28:00)

590

Captulo 31: Manter-se atualizado

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

Este comando verifica as fontes do kernel de 10 de dezembro de 2002. Durante o check-out,


cvs cria um subdiretrio CVS em cada diretrio. CVS contm quatro arquivos. Ns olharemos
os valores tpicos Ao verificar a verso do diretrio / Usr / src / usr.bin / du para
Verso 4.6, a partir do repositrio de / Home / ncvs:

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

Note-se que cvs preceder a T para o nome da verso.

Repositrio contm o nome do diretrio no repositrio, que corresponde ao


diretrio atual. Isto corresponde $ CVSROOT / diretrio. No nosso exemplo, ela
conteria src / usr.bin / du.

Raiz contm o nome da raiz do repositrio. No nosso exemplo, isso seria


conter / Home / ncvs.

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

current.mm, v v4.17 (2003/04/09 19:28:00)

Criando a rvore de cdigo fonte

591

A bandeira no incio da linha indica que ao cvs levou para o arquivo. O


significados so:

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.

? significa que cvs encontrou o arquivo no diretrio, mas no existe no repositrio.

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.

Atualizando uma rvore existente


Uma vez que voc tenha criado uma rvore, as regras mudam um pouco. Da prxima vez que voc fizer uma
check-out, os arquivos podem tambm precisam ser eliminados. Alm disso, no h muita diferena
entre sada e actualizao. Para atualizar o / Usr / src diretrio aps a atualizao do
repositrio, fazer:
# Cd / usr / src
# Cvs update-Pd

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.

Usando uma rvore CVS remoto


Uma rvore CVS ocupa muito espao, e est ficando cada vez maior o tempo todo. Se voc no marcar
muito frequentemente, voc pode encontr-lo mais fcil de usar CVS annimos, onde a rvore est em um
sistema diferente. FreeBSD fornece ao servidor anoncvs.FreeBSD.org para esta finalidade.
Por exemplo, para verificar o -CURRENT rvore de origem, execute os seguintes passos:
$ Cd / usr
ir para o diretrio pai
$ CVSROOT =: pserver: anoncvs@anoncvs.FreeBSD.org :/ home / ncvs
definir o caminho do servidor
$ Cvs de login
Voc s precisa fazer isso uma vez
Efetuando login em: pserver: anoncvs@anoncvs.freebsd.org: 2401/home/ncvs
CVS password:
enteranoncvs; no ecoar
$ Cvs co src
servidor cvs: Atualizao src
U src / COPYRIGHT
U src / Makefile
U src/Makefile.inc1
(Etc)
current.mm, v v4.17 (2003/04/09 19:28:00)

current.mm, v v4.17 (2003/04/09 19:28:00)

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.

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

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:

Mantenha os arquivos de sistema e arquivos do usurio em sistemas de arquivos diferentes.

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

Executveis do sistema necessrios ao sistema


tempo de inicializao.
Programas baseados em X na
O sistema de janelas X11.
Portas coleo
tornar o mundo
/ Usr / bin
Programas executveis padro que no esto
/ Usr / compat necessrio na inicializao do sistema.
Portas coleo
Um cdigo contendo diretrio para emulado
/ Usr / games sistemas, como o Linux.
tornar o mundo
/ Usr / include Jogos.
tornar o mundo
/ Usr / lib
Arquivos de cabealho para programadores. tornar o mundo
/ Usr / libexec Arquivos de biblioteca.
tornar o mundo
Arquivos executveis que no so iniciados
/ Usr / libdata direto
tornar o mundo
ly pelo utilizador.
/ Usr / local Diversos arquivos utilizados pelo sistema
Coleo de ports
utililaos.
/ Usr / obj
tornar o mundo
Programas adicionais que no fazem parte do
/ Usr / ports o sistema operativo.
sysinstall, cvs
/ Usr / sbin Objeto arquivos temporrios criados quando tornar o mundo
construir o sistema.
A coleo de ports.
Programas de administrao de sistemas que
so
no necessrio na inicializao do sistema.
/ Usr/X11R6

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

587

Captulo 32: Atualizando o software do sistema

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

Atualizando kernel eo processo


A parte principal de uma atualizao do sistema consiste em uma atualizao sincronizada de ambos kernel e
userland. relativamente simples, mas, dependendo da velocidade da mquina, pode
manter o computador ocupado por vrias horas. Em geral, voc construir e instalar o espao de usurio
primeiro, ento voc construir e instalar o kernel.
A maneira tradicional de construir o espao de usurio :
# Cd / usr / src
# Make mundo

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 reconstri e instala ferramentas de desenvolvimento, incluindo fazer, o compilador C e as bibliotecas.

Ele instala tudo. Voc pode omitir esta etapa com a construo da buildworld alvo
em vez de mundo.

Ele constri o resto do sistema, com exceo do kernel e as ferramentas de inicializao.

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

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

Atualizando kernel eo processo

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

Instale tudo construdo por buildworld.

mundo

Realizar buildworld e installworld.

atualizar

Atualize sua rvore fonte.

a maioria

Construir comandos do usurio, sem bibliotecas ou arquivos de incluso.

installmost

Instale comandos do usurio, mas no bibliotecas ou arquivos de incluso.

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

Construir um kernel para sua arquitetura. Por padro, use o GENRICO


arquivo de configurao do kernel. Voc pode selecionar uma configurao diferente
arquivo, digamos MYKERNEL, com:
# Make buildkernel KERNCONF = MYKERNEL

installkernel
reinstallkernel

ncleo

Por padro, essa meta constri todos os KLDs (kernel carregvel


Mdulos), o que aumenta significativamente o tempo que leva. Se voc
saber que seus KLDs no vai mudar, ou que voc no vai usar
qualquer, voc pode pular constru-las, especificando a -DNO_MODULES
bandeira.
Instale um kernel que voc construiu com buildkernel.
Instale um kernel que voc construiu com buildkernel. No renomeie
o diretrio do kernel anterior para kernel.old. Use esta meta quando a
do kernel anterior no vale a pena manter.
Construir e instalar um kernel.

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.

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

589

Captulo 32: Atualizando o software do sistema

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

Como vimos na tabela 32-1, o installworld alvo muda um nmero de diretrios.


s vezes, porm, ele deixa de idade binrios para trs: ele no remove qualquer coisa que
no substitui. O resultado pode ser que voc acaba usando programas antigos que h muito tempo
passou seu prazo de validade. Uma soluo para este problema olhar para a ltima modificao
data de cada programa nos diretrios. Por exemplo, se voc v:
$ Ls-lrt / usr / sbin
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
...
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda
-R-xr-xr-x 1 root
roda

397 14 jul 11:36 SVR4


422 julho 14 11:29 linux
142080 13 jul 17:20 sshd
68148
6840
27996
45356
11124
6768

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

Consulte a pgina 600 para mais detalhes.


Quando a atualizao do kernel, voc pode receber mensagens de erro como esta:
# Config GENRICO
config: GENRICO: 71: dispositivos com unidades de zero no so susceptveis de ser correto

Alternativamente, voc pode ter uma mensagem mais clara:


# Config GENRICO
.. /.. / Conf / files: coda / coda_fbsd.c deve ser opcional, obrigatrio ou padro
Sua verso do config (8) est fora de sincronia com o seu fonte do kernel.

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.

Atualizando os arquivos de inicializao


No momento em que escrevo, ainda necessrio instalar os arquivos em / Boot separadamente. Faa isso
com:
# Cd / usr / src / sys
# Make install

possvel que essa exigncia vai desaparecer no futuro.

Atualizando os arquivos de configurao


Atualmente, o processo de construo do sistema no instala os arquivos de configurao em / Etc Voc
precisa fazer isso separadamente. Existem dois mtodos possveis:

Faz-lo manualmente:

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

591

Captulo 32: Atualizando o software do sistema

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

3. Compare os arquivos e atualizar os novos com informaes de seu


configurao.

Usar mergemaster, um mtodo semi-automtico de fazer eficazmente a mesma coisa.

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

Estas mensagens so um pouco enganador. Primeiro, os arquivos que so criados so todos em


/ Var / tmp / temproot. Alm disso, a mensagem No pode 'cd' para / usr / src / etc no faz
se referir a qualquer problema com o diretrio, apenas uma indicao de que ele no pode continuar com
a instalao, devido aos erros anteriores.
A verdadeira questo aqui que o usurio smmsp no existe. Como vimos acima, este usurio foi
adicionado algum tempo, em 2002, para resolver alguns problemas de segurana de correio. na nova
/ Etc / master.passwd arquivo, mas ele no est em o que est no sistema. Mas como voc mesclar o
dois arquivos? Uma forma seria ser a de usar mergemaster com a -P opo, mas, em seguida,
mergemaster pede-lhe para cada arquivo que ele encontra para ser diferente, geralmente cerca de
300 deles. Alm disso, as instalaes de edio so relativamente bsico. melhor para editar o
arquivo com antecedncia com um editor.
upgrading.mm, v v4.5 (2003/04/02 04:49:48)

Atualizando os arquivos de configurao

592

Mesclando o arquivo de senhas


Como vimos na pgina 145, o arquivo de senhas bastante complicado. Dependendo da quantidade
o trabalho que voc quer fazer, voc tem um par de possibilidades:

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.

possvel tirar vantagem do facto de que, com a excepo de raiz, a distribuio


/ Etc / master.passwd no contm'' usurios reais.'' Voc pode mesclar as entradas para o real
usurios com as entradas na distribuio / Etc / master.passwd. Isso funciona relativamente
bem, mas ele remove as senhas dos usurios do sistema, ento voc tem que coloc-las novamente.
Veremos como fazer isso abaixo.

A verso de distribuio / Etc / master.passwd algo como isto:


# $ FreeBSD: src / etc / master.passwd, v 1.33 2002/06/23 20:46:44 des Exp $
#
root :: 00:00 :: 00:00: Charlie & :/ raiz :/ bin / csh
toor: *: 0:00 :: 0:00: Bourne-again raiz Superuser :/:
Etc ...

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

O primeiro campo o nome do utilizador. No decurso do tempo, uma srie de pseudo-utilizadores


foram adicionados para reduzir a exposio a problemas de segurana. A principal questo em fundir o
arquivos adicionar esses usurios. Se voc no tem o usurio em sua atual / Etc / master.passwd,
voc pode adicionar a linha do arquivo de distribuio.
O segundo campo contm o senha. No arquivo de distribuio, normalmente *, Que
significa que ele precisa ser configurado antes que voc consiga entrar em tudo. Apenas raiz no tem senha, voc
precisa ser capaz de fazer logon como root para definir senhas. Por outro lado, em sua instalao
upgrading.mm, v v4.5 (2003/04/02 04:49:48)

593

Captulo 32: Atualizando o software do sistema

/ 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:

Faa uma cpia do seu antigo / etc / master.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 / 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

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

Atualizando os arquivos de configurao

594

Mesclando / etc / group


Alm de / Etc / master.passwd, voc provavelmente ter que atualizar / etc / group. Neste
caso, a questo principal adicionar usurios ao roda grupo. A distribuio / Etc / group parece
assim:
# $ FreeBSD: src / etc / group, v 1.27 2002/10/14 20:55:49 rwatson Exp $
#
wheel: *: 0: root
daemon: *: 1:
kmem: *: 2:
sys: *: 3:
tty: *: 4:
operador: *: 5: root
mail: *: 6:
bin: *: 7:
notcia: *: 8:
Homem: *: 9:
jogos: *: 13:
Funcionrios: *: 20:
sshd: *: 22:
smmsp: *: 25:
MailNull: *: 26:
cliente: *: 31:
dilema: *: 53:
uucp: *: 66:
Xten: *: 67:
discador: *: 68:
rede: *: 69:
www: *: 80:
nogroup: *: 65533:
ningum: *: 65534:

Mais uma vez, novos grupos surgiram por razes de segurana. um mtodo semelhante ao
voc usou para / Etc / passwd:

Faa uma cpia do seu antigo / etc / group!

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.

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

595

Captulo 32: Atualizando o software do sistema

Mergemaster, segunda vez


Antes de executar mergemaster novamente, voc deve apagar o contedo da / Var / tmp / temproot.
Caso contrrio, voc pode ver algo como:
*** O diretrio especificado para o ambiente radicular temporrio,
/ Var / tmp / temproot, existe. Isso pode ser um risco de segurana se no confivel
os utilizadores tm acesso ao sistema.

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)

Mergemaster, segunda vez

596

*** Comparao Beginning


***
***
.
***
***
***
...

Temp. / Etc / defaults / rc.conf e instalados tm o mesmo Id CVS, excluindo


Temp. / Etc / defaults / pccard.conf e instalados tm o mesmo Id CVS, excluindo
*** / Etc / defaults / periodic.conf permanecer para sua considerao
Temp. / Etc / mosquitos / queda livre e instalado tem o mesmo Id CVS, excluindo
Temp. / Etc / ISDN / resposta e instalado tem o mesmo Id CVS, excluindo
Temp. / Etc / ISDN / isdntel.sh e instalado tem o mesmo Id CVS, excluindo

Comparao *** completo


Arquivos *** que permanecem para mesclar com a mo:
/ Var/tmp/temproot.1102.15.01.14/etc/defaults/periodic.conf
/ Var/tmp/temproot.1102.15.01.14/etc/mail/freebsd.mc
/ Var/tmp/temproot.1102.15.01.14/etc/mail/freebsd.cf
/ Var/tmp/temproot.1102.15.01.14/etc/mail/sendmail.cf
/ Var/tmp/temproot.1102.15.01.14/etc/mail/freebsd.submit.cf
/ Var/tmp/temproot.1102.15.01.14/etc/mail/mailer.conf
/ Var/tmp/temproot.1102.15.01.14/etc/mtree/BSD.include.dist
/ Var/tmp/temproot.1102.15.01.14/etc/mtree/BSD.local.dist
/ Var/tmp/temproot.1102.15.01.14/etc/mtree/BSD.usr.dist
/ Var/tmp/temproot.1102.15.01.14/etc/mtree/BSD.var.dist
/ Var/tmp/temproot.1102.15.01.14/etc/pam.d/su
/ Var/tmp/temproot.1102.15.01.14/etc/periodic/security/100.chksetuid
/ Var/tmp/temproot.1102.15.01.14/etc/periodic/security/200.chkmounts
/ Var/tmp/temproot.1102.15.01.14/etc/periodic/security/500.ipfwdenied
/ Var/tmp/temproot.1102.15.01.14/etc/periodic/security/600.ip6fwdenied
/ Var/tmp/temproot.1102.15.01.14/etc/periodic/security/700.kernelmsg
/ Var/tmp/temproot.1102.15.01.14/etc/rc.d/local
/ Var/tmp/temproot.1102.15.01.14/etc/crontab
/ Var/tmp/temproot.1102.15.01.14/etc/inetd.conf
/ Var/tmp/temproot.1102.15.01.14/etc/motd
/ Var/tmp/temproot.1102.15.01.14/etc/syslog.conf
*** Voc escolheu a opo automtica de instalao para arquivos que no
existem em seu sistema. A seguir, foram instalados para voc:
/ Etc/periodic/security/510.ipfdenied
/ Etc / peridica / security / security.functions
/ Etc / mac.conf

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

Captulo 32: Atualizando o software do sistema

#
+ # 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.

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

Mergemaster, segunda vez

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.

upgrading.mm, v v4.5 (2003/04/02 04:49:48)

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:

Como vimos no Captulo 2, GENRICO no suporta tudo o que sabe FreeBSD


aproximadamente. Por exemplo, se voc deseja instalar um frobulator Yoyodyne, voc precisa
instalar o suporte especial para it.1

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.

Construir um novo kernel


FreeBSD distribudo na fonte, ea construo de um kernel envolve principalmente a compilao do
arquivos de origem necessrios para o kernel. Para construir um kernel, execute os seguintes passos:

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

Captulo 33: kernels personalizados

A instalao do kernel no instala / Boot / device.hints automaticamente. Se isso no acontecer


existir, copi-lo a partir do diretrio de configurao:
# Cp-p / usr/src/sys/i386/conf/GENERIC.hints / boot / device.hints

O diretrio de compilao do kernel


As fontes do kernel so mantidos no diretrio / Usr / src / sys. O link simblico / sys tambm
aponta para este diretrio. H um certo nmero de subdirectrios / Usr / src / sys que
representam diferentes partes do kernel, mas para os nossos propsitos, o mais importante deles
so a arquitetura diretrios dependentes, como / Usr/src/sys/i386/conf (Para o i386
arquitetura),
/ Usr / src / sys / alpha / conf (Para a arquitetura Alpha), ou
/ Usr/src/sys/sparc64/conf (Para a arquitetura SPARC64), onde voc editar o seu costume
configurao do kernel. Alm disso, o kernel velho estilo construir descrito a seguir constri o
do kernel no diretrio
/ Usr/src/sys/i386/compile,
/ Usr / src / sys / alpha / compilar ou
/ Usr/src/sys/sparc64/compile respectivamente. Observe a organizao lgica dos directory rvore: cada dispositivo, sistema de arquivos suportados, e opo tem seu prprio subdiretrio. No
restante deste captulo, vamos olhar para a arquitetura i386. A maior parte desta se aplica a outros
arquitecturas bem.
Se o seu sistema no tem o diretrio / Usr / src / sys, o cdigo fonte do kernel no foi
instalado. Se voc tem um CD-ROM, as fontes esto no CD-ROM primeiro no diretrio
/ Src. Para instalar a partir do CD-ROM, execute os seguintes passos:
#
#
#
#

mkdir-p / usr / src / sys


ln-s / usr / src / sys / sys
cd /
cat / cdrom / src / SEJD [a-h] * |. tar xzvf -

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

Tradicionalmente, este nome em letras maisculas e, se voc est mantendo mltipla


Mquinas FreeBSD com hardware diferente, uma boa idia nome-lo depois de seu
mquina hostname. Neste exemplo, vamos cham-lo FREEBIE.

building.mm, v v4.15 (2003/04/02 06:30:12)

O diretrio de compilao do kernel

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:
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

FREEBIE - Meu arquivo de configurao pessoal


Para mais informaes sobre este arquivo, por favor, leia a seo de manual sobre
Arquivos de configurao do kernel:
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
O manual tambm est disponvel localmente em / usr / share / doc / manual
se voc instalou a distribuio doc, caso contrrio, sempre ver o
Servidor FreeBSD World Wide Web (http://www.FreeBSD.org/) para o
informaes mais recentes.
Uma lista completa de opes e explicaes mais detalhadas sobre o
linhas de dispositivo tambm est presente no .. /.. / conf / NOTES e arquivos de notas.
Se voc estiver em dvida quanto finalidade ou necessidade de uma linha, verifique primeiro
Nas notas.
$ FreeBSD: src/sys/i386/conf/FREEBIE, v 1.369 2002/10/19 16:54:07 rwatson Exp $

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

Arquivo de configurao de propsito geral

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

Um arquivo de pseudo-configurao completa, com comentrios copiosas. Este arquivo


desceu LINT, mas tambm inclui sugestes de dispositivos. Voc no pode us-lo para
kernels construo. Em vez disso, crie o arquivo LINT como descrito acima.
NOTAS contm apenas informaes especficas da plataforma. Na maioria das inforo est no arquivo independente de plataforma / Usr / src / sys / conf / NOTES.

building.mm, v v4.15 (2003/04/02 06:30:12)

603

OLDCARD

Captulo 33: kernels personalizados

Um arquivo de configurao para laptops que usam controladores PCCard. No momento da


escrito, apoio PCCARD foi amplamente reescrito, mas o novo cdigo faz
no suporta alguns dos dispositivos que o cdigo antigo suporta. Este
arquivo de configurao usa o cdigo PCCARD velho em vez do novo cdigo.
Quando o novo cdigo est completo, ele vai embora.

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

Para arquitetura i386


Para arquitetura alpha
Para a arquitetura SPARC 64

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.

building.mm, v v4.15 (2003/04/02 06:30:12)

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.

building.mm, v v4.15 (2003/04/02 06:30:12)

605

Captulo 33: kernels personalizados

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"

Veja 527 para mais detalhes sobre / Boot / loader.conf.


maxusers destina-se a ser aproximadamente igual ao nmero de utilizadores simultneos que voc
Esperamos ter em sua mquina, mas ele s usado para determinar o tamanho de algum sistema
tabelas. O valor padro 0 diz ao kernel para autosize as tabelas, dependendo da quantidade
de memria no sistema. Se o autosizing no funciona para a sua satisfao, altere este
valor. Mesmo que voc seja a nica pessoa a usar a mquina, voc no deve definir maxusers
menor do que o valor padro de 32, especialmente se voc estiver usando o X ou compilar software. O
razo que a tabela mais importante estabelecido pela maxusers o nmero mximo de
processos, o que definido como 20 + 16 * maxusers, por isso, se voc definir maxusers para um,
s pode ter 36 processos simultneos, incluindo os 18 ou assim que o sistema iniciado
em tempo de boot, e 15 ou ento voc provavelmente ir criar quando voc comea X. Mesmo uma simples
tarefas como a leitura de uma pgina de homem pode iniciar-se nove processos para filtro, descomprimir, e v-lo.
Fixao maxusers para 32 ir permitir que voc tenha at 532 processos simultneos, que
normalmente suficiente. Se, contudo, voc v o temido proc tabela completa erro ao tentar
iniciar outro programa, ou estiver executando um servidor com um grande nmero de usurios simultneos,
voc sempre pode aumentar este nmero e reinicie.
maxusers faz no limitar o nmero de usurios que podem fazer logon na mquina. Ele simplesmente define vrias
tamanhos de mesa para valores razoveis considerando o nmero mximo de usurios que voc provavelmente vai ter em
seu sistema e quantos processos de cada um deles ser executado. provvel que esta
parmetro vai desaparecer no futuro.

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

Para Alpha, apenas a primeira linha


necessrio:
opes

SMP

# Symmetric Kernel MultiProcessor

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.

building.mm, v v4.15 (2003/04/02 06:30:12)

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

# Construir kernel com o gdb (1) smbolos de depurao

Em circunstncias normais, isso no faz diferena: o processo de construo ainda instala o


kernel sem os smbolos de depurao, e no tem nenhum efeito sobre o desempenho. Se, entretanto, voc
ter um acidente, o kernel com smbolos de depurao est disponvel no diretrio de compilao do kernel, em
Neste caso / Usr/src/sys/i386/compile/FREEBIE/kernel.debug, para auxiliar na anlise da
problema. Sem este arquivo ser muito difcil encontr-lo.
Ento por que comentado? Sem smbolos de depurao, o diretrio de compilao ter
cerca de 50 MB de espao em disco. Com smbolos de depurao, ser cerca de 250 MB. O
Projeto FreeBSD no poderia concordar em mud-lo.
Outras opes de depurao
Se voc tiver problemas com o seu sistema, h uma srie de outras opes de depurao
que voc pode usar. A seguir esto as mais importantes:
opes
opes
opes
opes
opes
opes
opes
opes
opes
opes

DDB
BREAK_TO_DEBUGGER
DDB_UNATTENDED
GDB_REMOTE_CHAT
Ktrace
DIAGNSTICO
Invariantes
INVARIANT_SUPPORT
TESTEMUNHA
WITNESS_SKIPSPIN

# No deixe cair em DDB para pnico


# Use gdb protocolo de depurao remota

# Ativar verificaes para detectar impasses e ciclos


# No corra testemunha em spinlocks de velocidade

Essas opes fornecem suporte para vrios recursos de depurao.


DDB
Especificar DDB para incluir o depurador kernel, DDB. Se voc definir essa opo, voc pode tambm
pretende definir o BREAK_TO_DEBUGGER opo,

building.mm, v v4.15 (2003/04/02 06:30:12)

607

Captulo 33: kernels personalizados

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.

Preparando-se para atualizaes


Ao alterar o arquivo de configurao, considere que ele provavelmente no vai ser a nica vez
de fazer essas alteraes. Em algum momento no futuro, voc vai atualizar o sistema, e
voc tem que construir o seu kernel personalizado tudo de novo. Mas o GENRICO ncleo
arquivo de configurao mudaram tambm. Voc tem duas opes: incorporar a
modificaes GENRICO em seu arquivo de configurao, ou incorporar as modificaes
ao antigo GENRICO arquivo para o novo GENRICO arquivo de configurao. Acontece que o
segundo caminho mais fcil.
Para preparar esta abordagem, tentar alterar to pouco quanto possvel no corpo do
arquivo de configurao. Em vez disso, adicionar todas as mudanas at o final, juntamente com um comentrio para que
voc pode facilmente reconhecer as mudanas. Por exemplo, voc pode acrescentar:
# Adicionado pelo grog, 24 de outubro de 2002
# Comente a testemunha, WITNESS_SKIPSPIN e SCSI_DELAY acima
opes
opes

SMP
APIC_IO

# Symmetric Kernel MultiProcessor


# Symmetric (APIC) I / O

opes

BREAK_TO_DEBUGGER

opes

SCSI_DELAY = 3000

# Atraso (em ms) antes de sondagem SCSI

opes
opes
# Opes

CAMDEBUG
MSGBUF_SIZE = 81920
TIMEREQUESTS

# Assistir por atrasos

dispositivo

snp

# Snoop dispositivo - para olhar pta / vty / etc ..

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.

Construir e instalar o novo kernel


A maneira tradicional de construir um kernel BSD foi, assumindo um arquivo de configurao chamado
FREEBIE:
#
#
#
#

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

Captulo 33: kernels personalizados

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

construir e instalar o kernel e klds


construir o kernel e klds
instalar o kernel pr-construdos e klds
reinstalar o kernel e klds
construir e instalar o kernel s

A maneira mais fcil fazer kernel, que subdividido em buildkernel e


installkernel passos. Voc pode executar essas etapas, individualmente, se quiser. Se voc usar
o reinstallkernel alvo, em vez de o installkernel alvo, o / Boot / kernel.old
hierarquia permanece inalterado. Isto til quando construir um kernel anterior no conseguiu arrancar.
Se voc conhece as klds no vo mudar, voc pode acelerar as coisas por no construir
los novamente. Use o -DNO_MODULES bandeira em combinao com qualquer um dos outros alvos para
inibir a construo ou instalao dos klds, como mostrado no ltimo exemplo. No faa isso a primeira
vez que voc compilar o kernel: se voc tem incompatibilidades entre o kernel e os klds, voc
pode achar que impossvel iniciar o sistema. Por outro lado, se voc encontrar o kernel
no inicializar, e voc quiser alterar o arquivo de configurao e reconstru-lo a partir do mesmo
fontes, voc pode poupar algum tempo assim.
O primeiro passo na construo do kernel para executar o configurao programa. Voc no precisa mais
fazer isso sozinho, o buildkernel e ncleo metas de faz-lo para voc. configurao cria um
diretrio no qual se pode construir o kernel e preenche-lo com a infra-estrutura necessria, notadamente
o kernel Makefile e uma srie de arquivos de cabealho.
possvel receber mensagens de erro neste momento se voc tiver feito um erro na configurao
arquivo. Se o configurao comando falhar quando voc d sua descrio kernel, voc tem
provavelmente cometeu um erro simples em algum lugar. Felizmente, configurao ser impresso o nmero da linha
que teve problemas com, para que voc possa encontr-lo rapidamente com um editor. Por exemplo:
config: linha 17: erro de sintaxe

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)

Construir e instalar o novo kernel

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

# Barramento SCSI (obrigatrio)


# Acesso Direto (discos)

dispositivo
dispositivo

miibus
FXP

# Suporte ao barramento MII


# Intel EtherExpress PRO/100B (82557, 82558)

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

Se o novo kernel no arrancar, ou deixa de reconhecer os seus dispositivos, no se desespere. Redefinir o


mquina e, quando o prompt de inicializao for exibido, pressione a barra de espao para interromper o boot.
Em seguida, inicializar o kernel antigo:
Ok descarregar
Ok carga / boot / kernel.old / kernel
Ok inicializao

remover o kernel que o carregador foi carregado


carregar o kernel anterior

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

construir o kernel e klds


reinstalar o kernel e klds

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

Captulo 33: kernels personalizados

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.

Mdulos carregveis do kernel


Como vimos no incio do captulo, voc no pode ter para construir um novo kernel para
implementar a funcionalidade que voc deseja. Em vez disso, basta carreg-lo para o kernel em execuo com um
Kernel Module carregvel (KLD). O diretrio / Boot / kernel / modules contm uma srie
de klds. Para carreg-los, use kldload. Por exemplo, se voc quisesse carregar SCO UNIX
compatibilidade, voc deve digitar:
# Kldload iBCS2

Isso carrega o mdulo / Boot/kernel/modules/ibcs2.ko. Note que voc no precisa


especificar o nome do diretrio, nem o . Ko extenso.
Para descobrir quais mdulos esto carregados, use kldstat:
# Kldstat
Id Refs Endereo
1 5 0xc0100000
2 2 0xc120d000
3 1 0xc121b000
5 1 0xc1771000
6 1 0xc177f000

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.

building.mm, v v4.15 (2003/04/02 06:30:12)

Mdulos carregveis do kernel

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

listar todos sysctls partir withkern


listar todos sysctls
transformar o encaminhamento IP em

Algumas das mais interessantes sysctls so os seguintes:


kern.ostype: FreeBSD
kern.osrelease: 5.0-RELEASE
kern.version: FreeBSD 5.0-RELEASE # 0: qui 16 jan 15:03:31 CST 2003
grog@freebie.example.org :/ usr / src / sys / GENERIC
kern.hostname: freebie.example.org
kern.boottime: {sec = 1007165073, useg = 570637} Sex 17 janeiro 2003 10:34:33
kern.bootfile: / boot / kernel / kernel
kern.init_path: / sbin / init sbin :/ / :/ oinit sbin / init.bak stand / sysinstall :/
kern.module_path: / boot / kernel ;/ boot / inicializao do kernel ;/ / modules mdulos ;/
kern.coredump: 1
kern.corefile: / var / tmp /% N.core
kern.msgbuf: nreach TCP 213.46.243.23:25370 139.130.136.138:25 em via ppp0
net.inet.ip.fw.enable: 1
hw.machine: i386
hw.model: Pentium II / Pentium II Xeon / Celeron
hw.ncpu: 1
hw.byteorder: 1234
hw.physmem: 129949696
hw.usermem: 100556800
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: i386
hw.ata.ata_dma: 1
hw.ata.wc: 1
hw.ata.tags: 0
hw.ata.atapi_dma: 0
compat.linux.osname: Linux
compat.linux.osrelease: 2.2.12
compat.linux.oss_version: 198144

Muitos destes no precisa de descrio, mas alguns so menos bvios:

kern.msgbuf mostra o contedo do buffer de mensagens do kernel, que tambm listado


pelo dmesg programa.

building.mm, v v4.15 (2003/04/02 06:30:12)

613

Captulo 33: kernels personalizados

kern.corefile especifica um modelo para o nome do arquivo core dump gerado


quando um processo de falha. Por padro, o arquivo principal acaba no trabalho atual
diretrio que quer que seja. Ao especificar um nome de caminho absoluto, voc pode
assegurar que qualquer arquivo core vai entrar em um diretrio especfico. O texto % N substitudo por
o nome do programa.

Viver com FreeBSD-CURRENT


Mantendo-se com o FreeBSD-CURRENT exige um trabalho de sua parte. Voc deve estar no
FreeBSD-current@FreeBSD.org lista, que voc pode se juntar a via mordomo. Ver
pgina 17 para obter detalhes sobre como usar o mordomo.

Construir kernels com smbolos de depurao


FreeBSD-CURRENT no to estvel quanto as verses lanadas. Para preparar-se para
possveis problemas, voc deve construir kernels que incluem smbolos de depurao. O resultante
ncleo cerca de 30 MB de tamanho, mas ele vai fazer a depurao com ddb (O depurador de kernel)
ou gdb muito mais fcil. Mesmo se voc no pretende fazer isso mesmo, a informao ser
de grande utilidade para qualquer pessoa que voc pode chamar para ajudar. Ns olhamos como construir uma depurao
do kernel na pgina 605.

Resoluo de problemas em FreeBSD-CURRENT


Voc vontade tiver problemas com o FreeBSD-CURRENT. Quando isso acontece, leia primeiro
a lista de endereos e, possivelmente, os arquivos de email e veja se o problema foi relatado.
Se no tem, para tentar investigar o problema sozinho. Em seguida, envie um email para FreeBSDatual descrevendo o problema e que voc tem feito para resolv-lo.
Se voc tiver algum pnico, por favor, no basta enviar uma mensagem para FreeBSD-CURRENT provrbio
'' Meu kernel entra em pnico quando digito foo.'' Lembre-se que voc est pedindo a algum para usar
seu tempo livre para olhar para o problema. Tornar mais fcil para eles. Passar por este
procedimento:
1. Atualizar para os absolutamente fontes mais recentes, a menos que e-mails vm alertando contra isso.
2. Se voc tiver quaisquer correes locais, apoi-los para fora.
3. Recompilar, a partir do zero, o seu kernel com ddb e com smbolos completos (ver
, supra).
4. Relatar todos os detalhes do pnico. Em um mnimo absoluto, dar todas as informaes a partir de
Mostrar reg e rastrear.
5. Tente despejar o sistema.
6. Se voc for bem sucedido, siga o procedimento discutido na seo seguinte para encontrar
alguma coisa sobre a forma como o problema ocorreu.
Se voc no fizer, pelo menos isso, no h muita chance de que uma mensagem de e-mail para FreeBSDatual ter muito efeito.
building.mm, v v4.15 (2003/04/02 06:30:12)

Viver com FreeBSD-CURRENT

614

Analisando despejos de memria do kernel


Quando o pnico do kernel, e voc despejar ativado, normalmente voc vai ver algo
assim no console:
Armadilha fatal 9: falha de proteo geral, enquanto no modo kernel
ponteiro de instruo
= 0x8: 0xc01c434b
ponteiro de pilha
= 0x10: 0xc99f8d0c
ponteiro do quadro
= 0x10: 0xc99f8d28
segmento de cdigo
Base = 0x0, limite 0xFFFFF, tipo 0x1b
DPL = 0, presso 1, def32 1, gran 1
eflags processador
= Interromper habilitado, retomar IOPL = 0
processo atual
= 2638 (encontrar)
interromper mscara
= Net tty bio cam
nmero armadilha
= 9
pnico: falha de proteo geral
sincronizar os discos ... 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
desistindo de seis buffers
Uptime: 17h53m13s
despejo para dev # ad / 1, offset 786560
despejar ata0: Restaurao dos dispositivos .. feito

Voc no precisa anotar essas informaes: ele salvo no despejo.


Quando voc reiniciar, os scripts de inicializao do sistema achar que voc tem um depsito no designado
dispositivo de despejo (veja acima) e copi-lo eo kernel atual para / Var / crash, assumindo a
diretrio existe e no h espao suficiente para o despejo. Voc ver algo parecido com isso em
o diretrio:
# Cd / var / crash
# Ls-l
-Rw-r - r - 1 root
roda
-Rw-r - r - 1 root
roda
4333000
-Rw-r - r - 1 root
roda
-Rw ------- 1 root
roda 268369920

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:

building.mm, v v4.15 (2003/04/02 06:30:12)

615

Captulo 33: kernels personalizados

# 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

Como voc pode ver, muito maior.


Em seguida, execute gdb contra o kernel eo despejo:
# Gdb-k kernel.debug 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)

Analisando despejos de memria do kernel

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.

Escalada atravs da pilha


O backtrace envia informaes sobre quadros de pilha, que so construdos quando uma funo
chamado. Eles so numerados a partir do quadro mais recente, # 0, que raramente o
que nos interessa. Em geral, ns tivemos um pnico, o quadro mais importante a
funo que chama pnico:
3 0xc033ab03 em trap_fatal (frame = 0xc99f8ccc, eva = 0)
a .. / ../i386/i386/trap.c: 956

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.

0xc033ab03 o endereo de retorno da chamada para a prxima funo a pilha


(Pnico, neste caso).

trap_fatal o nome da funo.

../../i386/i386/trap.c: 956 d o nome do arquivo de origem ea linha


nmero no arquivo. Os nomes de caminho so relativos ao diretrio de compilao do kernel, para que eles
geralmente comeam com .. / .. /.

(Frame = 0xc99f8ccc, eva = 0) so os valores dos parmetros fornecidos a trap_fatal.

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

Captulo 33: kernels personalizados

Descobrir o que realmente aconteceu


Em geral, voc comear a analisar um dump de pnico no quadro de pilha que chamou pnico, mas em
o caso da armadilha fatal que temos aqui, o quadro de pilha mais importante o
abaixo armadilha, neste caso armao 5. a que as coisas deram errado. Selecione-o com o
quadro de comando, abreviadamente f, e lista o cdigo com a lista de (Ou l):
(Kgdb) f 5
5 0xc01c434b em malloc (size = 1024, type = 0xc03c3c60, flags = 0)
.. no .. / / kern / kern_malloc.c: 233
Va = 233 kbp-> kb_next;
(Kgdb) l
228}
229 Freep-> next = savedlist;
230 if (kbp-> kb_last == NULL)
231 kbp-> kb_last = (caddr_t) Freep;
232}
Va = 233 kbp-> kb_next;
234 kbp-> kb_next = ((struct freelist *) va) -> next;
235 # ifdef invariantes
236 Freep = (struct freelist *) va;
237 savedtype = (const char *) Freep-> tipo> ks_shortdesc;
(Kgdb)

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)

A linha onde ocorre o problema 233:


233

va = kbp-> kb_next;

Olhe para a estrutura kbp:


(Kgdb) p * kbp
Dois dlares = {
kb_next = 0xFFFFFFFF 0xFFFFFFFF <Address de bounds>,
kb_last = "0xc1a31000"
kb_calls = 83299,
kb_total = 1164,
kb_elmpercl = 4;
kb_totalfree = 178,
kb_highwat = 20,
kb_couldfree = 3812
}

building.mm, v v4.15 (2003/04/02 06:30:12)

Analisando despejos de memria do kernel

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.

building.mm, v v4.15 (2003/04/02 06:30:12)


TRADUZIPO POR F3R4 @CSROZ
clenilsonsq@yahoo.com.br

Vous aimerez peut-être aussi