SlideShare une entreprise Scribd logo

Tgosp006dveloppement Noyau Et Driver Sous Gnu Linux 1234984890078859 1

M
mazurus
1  sur  191
Télécharger pour lire hors ligne
Développement noyau, drivers sous GNU Linux Thierry GAYET (ALTEN) – 10/2007 – v1.0 – OSP 006 – Creative Common [email_address]
PLAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1 - INTRODUCTION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Histoire de Linux ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],Linux : premier contact Premier post effectué par Linux Torvald sur le forum  Usenet  (newsgroup) :
Organisation du développement du noyau Linux ,[object Object],Andrew MORTON adjoint au projet, le numéro 2 Alan COX responsable de la partie réseau. Russell KING responsable de l'architecture ARM. Andi KLEEN responsable de l'architecture x86-64. etc … David Miller
Publicité

Recommandé

Développement Noyau Et Driver Sous Gnu Linux
Développement Noyau Et Driver Sous Gnu LinuxDéveloppement Noyau Et Driver Sous Gnu Linux
Développement Noyau Et Driver Sous Gnu LinuxThierry Gayet
 
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...
NetBSD operating system: Clean Code, Ports, Anykernel, pkgsrc and Desktop pro...jihbed
 
Présentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linuxPrésentation de la pile réseau sous gnu linux
Présentation de la pile réseau sous gnu linuxThierry Gayet
 
Admin linux
Admin linuxAdmin linux
Admin linuxbekhti
 
Compilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesCompilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesThierry Gayet
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Christian Charreyre
 
Administration reseau linux
Administration reseau linuxAdministration reseau linux
Administration reseau linuxRiadh Briki
 

Contenu connexe

Tendances

Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
DEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETDEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETTaoufik AIT HSAIN
 
Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesAlexandre LAHAYE
 
service NFS sous linux
 service NFS sous linux service NFS sous linux
service NFS sous linuxSouhaib El
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Anne Nicolas
 
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielleOpen Recipes - Pouquoi le packaging est important pour l'intégration logicielle
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielleAnne Nicolas
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéECAM Brussels Engineering School
 
Administration systeme UNIX
Administration systeme UNIXAdministration systeme UNIX
Administration systeme UNIXwebreaker
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectChristian Charreyre
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de coursISIG
 
09 02 configuration du serveur nfs
09 02 configuration du serveur nfs09 02 configuration du serveur nfs
09 02 configuration du serveur nfsNoël
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeConcevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeChristian Charreyre
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linuxembedded-linux-bdx
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 

Tendances (20)

Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
DEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETDEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLET
 
Open Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarquesOpen Wide : Les outils pour le développement des systemes embarques
Open Wide : Les outils pour le développement des systemes embarques
 
service NFS sous linux
 service NFS sous linux service NFS sous linux
service NFS sous linux
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
 
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielleOpen Recipes - Pouquoi le packaging est important pour l'intégration logicielle
Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarquéProgrammation de systèmes embarqués : BeagleBone Black et Linux embarqué
Programmation de systèmes embarqués : BeagleBone Black et Linux embarqué
 
Administration systeme UNIX
Administration systeme UNIXAdministration systeme UNIX
Administration systeme UNIX
 
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto ProjectConcevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
 
09 02 configuration du serveur nfs
09 02 configuration du serveur nfs09 02 configuration du serveur nfs
09 02 configuration du serveur nfs
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeConcevoir un système Linux embarqué avec Yocto Project - Version révisée
Concevoir un système Linux embarqué avec Yocto Project - Version révisée
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Noyau
NoyauNoyau
Noyau
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 

Similaire à Tgosp006dveloppement Noyau Et Driver Sous Gnu Linux 1234984890078859 1

Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésAlexandre LAHAYE
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Mame Cheikh Ibra Niang
 
Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitationSelman Dridi
 
Mac os vs linux
Mac os vs linuxMac os vs linux
Mac os vs linuxomri hajer
 
Lepton : Description succincte
Lepton : Description succincteLepton : Description succincte
Lepton : Description succincteO10ée
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfSouha Bennani
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
Install party
Install partyInstall party
Install partyhastu2
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?pprem
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitWassim Smati
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)Julien SIMON
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 

Similaire à Tgosp006dveloppement Noyau Et Driver Sous Gnu Linux 1234984890078859 1 (20)

Install party
Install partyInstall party
Install party
 
Historique
HistoriqueHistorique
Historique
 
Les solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarquésLes solutions libres pour les systèmes embarqués
Les solutions libres pour les systèmes embarqués
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitation
 
Mac os vs linux
Mac os vs linuxMac os vs linux
Mac os vs linux
 
Lepton : Description succincte
Lepton : Description succincteLepton : Description succincte
Lepton : Description succincte
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
cours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdfcours-gratuit.com--id-3443.pdf
cours-gratuit.com--id-3443.pdf
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Install party
Install partyInstall party
Install party
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?Quoi de neuf dans la version 11 Alexandria ?
Quoi de neuf dans la version 11 Alexandria ?
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Altera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kitAltera nios ii embedded evaluation kit
Altera nios ii embedded evaluation kit
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Cours linux
Cours linuxCours linux
Cours linux
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Pourquoi linux
Pourquoi linuxPourquoi linux
Pourquoi linux
 

Tgosp006dveloppement Noyau Et Driver Sous Gnu Linux 1234984890078859 1

  • 1. Développement noyau, drivers sous GNU Linux Thierry GAYET (ALTEN) – 10/2007 – v1.0 – OSP 006 – Creative Common [email_address]
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. L'équipe des développeur au complet " Un travail de longue durée par une équipe de Geeks / Nerds / professionnels passionnés. "
  • 8. Les développeurs du noyau GNU Linux officiels
  • 9.
  • 11. Acteurs professionnels du noyau Linux http://www.kernel.org/pub/linux/kernel/people/gregkh/kernel_history/developer_graph-2.6.18.pdf
  • 12. Croissance exponentielle du noyau GNU Linux Linux est un projet en continuelle évolution…
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. Démarrage d'un système GNU Linux Quand le système démarre (boot ou reboot), le CPU invoque le vecteur de reset de façon à récupérer l'adresse d'un programme localisé à exécuter  Pour un système traditionel, cet emplacement est localisé dans le B.I.O.S. de la carte mère. Quand un device bootable est trouvé, la première étape consiste en un chargement du boot loader en RAM (MBR). Le boot loader doit être d'une taille inférieure ou égale à 512 octets (un seul secteur) et son rôle est de charger en RAM puis d'exécuter la seconde étape (GRUB, LILO, …)‏
  • 44. Démarrage d'un système GNU Linux La seconde étape peut afficher un écran de boot (splashscreen) et crée une zone de mémoire (RAMFS) pour charger le rootfs temporaire depuis l'image Initrd. Une fois cette seconde étape de lancée, charge le noyau linux en mémoire vive puis invoque ce dernier. Par le suite il y a commutation entre le rootfs temporaire et celui qui sera utilisé par la suite (réellement). Après que le noyau soit chargé et initialisé, le noyau démarre en premier la première application de l'espace utilisateur via la libc (/sbin/init) en suivant le numéro défini dans /etc/inittab. Dans Ubuntu, /sbin/init est remplacé par upstart : http://upstart.ubuntu.com/
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50. Vue simplifiée d'un diagramme matriciel du noyau GNU Linux 
  • 51. Vue modulaire du noyau GNU Linux 
  • 52. Linux possède plusieurs hypergraphes tel que celui-ci ou bien celui représentant les dépendances des paquets quant à l'établissement d'une distribution conforme LSB (même basique). Vue de l'hypergraphe formé par l'arborescence des sources du noyau 2.4.9  Note : ce schéma n'est pas très lisible mais montre cependant la représentation en oignon (concentrique) du noyau GNU Linux 
  • 53.
  • 54. Linux et le temps réel http://uuu.enseirb.fr/~kadionik/embedded/linux_realtime/linux_realtime9.html http://en.wikipedia.org/wiki/RTLinux http://en.wikipedia.org/wiki/RTAI http://en.wikipedia.org/wiki/Wind_River_Systems http://fr.wikipedia.org/wiki/Xenomai http://www.xenomai.org/index.php/Main_Page http://fr.wikipedia.org/wiki/Xenomai Le noyau Linux n'étant pas Temps réel en natif il est Cependant possible de le Compléter d'un micro-kernel Temps réel où linux est exécuté Comme sous UML, c'est-à-dire sous la forme d'un process 
  • 55.
  • 56. VFS - Virtual File System
  • 57. VFS : Virtual File System Linux n'étant pas monolithique c'est-à-dire qu'il est constitué d'un ensemble de parties comme la pile réseau, la gestion de la mémoire, etc… Bref VFS est la couche d'abstraction de haut niveau intra-kernel regroupant un ensemble de primitives génériques comme open, close, read, write (au nom près). S'il s'agit d'écrire un fichier (une fifo ou autre) sur un disque, hé bien l'implémentation dans le kernel sera la même qu'il s'agisse d'un disque avec un système de fichier cramfs, jffs2 ou 3, ext2 ou 3, reizerfs, etc… VFS est la couche virtuelle qui permet de niveler les appels d'un point de vue noyau ou drivers en se souciant pas du système de fichiers réellement utilisé. En plus de l'API offerte, VFS est un dispatcher sous cette couche, il y a un module spécifique à chaque système de fichiers 
  • 58.
  • 59.
  • 60.
  • 61. Table des systèmes de fichiers courants
  • 62.
  • 64.
  • 65.
  • 66.
  • 67.
  • 69. Organisation de la mémoire 0 GB 1 GB Mémoire virtuelle Mémoire physique  Il est possible d'étendre l'utilisation de la mémoire au dela des 4 Go Via l'utilisation de la mémoire haute (ZONE_HIGHMEM). ZONE_NORMAL : KERNEL PHYSICAL SPACE KERNEL VIRTUAL SPACE USER VIRTUAL SPACE 0 GB 3 GB 4 GB http://www.informit.com/content/images/0131453483/downloads/gorman_book.pdf
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 88.
  • 89.
  • 90.
  • 91.
  • 93. Pile réseau La pile réseau s'interface avec le module VFS et le Process Manager   Pour plus d'information sur la pile réseau, veuillez vous reportez au document "Etude détaillé de la pile réseau sous Linux".
  • 94. SCI (System Call Interface)
  • 95.
  • 96.
  • 97. Pourquoi une méthodologie ? Un kernel panic du noyau GNU linux Le noyau GNU Linux est le cœur du système d'exploitation. Travailler directement au cœur du noyau peut le rendre instable et engendrer un KERNEL PANIC, le rendant donc inutilisable  Avant toute installation d'un nouveau noyau Il est conseillé d'en avoir un autre de référence enregistré au niveau du BOOT loader connu pour ne pas poser de problème lors du démarrage. Développer et surtout tester un nouveau noyau Linux s'accompagne souvent d'un Ensemble de méthodes très utiles.
  • 98.
  • 99. (Dé)chargement de drivers Exemple de listing des modules chargés : $ lsmod (…)‏ snd_pcm_oss 40384 0 snd_mixer_oss 16096 2 snd_pcm_oss (…)‏ En résumé : insmod snd_pcm_oss : OK insmod snd_mixer_oss : OK si snd_pcm_oss déjà chargé sinon NOK modprobe snd_pcm_oss : OK modprobe snd_mixer_oss : OK chargera snd_pcm_oss si pas chargé Le raisonnement est le même pour le déchargement. Seule les commandes changent. rmmod <modulename> remplace insmod et modprobe –r <modulename> remplace modprobe. Modprobe –r, déchargera aussi les autres modules dépendant si non utilisés. modinfo <modulename> donne les informations sur un module comme l'auteur, sa licence, ses paramètres, etc … sudo depmod : permet de recréer le cache de la liste des modules (mécanisme similaire à ldconfig). A noter qu'il est possible de rajouter le nom des modules à charger lors d'un boot dans le fichier de configuration /etc/modules .  Dans le listing suivant, snd_pcm_oss n'as pas de dépendances mais par contre snd_mixer_oss a le module snd_pcm_oss comme dépendance ce qui veut dire qu'il est possible de charger le module snd_pcm_oss de façon unitaire et directement alors que le module snd_mixer_oss nécessitera que le module snd_pcm_oss soit chargé au préalable. Pour info lsmod met en forme les informations générés dans /proc/modules
  • 100. (Dé)chargement de drivers insmod ou modprobe rmmod ou modprobe -r  Lors du chargement dynamique d'un module, cela se passe comme pour le chargement d'une librairie dynamique c'est-à-dire que le module est linké au noyau. Les symboles (primitives) du module sont rajouté et peuvent être utilisés dans d'autres modules ou dans le noyau lui-même.
  • 101.
  • 102. Kernel Mode Linux (KML)‏ http://www.linuxjournal.com/article/6516 http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/ http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/tosh_master_kml_e.ps http://en.wikipedia.org/wiki/Linux_kernel http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/pdf/Kernel-HOWTO.pdf Cette technique réciproque de UML, permet d'exécuter dans le noyau un processus habituellement prévu pour l'espace user. Tout comme pour UML, cela nécessite de patcher le noyau et d'activer la fonctionnalité lors de la Compilation du noyau. Les architectures supportées sont : IA-32 et AMD64. Actuellement, les binaires ne peuvent pas modifier les registres suivants : CS, DS, SS or FS. Ce système peut être cependant intéressant de façon à diminuer la latence : Latency of System Calls (Unit: CPU cycles) : Original Linux (using sysenter) Kernel Mode Linux Getpid 432 12 Gettimeofday 820 404
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128. Attributs de périphériques Les attributs du périphériques peuvent être lus/écrits depuis l'espace utilisateur : Exemple : struct device_attribute { struct attribute attr; ssize_t (*show)(struct device * dev, char * buf, size_t count, loff_t off); ssize_t (*store)(struct device * dev, const char * buf, size_t count, loff_t off); }; #define DEVICE_ATTR(name,mode,show,store)‏ Ajouter / enlever un fichier : int device_create_file(struct device *device, struct device_attribute * entry);