Programa¸c˜ao Linux Avanc¸ada Autores:Mark Mitchell, Jeffrey Oldham e Alex Samuel http://www.advancedlinuxprogramming.com/ http://www.codesourcery.com/ Advanced Linux Programming Copyright 2001 by New Riders Publishing FIRST EDITION: June, 2001 Todos os direitos reservados. Nenhuma parte desse livro pode ser repro- duzida ou transmitida de qualquer forma ou por quaisquer meios, eletˆonico ou mecˆanico, incluindo fotoc´opia, grava¸c˜ao, ou por qualquer meio de arma- zenamento de informa¸c˜ao e sistema de recupera¸c˜ao, exceto para a inclus˜ao de breve cita¸c˜ao em uma publica¸c˜ao. Nu´mero International Standard Bookr: 0-7357-1043-0 Nu´mero de Cart˜ao do Cat´alogo da Biblioteca do Congresso dos EUA: 00-105343 05 04 03 02 01 7 6 5 4 3 2 1 Interpreta¸c˜ao do c´odigo de impress˜ao: Os dois d´ıgitos mais `a direita s˜ao o ano de impress˜ao do livro; o d´ıgito simples mais `a direita ´e o nu´mero de impress˜ao do livro. Por exemplo, o c´odigo de impress˜ao 01-1 mostra que a primeira impress˜ao do livro ocorreu em 2001. Composto em Bembo e MCPdigital pela New Riders Publishing. Im- presso nos Estados Unidos da Am´erica. Trademarks Todos os temos mencionados nesse livro que s˜ao conhecidos serem trade- marks ou service marks foram apropriadamente capitalizados. New Riders Publishing n˜ao pode atestar a precis˜ao dessa informa¸c˜ao. O uso de um termo nesse livro n˜ao deve ser considerado como afetando a validade de qualquer trademark ou service mark. PostScript ´e uma marca registrada de Adobe Systems, Inc. Linux ´e uma marca registrada de Linus Torvalds. Alerta e Aviso Legal Esse livro´e projetado para fornecer informa¸c˜ao sobre Programa¸c˜ao Avan- ¸cada em Ambiente GNU/Linux. Todo esfor¸co foi feito para tornar esse livro t˜ao completo e preciso quanto poss´ıvel, mas nenhuma garantia ou adequa¸c˜ao et´a impl´ıcita. Essa informa¸c˜ao´e fornecida sobre uma basicamente como et´a. Os autores e a New Riders Publishing n˜ao ter˜ao nenhuma dependˆencia nem responsabi- lidade para com nenhuma pessoa ou entidade com rela¸c˜ao a qualquer perda ou dano proveniente da informa¸c˜ao contida nesse livro ou de uso dos discos ou programas que o acompanham. Cr´editos Editor David Dwyer Editor Associado Al Valvano Editor Executivo Stephanie Wall Editor Gerente Gina Brown Editor de Aquisi¸c˜oes Ann Quinn Editor de Desenvolvimento Laura Loveall Gerente de Marketing de Produto Stephanie Layton Gerente de Publicidade Susan Petro Editor de Projeto Caroline Wise Editor de C´opia Krista Hansing Indexador Sˆenior Cheryl Lenser Coordenador de manufatura Jim Conway Designer de Livro Louisa Klucznik Designer de Capa Brainstorm Design, Inc. Pordu¸c˜ao de Capa Aren Howell Revisor Debra Neel composi¸c˜ao Amy Parker Sobre os Autores Mark Mitchell recebeu o grau de bacharel em ciˆencias da computa¸c˜ao em Harvardem1994emestradoemStanfordem1999. Sua´areadeinteresseest´a centrada em complexidade computacional e seguran¸ca computacional. Mark participou sibstancialmente no desenvolvimento da GNU Compiler Collec- tion, e ele tem um forte interesse em qualidade de desenvolvimento de soft- ware. Jeffrey Oldham recebeu o bacharelado do grau de artes em ciˆencias da computa¸c˜ao na Universidade de Rice em 1991. Ap´os trabalhar no Center fo Research on Parallel Computation, ele obteve o doutorado em filosofia em Stanford no ano de 2000. Seu interesse de pesquisa centra-se em engenharia de algor´ıtmos, concentrando-se em fluxo e outros algor´ıtmos combinatoriais. Ele traba no GCC e em software de computa¸c˜ao cient´ıfica. Alex Samuel graduado em Harvard em 1995 com um grau em f´ısica. Ele trabalhou como engenheiro de software na BBN antes de retornar a estudar f´ısica na Caltech e no Stanford Linear Accelerator Center. Alex administrou o projeto Software Carpentry e trabalha em v´arios outros projetos, tais como otimiza¸c˜oes no GCC. Mark e Alex fundaram a CodeSourcery LLC juntos em 1999. Jeffrey juntou-se `a copanhia em 2000. A miss˜ao da CodeSourcery ´e fornecer ferramentas de desenvolvimento para GNU/Linux e outros sis- temas operacionais; para levar `a rede de ferramentas GNU uma qualidade comercial, de acordo com os padr˜oes de conjunto de ferrametnas de desen- volvimento; e fornecer consultoria geral e servi¸cos de engenharia. O Web s´ıte da CodeSourcery ´e http://www.codesourcery.com. Sobre os Revisores T´ecnicos Esses revisores contribuiram com seu consider´avel experiˆencia de traba- lho ao longo de todo o processo de desenvolvimento do Advanced Linux Programming. Quando o livro estava sendo escrito, esses dedicados profissi- onais revisaram todo o materia de conteu´do t´ecnico, a organiza¸c˜ao, e o an- damento. O di´alogo com eles foi fundamental para garantir que o Advanced Linux Programmingse ajustasse `as necessidades dos leitores por informa¸c˜ao da mais alta qualidade t´ecnica. Glenn Becker tem muitas gradua¸c˜oes, todas em teatro. Ele atualmente trabalha como produtor online para SCIFI.COM, o bra¸co online do SCI FI channel, em New York City. Em casa ele usa o Debian GNU/Linux e ´e obcessivo sobre t´opicos com administra¸c˜ao de sistemas, seguran¸ca, interna- cionaliza¸c˜ao de software, e XML. John Dean recebeu um BSc(Hons) da Universidade de Sheffield em 1974, em ciˆencia pura. Como um graduado na Sheffield, John desenvolveu seu in- teresse em computa¸c˜ao. Em 1986 ele recebeu um MSc do Cranfield Institute of Science and Technology em Engenharia de Controle. Enquanto trabalhava para a Roll Royce and Associates, John tornou-se envolvido no desenvolvi- mento de software de controle para inspe¸c˜ao do vapor que emana das usinas nucleares assitida por computador. Uma vez que deichou a RR&A em 1978, ele trabalhou na indu´stria petroqu´ımica desenvolvendo e mantendo software de controle de processo. John worked como desenvolvedor volunt´ario de soft- ware para o MySQL de 1996 at´e maio de 2000, quando juntou-se ao MySQL como um funcion´ario em tempo integral. A ´area de responsabilidade de John ´e MySQL no MS Windows e desenvolvimento de uma nova GUI do cliente MySQL usando o kit de feramentas de aplica¸c˜ao Qt da Trolltech sobre ambos Windows e plantaforma que executa o X-11. Agradecimentos Apreciamos grandemente o trabalho prioneiro de Richard Stallman, sem o qual nunca teria existido o Projeto GNU, e de Linus Torvalds, sem o qual nunca teria existido o kernel do Linux. Incont´aveis outras pessoa trabalha- ram sobre partes do sistema operacional GNU/Linux, e agradecemos a todos eles. Agradecemos `as faculdades de Harvard e Rice pela nosso curso superior, e Caltech e Stanford pelo nosso treinamento de gradua¸c˜ao. Sem todos que nos ensinaram, n´os nunca ter´ıamos ousadia para ensinar outros! W. Richard Stevens escreveu trˆes excelentes livros sobre programa¸c˜ao em ambiente UNIX, e n´os os consultamos extensivamente. Roland McGrath, Ulrich Drepper, e muitos outros escreveram a biblioteca C GNU e sua exce- lente. Robert Brazile e Sam Kendall revisaram o primeiro esbo¸co desse livro e fizeram maravilhosas sugest˜oes sobre ajustes e conteu´do. Nossos editores t´ecnicos e revisores (especialmente Glenn Becker e John Dean) nos mostra- ram erros, fizeram sugest˜oes, e forneceram cont´ınuo encorajamento. Certa- mente, quaisquer erros que restarem n˜ao s˜ao falhas deles! Agradecimentos a Ann Quinn, da New Riders, por se encarregar de todos os detalhes envolvidos na publica¸c˜ao desse livro; Laura Loveall, tamb´em da New Riders, por n˜ao nos permitir ficar muito muito atrazados para nossos compromissos; e Stephanie Wall, tamb´em da New Riders, fpor nos encorajar a escrever esse livro em primeiro lugar! Nos Diga Qual Sua Opini˜ao Como leitor desse livro, vocˆe ´e o mais importante cr´ıtico e comentarista. Valorizamos sua opini˜ao e desejamos conhecer o que estamos fazendo cor- retamene, o que podemos fazer melhor, quais ´areas vocˆe gostaria de nos ver publicar, e quaisquer outras palavras de sabedoria vocˆe est´a disposto a colocar em nosso caminho. Como Editora Executiva para o time de Desenvolvimento Web d New Riders Publishing, I seus coment´arios s˜ao bem vindos. Vocˆe pode enviar-nos um fax, um email, ou escrever-me diretamente para me permitir saber o que vocˆe gostou ou n˜ao sobre esse livro–tamb´em o que podemos fazer para tornar nossos livros melhores. Por favor note que Eu n˜ao posso ajudar vocˆe com problemas t´ecnicos relacionados aost´opicos desselivro, equedevidoaograndevolume decorreio que Eu recebo, Eu posso n˜ao ser capaz de responder a todas as mensagens. Quando vocˆe escrever, por favor tenha certeza de incluir o t´ıtulo desse livro e o autor, bem como seu nome e telefone ou nu´meor de faz. Eu irei cuidadosamente revisar seus coment´arios e compartilh´a-los com os autores e editores que trabalharam no livro. Fax: 317-581-4663 Email: [email protected] Mail: Stephanie Wall Executive Editor New Riders Publishing 201 West 103rd Street Indianapolis, IN 46290 USA Do Tradutor (...) Pero, con todo eso, me parece que el traducir de una lengua en otra, como no sea de las reinas de las lenguas, griega y latina, es como quien mira los tapices flamencos por el rev´es, que aunque se veen las figuras, son llenas de hilos que las escurecen y no se veen con la lisura y tez de la haz, y el traducir de lenguas f´aciles ni arguye ingenio ni elocuci´on, como no le arguye el que traslada ni el que copia un papel de otro papel. (...) [II, 62] El ingenioso hidalgo Don Quijote de la Mancha Miguel de Cervantes Essa tradu¸c˜ao ´e dedicada especialmente a um rapazinho que, na presente data, encontra-se ainda no ventre materno. Espero que todos n´os possamos entregar `as crian¸cas de hoje um mundo melhor que o que n´os encontramos. Melhoremtodosossentidosmasprincipalmentenossentidossocial,ecol´ogico e em qualidade de vida. Traduzido por Jorge Barros de Abreu http://sites.google.com/site/ficmatinf Vers˜ao - 0.23 - 17/12/2012 Da Tradu¸c˜ao • os c´odigos fontes originais dos programas podem ser encontrados no s´ıtios citados na primeira p´agina dessa tradu¸c˜ao. • em algumas p´aginas o latex colocou espa¸camentos extras pelo fato de logo a frente encontrar-se algum objeto que n˜ao pode ser partido em duas p´aginas. Posteriormente pensarei sobre colocar esses objetos no final de cada cap´ıtulo, ou n˜ao, como diria nosso o Ministro Gil. • nas listagens de programas colocou-se uma numera¸c˜ao com intuito de facilitar a explana¸c˜ao e a an´alise do c´odigo em condi¸c˜oes pedag´ogicas. • a tradu¸c˜ao foi feita a partir dos originais em inglˆes no formato pdf e convertidos com o programa pdftotext. Isso quer dizer que alguma for- mata¸c˜ao do original foi eventualmente/inadivertidamente perdida/es- quecida/omitida na convers˜ao para o texto puro. • o cap´ıtulo 9 precisa de mais aten¸c˜ao dos experts em assembly. • a bibliografia foi inclu´ıda pelo tradutor. • na tradu¸c˜ao a express˜ao GNU/Linux foi usada com extensivamente e enf´aticamente. • os c´odigos fontes dos programas foram traduzidos mas a acentua¸c˜ao foi retirada por quest˜ao de compatibilidade com o pacote LaTEX listings.
Description: