37 votes

Quelles parties du noyau Linux, puis-je lire pour le plaisir?

La programmation n'est pas mon travail principal, bien que je l'apprécie et parfois obtenir payé pour cela. Depuis de nombreuses années maintenant, j'ai entendu parler de Linux et mes amis m'ont montré beaucoup de moi *nixes (ou *nici?), si je m'en tiens à Mac OS.

Pensez vous qu'il y a des parties du noyau Linux que j'ai pu apprécier en regardant qui pourrait m'aider à comprendre quel est l'ensemble des choses à propos de? Par exemple, comment Linux est différent de Darwin?

J'ai grandi avec l'assembleur et le DOS, donc les choses comme les interruptions ou de bas niveau C ne devrait pas être des obstacles à la compréhension. Mais au final, je suis plus intéressé par des concepts de haut niveau, comme le filetage ou de la pile de réseau - je sais que les différents systèmes d'exploitation les faire différemment. Et je suis à la recherche de quelque chose d'amusant, facile et agréable, comme la fin de la nuit de la lecture.

(Remarque: faites un CW, juste au cas où)

Mise à jour: j'ai regardé pour des docs et commença à lire:

32voto

CesarB Points 18048

Je recommande de regarder LXR. Il est plus facile de suivre le déroulement du code (vous n'avez pas à chercher pour chaque fonction qui est appelée — eh bien, vous avez, mais le site fait pour vous).

Quelques points de départ, pour la version actuelle (2.6.30):

  • start_kernel() — il pense que le noyau de l'équivalent de main(). Cette fonction initialise presque tous les sous-systèmes du noyau; la suivre à voir dans le code que vous voyez défiler sur l'écran pendant le démarrage.
  • entry_32.S — système d'appels et les interruptions (x86-32 version, qui devrait être plus proche de ce que vous savez; notez l'utilisation de l'AT&T de l'assemblée dialecte au lieu de l'Intel dialecte que vous pourrait être plus utilisé pour).
  • head_32.S — le noyau point d'entrée. C'est là le noyau démarre après le passage en mode protégé; à la fin, il va appeler start_kernel().
  • arch/x86/boot — le mode réel le code de démarrage. Il commence dans l'assemblée (démarrage/d'en-tête.S), mais rapidement, les sauts dans le code C (à partir de démarrer/main.c). Le mode réel d'initialisation (pour la plupart des appels BIOS qui ont à faire avant de passer en mode protégé); il est compilé à l'aide d'un étrange GCC truc (.code16gcc), ce qui permet la génération de 32 bits en réel en mode code.
  • arch/x86/boot/comprimé — si vous jamais demandé d'où vient la "Décompression Linux..." message vient, c'est à partir d'ici.

11voto

paxdiablo Points 341644

Moi-même, j'ai toujours trouvé que l'ordonnancement des tâches de code un peu marrant :-/

Il me semble que vous devez vous procurer un hobby en dehors de l'industrie. Ou d'une vie :-)

8voto

SpliFF Points 21945

Les commentaires dans le noyau peut être assez drôle. Il y a quelques conseils sur où trouver les meilleurs sur kerneltrap.

arch/sparc/lib/checksum.S- /* Soleil, vous ne pouvez pas me battre, vous ne pouvez pas. Arrêter d'essayer, arch/sparc/lib/checksum.S: * abandonner. Je suis sérieux, je vais le coup de la vie merde arch/sparc/lib/checksum.S- * hors de vous, le jeu est fini, l'extinction des feux.*/

6voto

Jeson Park Points 534

linux-0.01.tar.gz est Historique Noyau et bien pour commencer
il est simple et minuscule et mieux pour démarrer la lecture
(aussi, il ont void main(void) au Lieu de start_kernel() lol :D )

3voto

NoahD Points 2655

Vous pouvez lire ou écrémé, un livre qui décrit le Noyau Linux avant de regarder profondément dans le noyau Linux.

Les livres qui viennent à l'esprit sont:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X