1 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Free Electrons Introduction au noyau Linux Michael Opdenacker Thomas Petazzoni Free Electrons Traduit en français par Matthieu Rioteau © Copyright , Free Electrons. Creative Commons BY-SA 3.0 license Latest update: 20/09/2016, Document sources, updates and translations: Corrections, suggestions, contributions and translations are welcome !
2 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Développement de pilotes Linux embarqué Généralités sur le noyau Caractéristiques de Linux
3 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Espace utilisateur Le noyau Linux dans le système Bibliothèque C (langage) Noyau Linux Matériel Bibliothèque “A”Application “A” Application “B” Notification des événements, mise à disposition d'informationsAppel des services Notification des événementsGestion du matériel
4 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Historique Le noyau Linux est un des composants d'un système qui requiert également des bibliothèques et des applications afin de fournir des fonctionnalités aux utilisateurs. Le noyau Linux fut créé comme passe-temps en 1991 par un étudiant finlandais : Linus Torvalds. Linux commença rapidement à être utilisé comme noyau dans des systèmes d'exploitations libres. Linus Torvalds fut capable de créer une communauté importante et dynamique de développeurs et d'utilisateurs autour de Linux. De nos jours, des centaines de personnes contribuent à chaque version du noyau, des particuliers et des entreprises, grandes ou petites.
5 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com La licence de Linux L'intégralité des sources de Linux sont libres et sont publiées sous la licence « GNU General Public version 2 » (GPL v2). Pour le noyau Linux, cela implique essentiellement que : Quand vous recevez ou achetez un appareil équipé de Linux, vous devriez recevoir les sources de Linux, avec le droits de les étudier, de les modifier et de les redistribuer. Quand vous fabriquez des produits basés sur Linux, vous devez distribuer les sources au bénéficiaire avec les mêmes droits, sans aucune restriction.
6 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Les fonctions clé du noyau Linux Portabilité et compatibilité matérielle Fonctionne sur la plupart des architectures. Flexibilité Tourne sur des super- ordinateurs comme sur de petits microprocesseurs (4 MB de RAM suffisent). Conformité aux standards et interopérabilité. Support complet du réseau. Sécurité Ses failles ne peuvent être cachées. Le code est revu par des nombreux experts. Stabilité et fiabilité Modularité Peut inclure seulement ce dont le système a besoin pour son exécution Facile à programmer Vous pouvez apprendre depuis le code existant. Beaucoup de ressources utiles sur Internet.
7 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Les architectures matérielles supportées Statut de la version Regarder le répertoire arch/ dans les sources du noyauarch/ Minimum: processeur 32 bits, avec ou sans MMU, support de GCC Architectures 32 bits (sous-répertoires de arch/) arm, avr32, blackfin, cris, frv, h8300, m32r, m68k, m68knommu, microblaze, mips, mn10300, parisc, s390, sparc, um, xtensaarch/ armavr32blackfincrisfrvh8300m32rm68km68knommu microblazemipsmn10300pariscs390sparcumxtensa Architectures 64 bits: alpha, ia64, sparc64 alphaia64sparc64 Architectures 32/64 bits powerpc, x86, sh powerpcx86sh Plus de détails dans les sources : arch/ /Kconfig, arch/ /README, ou Documentation/ /
8 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Les appels système L'interface principale entre le noyau et l'espace utilisateur est l'ensemble des appels système. Environ 300 appels système fournissent les principaux services noyau Opérations sur les fichiers et les périphériques, gestion du réseau, communication entre les process, gestion des process, mappage mémoire, timers, threads, primitives de synchronisation, etc. L'interface est stable dans le temps: les développeurs peuvent seulement ajouter de nouveaux appels système. L'interface d'appels système est couverte par la bibliothèque C et les applications en espace utilisateur ne font en général jamais appel directement à l'interface, mais utilisent plutôt la fonction correspondante de la bibliothèque C.
9 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Les systèmes de fichiers virtuels Linux met les informations système et noyau à disposition de l'espace utilisateur à travers des systèmes de fichiers virtuels (des fichiers qui n'existent sur aucun support réel). Pas besoin de connaître le code du noyau pour accéder à ces informations ! Monter /proc: sudo mount -t proc none /proc Monter /sys: sudo mount -t sysfs none /sys Système de fichier Périphérique ou image Dans le cas des systèmes virtuels, toute chaîne convient Point de montage
10 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Détails de /proc Quelques exemples: /proc/cpuinfo: informations sur le processeur /proc/meminfo: statut de la mémoire /proc/version: version du noyau et information sur la compilation /proc/cmdline: ligne de commande du noyau /proc/ /environ: environnement d'appel du process /proc/ /cmdline: ligne de commande du process... et bien d'autres à découvrir par vous-mêmes. Beaucoup de détails sur l'interface /proc sont disponibles dans Documentation/filesystems/proc.txt (presque 2000 lignes) dans les sources du noyau Documentation/filesystems/proc.txt
11 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Les utilisations de Linux embarqué Généralités sur le noyau Schéma du versionage de Linux et processus de développement
12 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Jusqu'à la version 2.6 (1) Une branche majeure stable tous les 2 ou 3 ans Identifiée par un nombre milieu pair Exemples: 1.0, 2.0, 2.2, 2.4 Une branche de développement pour intégrer les nouvelles fonctionnalités et les changements majeurs Identifiée par un nombre milieu impair Exemples: 2.1, 2.3, 2.5 Après quelques temps, une version de développement devient la nouvelle version de base pour la branche stable Le numéro des publication mineures est incrémenté progressivement: , , etc.
13 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Jusqu'à la version 2.6 (2) Version stable Développement Stable Note: En réalité, il y a beaucoup plus de version mineures dans les branches stable et de développement
14 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Changements depuis Linux 2.6 (1) Depuis la version 2.6.0, les développeurs du noyau ont introduit beaucoup de nouvelles fonctionnalités à un rythme soutenu, sans avoir à effectuer de changements majeurs dans les sous-systèmes déjà existants. Ouvrir une nouvelle branche de développement 2.7 (ou 2.9) ne deviendra nécessaire qu'une fois que Linux 2.6 ne sera plus capable d'accepter de nouvelles fonctions sans causer de profonds changements. Grâce à cela, plus de nouvelles fonctions sont rendues disponibles aux utilisateurs à un rythme plus rapide.
15 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Changements depuis Linux 2.6 (2) Depuis la version , les développeurs du noyau se sont mis d'accord sur le modèle de développement suivant: Après la publication d'une version 2.6.x, un délai de 2 semaines est ouvert pendant lequel les changements majeurs sont intégrés Cette intégration est clôturée par la parution d'une version 2.6.(x+1)-rc 1 Une période de correction des bugs est ouverte, pour 6 à 10 semaines A intervalles réguliers pendant cette période, des versions 2.6.(x+1)- rcY sont publiées. Quand elle est considérée suffisamment stable, une version de noyau 2.6.(x+1) paraît, et le processus redémarre
16 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Intégration et correction de bugs IntégrationCorrection de bugs rc rc rc rc rc semaines6 à 10 semaines Mise à jour de correction de bugs
17 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Plus de stabilité dans l'arbre du noyau 2.6 Problème : les corrections de bugs et de sécurité ne paraissent que pour les versions stables du noyau les plus récentes. Certaines personnes ont besoin d'un noyau récent, mais avec un support à long terme concernant les corrections de sécurité. Il est possible d'obtenir un support à long terme auprès d'un fournisseur Linux embarqué payant. Il est possible de réutiliser les sources du noyau présent dans les versions « Ubuntu Long Term Support » (corrections de sécurité gratuites pendant 5 ans). Il est possible de choisir une version annoncée comme « long term » sur la page kernel.org. Elle sera maintenue plus longtemps (2 ou 3 ans) que les autres versions.
18 Free Electrons. Noyau, pilotes et développement Linux embarqué, conseil, formation et support. http//free-electrons.com Nouveautés dans chaque version La liste officielle des changements de chaque version de Linux paraît sous la forme d'une immense liste de patchs. Difficile d'identifier les changements majeurs et de s'en faire une image globale à partir d'une liste de changements individuels. Heureusement, un résumé des changements clé avec suffisamment de détails est disponible sur : (en) commit 3c92c2ba33cd7d666c5f83cc32aa590e794e91b0 Author: Andi Kleen Date: Tue Oct 11 01:28: [PATCH] i386: Don't discard upper 32bits of HWCR on K8 Need to use long long, not long when RMWing a MSR. I think it's harmless right now, but still should be better fixed if AMD adds any bits in the upper 32bit of HWCR. Bug was introduced with the TLB flush filter fix for i386 Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds... ??!??!