ti-enxame.com

Leitura recomendada para entender melhor os componentes internos do Unix / Linux

Eu trabalhei em ambientes * nix nos últimos quatro anos como desenvolvedor de aplicativos (principalmente em C).

Por favor, sugira alguns livros/blogs etc. para melhorar meu conhecimento interno * nix.

54
Hemant

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 eficiente do Shell.

  • "Unix para o impaciente" é um recurso útil para aprender a navegar no ambiente Unix. Um dos meus favoritos.

Se você deseja 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.

36
miguel.de.icaza

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.

21
jacksonh
14
zvolkov

Livros/sites/manuais que uso com freqüência:

  • O Linux Kernel : 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.

  • Entendendo o kernel do Linux: 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 um versão HTML do livro na web, mas acho que é provavelmente o warez.

  • Alguns livros sobre gerenciamento de memória virtual

Enquanto estuda os aspectos 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.

Se você precisar estudar o design e o conceito de sistemas operacionais, sugiro o seguinte livro: Conceitos de Sistema Operacional .

8
dirtybit
6
Stephen Jazdzewski

Linux Systems Programming ou qualquer outro livro de Robert Love (estes são todos os livros da O'Reilly):

http://oreilly.com/catalog/9780596009588

5
Sandy

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; o fluxo de novos produtos de hardware provavelmente não diminuirá tão cedo, e alguém terá que 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.

2
Larry Smithmier

Eu concordo com todos os outros e tenho que dizer que APUE de Stevens (eu tenho a segunda edição) é um clássico. Eu também gostaria de acrescentar que o The Art of UNIX Programming de Eric Raymond está no topo com Stevens na minha lista.

2
λ Jonas Gorauskas

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 /

2
cannedprimates

Para ter uma idéia do 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.

1
Phil Miller

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.

1
Amit