Comment commencer à apprendre la programmation du noyau Android ou simplement la programmation du noyau

Il y a vraiment des parties à l'apprentissage de la programmation du noyau, et vous pouvez prendre l'une ou l'autre:

1) Apprendre comment le noyau existant fonctionne (et potentiellement apporter des modifications à, ou déboguer, la fonctionnalité existante.) La réponse de Joseph Gunn couvre à peu près cela - la première étape consiste à se familiariser avec menuconfig (ou l'un des autres outils de configuration) et à commencer à construire vos propres noyaux.

La façon la plus simple (IMO) de le faire est sur une machine virtuelle, ou potentiellement même un émulateur complet comme bochs.

2) Apprendre à l'étendre avec de nouvelles fonctionnalités. Connaître #1 aide beaucoup, mais il y a beaucoup de profondeur là, et pour la plupart des sortes de fonctionnalités que vous pourriez vouloir ajouter (pilotes, etc), la "surface exposée" n'est en fait PAS si grande par rapport à beaucoup de fonctionnalités internes.

Il y a BEAUCOUP de tutoriels "construire un module hello world" là-bas, ce qui vous donnerait une certaine exposition aux API en question, et il y a des tutoriels d'écriture de pilotes de périphériques aussi. L'écriture d'un simple système de fichiers en mémoire (ou d'une fausse instrumentation sous /sys) est un bon moyen d'apprendre le VFS.