com a sua experiência, apenas a leitura da fonte do kernel ajudaria.) #
307
3
O RTFS é sempre o melhor, mas algumas vezes uma pequena leitura facilita a compreensão da fonte.
Stephen Jazdzewski
Alguém que tenha privilégios de edição realmente deve editar esse título.
precisa saber é o seguinte
11
Atualmente, estou seguindo o conselho de Matt Might em seu artigo, O que todo especialista em ciência da computação deve saber . Ele recomendou o ambiente de programação Unix de Kernighan e Pike, Linux Server Hacks, manual de administração de sistemas UNIX e Linux de Nemeth, Synder, Hein e Whaley, desenvolvimento de kernel Linux de Love e programação de rede Unix de Stevens, Fenner e Rudoff.
Anthony
11
@ Anthony, esses são excelentes recursos, mas mais orientados para a terra do usuário / linha de comando. Além disso, particularmente o Linux está mudando muito rapidamente agora, você precisa se manter atualizado. Recursos agradáveis são LWN e kernelnewbies .
vonbrand
Respostas:
36
Aqui estão algumas sugestões sobre como entender o "espírito" do Unix, além das ótimas recomendações que foram feitas nos posts anteriores:
"The Unix Programming Environment", de Kernighan e Pike: um livro antigo, mas mostra a essência do ambiente Unix. Também o ajudará a se tornar um usuário de shell eficaz.
"Unix para o impaciente" é um recurso útil para aprender a navegar no ambiente Unix. Um dos meus favoritos.
Se você quer se tornar um usuário avançado, não há nada melhor do que as "Unix Power Tools" de O'Reilly, que consistem nas dicas e truques coletivos dos profissionais do Unix.
Outro livro que eu não vi mencionado que é uma leitura divertida e educativa é o "Sistemas Operacionais, Design e Implementação", o livro de Andy Tanenbaum que incluía o código fonte de um sistema operacional Unix completo em 12k linhas de código.
+1 para o livro do Lions. O xv6 do MIT é uma versão moderna do Lions v6 que roda em máquinas x86 e usa ANSI C. É possível fazer o download do código-fonte e do livro associado.
Daniel Näslund
8
Livros / sites / manuais que uso frequentemente:
O kernel do Linux : este livro é publicado online como parte do TLDP (The Linux Documentation Project). Ele não é atualizado e não é um manual interno, mas fornece informações úteis e materiais introdutórios sobre os princípios e mecanismos do kernel.
Noções básicas sobre o Linux Kernel: IMHO, é o melhor livro para iniciantes que tem experiência em design e conceito de sistemas operacionais. É aceito como atualizado, abrange a versão 2.6 do kernel. Existe uma versão em HTML do livro na web, mas acho que é provavelmente o warez.
Ao estudar os componentes internos do kernel do linux, você geralmente precisa aprender como o hardware funciona e o que o hardware fornece de maneira abstrata. A Intel tem ótimos manuais para isso.
Em resumo, o kernel do Linux é sobre como construir e instalar o kernel, não sobre os internos do Linux / Unix. Para não dizer que não é um bom livro, mas sou um pouco tendenciosa. Ah, esses dois livros são on-line gratuitos, se você quiser vê-los lá.
Greg KH
5
Linux Systems Programming ou qualquer outro livro de Robert Love (estes são todos os livros da O'Reilly):
Concordo com todos os outros e devo dizer que o APUE de Stevens (tenho a segunda edição) é um clássico. Eu também gostaria de acrescentar que A Arte da Programação UNIX, de Eric Raymond, está na lista com Stevens na minha lista.
Bem, para o BSD Unices, existe o projeto e implementação do sistema operacional 4.4BSD, cujas partes agora estão aparentemente disponíveis gratuitamente em http://www.freebsd.org/doc/en/books/design-44bsd/
Drivers de dispositivo Linux é outro bom recurso. Daria a você outra maneira de entrar no funcionamento interno. Do prefácio:
Este é, na superfície, um livro sobre como escrever drivers de dispositivo para o sistema Linux. Esse é um objetivo digno, é claro; é provável que o fluxo de novos produtos de hardware não diminua tão cedo e alguém precisará fazer com que todos esses novos gadgets funcionem com o Linux. Mas este livro também é sobre como o kernel do Linux funciona e como adaptar seu funcionamento às suas necessidades ou interesses. Linux é um sistema aberto; com este livro, esperamos que seja mais aberto e acessível a uma comunidade maior de desenvolvedores.
Para entender o porquê e o que o kernel deve suportar, dê uma olhada em The Art of Unix Programming, de Eric Raymond. Leva as coisas a um nível filosófico razoavelmente alto, mas combinaria bem com os detalhes minuciosos de outros livros.
Mencionei o primeiro extensivamente (se eu tivesse melhor memória e tivesse mais tempo, saberia muito mais do que sei agora; mas isso é outra história). Atualmente, estou lendo o segundo.
Respostas:
Aqui estão algumas sugestões sobre como entender o "espírito" do Unix, além das ótimas recomendações que foram feitas nos posts anteriores:
"The Unix Programming Environment", de Kernighan e Pike: um livro antigo, mas mostra a essência do ambiente Unix. Também o ajudará a se tornar um usuário de shell eficaz.
"Unix para o impaciente" é um recurso útil para aprender a navegar no ambiente Unix. Um dos meus favoritos.
Se você quer se tornar um usuário avançado, não há nada melhor do que as "Unix Power Tools" de O'Reilly, que consistem nas dicas e truques coletivos dos profissionais do Unix.
Outro livro que eu não vi mencionado que é uma leitura divertida e educativa é o "Sistemas Operacionais, Design e Implementação", o livro de Andy Tanenbaum que incluía o código fonte de um sistema operacional Unix completo em 12k linhas de código.
fonte
Você definitivamente quer ler Programação Avançada no Ambiente Unix por Stevens . Não deixe que o título Avançado o assuste, é muito legível.
fonte
fonte
Livros / sites / manuais que uso frequentemente:
O kernel do Linux : este livro é publicado online como parte do TLDP (The Linux Documentation Project). Ele não é atualizado e não é um manual interno, mas fornece informações úteis e materiais introdutórios sobre os princípios e mecanismos do kernel.
Noções básicas sobre o Linux Kernel: IMHO, é o melhor livro para iniciantes que tem experiência em design e conceito de sistemas operacionais. É aceito como atualizado, abrange a versão 2.6 do kernel. Existe uma versão em HTML do livro na web, mas acho que é provavelmente o warez.
Algum livro sobre gerenciamento de memória virtual
Ao estudar os componentes internos do kernel do linux, você geralmente precisa aprender como o hardware funciona e o que o hardware fornece de maneira abstrata. A Intel tem ótimos manuais para isso.
Manuais do desenvolvedor de software das arquiteturas Intel 64 e IA-32 : Informações atualizadas e detalhadas.
Manual de referência do programador Intel 80386 : Sei que isso é um pouco antigo, mas aprendi muitas coisas com este manual.
Se você precisar estudar o design e o conceito de sistemas operacionais, sugiro o seguinte livro: Conceitos de Sistema Operacional .
fonte
Kernel Linux O'REILLY em poucas palavras
e drivers de dispositivo Linux O'REILLY
fonte
Linux Systems Programming ou qualquer outro livro de Robert Love (estes são todos os livros da O'Reilly):
http://oreilly.com/catalog/9780596009588
fonte
Concordo com todos os outros e devo dizer que o APUE de Stevens (tenho a segunda edição) é um clássico. Eu também gostaria de acrescentar que A Arte da Programação UNIX, de Eric Raymond, está na lista com Stevens na minha lista.
fonte
Bem, para o BSD Unices, existe o projeto e implementação do sistema operacional 4.4BSD, cujas partes agora estão aparentemente disponíveis gratuitamente em http://www.freebsd.org/doc/en/books/design-44bsd/
fonte
Drivers de dispositivo Linux é outro bom recurso. Daria a você outra maneira de entrar no funcionamento interno. Do prefácio:
fonte
Para entender o porquê e o que o kernel deve suportar, dê uma olhada em The Art of Unix Programming, de Eric Raymond. Leva as coisas a um nível filosófico razoavelmente alto, mas combinaria bem com os detalhes minuciosos de outros livros.
fonte
Posso sugerir os dois livros a seguir também (além dos outros):
Mencionei o primeiro extensivamente (se eu tivesse melhor memória e tivesse mais tempo, saberia muito mais do que sei agora; mas isso é outra história). Atualmente, estou lendo o segundo.
fonte