Lecture recommandée pour mieux comprendre les internes d'Unix / Linux

J'ai travaillé sur des environnements * nix pour les quatre dernières années en tant que développeur d'applications (principalement en C).

S'il vous plaît suggérer quelques livres / blogs etc. pour améliorer mes connaissances internes de * nix.

    Voici quelques suggestions sur la façon de comprendre «l'esprit» d'Unix, en plus des recommandations fines qui ont été faites dans les posts précédents:

    • "The Unix Programming Environment" de Kernighan et Pike: un vieux livre, mais qui montre l'essence de l'environnement Unix. Cela vous aidera également à devenir un user de shell efficace.

    • "Unix pour l'Impatient" est une ressource utile pour apprendre à naviguer dans l'environnement Unix. Un de mes favoris.

    Si vous voulez devenir un user de puissance, il n'y a rien de mieux que "Unix Power Tools" d'O'Reilly qui se compose des conseils collectifs et des astuces des professionnels d'Unix.

    Le livre d'Andy Tanenbaum, qui contient le code source d'un operating system Unix complet en 12 000 lignes de code, est un autre livre que je n'ai pas vu et qui est amusant.

    Vous voulez absolument lire la programmation avancée dans l'environnement Unix par Stevens . Ne laissez pas le titre avancé vous effrayer, c'est très lisible.

    • Le système de partage de time Unix (10 pages) – l'article UNIX original des auteurs UNIX Ken Thompson et Dennis Ritchie, publié en 1974
    • Conception du operating system Unix – le classique!
    • Commentaire du Lion sur le code source du kernel UNIX et le code source correspondant lui-même

    Livres / sites / manuels que j'utilise fréquemment:

    • Le kernel Linux : Ce livre est publié en ligne dans le cadre de TLDP (The Linux Documentation Project). Il n'est pas à jour et n'est pas un manuel interne, mais fournit des informations utiles et des documents d'introduction sur les principes et les mécanismes du kernel.

    • Comprendre Linux Kernel: À mon humble avis, c'est le meilleur livre pour les débutants qui a des connaissances sur la design et le concept des systèmes d'exploitation. Il est accepté comme étant à jour, couvre la version 2.6 du kernel. Il y a une version HTML du livre sur le web, mais je pense que c'est probablement warez.

    • Quelques livres sur la memory management virtuelle

    Lors de l'étude des composants internes du kernel Linux, vous devez généralement apprendre comment fonctionne le matériel et ce que le matériel fournit de manière abstraite. Intel a de grands manuels pour cela.

    • Manuel du développeur de logiciels pour architectures Intel 64 et IA-32 : Informations détaillées et à jour.

    • Manuel de reference du programmeur Intel 80386 : Je sais que c'est un peu vieux mais j'ai appris beaucoup de choses de ce manuel.

    Si vous avez besoin d'étudier la design et le concept des systèmes d'exploitation, je suggère le livre suivant: Concepts du operating system .

    Le kernel Linux de O'REILLY en quelques mots
    et les pilotes de périphériques Linux O'REILLY

    Linux Systems Programming ou tout autre livre de Robert Love (ce sont tous des livres d'O'Reilly):

    http://oreilly.com/catalog/9780596009588

    Je suis d'accord avec tous les autres et je dois dire que Stevens 'APUE (j'ai la deuxième édition) est un classique. Je voudrais également append que l' art de la programmation UNIX d' Eric Raymond se class bien là-bas avec Stevens sur ma list.

    Eh bien, pour BSD Unices, il y a la design et la mise en œuvre du operating system 4.4BSD, dont certaines parties sont apparemment disponibles gratuitement sur http://www.freebsd.org/doc/en/books/design-44bsd/

    Linux Device Drivers est une autre bonne ressource. Cela vous donnerait une autre façon d'entrer dans le fonctionnement interne. De la préface:

    C'est, en surface, un livre sur l'écriture de pilotes de périphériques pour le système Linux. C'est un objective digne, bien sûr; le stream de nouveaux produits matériels ne devrait pas ralentir de sitôt, et quelqu'un va devoir faire fonctionner tous ces nouveaux gadgets avec Linux. Mais ce livre traite également du fonctionnement du kernel Linux et de l'adaptation de son fonctionnement à vos besoins ou intérêts. Linux est un système ouvert; avec ce livre, nous l'espérons, il est plus ouvert et accessible à une plus grande communauté de développeurs.

    Pour avoir une idée du pourquoi et de ce que le kernel est censé supporter, jetez un coup d'œil à la programmation Art of Unix d'Eric Raymond. Il prend les choses à un niveau philosophique assez élevé, mais il irait bien avec les détails nitty-graveleux d'autres livres.

    Puis-je suggérer les deux livres suivants (en plus des autres):

    • Interface de programmation Linux
    • Programmation du système Linux

    J'ai souvent mentionné le premier (si j'avais plus de memory et plus de time, j'en saurais beaucoup plus que maintenant, mais c'est une autre histoire). Je suis en train de lire le deuxième.