{"id":25,"date":"2011-03-01T11:15:52","date_gmt":"2011-03-01T10:15:52","guid":{"rendered":"http:\/\/www.blaess.fr\/christophe\/blog\/?page_id=25"},"modified":"2011-03-01T11:15:52","modified_gmt":"2011-03-01T10:15:52","slug":"linux-histoire-dun-noyau","status":"publish","type":"page","link":"https:\/\/www.blaess.fr\/christophe\/articles\/linux-histoire-dun-noyau\/","title":{"rendered":"Linux &#8211; Histoire d&rsquo;un noyau"},"content":{"rendered":"<p>Ao\u00fbt 2003<\/p>\n<p style=\"text-align: justify;\">&nbsp;<\/p>\n<p style=\"text-align: justify;\">Comme c&rsquo;est souvent le cas dans les disciplines scientifiques, l&rsquo;informatique est dot\u00e9e d&rsquo;une histoire dont l&rsquo;\u00e9tude est int\u00e9ressante \u00e0 bien des titres. Outre l&rsquo;aspect anecdotique des aventures humaines (ou commerciales), il est possible de retracer la piste de concepts, de langages, de syst\u00e8mes d&rsquo;exploitation et de logiciels d&rsquo;application \u00e0 travers un h\u00e9ritage souvent disparate. Tout naturellement, il en va de m\u00eame pour le noyau Linux, qui bien que relativement jeune, est d\u00e9j\u00e0 riche d&rsquo;une histoire assez cons\u00e9quente, comme nous le verrons dans cet article.<\/p>\n<h2>Anc\u00eatres et influences<\/h2>\n<p>Si je devais d\u00e9finir en une phrase le syst\u00e8me Linux, je dirais qu&rsquo;il s&rsquo;agit, dans cet ordre\u00a0:<\/p>\n<ul>\n<li>d&rsquo;un syst\u00e8me d&rsquo;exploitation compatible Unix,<\/li>\n<li>libre,<\/li>\n<li>d\u00e9velopp\u00e9 \u00e0 l&rsquo;origine, \u00e0 titre de passe-temps par un \u00e9tudiant finlandais et de nombreux b\u00e9n\u00e9voles passionn\u00e9s d&rsquo;informatique.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Cette d\u00e9finition, qui n&rsquo;est pas particuli\u00e8rement innovante, j&rsquo;en conviens, est int\u00e9ressante car elle contient les trois influences majeures qui ont permis la naissance de Linux.<\/p>\n<h3>AT&amp;T Bell Labs &#8211; 1969<\/h3>\n<p style=\"text-align: justify;\">La premi\u00e8re influence de Linux est \u00e9videmment le syst\u00e8me d&rsquo;exploitation Unix. Mais, plus que le syst\u00e8me Unix BSD que nous verrons plus bas, j&rsquo;estime que l&rsquo;h\u00e9ritage essentiel pour l&rsquo;esprit Linux est celui du premier Unix n\u00e9 dans les laboratoires Bell AT&amp;T en 1969. Il s&rsquo;agit d&rsquo;un syst\u00e8me d&rsquo;exploitation rudimentaire dont les p\u00e8res &#8211; Dennis Ritchie et Ken Thompson &#8211; sont de v\u00e9ritables\u00a0<em>hackers<\/em> au sens noble du terme. L&rsquo;esprit de partage des connaissances et de performance intellectuelle pure est v\u00e9ritablement au coeur de la communaut\u00e9 informatique de cette \u00e9poque.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;anecdote est bien connue du petit ordinateur PDP-7 inutilis\u00e9 dans les laboratoires Bell, sur lequel Thompson d\u00e9sirait porter un jeu de sa conception intitul\u00e9 \u00ab\u00a0Space Travel\u00a0\u00bb. Le syst\u00e8me d&rsquo;exploitation \u00e9tant indisponible, il fut contraint de reprendre la programmation de son environnement de travail \u00e0 z\u00e9ro. Aid\u00e9 de son confr\u00e8re Ritchie, il r\u00e9alisa le tour de force de programmer un noyau de syst\u00e8me d&rsquo;exploitation multit\u00e2che, un syst\u00e8me de fichiers, un m\u00e9canisme de gestion m\u00e9moire et un squelette de gestion des p\u00e9riph\u00e9riques en quelques semaines.<\/p>\n<p style=\"text-align: justify;\">Si le syst\u00e8me Unix original appartenait par licence aux laboratoires AT&amp;T Bell, le peu de cas qu&rsquo;ils en faisaient permettait \u00e0 Thompson de le distribuer gratuitement aux utilisateurs int\u00e9ress\u00e9s sous forme de code source. Chose que l&rsquo;on retrouvera naturellement dans les logiciels libres et avec Linux. M\u00eame lorsque la distribution commerciale du syst\u00e8me Unix commen\u00e7a, des licences peu co\u00fbteuses \u00e9taient r\u00e9serv\u00e9es aux universit\u00e9s, permettant aux \u00e9tudiants de se familiariser avec les d\u00e9tails internes du syst\u00e8me.<\/p>\n<p style=\"text-align: justify;\">La situation \u00e9voluera au d\u00e9but des ann\u00e9es 80 quand AT&amp;T r\u00e9alisant le potentiel commercial d&rsquo;Unix d\u00e9cidera d&rsquo;en fermer l&rsquo;acc\u00e8s aux sources, et de limiter la diffusion \u00e0 un syst\u00e8me de licences payantes classiques. Par r\u00e9action, ceci donnera naissance \u00e0 l&rsquo;Unix BSD qui verra le jour sous le soleil de la Californie \u00e0 l&rsquo;Universit\u00e9 de Berkeley, o\u00f9 Thompson avait enseign\u00e9 quelques ann\u00e9es auparavant, essaimant des concepts qui seront mis en oeuvre par les \u00e9tudiants et chercheurs.<\/p>\n<p style=\"text-align: justify;\">La concurrence entre les deux branches d&rsquo;Unix, sera d&rsquo;ailleurs profitable \u00e0 l&rsquo;ensemble des syst\u00e8mes puisque de cette \u00e9mulation na\u00eetront de nombreuses innovations (sockets d&rsquo;un c\u00f4t\u00e9, IPC de l&rsquo;autre par exemple). D&rsquo;autre part, les descendants libres de l&rsquo;Unix BSD (FreeBSD, NetBSD, etc.) donneront naissance \u00e0 de nombreux outils qui seront r\u00e9utilis\u00e9s dans les distributions Linux.<\/p>\n<h3>MIT AI Lab &#8211; 1984<\/h3>\n<p style=\"text-align: justify;\">L&rsquo;\u00e9volution des syst\u00e8mes d&rsquo;exploitation vers des mod\u00e8les de plus en plus ferm\u00e9s rendait impossible l&rsquo;examen et l&rsquo;am\u00e9lioration du code source par l&rsquo;utilisateur curieux d\u00e9sireux de l&rsquo;adapter \u00e0 son besoin personnel. Si cette situation s&rsquo;av\u00e9rait supportable pour beaucoup d&rsquo;utilisateurs habitu\u00e9s aux syst\u00e8mes propri\u00e9taires, elle l&rsquo;\u00e9tait nettement moins pour les passionn\u00e9s qui aimaient se plonger dans le coeur du syst\u00e8me pour en comprendre le fonctionnement.<\/p>\n<p style=\"text-align: justify;\">En 1984, un jeune chercheur du laboratoire d&rsquo;Intelligence Artificielle du MIT d\u00e9cida de lancer un projet de substitut libre pour le syst\u00e8me Unix, o\u00f9 tous les outils seraient disponibles gratuitement et sous forme de code source. Richard Stallman fonda \u00e0 cette occasion le projet GNU (Gnu is Not Unix) et surtout lui donna un cadre formel important\u00a0: la GPL (General Public License) qui permet de garantir la libert\u00e9 de modification et redistribution, ainsi que la p\u00e9rennit\u00e9 de l&rsquo;acc\u00e8s aux sources d&rsquo;un logiciel.<\/p>\n<p style=\"text-align: justify;\">En quelques ann\u00e9es, le syst\u00e8me GNU s&rsquo;enrichit d&rsquo;un grand nombre d&rsquo;utilitaires simples (ls, cp, mv, etc.) ou complexes (\u00e9diteur Emacs, shell Bash, compilateur gcc, etc.) mais il manquait encore le noyau, le coeur du syst\u00e8me d&rsquo;exploitation, charg\u00e9 de r\u00e9guler les acc\u00e8s aux ressources des diff\u00e9rentes applications. Pour r\u00e9aliser ce travail, un projet nomm\u00e9 HURD d\u00e9marra\u00a0; toutefois, plut\u00f4t que de \u00ab\u00a0copier\u00a0\u00bb le comportement d&rsquo;un syst\u00e8me existant (comme Linux avec Unix), un v\u00e9ritable travail de conception ind\u00e9pendant fut entrepris. Malheureusement, en raison de l&rsquo;ampleur de la t\u00e2che, le d\u00e9veloppement du noyau Hurd fut long, et pendant de nombreuses ann\u00e9es les outils GNU existaient sans qu&rsquo;aucun noyau ne soit pr\u00e9sent dans ce futur syst\u00e8me d&rsquo;exploitation. C&rsquo;est naturellement dans cette niche que viendra se glisser le noyau Linux.<\/p>\n<h3>Amsterdam 1987<\/h3>\n<p style=\"text-align: justify;\">Le troisi\u00e8me point que j&rsquo;ai mentionn\u00e9 pour d\u00e9finir le noyau Linux insiste sur l&rsquo;aspect hobby de sa cr\u00e9ation. Il s&rsquo;agissait v\u00e9ritablement d&rsquo;un passe-temps d&rsquo;\u00e9tudiant, destin\u00e9 \u00e0 mettre en pratique les connaissances th\u00e9oriques apprises dans le domaine des syst\u00e8mes d&rsquo;exploitation. En cela, Linux avait d\u00e9j\u00e0 un c\u00e9l\u00e8bre pr\u00e9d\u00e9cesseur\u00a0: le syst\u00e8me Minix.<\/p>\n<p style=\"text-align: justify;\">En 1987, Andrew Tanenbaum, chercheur et professeur \u00e0 la\u00a0<em>Vrije Universiteit<\/em> d&rsquo;Amsterdam, cr\u00e9a un mini-syst\u00e8me Unix simplifi\u00e9, capable de fonctionner sur des ordinateurs de type PC-XT (processeurs 8088) auquel il donna le nom de\u00a0<em>Minix<\/em>. Utilisant son code source pour enseigner la th\u00e9orie des syst\u00e8mes d&rsquo;exploitation, il le publia dans un ouvrage c\u00e9l\u00e8bre \u00ab\u00a0Operating Systems: Design and Implementation\u00a0\u00bb.<\/p>\n<p style=\"text-align: justify;\">Tanenbaum n&rsquo;a jamais d\u00e9sir\u00e9 transformer Minix en un syst\u00e8me v\u00e9ritablement utilisable en production, mais au contraire le conserver comme outil d&rsquo;\u00e9tude et d&rsquo;enseignement. En cons\u00e9quence, il refusait la plupart des extensions propos\u00e9es par les utilisateurs. De plus la licence d&rsquo;utilisation de Minix \u00e9tait tr\u00e8s contraignante, puisqu&rsquo;elle ne permettait pas la redistribution de versions modifi\u00e9es du code source.<\/p>\n<p style=\"text-align: justify;\">Toutefois, en 1991, Linus Torvalds lut avec grand int\u00e9r\u00eat le livre de Tanenbaum, exp\u00e9rimenta sur son PC flambant neuf le syst\u00e8me Minix, et d\u00e9cida de l&rsquo;utiliser comme source d&rsquo;inspiration pour r\u00e9\u00e9crire un nouveau syst\u00e8me d&rsquo;exploitation, sans n\u00e9anmoins r\u00e9utiliser le code source de Minix.<\/p>\n<h2>Naissance<\/h2>\n<p style=\"padding-left: 30px;\">From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)<br \/>\nNewsgroups: comp.os.minix<br \/>\nSubject: What would you like to see most in minix?<br \/>\nDate: 25 Aug 91 20:57:08 GMT<\/p>\n<p style=\"padding-left: 30px;\">Hello everybody out there using minix &#8211;<\/p>\n<p style=\"padding-left: 30px;\">I&rsquo;m doing a (free) operating system (just a hobby, won&rsquo;t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I&rsquo;d like any feedback on things people like\/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).<br \/>\nI&rsquo;ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I&rsquo;ll get something practical within a few months, and I&rsquo;d like to know what features most people would want. Any suggestions are welcome, but I won&rsquo;t promise I&rsquo;ll implement them\u00a0\ud83d\ude42<\/p>\n<p style=\"padding-left: 30px;\">Linus (torvalds@kruuna.helsinki.fi)<\/p>\n<p style=\"padding-left: 30px;\">PS. Yes &#8211; it&rsquo;s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that&rsquo;s all I have\u00a0:-(.<\/p>\n<p><em>Traduction<\/em> :<\/p>\n<p style=\"padding-left: 30px;\">Salut \u00e0 tous les utilisateurs de Minix,<\/p>\n<p style=\"padding-left: 30px;\">Je suis en train de r\u00e9aliser un syst\u00e8me d&rsquo;exploitation (gratuit), (c&rsquo;est juste un passe-temps, il ne sera pas important et professionnel comme le Gnu) pour les clones d&rsquo;AT 386 (ou 486). Il mijote depuis le mois d&rsquo;avril, et commence \u00e0 \u00eatre au point. J&rsquo;aimerais des remarques sur ce que les gens aiment ou non dans Minix, car mon syst\u00e8me lui ressemble un peu (m\u00eame organisation du syst\u00e8me de fichiers, pour des raisons pratiques, entre autres).<br \/>\nJ&rsquo;y ai port\u00e9 Bash (1.08) et Gcc (1.40), et tout semble fonctionner. Je devrais donc disposer de quelque chose d&rsquo;utilisable dans les mois \u00e0 venir, et j&rsquo;aimerais conna\u00eetre les fonctionnalit\u00e9s que la plupart d&rsquo;entre vous aimeraient. Toutes les suggestions sont les bienvenues, mais je ne promets pas de toutes les impl\u00e9menter\u00a0\ud83d\ude09<\/p>\n<p style=\"padding-left: 30px;\">Linus (torvalds@kruuna.helsinki.fi)<\/p>\n<p style=\"padding-left: 30px;\">PS\u00a0: Oui, il est ind\u00e9pendant de tout code provenant de Minix, et il dispose d&rsquo;un syst\u00e8me de fichiers multi-thread. Il n&rsquo;est PAS portable (utilisation de la commutation de t\u00e2ches 386, etc.) et ne supportera probablement jamais rien d&rsquo;autres que les disques durs AT car ce sont les seuls dont je dispose\u00a0:-(.<\/p>\n<p style=\"text-align: justify;\">C&rsquo;est par ce message dans un groupe Usenet consacr\u00e9 au syst\u00e8me Minix, que Linus Torvalds, \u00e9tudiant en seconde ann\u00e9e d&rsquo;informatique de l&rsquo;Universit\u00e9 d&rsquo;Helsinki, a fait conna\u00eetre publiquement son \u00ab\u00a0passe-temps sans pr\u00e9tention\u00a0\u00bb. En quelques semaines des passionn\u00e9s ont harcel\u00e9 Linus de questions, si bien qu&rsquo;il a rapidement mis les sources de son projet en acc\u00e8s libre. C&rsquo;est \u00e0 ce moment qu&rsquo;Ari Lemke, le responsable informatique g\u00e9rant le serveur\u00a0<code>ftp.funet.fi<\/code>, dut cr\u00e9er le r\u00e9pertoire de stockage des sources, et choisit le nom \u00ab\u00a0Linux\u00a0\u00bb en guise de plaisanterie sur \u00ab\u00a0Linus&rsquo;s Unix\u00a0\u00bb.<\/p>\n<p style=\"text-align: justify;\">Le noyau Linux est officiellement n\u00e9 avec une version 0.0.1 publi\u00e9e le 17 septembre 1991. La taille totale des sources repr\u00e9sentait moins de 64\u00a0Ko avec compression (les versions actuelles compress\u00e9es p\u00e8sent au moins 20\u00a0Mo). Il disposait toutefois de cinquante appels-syst\u00e8me, c&rsquo;est-\u00e0-dire l&rsquo;essentiel des fonctionnalit\u00e9s de base de gestion des processus, de la m\u00e9moire et des fichiers\u00a0:<\/p>\n<p style=\"text-align: center;\"><code>fork()<\/code>,\u00a0<code>exit()<\/code>,\u00a0<code>waitpid()<\/code>,\u00a0<code>execve()<\/code>,\u00a0<code>getpid()<\/code>,\u00a0<code>getppid()<\/code>,\u00a0<code>setuid()<\/code>,\u00a0<code>getuid()<\/code>,\u00a0<code>geteuid()<span style=\"font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;\">,<\/span><\/code><\/p>\n<p style=\"text-align: center;\"><code>setgid()<\/code>,\u00a0<code>getgid()<\/code>,<code>getegid()<\/code>,\u00a0<code>setpgid()<\/code>,\u00a0<code>g<\/code><code>etpgrp()<\/code>,\u00a0<code>setsid()<\/code>,\u00a0<code>open()<\/code>,\u00a0<code>creat()<\/code>,\u00a0<code>close()<\/code>,<\/p>\n<p style=\"text-align: center;\"><code>read()<\/code>,\u00a0<code>write()<\/code>,\u00a0<code>lseek()<\/code>,\u00a0<code>access()<\/code>,\u00a0<code>ioctl()<\/code>,<code>fcntl()<\/code>,\u00a0<code>mkdir()<\/code>,\u00a0<code>rmdir()<\/code>,\u00a0<code>dup()<\/code>,\u00a0<code>dup2()<\/code>,\u00a0<code>pipe()<\/code>,<\/p>\n<p style=\"text-align: center;\"><code>link()<\/code>,\u00a0<code>unlink()<\/code>,\u00a0<code>stat()<\/code>,\u00a0<code>fstat()<\/code>,\u00a0<code>chmod()<\/code>,\u00a0<code>chown()<\/code>,\u00a0<code>utime()<\/code>,<code>chdir()<\/code>,\u00a0<code>chroot()<\/code>,\u00a0<code>sync()<\/code>,<\/p>\n<p style=\"text-align: center;\"><code>stime()<\/code>,\u00a0<code>time()<\/code>,\u00a0<code>kill()<\/code>,\u00a0<code>signal()<\/code>,\u00a0<code>alarm()<\/code>,\u00a0<code>pause()<\/code>,\u00a0<code>brk()<\/code>,\u00a0<code>umask()<\/code>,\u00a0<code>nice()<\/code>,\u00a0<code>times()<\/code>,\u00a0<code>uname()<\/code>.<\/p>\n<p style=\"text-align: justify;\">Les d\u00e9veloppeurs appr\u00e9cieront l&rsquo;importance du travail de Linus Torvalds pour impl\u00e9menter seul toutes ces primitives syst\u00e8me dans un projet \u00ab\u00a0amateur\u00a0\u00bb. A ceci s&rsquo;ajoutent les points d&rsquo;entr\u00e9e pour les seize appels-syst\u00e8me suivants, qui n&rsquo;\u00e9taient pas encore impl\u00e9ment\u00e9s, et renvoyaient toujours l&rsquo;erreur\u00a0<code>ENOSYS<\/code> :<\/p>\n<p style=\"text-align: center;\"><code>mknod()<\/code>,\u00a0<code>mount()<\/code>,\u00a0<code>umount()<\/code>,<code>rename()<\/code>,\u00a0<code>ftime()<\/code>,\u00a0<code>ulimit()<\/code>,\u00a0<code>ustat()<\/code>,\u00a0<code>ptrace()<\/code>,\u00a0<code>acct()<\/code>,\u00a0<code>phys()<\/code>,<\/p>\n<p style=\"text-align: center;\"><code>lock()<\/code>,\u00a0<code>mpx()<\/code>,\u00a0<code>stty()<\/code>,<code>gtty()<\/code>,\u00a0<code>prof()<\/code>,\u00a0<code>break()<\/code>.<\/p>\n<p style=\"text-align: justify;\">Au d\u00e9but, les passionn\u00e9s de Linux communiquaient par l&rsquo;interm\u00e9diaire du groupe Usenet\u00a0<code>comp.os.minix<\/code>. Cela aga\u00e7a rapidement les supporters ardents de Minix qui voyait d&rsquo;un mauvais oeil ce nouveau syst\u00e8me prendre chaque jour plus d&rsquo;importance, et fin janvier 1992, une discussion enflamm\u00e9e entre Linus Torvalds et Andrew Tanenbaum eut lieu. Ce dernier, \u00e0 vrai dire d&rsquo;assez mauvaise foi, d\u00e9clara dans un moment d&rsquo;irritation que Linux \u00e9tait un syst\u00e8me d\u00e9j\u00e0 obsol\u00e8te du fait de sa mauvaise conception (Linux \u00e9tait bas\u00e9 sur un noyau monolithique, d&rsquo;un seul bloc, alors que Minix \u00e9tait con\u00e7u comme un ensemble de micro-noyaux dialoguant entre eux). Piqu\u00e9 au vif, Linus Torvalds r\u00e9pliqua en mettant en avant tous les d\u00e9fauts de Minix, et une conversation haute en couleurs s&rsquo;ensuivit. Quelques extraits\u00a0:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Andrew Tanenbaum\u00a0: \u00abLes micro-noyaux ont d&rsquo;ors et d\u00e9j\u00e0 gagn\u00e9 [\u2026] Linux est un syst\u00e8me monolithique, c&rsquo;est un bond en arri\u00e8re dans les ann\u00e9es soixante-dix. C&rsquo;est comme prendre un programme \u00e9crit en langage C et qui fonctionne, et le r\u00e9\u00e9crire en Basic.\u00bb<\/li>\n<li style=\"text-align: justify;\">Linus Torvalds\u00a0: \u00abVous utilisez [le fait d&rsquo;\u00eatre professeur] comme une excuse pour les limitations de Minix\u00a0? D\u00e9sol\u00e9 mais j&rsquo;ai encore plus d&rsquo;excuses et Linux bat d\u00e9j\u00e0 all\u00e9grement Minix. Sans compter que les meilleures portions de code de Minix semblent avoir \u00e9t\u00e9 \u00e9crites par Bruce Evans.\u00bb<\/li>\n<li style=\"text-align: justify;\">Andrew Tanenbaum\u00a0: \u00abJe maintiens que la conception d&rsquo;un noyau monolithique en 1991 est une erreur fondamentale. Soyez content de ne pas \u00eatre mon \u00e9tudiant\u00a0; vous n&rsquo;auriez pas eu une bonne note pour un tel travail\u00a0\ud83d\ude42 [\u2026] \u00c9crire un syst\u00e8me d&rsquo;exploitation limit\u00e9 au 386 en 1991 ne vous aurait rapport\u00e9 qu&rsquo;un &lsquo;F&rsquo;.\u00bb<\/li>\n<li style=\"text-align: justify;\">Linus Torvalds\u00a0: \u00abVous pr\u00e9tendez \u00e9crire Minix en guise de hobby\u00a0? Qui fait de l&rsquo;argent avec Minix\u00a0? Qui donne Linux gratuitement&nbsp;?\u00bb<\/li>\n<\/ul>\n<p>La cons\u00e9quence de cette gu\u00e9rilla virtuelle fut la cr\u00e9ation en mars 1992 du groupe Usenet\u00a0<code>comp.os.linux<\/code>.<\/p>\n<h2>Enfance<\/h2>\n<p style=\"text-align: justify;\">Le d\u00e9veloppement du noyau Linux a progress\u00e9 assez lentement au d\u00e9part, puisque ce n&rsquo;est qu&rsquo;en mars 1994 que Linus Torvalds le jugea suffisamment complet et stable pour \u00eatre dot\u00e9 d&rsquo;un num\u00e9ro 1.0. Ce noyau \u00e9tait assez limit\u00e9, mais contenait d\u00e9j\u00e0 les \u00e9l\u00e9ments essentiels d&rsquo;une station de travail Unix (r\u00e9seau, gestion de la m\u00e9moire, IPC, divers syst\u00e8mes de fichiers, pilotes de p\u00e9riph\u00e9riques divers\u2026) Certaines \u00e9tapes importantes du d\u00e9veloppement sont r\u00e9sum\u00e9es dans le tableau suivant\u00a0:<\/p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n<tbody>\n<tr>\n<th>Noyau<\/th>\n<th>Fonctionnalit\u00e9 ajout\u00e9e<\/th>\n<\/tr>\n<tr>\n<td rowspan=\"3\">0.10<\/td>\n<td>Appel-syst\u00e8me\u00a0<code>mknod()<\/code> pour cr\u00e9er des noeuds g\u00e9n\u00e9riques du syst\u00e8me de fichiers, et\u00a0<code>symlink()<\/code>\/<code>readlink()<\/code> pour cr\u00e9er et suivre des liens symboliques.<\/td>\n<\/tr>\n<tr>\n<td>Appels-syst\u00e8me\u00a0<code>mount()<\/code>\/<code>umount()<\/code> pour attacher des p\u00e9riph\u00e9riques blocs dans le syst\u00e8me de fichiers.<\/td>\n<\/tr>\n<tr>\n<td>Gestion compl\u00e8te des signaux (blocage, interception, attente, etc.)<\/td>\n<\/tr>\n<tr>\n<td>0.11<\/td>\n<td>Chargement \u00e0 la demande des pages des fichiers ex\u00e9cutables.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\">0.12<\/td>\n<td>Multiples consoles virtuelles en mode texte.<\/td>\n<\/tr>\n<tr>\n<td>M\u00e9canisme de m\u00e9moire virtuelle utilisant une partition de swap.<\/td>\n<\/tr>\n<tr>\n<td>Appel-syst\u00e8me\u00a0<code>select()<\/code> permettant le multiplexage d&rsquo;entr\u00e9es-sorties.<\/td>\n<\/tr>\n<tr>\n<td>0.95<\/td>\n<td>Le noyau lance au d\u00e9marrage un processus\u00a0<code>\/bin\/init<\/code> en mode utilisateur qui sera charg\u00e9 de toute l&rsquo;initialisation du syst\u00e8me.<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\">0.96a<\/td>\n<td>Apparition du r\u00e9pertoire\u00a0<code>net\/<\/code> dans les sources du noyau, et impl\u00e9mentation des sockets BSD.<\/td>\n<\/tr>\n<tr>\n<td>Acc\u00e8s aux ports d&rsquo;entr\u00e9es-sorties depuis l&rsquo;espace utilisateur apr\u00e8s autorisation avec\u00a0<code>ioperm()<\/code>\/<code>iopl()<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>Appel-syst\u00e8me\u00a0<code>mmap()<\/code> permettant la projection de fichiers ou de p\u00e9riph\u00e9riques dans l&rsquo;espace d&rsquo;adressage.<\/td>\n<\/tr>\n<tr>\n<td>0.96c<\/td>\n<td>Syst\u00e8me de fichiers\u00a0<code>extfs<\/code> (con\u00e7u par R\u00e9my Card \u00e0 l&rsquo;Universit\u00e9 de Jussieu).<\/td>\n<\/tr>\n<tr>\n<td>0.96c-2<\/td>\n<td>Syst\u00e8me de fichiers\u00a0<code>msdos<\/code>.<\/td>\n<\/tr>\n<tr>\n<td>0.97.5<\/td>\n<td>Pseudo syst\u00e8me de fichiers\u00a0<code>\/proc<\/code> permettant de configurer le noyau depuis l&rsquo;espace utilisateur.<\/td>\n<\/tr>\n<tr>\n<td>0.99<\/td>\n<td>Apparition des syst\u00e8mes de fichiers\u00a0<code>iso9660<\/code> (CD-Rom) et\u00a0<code>NFS<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Dans le noyau 1.0, se trouvent d\u00e9j\u00e0 de nombreux pilotes de p\u00e9riph\u00e9riques, des syst\u00e8mes de fichiers divers, etc. On peut consid\u00e9rer que la structure g\u00e9n\u00e9rale des noyaux actuels \u00e9tait d\u00e9j\u00e0 pr\u00e9sente dans le noyau 1.0. La plupart des fonctionnalit\u00e9s &#8211; vues depuis l&rsquo;espace utilisateur &#8211; \u00e9taient pr\u00e9sentes, m\u00eame si certaines \u00e9taient impl\u00e9ment\u00e9es de mani\u00e8re encore relativement sommaire.<\/p>\n<p style=\"text-align: justify;\">On peut noter \u00e9galement la parution en mars 1994 du premier num\u00e9ro de la revue am\u00e9ricaine \u00ab\u00a0Linux Journal\u00a0\u00bb, qui deviendra rapidement incontournable dans la communaut\u00e9 de passionn\u00e9s du monde entier. Ce premier num\u00e9ro, qui annonce en premi\u00e8re page la sortie imminente du noyau 1.0 contient outre un comparatif &#8211; d\u00e9j\u00e0\u00a0! &#8211; entre Linux et NT, une interview de Linus Torvalds par Robert Young (le futur fondateur de la compagnie RedHat).<\/p>\n<h2>Adolescence<\/h2>\n<p style=\"text-align: justify;\">Au bout de quelques semaines, Linus initia une nouvelle branche de d\u00e9veloppement avec un noyau 1.1.0. \u00c0 cette occasion, il fut d\u00e9cider de laisser simultan\u00e9ment en circulation deux versions du noyau\u00a0: une version stable sur laquelle ne seront apport\u00e9es que les corrections de bogues \u00e9ventuels, et une version de d\u00e9veloppement sur laquelle les nouveaux algorithmes, pilotes, fonctionnalit\u00e9s, etc. seront test\u00e9s. Pour les diff\u00e9rencier, la num\u00e9rotation des versions doit \u00eatre explicite. Le num\u00e9ro d&rsquo;un noyau est compos\u00e9 de trois chiffres successifs\u00a0:<\/p>\n<ul>\n<li>un num\u00e9ro majeur de version<\/li>\n<li>un num\u00e9ro mineur de version<\/li>\n<li>un num\u00e9ro de mise \u00e0 jour.<\/li>\n<\/ul>\n<p>Voici quelques exemples.<\/p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n<tbody>\n<tr>\n<th>Num\u00e9ro<\/th>\n<th>Majeur<\/th>\n<th>Mineur<\/th>\n<th>Mise \u00e0 jour<\/th>\n<\/tr>\n<tr>\n<td>1.0.5<\/td>\n<td>1<\/td>\n<td>0<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>1.1.65<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>65<\/td>\n<\/tr>\n<tr>\n<td>1.2.13<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>1.3.29<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>29<\/td>\n<\/tr>\n<tr>\n<td>2.0.6<\/td>\n<td>2<\/td>\n<td>0<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2.1.67<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>67<\/td>\n<\/tr>\n<tr>\n<td>2.2.19<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2.3.55<\/td>\n<td>2.<\/td>\n<td>3<\/td>\n<td>55<\/td>\n<\/tr>\n<tr>\n<td>2.4.21<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<td>21<\/td>\n<\/tr>\n<tr>\n<td>2.5.51<\/td>\n<td>2<\/td>\n<td>5<\/td>\n<td>51<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">La r\u00e8gle \u00e9tablie pr\u00e9cise que les noyaux stables, ceux que l&rsquo;on peut se permettre d&rsquo;utiliser pour des applications de production ont un num\u00e9ro mineur pair\u00a0: 1.0.x, 1.2.x, 2.0.x, 2.2.x et 2.4.x. Les noyaux ayant un num\u00e9ro mineur impair sont uniquement utilis\u00e9s \u00e0 des fins de test et de d\u00e9veloppement. Certaines mises \u00e0 jour ne sont m\u00eame pas compilables pour toutes les options disponibles.<\/p>\n<p style=\"text-align: justify;\">Pour un syst\u00e8me en production, on n&rsquo;utilisera donc qu&rsquo;un noyau stable. Mais les versions stables continuent d&rsquo;\u00e9voluer en parall\u00e8le des versions de d\u00e9veloppement au gr\u00e9 des bogues d\u00e9couverts et corrig\u00e9s. Il est donc bon pour l&rsquo;administrateur de suivre l&rsquo;\u00e9volution des noyaux stables pour v\u00e9rifier si ses machines en utilisation courante ont besoin d&rsquo;une mise \u00e0 jour ou non (correction de failles de s\u00e9curit\u00e9 par exemple).<\/p>\n<p style=\"text-align: justify;\">Durant le d\u00e9veloppement du noyau 1.1 au cours de l&rsquo;ann\u00e9e 1994, apparut une grande nouveaut\u00e9\u00a0: le support d&rsquo;architectures autres que le processeur i386 du PC. Les processeurs MIPS d&rsquo;abord, puis Alpha, 68000, et Sparc ont \u00e9t\u00e9 peu \u00e0 peu int\u00e9gr\u00e9s dans le noyau Linux.<\/p>\n<p style=\"text-align: justify;\">Une seconde nouveaut\u00e9 importante mise en chantier dans le noyau 1.1 fut l&rsquo;utilisation de modules chargeables dans le noyau. Il devint alors possible de compiler des pilotes de p\u00e9riph\u00e9riques ou des syst\u00e8mes de fichiers, sous forme de fichiers objet externes, et de ne les ins\u00e9rer dans la m\u00e9moire du noyau en fonctionnement que lorsque le besoin s&rsquo;en fait vraiment sentir. Inutile dor\u00e9navant de recompiler syst\u00e9matiquement le noyau apr\u00e8s chaque installation pour disposer du support pour les p\u00e9riph\u00e9riques pr\u00e9sents, ou d&rsquo;utiliser un \u00e9norme noyau monolithique int\u00e9grant tous les pilotes possibles (avec les risques de conflits que cela implique lors des d\u00e9tections du mat\u00e9riel). Les distributions peuvent installer un noyau minimal et y ins\u00e9rer uniquement les modules correspondants aux p\u00e9riph\u00e9riques d\u00e9tect\u00e9s.<\/p>\n<p style=\"text-align: justify;\">Le noyau 1.2, version stable int\u00e9grant ces \u00e9volutions apparut en mars 1995. Jusqu&rsquo;\u00e0 pr\u00e9sent les seuls utilisateurs r\u00e9guliers de Linux \u00e9taient essentiellement des \u00e9tudiants, des passionn\u00e9s d&rsquo;Unix, des d\u00e9veloppeurs\u2026 mais avec le noyau 1.2 un nouveau public commen\u00e7a \u00e0 appara\u00eetre\u00a0: celui des professionnels qui appr\u00e9ciaient le c\u00f4t\u00e9 libre et gratuit de ce syst\u00e8me Unix fonctionnant sur du mat\u00e9riel peu on\u00e9reux. Bien entendu, la diffusion de Linux dans les entreprises \u00e9tait encore tr\u00e8s confidentielle, mais d\u00e9j\u00e0 des administrateurs syst\u00e8me installaient \u00ab\u00a0discr\u00e8tement\u00a0\u00bb des serveurs Mail, Web ou NFS bas\u00e9 sur un noyau Linux. Des projets industriels complets commen\u00e7aient d\u00e9j\u00e0 (surtout aux \u00c9tats-Unis) \u00e0 se b\u00e2tir autour de stations Linux r\u00e9put\u00e9es pour leur stabilit\u00e9 et l&rsquo;accessibilit\u00e9 de tout le syst\u00e8me.<\/p>\n<p style=\"text-align: justify;\">Le d\u00e9veloppement continua sur une version 1.3, puis un an plus tard environ, un nouveau noyau stable fut publi\u00e9. Ce nouveau noyau avait \u00e9t\u00e9 consid\u00e9rablement modifi\u00e9 dans sa conception, au point que Linus consid\u00e9ra qu&rsquo;il \u00e9tait temps de changer de num\u00e9ro majeur de version.<\/p>\n<h2>Maturit\u00e9<\/h2>\n<p style=\"text-align: justify;\">En juin 1996, Linux 2.0 vit le jour. Il supportait entre autres nouveaut\u00e9s l&rsquo;architecture Power PC, le support des syst\u00e8mes multi-processeurs (SMP), un nombre de p\u00e9riph\u00e9riques beaucoup plus \u00e9tendu, des fonctionnalit\u00e9s r\u00e9seau tr\u00e8s compl\u00e8tes, et le point le plus important\u00a0: une mascotte\u00a0! Le c\u00e9l\u00e8bre pingouin Tux dessin\u00e9 par Larry Ewing fut int\u00e9gr\u00e9 dans les sources du noyau sous forme de fichier\u00a0<em>GIF<\/em>.<\/p>\n<p style=\"text-align: justify;\">Le d\u00e9veloppement aboutissant au noyau 2.2 fut plut\u00f4t long, durant plus de deux ans et demi. Linux 2.2.0 ne vit le jour qu&rsquo;en janvier 1999. De nombreuses fonctionnalit\u00e9s internes avaient \u00e9t\u00e9 ajout\u00e9es, surtout celles concernant les normes Posix.1b (temps-r\u00e9el) et Posix.1c (threads). Le passage \u00e0 la biblioth\u00e8que GlibC, en remplacement des pr\u00e9c\u00e9dentes biblioth\u00e8ques C sp\u00e9cifiques Linux, repr\u00e9senta aussi une \u00e9tape importante. Comme toujours, de nouveaux pilotes de p\u00e9riph\u00e9riques firent leur apparition.<\/p>\n<p style=\"text-align: justify;\">On put remarquer \u00e9galement \u00e0 partir des noyaux 2.2 un \u00e9largissement sensible du public concern\u00e9 par Linux\u00a0: le d\u00e9veloppement des environnements graphiques faciles d&rsquo;acc\u00e8s (Kde, Gnome\u2026), la multiplication des distributions \u00ab\u00a0grand public\u00a0\u00bb simplifiant l&rsquo;installation du syst\u00e8me, et la couverture plus large des p\u00e9riph\u00e9riques ont rendu moins ardus les premiers contacts avec Linux. Il devint de plus en plus fr\u00e9quent de rencontrer dans les entreprises des PC fonctionnant sous Linux.<\/p>\n<p style=\"text-align: justify;\">La d\u00e9mocratisation de Linux, passa aussi par un meilleur support des p\u00e9riph\u00e9riques \u00ab\u00a0multim\u00e9dia\u00a0\u00bb\u00a0: carte son, carte vid\u00e9o, etc. ainsi qu&rsquo;une simplification de l&rsquo;acc\u00e8s aux fonctionnalit\u00e9s graphiques \u00e9l\u00e9mentaires \u00e0 travers le support\u00a0<em>Frame Buffer<\/em> offert par le noyau.<\/p>\n<p style=\"text-align: justify;\">Le d\u00e9veloppement du noyau 2.2 fut ralentit durant quelques temps par une p\u00e9riode de flottement, d\u00e9clench\u00e9e par le d\u00e9m\u00e9nagement de Linus Torvalds, venu s&rsquo;installer en Californie pour travailler dans une compagnie jusque l\u00e0 assez obscure\u00a0: Transmeta. Le myst\u00e8re entretenu pendant un certain temps autour de l&rsquo;activit\u00e9 de cette soci\u00e9t\u00e9 (la cr\u00e9ation de microprocesseurs g\u00e9n\u00e9riques) engendra un flot de sp\u00e9culations diverses sur les intentions de Linus (qui, du fait de son d\u00e9m\u00e9nagement, \u00e9tait absent d&rsquo;Internet) et sur l&rsquo;avenir incertain de Linux.<\/p>\n<p style=\"text-align: justify;\">En septembre 1998, nous pouvons \u00e9galement relever un point important pour la communaut\u00e9 Linux francophone\u00a0: le premier num\u00e9ro de notre confr\u00e8re \u00ab\u00a0Linux Magazine France\u00a0\u00bb. D&rsquo;abord trimestriel puis bimestriel, il deviendra vite mensuel avec le succ\u00e8s que l&rsquo;on conna\u00eet malgr\u00e9 un paysage encombr\u00e9 par de nombreuses publications &#8211; souvent \u00e9ph\u00e9m\u00e8res &#8211; essayant de profiter de la vague ascendante Linux.<\/p>\n<h2>Cycle de d\u00e9veloppement<\/h2>\n<p>Le sch\u00e9ma de d\u00e9veloppement des noyaux Linux est globalement le suivant\u00a0:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Quelques semaines &#8211; voire quelques mois &#8211; apr\u00e8s la publication d&rsquo;un noyau stable, lorsque les corrections indispensables ont \u00e9t\u00e9 apport\u00e9es, et que les rapports de bogue semblent diminuer, Linus Torvalds cr\u00e9e une nouvelle branche avec un noyau de d\u00e9veloppement sur lequel chacun est libre d&rsquo;apporter des contributions vari\u00e9es.<\/li>\n<li style=\"text-align: justify;\">Au bout de quelques mois, lorsque suffisamment de nouveaut\u00e9s ont \u00e9t\u00e9 propos\u00e9es et accept\u00e9es, Linus d\u00e9cide un gel des fonctionnalit\u00e9s (<em>features freeze<\/em>). \u00c0 partir de ce moment, on n&rsquo;ajoute plus de fonctionnalit\u00e9s dans le noyau, mais les d\u00e9veloppeurs se consacrent \u00e0 l&rsquo;impl\u00e9mentation de celles choisies.<\/li>\n<li style=\"text-align: justify;\">Quand le d\u00e9veloppement se ralentit, et que les tests semblent se stabiliser, Linus d\u00e9clare un gel du code (<em>code freeze<\/em>), \u00e9tape durant laquelle le code ne doit plus \u00eatre modifi\u00e9 en profondeur, mais seulement corrig\u00e9 en fonction des tests des utilisateurs. Assez rapidement, des versions\u00a0<em>pr\u00e9-<\/em> du noyau sont publi\u00e9es, indiquant que la stabilisation est proche, et que les utilisateurs sont encourag\u00e9s \u00e0 tester les nouveaut\u00e9s. Enfin, lorsque les tests apparaissent concluants, la version z\u00e9ro du noyau stable est publi\u00e9e.<\/li>\n<li style=\"text-align: justify;\">On notera qu&rsquo;au moment de la mise en projet d&rsquo;un nouveau noyau de d\u00e9veloppement, Linus Torvalds transmet \u00e0 une autre personne la charge d&rsquo;assurer la maintenance du noyau stable\u00a0: David Weinehall pour les 2.0, Alan Cox pour les 2.2, et Marcelo Tosatti pour les 2.4.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Linus assure la coh\u00e9rence des sources officielles du noyau de d\u00e9veloppement, bien qu&rsquo;il existe des branches parall\u00e8les destin\u00e9es \u00e0 tester des algorithmes particuliers. Ces noyaux, propos\u00e9s par des personnalit\u00e9s importantes du d\u00e9veloppement Linux sont num\u00e9rot\u00e9s avec un pr\u00e9fixe identifiant leur auteur\u00a0:\u00a0<code>-ac<\/code> (Alan Cox),\u00a0<code>-mjc<\/code> (Michael Cohen),\u00a0<code>-aa<\/code> (Andrea Arcangeli), etc. Ils sont en g\u00e9n\u00e9ral encore moins stables que les versions de d\u00e9veloppement officielles, Linus Torvalds ayant tendance \u00e0 \u00eatre (beaucoup) plus regardant pour accepter des modifications que les auteurs de ces noyaux exp\u00e9rimentaux. On se gardera donc bien de les utiliser pour des syst\u00e8mes en production.<\/p>\n<h2>Reconnaissance<\/h2>\n<p style=\"text-align: justify;\">Le noyau 2.4, apparu en janvier 2001, recelait de nombreuses am\u00e9liorations en profondeur. Par exemple la gestion de la m\u00e9moire virtuelle fut largement modifi\u00e9e pour \u00e9viter des copies inutiles de zones m\u00e9moire (buffer recopi\u00e9 dans la m\u00e9moire cache du noyau avant \u00e9criture sur disque). De m\u00eame un effort important avait \u00e9t\u00e9 men\u00e9 pour am\u00e9liorer les performances de Linux sur des syst\u00e8mes multiprocesseurs. En revanche un nombre assez important de probl\u00e8mes fut mis en \u00e9vidence lors du d\u00e9ploiement sur une grande \u00e9chelle de ce noyau. La complexit\u00e9 de certains bogues (li\u00e9s \u00e0 la m\u00e9moire virtuelle, au p\u00e9riph\u00e9rique de swap, au syst\u00e8me de fichiers virtuel, etc.) est telle qu&rsquo;ils ne se manifestent qu&rsquo;apr\u00e8s un nombre tr\u00e8s \u00e9lev\u00e9 de tests et sur des plates-formes les plus diverses. Malheureusement, la plupart des utilisateurs de Linux mettent peu d&rsquo;entrain \u00e0 essayer les noyaux\u00a0<code>-pre<\/code> qui devraient justement servir \u00e0 \u00e9liminer les derniers bogues. Il fallut par exemple attendre les noyaux 2.4.11 pour que les rapports de bogues li\u00e9s \u00e0 la m\u00e9moire virtuelle et au p\u00e9riph\u00e9rique de swap disparaissent.<\/p>\n<p style=\"text-align: justify;\">La r\u00e8gle disant qu&rsquo;aucune nouvelle fonctionnalit\u00e9 ne doit \u00eatre apport\u00e9e dans un noyau de version stable (paire) a \u00e9t\u00e9 viol\u00e9e \u00e0 plusieurs reprises par Linus Torvalds dans la s\u00e9rie des 2.4. Le cas le plus visible fut probablement l&rsquo;ajout dans le noyau 2.4.15 du syst\u00e8me de fichiers\u00a0<code>ext3<\/code>. Jusqu&rsquo;alors, il n&rsquo;\u00e9tait disponible que sous forme de\u00a0<em>patch<\/em>, maintenu par Andrew Morton, mais Linus le jugea suffisamment stable et utile pour l&rsquo;int\u00e9grer dans le noyau 2.4.15-pre2. Il faut reconna\u00eetre que ce syst\u00e8me de fichiers dispose d&rsquo;un m\u00e9canisme de journalisation, ce qui permet des red\u00e9marrages rapides apr\u00e8s un arr\u00eat intempestif (indispensable pour des serveurs demandant un taux de fonctionnement le plus \u00e9lev\u00e9 possible), et cohabite parfaitement avec son pr\u00e9d\u00e9cesseur, le syst\u00e8me de fichiers\u00a0<code>ext2<\/code>. Signalons aussi que plusieurs distributions avaient d\u00e9j\u00e0 int\u00e9gr\u00e9 le<em>patch<\/em> <code>ext3<\/code> dans les premiers noyaux 2.4 qu&rsquo;elles proposaient. Remarquons \u00e9galement que le grand concurrent d&rsquo;<code>ext3<\/code>, le syst\u00e8me de fichiers<code>reiserfs<\/code> avait \u00e9t\u00e9 introduit dans le noyau 2.4.1 alors qu&rsquo;il \u00e9tait absent du 2.4.0.<\/p>\n<p style=\"text-align: justify;\">Le noyau 2.4 marqua l&rsquo;orientation de Linux vers les technologies offertes par de nouveaux p\u00e9riph\u00e9riques\u00a0: bus USB, interface IEEE 1394, tuners, webcam et cartes d&rsquo;acquisition vid\u00e9o, interfaces ADSL\u2026 De m\u00eame on vit appara\u00eetre le support pour certains dispositifs li\u00e9s aux syst\u00e8mes industriels ou embarqu\u00e9s (syst\u00e8mes de fichiers journalis\u00e9s, cartes flash, support d&rsquo;Eproms, disques RAID, etc.)<\/p>\n<h2>Conclusion.<\/h2>\n<p style=\"text-align: justify;\">Au moment o\u00f9 je r\u00e9dige ces lignes, le dernier noyau stable de la ligne 2.4 est le vingt-et-uni\u00e8me du nom. De nombreuses discussions entre d\u00e9veloppeurs concernent d\u00e9j\u00e0 les projets d&rsquo;exp\u00e9rimentation qu&rsquo;ils comptent mener dans le futur noyau 2.7. Le noyau de d\u00e9veloppement en cours \u00e9tait num\u00e9rot\u00e9 2.5.75, mais Linus Torvalds vient de publier depuis deux jours un noyau 2.6.0-test1 pour inciter les utilisateurs \u00e0 commencer les essais avec cette version \u00ab\u00a0presque\u00a0\u00bb finie. Esp\u00e9rons que les tests seront men\u00e9s par le plus grand nombre possible de personnes, afin de raccourcir le temps de stabilisation de cette nouvelle mouture de Linux.<\/p>\n<p style=\"text-align: justify;\">Quoiqu&rsquo;il en soit, ce noyau incorporera des am\u00e9liorations sensibles au niveau des performances\u00a0: nouvel ordonnanceur, am\u00e9lioration de la m\u00e9moire virtuelle, points de pr\u00e9emption pour les processus temps-r\u00e9el souple\u00a0<em>Posix.1b<\/em>, support des threads\u00a0<em>Posix.1c<\/em> am\u00e9lior\u00e9 avec l&rsquo;aide de la nouvelle biblioth\u00e8que NPTL, etc. Le nombre de p\u00e9riph\u00e9riques reconnus augmentera \u00e9videmment, en int\u00e9grant dans le noyau officiel des modules disponibles de mani\u00e8re ind\u00e9pendante pour le noyau 2.4.<\/p>\n<p style=\"text-align: justify;\">Il est ind\u00e9niable que Linux a atteint une maturit\u00e9 certaine. Il est capable d&rsquo;\u00e9quiper une gamme de syst\u00e8mes extraordinairement vari\u00e9e, depuis le micro-syst\u00e8me tenant sur une barrette SIMM 72 broches (voir le projet uC-Linux), jusqu&rsquo;aux \u00ab\u00a0fermes\u00a0\u00bb compos\u00e9es de plusieurs dizaines ou centaines de stations de calcul \u00e0 hautes performances destin\u00e9es au traitement de donn\u00e9es scientifiques ou \u00e0 la production d&rsquo;images de synth\u00e8se. L&rsquo;\u00e9volution des fonctionnalit\u00e9s offertes est devenue plus lente \u00e0 mesure que le syst\u00e8me est plus complet. Le travail des d\u00e9veloppeurs centraux est \u00e0 pr\u00e9sent d&rsquo;optimiser des proc\u00e9dures tr\u00e8s complexes du noyau, tandis qu&rsquo;un nombre croissant de programmeurs \u00ab\u00a0satellites\u00a0\u00bb r\u00e9alisent des pilotes de p\u00e9riph\u00e9rique les plus vari\u00e9s.<\/p>\n<p style=\"text-align: justify;\">Comme tous les passionn\u00e9s de Linux, nous resterons donc en attente des \u00e9volutions \u00e0 venir, qu&rsquo;elles concernent le d\u00e9veloppeur \u00e0 travers de nouvelles interfaces de programmation, l&rsquo;administrateur par des possibilit\u00e9s de configuration pointue du syst\u00e8me ou le simple utilisateur par une gestion toujours am\u00e9lior\u00e9e d&rsquo;un nombre croissant de p\u00e9riph\u00e9riques.<\/p>\n<h2>Bibliographie<\/h2>\n<ul>\n<li>\u00ab\u00a0The creation of the UNIX operating system\u00a0\u00bb &#8211;\u00a0<a href=\"http:\/\/www.bell-labs.com\/history\/unix\/\">http:\/\/www.bell-labs.com\/history\/unix\/<\/a>.<\/li>\n<li>\u00ab\u00a0Operating Systems: Design and Implementation\u00a0\u00bb &#8211; Andrew S. Tanenbaum &amp; Albert S. Woodhull &#8211; Second Edition &#8211; Prentice Hall 1997.<\/li>\n<li>\u00ab\u00a0Il \u00e9tait une fois Linux\u00a0\u00bb &#8211; Linus Torvalds &amp; David Diamond &#8211; Osman Eyrolles Multim\u00e9dia 2001.<\/li>\n<li>Les noyaux Linux\u00a0:\u00a0<a href=\"ftp:\/\/ftp.kernel.org\/pub\/linux\/kernel\/\">ftp:\/\/ftp.kernel.org\/pub\/linux\/kernel\/<\/a>.<\/li>\n<li>R\u00e9sum\u00e9s de la liste de discussion\u00a0<em>linux-kernel<\/em> : http:\/\/kt.zork.net\/kernel-traffic.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Ao&ucirc;t 2003 &nbsp; Comme c&rsquo;est souvent le cas dans les disciplines scientifiques, l&rsquo;informatique est dot&eacute;e d&rsquo;une histoire dont l&rsquo;&eacute;tude est int&eacute;ressante &agrave; bien des titres. Outre l&rsquo;aspect anecdotique des aventures humaines (ou commerciales), il est possible de retracer la piste de concepts, de langages, de syst&egrave;mes d&rsquo;exploitation et de logiciels d&rsquo;application &agrave; travers un h&eacute;ritage [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":20,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-25","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":0,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/25\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/pages\/20"}],"wp:attachment":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/media?parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}