tag:linuxfr.org,2005:/tags/surveiller/publicLinuxFr.org : les contenus étiquetés avec « surveiller »2011-07-13T11:17:03+02:00/favicon.pngtag:linuxfr.org,2005:Diary/313562011-07-10T17:04:54+02:002011-07-10T17:04:54+02:00Non-confession d'un flibustier<p>Bonjour,</p>
<p>Je tiens dans ce journal à réagir par rapport à la discussion que phxonx, barmic et moi avons eue dans <a href="https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246545">les commentaires d'un journal plus ou moins récent</a>. Tout d'abord je tiens à préciser que ce débat fut assez bordélique : ayant perçu de l'hostilité dans les propos de mes interlocuteurs j'ai moi-même laissé des commentaires agressifs, inappropriés et bourrés de fautes d'orthographe, je m'en excuse.<br />
C'est donc avec joie que je me plonge la tête dans le bain purificateur des propos mesurés de bayartb, qui disait il y a peu :</p>
<blockquote>
<p>Il faut toujours garder en tête ce que les anciens de Usenet savaient et qu'on n'enseigne plus sur le réseau: par écrit, le sarcasme anodin devient agressif, l'ironie devient une attaque directe, le bon mot devient une caricature. Il faut le savoir quand on écrit, et le savoir quand on le lit.</p>
</blockquote>
<p>Hop, ça fait du bien.</p>
<p>Revenons maintenant sur le débat que j'évoque : celui-ci fut mouvementé et passionné, partait dans tous les sens, nous passions du coq à l'âne assez fréquemment. Cependant il me semble avoir réussi (vers la fin) à en isoler le point épineux.</p>
<p>En fait, il semble que ce qui gêne les "piratophobes" (si je puis reprendre cette expression), n'est pas le fait que l'activité des pirates soit illégale, ce n'est pas non plus le fait que celle-ci soit inévitable, c'est le fait que celle-ci soit illégitime.</p>
<p>Ce qui est reproché aux pirates dans ce cas n'est pas d'enfreindre la loi, mais d'enfreindre un contrat : en effet l'artiste a généré sa création et l'a placée sous une certaine licence, par choix. Ce n'est pas le choix du gouvernement ou d'une autorité quelconque qu'on est supposé respecter, mais le choix de l'artiste, parce que c'est lui qui est responsable de l'œuvre : il choisit l'usage qui peut être fait de sa propriété.</p>
<p>J'ai mis du temps à comprendre ça.</p>
<p>Il s'agit là du point sur lequel nos avis divergent : je considère la propriété intellectuelle comme illégitime, mes opposants la considèrent comme légitime.<br />
Par le mot propriété intellectuelle je regroupe les principes de brevets, de copyright et de droit des marques. En fait c'est avec ce mot que je désigne le fait de se dire propriétaire d'une idée ou d'une information.</p>
<p>Penchons-nous alors sur ce point. Qu'est-ce qui permet de dire si la propriété intellectuelle est légitime ou non ? Qu'est-ce qui donne le droit à un individu de dire : "Cette idée ou cette information m'appartient." ?</p>
<p>Étudions pour cela le processus qui provoque l'apparition d'une idée.</p>
<p>Lorsque que je réfléchis, seul, et que je trouve une idée, je suis persuadé de l'originalité de cette idée. Celle-ci a pris forme dans ma tête, donc elle ne peut être due qu'à moi. Je me dis qu'elle est ma création car elle est le fruit de ma seule réflexion.</p>
<p>Cependant je peux être confronté à différents cas dont certains peuvent mettre en doute cet avis.</p>
<ul><li><p>cas 0 : Personne n'a trouvé l'idée avant moi.</p></li>
<li><p>cas 1 : Quelqu'un a déjà trouvé cette idée ou une idée similaire avant moi, sans que j'en aie connaissance.</p></li>
<li><p>cas 2 : Quelqu'un a déjà trouvé cette idée ou une idée similaire avant moi, j'en avais connaissance et je ne m'en suis pas inspiré.</p></li>
<li><p>cas 3 : Quelqu'un a déjà trouvé cette idée ou une idée similaire avant moi, j'en avais connaissance et je m'en suis inspiré inconsciemment.</p></li>
<li><p>cas 4 : Quelqu'un a déjà trouvé une idée similaire avant moi, j'en avais connaissance et je m'en suis inspiré consciemment.</p></li>
</ul><p>On en entend souvent parler du cas 1 dans la recherche (par exemple, pour faire une thèse, il faut sans cesse éplucher l'actualité sur le sujet, pour savoir précisément ce qui a déjà été fait) ou dans le monde des brevets (il est arrivé des cas assez risibles de personnes ou compagnies possédant les mêmes brevets, ou des brevets qui se chevauchent, et le travail des personnes chargées de savoir si une nouvelle idée n'a pas été brevetée est titanesque).</p>
<p>Je me souviens, quand j'étais petit, avoir observé des carrés et m'être dit quelque chose comme "Tiens, il y a peut-être un lien entre la longueur d'une diagonale et la longueur du côté du carré.". Je n'avais pas poussé le raisonnement plus loin, d'autant plus que je ne connaissais même pas le "²" à l'époque. Quelques années plus tard on me disait que ce lien était applicable à tous les rectangles, et portait le nom de théorème de Pythagore.</p>
<p>Je suis sûr qu'il y a plein de gens qui ont vécu quelque chose de similaire. En fait cela nous arrive à tous, et particulièrement lorsque nous sommes enfants : des idées germent dans nos têtes : des relations mathématiques ou logiques, des conjectures sur la structure du monde qui nous entoure, des calembours et des jeux de mots, des concepts de mondes parallèles ou de machines futuristes...puis nous nous rendons compte, un jour, que quelqu'un y a pensé avant, et avait déjà développé nos concepts un millénaire, un siècle, un an, un mois avant...parfois même une microseconde avant ( quand par exemple le professeur pose une question (de recherche, pas de connaissance) et que deux élèves répondent en même temps...ou qu'un DLFPien réagit à un propos, ôtant de la bouche les mots de tous ceux qui auront la même réaction... ;-) ).<br />
D'une manière générale, des pyramides antiques aux brevets sur la fabrication de l'aluminium par électrolyse, des exemples d'idées similaires qui apparaissent dans deux esprits différents isolés foisonnent...</p>
<p>Dans ce cas, à qui appartient l'idée ? On aura tendance à dire que l'idée appartient au premier qui la trouve, et c'est pour cela que le théorème de Pythagore est le théorème <em>de Pythagore</em> . Cependant peut-on dire qu'il est propriétaire de cette idée ?<br />
Le premier qui trouve un trésor en sera propriétaire, parce qu'il faut bien départager tous ceux qui en revendiquent la possession. Cependant, est-il légitime d'appliquer le même principe à une chose qui n'est pas unique, mais qui apparaît dans nos esprits ?</p>
<p>Plus complexe encore : imaginons qu'une idée germe dans la tête d'un premier individu, qui ne l'exprime pas, soit parce qu'il la trouve inintéressante, soit parce qu'il n'en a pas le temps ou les moyens, puis que cette idée germe dans la tête d'un autre individu, qui lui l'exprime. Dans ce cas l'idée n'appartient pas au premier, mais au second : on dira que l'idée n'appartient non pas au premier qui la trouve, mais au premier qui l'exprime. Dans le cas d'un brevet de grande valeur, les deux individus pourraient s'étriper dans une bataille juridique, dans le cas d'un commentaire sur un forum ou un blog, cela se solde en général par un "Edit: grilled".<br />
Dire que l'idée appartient au premier qui l'exprime semble être le seul moyen de départager les protagonistes d'un tel conflit, peut-on pourtant dire que cela est légitime ?</p>
<p>Le cas 3 décrit ce type de situations, très familier lui aussi, où nous pensons avoir trouvé une idée, en parlons à quelqu'un qui nous répond qu'il avait déjà entendu parler de cette idée ailleurs, puis nous réalisons qu'il s'agissait d'une idée que nous connaissions déjà mais qui nous avait échappé. Le plus amusant est quand nous constatons que cette idée, avant que nous l'oubliions, avait mené à une autre idée, puis que cette autre idée avait servi de base (consciemment ou inconsciemment) pour retrouver la précédente.<br />
Parfois même c'est nous-mêmes qui avions trouvé l'idée de départ, avant de l'oublier, puis de la retrouver. Cette situation est d'ailleurs visiblement si familière aux DLFPiens qu'<a href="https://linuxfr.org/images/dessins/geekscottes_005.png">on l'a intégrée à la culture du site</a>. Mais quand j'ai deux fois la même idée à deux moments différents (disons le 17 janvier 2002 à 19 heures et le 21 mai 2011 à 22 heures), qui est propriétaire de mon idée ? Le moi de 2002 ou le moi de 2011 ? Pourrait-on dire que j'ai trouvé une idée deux fois, au sens ou j'ai réfléchi deux fois pour la trouver ?</p>
<p>Le cas 2 est similaire au cas 3, sauf que dans ce cas celui qui trouve l'idée considère, à posteriori, qu'il a effectué dans sa tête tout le cheminement mental nécessaire pour recréer l'idée qu'il connaissait déjà, en partant de zéro (ou du moins d'un stade qui ne nécessite aucune connaissance de l'idée originale).</p>
<p>Parlons un peu de culture maintenant (et je prie mes lecteurs de m'excuser à l'avance, ma culture partageable étant extrêmement limitée, je vais devoir faire reposer une partie de mon argumentaire sur de la culture privatrice. Je vous invite à débattre dans les commentaires du caractère discriminatoire d'une telle pratique.). <br />
Il y a un nombre titanesque d'œuvres qui correspondent au cas 4 : un artiste se sert consciemment d'une œuvre existante pour en créer une autre. Parfois grâce à des œuvres librement réutilisables (comme Ran, de Akira Kurosawa, dérivé du Roi Lear de Shakespeare, ou The Wild Horde, de Ennio Morricone, dérivé du Walkürenritt de Wagner), parfois avec l'autorisation de l'auteur ou en payant des droits (comme Rasputin de Turisas, dérivé de Rasputin de Boney M), parfois d'une façon suffisamment subtile pour qu'on ne sache pas si des droits doivent être payés ou non (comme Star Wars IV, dérivé de la forteresse cachée de Kurosawa), parfois par un vil acte de piratage (comme Steamboat Willy, de Walt Disney, dérivé de Steamboat Bill Jr., de Buster Keaton).<br />
Parfois, une œuvre fait penser à une autre sans qu'on sache si l'auteur s'en est inspiré ou pas. Par exemple, le début The Symphony of the Dead, de Therion, me fait penser au thème des elfes d'Howard Shore, dans le Seigneur des Anneaux. De nombreux passages du dernier album de Fferyllt me font penser à Alestorm ou Nightwish. Et histoire de donner des exemples reposant partiellement sur de la culture partageable, Metal God de Mad Mav me fait parfois penser au thème de Mission:Impossible, le début de Some kind of love du même artiste ressemble à Sawdust In The Blood de Rob Zombie, Back To Hell de PhReyMusic fait penser au refrain de Europa de Globus, quant à Luminous Flesh Giants, ils sont carrément <a href="http://www.jamendo.com/fr/album/4029/review_detail?review_id=256978">accusés de s'être inspirés de Dream Theater</a>...</p>
<p>Côté cinéma, il y a eu aussi cette histoire du scénario de L'Étrange Histoire de Benjamin Button, qu'on soupçonne totalement pompé sur celui de Forest Gump. Ou des scènes du dernier Transformers d'être pompées sur des scènes de The Island. Même si ici le cas du conflit juridique ne se pose pas (il s'agit du même scénariste), on est en droit de se demander si on est dans le cas 3 ou le cas 4...</p>
<p>En fait, l'auteur d'une idée peut seulement déterminer s'il est conscient, par contre il ne possède pas toute la connaissance du monde lui permettant de savoir si son idée est originale ou non : il ne peut pas savoir s'il est dans le cas 0, le cas 1 ou le cas 2. Et encore, cela suppose que l'auteur est capable de déterminer objectivement si la naissance d'une idée dans son esprit s'est faite sous l'influence d'autres idées ou non (différence entre les cas 2 et 3).</p>
<p>D'un point de vue extérieur, il est impossible de déterminer si l'auteur est conscient ou pas, donc de dire si on est dans le cas 2, le cas 3 ou le cas 4 (et cela suppose qu'on sait si l'auteur connaît l'idée d'origine, donc qu'on différencie les cas 1 et 2). Pour un groupe limité de personnes (c'est à dire qui, ensemble, ne rassemblent pas toute la connaissance du monde), il n'est même pas possible de savoir si on est dans le cas 0 ou non.</p>
<p>Lorsqu'il critique la propriété intellectuelle, Albert Jacquard dit qu'on ne crée pas une idée, mais qu'une idée nous vient à l'esprit, et que par conséquent le concept de propriété intellectuelle est une illusion. Ceci est un aperçu très condensé du point de vue d'Albert Jacquard, qui, je suppose, a poussé la réflexion beaucoup plus loin que moi sur le sujet. Cependant, il est intéressant de constater que le vocabulaire que l'on utilise pour parler des idées est effectivement peu favorable à l'existence d'une éventuelle propriété intellectuelle.</p>
<p>Je n'ai ici évoqué que les idées, mais on peut faire à peu près le même raisonnement pour traiter de tout type d'information. Par exemple, les photographes ne se prétendent pas propriétaires d'idées, mais propriétaires de la représentation d'un événement. Or, le même problème se pose : que dire de deux personnes représentant le même événement ? Que dire d'une personne assistant à une scène, au même moment qu'un photographe ou un cameraman, et qui aura dans sa tête la représentation de l'événement que d'autres auront en tête après avoir vu la capture du photographe ou du cameraman ? Si je prends la photo d'un monument sous le même angle et le même éclairage qu'une autre photo copyrightée et que je la place sous licence libre, est-ce illégitime d'utiliser librement la photo copyrightée, alors qu'on ne peut pas la différencier de la photo libre ? Ou est-ce illégitime pour moi d'avoir voulu représenter la même chose que quelqu'un d'autre avant moi ?</p>
<p>Le concept de propriété intellectuelle est à mes yeux un concept extrêmement flou et bancal. Mon avis personnel est que celui-ci a été créé pour faire valoir des intérêts économiques et/ou de reconnaissance (ce qui se justifiait peut-être à une époque), mais que celui-ci ne repose pas sur des bases solides et rationnelles.<br />
Je suis de ceux qui pensent qu'une idée n'est jamais le fruit d'une réflexion partant de zéro : nos idées se construisent à partir de notre culture, de notre éducation, de l'influence de notre environnement et de ce que nous avons vécu, et de l'influence, consciente ou inconsciente, des idées qui ont été trouvées avant nous.<br />
J'ai également l'intuition que toute idée ou morceau d'information est faite pour circuler de cerveau en cerveau dans le cyberespace, que ce soit par oral, par téléphone, par internet ou par un autre mode de transmission de pensée, et qu'on ne saurait revendiquer sa propriété dessus. Je ne sais pas si c'est cela que voulaient dire les hackers, hacktivistes et pirates cyberpunks dans leurs credo (respectivement : "l'information doit être libre", "l'information veut être libre" et "l'information est libre"), mais c'est dans cet état d'esprit que je refuse de me voir imposer le concept de propriété intellectuelle (qu'il s'agisse de brevet, de droit des marques ou de copyright), considérant celui-ci comme illégitime.</p>
<p>Voilà. Je sais que ce long développement ne va peut-être pas changer grand-chose sur la façon dont mes adversaires me considèrent, et considèrent le monde des pirates en général, mais je tenais à expliquer mon point de vue afin de ne pas laisser un vieux débat en suspens sur des considérations peu claires, ou ambiguës.<br />
J'aimerais en tout cas que l'on prenne plus de recul vis-à-vis du mouvement pirate : assimiler l'internaute pirate à un consommateur écervelé et celui qui paye sa musique à un utilisateur scrupuleux me paraît erroné et caricatural. Le fait que je trouve le copyright illégitime ne plaît pas à tout le monde, j'en suis conscient. Cependant il me paraît exagéré de classer tous les pirates dans la catégorie "téléchargeur boulimique qui n'écoute que son instinct sans réfléchir à la légitimité de ses actes". Laissons de tels stéréotypes hanter les pensées de nos politiciens plutôt que les pages de linuxfr...</p>
<p>Je tiens cependant à préciser que toutes les paroles de phxonx et de barmic n'ont pas été vaines. J'ai remarqué qu'ils ne portaient pas plus que moi les ayants-droit dans leur cœur, et qu'ils défendaient la théorie que ces derniers ne mourront pas par le piratage, mais par la culture partageable (enfin en tout cas c'est ce que j'ai compris). Bien que je ne partage pas ce dernier avis, cette discussion m'a donné un sacré coup de pied au cul pour m'intéresser de près à la culture partageable, chose que je m'étais promis de faire il y a bien longtemps déjà.<br />
Cela ne signifie pas que je laisse tomber le piratage, mais comme je commence à me demander si Grunt n'a pas raison en disant que faire référence à de la culture privatrice (comme je viens de le faire ici) est aussi injuste que d'utiliser des formats fermés... Or, éradiquer la nécessité de la culture privatrice nécessite de s'imprégner de culture partageable. Les cultures sont comme des piliers qui nous supportent : lorsqu'on veut quitter un pilier pour un autre on est obligé, à un moment, de s'appuyer sur les deux à la fois. Lorsque mon pied posé sur le pilier de la culture partageable aura suffisamment d'appui, alors je pourrai détacher l'autre du pilier la culture privatrice, et perdrai la nécessité de faire appel à des références privatrices lorsque je communique avec mes semblables.<br />
Bref, ceci prendra du temps, mais si j'y arrive ça permettra au moins de savoir que c'est possible.</p>
<p>Pour finir, il y a quelques points dans l'argumentaire de phxonx qui me semblent encore flous :</p>
<ul><li>les pirates crackers </li>
</ul><p><a href="https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246603">https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246603</a></p>
<blockquote>
<p>Pour être tout à fait honnête, je n'ai rien contre le Cracker né. Le mec qui à 8 ans utilisait déjà discology pour contrefaire des secteurs de taille 6, qui n'a jamais été attiré par une boite de jeux en étalage avec un gros autocollant "Megastar Joystick" et qui a toujours préféré casser la protection et souiller des disquettes vierges, celui là donc, il ne me dérange pas. Généralement d'ailleurs ils sont assez discret et bien élevé. Par contre le mec qui défile avec une clef USB dans la Blu-raie pendant la Lan-Pride il me sort par les yeux.</p>
</blockquote>
<p>Je ne sais pas bien ce que phxonx entend par "cracker né". AFAIK un pirate qui casse la protection de Crysis avant de le balancer sur bittorrent est un cracker. En quoi son action est-elle plus légitime que celle du pirate qui rippe Inception et le met sur TPB ?</p>
<ul><li>les actes illégitimes sans être illégaux</li>
</ul><p><a href="https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246695">https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246695</a></p>
<p>Si ce qui est critiquable, c'est ce qui est illégitime et non ce qui est illégal, que penser du non-respect d'une éventuelle restriction qui serait choisie par le créateur, mais qui serait invalidée par la loi ?</p>
<p>Exemple : Un créateur place son travail sous une licence qui fait tomber ce travail dans le domaine public au bout de 200 ans. Cette licence n'est pas valide sur le plan légal, mais la violer légalement 70 ans après la mort du créateur irait à l'encontre du choix de celui-ci. Est-ce également illégitime ?</p>
<ul><li>vie privée</li>
</ul><p><a href="https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246695">https://linuxfr.org/users/didrik-pining/journaux/confessions-dun-pirate#comment-1246695</a></p>
<blockquote>
<p>Ce que tu dis est valable pour les transitaires - ie les fournisseurs de tuyaux. Mais elle n'est pas valable pour les fournisseurs de contenus. Par exemple si je décide moi tout seul comme un grand de mettre sur youtube une video de toi et de ton/ta partenaire en train de faire crack crack, je te jure qu'il y aura des gens pour juger que cette information est nettement moins bonne qu'une autre, qu'elle ne m'appartient pas et que juridiquement elle n'a jamais été libre. A dire vrai je ne serai pas surpris que tu fasses partie de ces gens.<br />
Là on ne parle pas de la neutralité du net (ie la poste qui refuse de t'adresser le courrier de Mme Michu); mais de respect des droits (ie moi qui intercepte le courrier de mme Michu pour le lire avant de le remettre dans la boucle). Il n'y a aucun rapport entre l'un et l'autre.</p>
</blockquote>
<p>Là on parle de quelque chose qui est totalement différent : le secret. Une information qu'on garde pour soi ou qu'on partage avec un nombre restreint de gens de confiance, c'est un secret. Quand on pirate une information, on distribue quelque chose qui a été conçu pour être publié, ça ne relève pas de la vie privée. Aussi, quand on attaque quelqu'un pour avoir publié un secret, ça n'est pas grâce à une licence, mais grâce à un droit à la vie privée.</p>
<p>Je dirais bien qu'il est illégitime de s'attaquer à la vie privée de quelqu'un en publiant des secrets, mais ça n'aurait aucun intérêt : on est responsable de ses informations personnelles.<br />
Il y a deux sortes d'individus : ceux qui font confiance à la loi pour protéger leurs données personnelles, et ceux qui font confiance à PGP. Dans la première catégorie on place Barabra Streisand, Laure Manaudou, Sony et le gouvernement américain. Dans la seconde on place un bon paquet de lecteurs de linuxfr dont je serais incapable de donner une identité précise. À partir de là, discuter de la légitimité du respect des licences que les premiers auraient pu mettre sur leurs données me paraît être de la masturbation intellectuelle...</p>
<p>Bref, je répondrais bien que si je retrouve une vidéo intime de moi sur le net, soit je m'en ficherais complètement, soit je m'en voudrais d'avoir été trop con pour la laisser fuiter, mais phxonx répondrait peut-être que je suis un cas à part...</p>
<p>Note : On parle de propriété intellectuelle et de vie privée dans les commentaires de cet article <a href="http://www.numerama.com/magazine/19276_2-bientot-du-piratage-de-chocolats.html">http://www.numerama.com/magazine/19276_2-bientot-du-piratage-de-chocolats.html</a> (Je ne donne pas d'ancre, il y en a quatre pages et les bons commentaires sont un peu éparpillés.)</p>
<p>Pour terminer - parce que je sais qu'avec barmic la discussion risque de dériver vers ça, et que si on ne part pas sur des bases claires, on risque de tourner en rond -, j'aimerais redéfinir les différentes notions du mot "valeur" :</p>
<ul><li><p>la valeur travail : celle-ci correspond aux ressources qu'il a fallu dépenser pour créer un bien.</p></li>
<li><p>la valeur d'usage : celle-ci correspond à la valeur qu'un individu va attribuer à un bien en fonction de l'usage qu'il en a.</p></li>
<li><p>la valeur d'échange : celle-ci correspond au taux auquel le bien s'échange.</p></li>
</ul><p>(voilà, donc si vous trollez sur la valeur d'une chose, précisez de laquelle vous parlez)</p>
<p>Et pour terminer vraiment :</p>
<p>Merci d'avoir pris la peine de lire jusqu'au bout ce pavé indigeste.</p>
<p>Si vous considérez comme moi qu'il est illégitime de se dire propriétaire d'une œuvre, inutile que je vous fasse l'affront de lui donner une licence. En revanche, pour ceux que mon argumentaire n'a pas convaincu ou qui respectent scrupuleusement la loi, ce texte est sous WTFPL. ;-) </p><div><a href="https://linuxfr.org/users/gnuzer/journaux/non-confession-dun-flibustier.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86753/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/gnuzer/journaux/non-confession-dun-flibustier#comments">ouvrir dans le navigateur</a>
</p>
gnuzerhttps://linuxfr.org/nodes/86753/comments.atomtag:linuxfr.org,2005:News/282972011-06-15T12:13:14+02:002021-07-11T19:08:23+02:00Sortie de Maarch Entreprise 1.2Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>L’équipe Maarch vient de publier sous licence GPL 3 la version 1.2 de <em>Maarch Entreprise</em>, son application métier dédiée à l’archivage électronique (SAE), la gestion des archives physiques, et la gestion documentaire (GED — <a href="https://fr.wikipedia.org/wiki/gestion%20%C3%A9lectronique%20des%20documents" title="Définition Wikipédia">gestion électronique des documents</a>).</p>
<p>Maarch Entreprise est un outil d’archivage et de GED de production, répondant en standard à la plupart des besoins de gestion opérationnelle de contenu d’une organisation. C’est une solution capable d’absorber de gros volumes documentaires (plus de 150 millions chez Numericable, par exemple).</p>
<p>Écrite en PHP 5, Maarch Entreprise est une application Web optimisée pour la circulation et la conservation de documents dans un environnement certifiable <a href="http://fr.wikipedia.org/wiki/NF_Z_42-013">NF Z 42-013</a>, ISO 14721 (<a href="https://fr.wikipedia.org/wiki/OAIS" title="Définition Wikipédia">OAIS</a>), <a href="https://fr.wikipedia.org/wiki/MoReq2" title="Définition Wikipédia">MoReq2</a>.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.maarch.org/" hreflang="fr" href="https://linuxfr.org/redirect/72368">Site communautaire</a></li><li>lien nᵒ 2 : <a title="http://www.maarch.org/demos" hreflang="fr" href="https://linuxfr.org/redirect/72369">Accès aux démonstrations</a></li><li>lien nᵒ 3 : <a title="http://wiki.maarch.org/Accueil" hreflang="fr" href="https://linuxfr.org/redirect/72370">Documentation des applications Maarch</a></li><li>lien nᵒ 4 : <a title="http://www.maarch.org/maarch-blog/maarch-et-l-economie-du-libre" hreflang="fr" href="https://linuxfr.org/redirect/72371">Maarch et l’économie du Libre</a></li></ul><div><h2 id="toc-les-nouveautés-de-la-version12">Les nouveautés de la version 1.2</h2>
<h3 id="toc-gestion-du-cycle-de-vie-et-du-stockage">Gestion du cycle de vie et du stockage</h3>
<ul>
<li>gestion d’un <em>workflow</em> de cycle de vie (du versement au sort final de l’archive) ;</li>
<li>gestion avancée des zones de stockage et administration via l’interface ;</li>
<li>intégration de la norme <a href="http://fr.wikipedia.org/wiki/Open_Archival_Information_System">OAIS</a> ;</li>
<li>compression des archives à l’aide de <a href="http://www.spiroo.be/7zip/">7-Zip</a> ;</li>
<li>réplication des archives sur plusieurs zones de stockage, avec bascule automatique sur erreur de lecture (<em>failover</em>).</li>
</ul>
<h3 id="toc-dossiers">Dossiers</h3>
<ul>
<li>personnalisation des chemises et sous‐chemises du plan de classement ;</li>
<li>intégration et optimisation du classement dynamique sur méta‐données (<em>autofoldering</em>) ;</li>
<li>amélioration des champs personnalisables des dossiers.</li>
</ul>
<h3 id="toc-général">Général</h3>
<ul>
<li>moteur de services Web (<a href="https://fr.wikipedia.org/wiki/SOAP" title="Définition Wikipédia">SOAP</a>) exposant les fonctionnalités Maarch pour faciliter l’intégration aux applications métier ;</li>
<li>optimisation de l’architecture du cœur de Maarch (modèle <a href="http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur">MVC</a>, factorisation, générisation dans <em>Maarch Core</em>) ;</li>
<li>écriture d’une bibliothèque de parcours d’arbres JavaScript supportant des grosses volumétries ;</li>
<li>possibilité de se connecter via un <a>[SSO]</a>.</li>
</ul>
<h3 id="toc-versement">Versement</h3>
<ul>
<li>amélioration du vidéocodage ;</li>
<li>amélioration de la gestion des affaires.</li>
</ul>
<h2 id="toc-À-propos-de-maarchenterprise">À propos de Maarch Enterprise</h2>
<p>Les développements de cette solution <em>open source</em> ont été financés par La Direction Générale de La Gendarmerie Nationale, <a href="http://www.la-gi.fr/"><em>La Gestion Intégrale</em></a> et la <a href="http://www.socaf.fr/">SOCAF</a>.</p>
<p>Par l’ensemble de ses fonctionnalités et la gestion combinée d’archives électroniques et physiques, Maarch Entreprise est sans doute l’une des applications de GED les plus complètes actuellement disponible :</p>
<ul>
<li>archivage électronique ;</li>
<li>gestion des archives physiques ;</li>
<li>gestion du cycle de vie ;</li>
<li>indexation et recherche plein texte (avec Zend Lucène) ;</li>
<li>gestion de dossiers (clients, RH, etc.) ;</li>
<li>la génération de rapports d’utilisation et de pilotage ;</li>
<li>notifications et alertes ;</li>
<li>circulation documentaire ;</li>
<li>prise en charge de LDAP et Active Directory ;</li>
<li>serveur de services Web SOAP ;</li>
<li>prise en charge des bases de données MySQL, PostgreSQL, MS SQL Server et Oracle ;</li>
<li>connecteurs aux scanneurs et imprimantes.</li>
</ul>
<p>D’autres projets <em>open source</em> sont également mis à jour à l’occasion de la sortie de Maarch Enterprise 1.2 :</p>
<ul>
<li>
<strong><em>Maarch AutoImport</em></strong>, l’outil écrit en PHP, d’importation de documents en masse dans les solutions Maarch, est passé en version 3.2, avec une amélioration de la gestion des erreurs et la possibilité d’importer des dossiers.</li>
<li>
<strong><em>Maarch Capture Connector 1.1</em></strong> vient également de sortir. Cet outil, également écrit en PHP, prend en charge le transfert de documents vers le serveur en sortie de numérisation, ou en connexion avec les générateurs de PDF pour enregistrer n’importe quel fichier vers une solution Maarch. Cette nouvelle version apporte le paramétrage du formulaire d’enregistrement côté client.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/sortie-de-maarch-entreprise-12.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86453/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-maarch-entreprise-12#comments">ouvrir dans le navigateur</a>
</p>
Laurent Giovannonihttps://linuxfr.org/nodes/86453/comments.atomtag:linuxfr.org,2005:Diary/312152011-06-04T23:13:44+02:002011-06-04T23:13:44+02:00Vérifier ou retrouver un mot de passe sur un fichier XLS/DOC avec pseudo-sécurité XORLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>J'ai eu récemment à retrouver un mot de passe sur un fichier DOC et un fichier XLS (deux formats propriétaires créés par Microsoft). Il s'agissait d'un mot de passe bloquant l'ouverture des fichiers, stocké dans une méthode basique, le XOR (l'algo est légèrement différent pour les deux formats).</p>
<p>Visiblement lorsque l'on cherche un peu des logiciels pour faire le boulot, on ne trouve pas de logiciel libre (genre <a href="http://www.openwall.com/john/">John the Ripper</a> ou autres), uniquement des logiciels propriétaires (et pour Windows).</p>
<p>Après avoir lu le support de présentation d'Éric Filiol de Pacsec 2009, jeté un coup d'oeil rapide aux (milliers de pages de) spécifications et retrouvé l'algo en question dans OpenOffice.org/LibreOffice (forcément faut bien qu'ils les ouvrent lui aussi), j'ai commis un petit programme pour vérifier un mot de passe (ou en tester plein si on est motivé).</p>
<p>Le tout est disponible sour licence LGPLv3 (histoire de garder la même licence que les 2 fichiers OpenOffice.org utilisés). Cf <a href="http://oumph.free.fr/textes/xor_me-0.1.tar.gz">http://oumph.free.fr/textes/xor_me-0.1.tar.gz</a></p>
<p>Voilà, ça n'a pas un intérêt fabuleux en soi, mais bon c'était amusant à faire. Et ça ne fait que ça : du XOR, sur du DOC ou du XLS.</p>
<p>Le résultat :</p>
<p>On récupère un couple clé/hash pour un fichier doc donné.</p>
<p><code>$ ./xor_doc some.doc</code><br /><code>Could be a XOR-ciphered doc file.</code><br /><code>nKey d10d</code><br /><code>nHash cc1f</code></p>
<p>On essaie un mot de passe au pif.</p>
<p><code>$ ./xor_me toto 0xd10d 0Xcc1f</code><br /><code>Algorithm XOR MS Word</code><br /><code>Key: d10d</code><br /><code>Hash: cc1f</code><br /><code>FAIL! toto</code></p>
<p>On essaie le bon mot de passe.</p>
<p><code>$ ./xor_me 0824 0xd10d 0Xcc1f</code><br /><code>Algorithm XOR MS Word</code><br /><code>Key: d10d</code><br /><code>Hash: cc1f</code><br /><code>Good guess: 0824</code></p>
<p>Même chose sur un XLS :</p>
<p><code>$ ./xor_xls some.xls</code><br /><code>Bored by reading the specs... Just pick up a XOR encryption pattern</code><br /><code>Record type FilePass with 2F 00.</code><br /><code>followed by 00 06 for size.</code><br /><code>followed by 00 00 for wEncryptionType XOR.</code><br /><code>followed by what you want: 2 bytes for key, 2 bytes for hash.</code><br /><code>WARNING: little endian, you should permute bytes</code><br /><code>00000210 06 03 00 00 86 00 00 00 2f 00 06 00 00 00 9a 49 |......../......I|</code><br /><code>00000220 61 cc e1 00 02 00 b0 04 c1 00 02 00 ca a4 e2 00 |a...............|</code></p>
<p>Un mot de passe au pif :</p>
<p><code>$ ./xor_me 4242 0x499a 0Xcc61 1</code><br /><code>Algorithm XOR MS Excel</code><br /><code>Key: 499a</code><br /><code>Hash: cc61</code><br /><code>FAIL! 4242</code></p>
<p>Le bon mot de passe :</p>
<p><code>$ ./xor_me 1950 0x499a 0Xcc61 1</code><br /><code>Algorithm XOR MS Excel</code><br /><code>Key: 499a</code><br /><code>Hash: cc61</code><br /><code>Good guess: 1950</code></p>
<p>Comme on dit, « XOR Ne crains rien, il nous protégera ».</p><div><a href="https://linuxfr.org/users/oumph/journaux/v%C3%A9rifier-ou-retrouver-un-mot-de-passe-sur-un-fichier-xlsdoc-avec-pseudo-s%C3%A9curit%C3%A9-xor.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86331/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/oumph/journaux/v%C3%A9rifier-ou-retrouver-un-mot-de-passe-sur-un-fichier-xlsdoc-avec-pseudo-s%C3%A9curit%C3%A9-xor#comments">ouvrir dans le navigateur</a>
</p>
Benoît Sibaudhttps://linuxfr.org/nodes/86331/comments.atomtag:linuxfr.org,2005:WikiPage/922011-06-04T11:58:35+02:002017-11-03T19:35:19+01:00Xmpp<p><strong>Xmpp</strong>, pour <em>eXtensible Messaging and Presence Protocol</em>, souvent appelé Jabber, est un ensemble de protocoles qui est appelé à remplacer tous les autres standards (ou presque). Xmpp est basé sur du XML et est documenté, il est apprécié par rapport à d'autres technologies. Xmpp est associé à <a href="http://www.jabberfr.org/">Jabber</a> dont il est le successeur/protocole.</p>
<h3 id="utilisation-dxmpp">Utilisation d'Xmpp</h3>
<h4 id="messagerie-instantanée">Messagerie instantanée</h4>
<p>De nos jours Xmpp est souvent utilisé pour la messagerie instantanée via les <em>adresses Jabber</em> ou <em>JID</em> (pour Jabber ID). La plupart des clients Xmpp supportent le clavardage, la voix sur IP et la visioconférence (via Jingle), ainsi que les discussions multi-utilisateurs (ou MUC) dans les salons Jabber.</p>
<h5 id="tribune">Tribune</h5>
<p>Il existe un client Jabber implémentant l'ergonomie et les fonctionnalités classiques (norloges et totoz) d'une <a href="//linuxfr.org/wiki/tribune" title="Lien du wiki interne LinuxFr.org">Tribune</a>: <a href="http://devnewton.bci.im/projects/muckl_tribune">muckl_tribune</a>.</p>
<h5 id="partage-du-bureau">Partage du bureau</h5>
<p>Certains clients permettent de partager son bureau avec la personne avec laquelle on communique. [référence nécessaire]</p>
<h5 id="chiffrement">Chiffrement</h5>
<p>Un chiffrement des données transmises peut être mis en place entre le serveur et le client ainsi qu'entre les serveurs à condition que les différentes entités le supporte (TLS/SSL), ou encore entre les clients directement (à l'aide de chiffrement asymétrique). [référence nécessaire]</p>
<h4 id="réseau-social">Réseau social</h4>
<p>Plusieurs initiatives existent pour proposer des réseaux sociaux libres et parfois décentralisés basés sur Jabber :</p>
<ul>
<li><a href="https://www.jappix.com/">Jappix</a></li>
<li><a href="//linuxfr.org/news/salut-%C3%A0-toi-gnulinuxfrorg">Salut à Toi</a></li>
<li><a href="//linuxfr.org/users/tankey/journaux/lor%C3%A9a-pour-un-r%C3%A9seau-social">Loréa</a></li>
<li><a href="http://www.movim.eu/">Movim</a></li>
</ul><h4 id="plus-encore">Plus encore</h4>
<p>Xmpp est un ensemble de protocoles extensible donc rien n'est limité. Par différentes XEP (XMPP Extensions) le protocole peut s'adapter à des besoins très divers (de la visioconférence aux jeux de cartes).<br><a href="http://xmpp.org/xmpp-protocols/xmpp-extensions/">Différentes XEP sur xmpp.org</a></p>
<h3 id="mise-en-place-dun-service-xmpp">Mise en place d'un service Xmpp</h3>
<p>Différents serveurs Xmpp existent :<br><a href="http://wiki.jabberfr.org/Portail:Utilisateur/Serveur">liste de serveurs sur jabberfr.org</a><br><a href="http://fr.wikipedia.org/wiki/Liste_de_logiciels_serveurs_XMPP">liste de serveurs sur Wikipédia</a><br><a href="http://xmpp.org/xmpp-software/servers/">liste de serveurs sur xmpp.org</a><br><em>A faire : différence entre serveurs (support de charge, cluster, développement actif/arrêté, difficulté de paramétrage…)</em></p>
<h3 id="liens-aller-plus-loin">Liens, aller plus loin</h3>
<ul>
<li><a href="http://xmpp.org">xmpp.org</a></li>
<li><a href="http://www.jabberfr.org">Jabberfr.org</a></li>
<li>Salon Xmpp de Linuxfr.org <a href="xmpp:linuxfr.org@conference.linuxfr.org">xmpp:linuxfr.org@conference.linuxfr.org</a> (30-08-2016: ce salon ne semble pas/plus exister)</li>
<li>Salon Xmpp pour LinuxFR sur JabberFR: <a href="xmpp:linuxfr@chat.jabberfr.org">xmpp:linuxfr@chat.jabberfr.org</a>
</li>
</ul><div><a href="https://linuxfr.org/wiki/xmpp.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86325/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/wiki/xmpp#comments">ouvrir dans le navigateur</a>
</p>
ᴼ ᴹᴬᴺᴺhttps://linuxfr.org/nodes/86325/comments.atomtag:linuxfr.org,2005:News/282342011-05-25T17:02:59+02:002021-07-11T19:04:11+02:00Cfengine : un outil de gestion de configuration libre<div><p>Sa récente version 3 marque un tournant majeur dans son histoire, en évolution depuis plus de 15 ans. Cfengine offre aujourd’hui une solution robuste aux problématiques d’administration de parcs hétérogènes.</p>
<p>La gestion de configuration permet de définir et de maintenir dans le temps la cohérence d’un système ou d’une application en fonction de son cahier des charges initial, des politiques de sécurité générales de l’entreprise ou spécifiques à une application, des bonnes pratiques du métier et des exigences de conformité au sein d’une entreprise.</p>
<p>En automatisant les procédures de configuration existantes, il est possible de faire un pas vers une gestion industrialisée du SI. Cfengine offre ainsi une vigilance continue, qui permet de mettre en œuvre des réparations automatiques ou de lever des alertes si la conformité des règles établies venait à défaillir.</p>
<p>Cfengine est une solution fiable, multi‐plate‐forme (Linux, BSD, Windows, UNIX), économe en ressources (consommation inférieure à 1 % des serveurs actuels), avec une architecture éprouvée et adaptée à la montée en charge.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.cfengine.org/" hreflang="en" href="https://linuxfr.org/redirect/72181">Plus d’information sur Cfengine</a></li><li>lien nᵒ 2 : <a title="http://www.normation.com/#accueil" hreflang="fr" href="https://linuxfr.org/redirect/72182">Normation, le partenaire de Cfengine en France</a></li></ul><div></div><div><a href="https://linuxfr.org/news/cfengine-un-outil-de-gestion-de-configuration-libre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86191/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/cfengine-un-outil-de-gestion-de-configuration-libre#comments">ouvrir dans le navigateur</a>
</p>
Just in com'https://linuxfr.org/nodes/86191/comments.atomtag:linuxfr.org,2005:News/281432011-05-19T15:20:35+02:002021-07-11T18:58:33+02:00Sortie du noyau Linux 2.6.39Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>La sortie de la version stable 2.6.39 du noyau Linux <a href="https://lkml.org/lkml/2011/5/19/16">vient d’être annoncée</a> par Linus Torvalds. Le nouveau noyau est, comme d’habitude, téléchargeable sur les serveurs du site <a href="http://kernel.org/">kernel.org</a>.</p>
<p>Le détail des évolutions, nouveautés et prévisions est dans la seconde partie de la dépêche.</p>
<p>PS : merci aux contributeurs qui ont participé à la rédaction collaborative de la dépêche en aidant à traduire les annonces de RC de Linus.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.h-online.com/open/features/What-s-new-in-Linux-2-6-39-1242910.html?view=print" hreflang="en" href="https://linuxfr.org/redirect/71876">Les nouveautés du noyau 2.6.39</a></li><li>lien nᵒ 2 : <a title="https://lwn.net/Articles/433854/" hreflang="en" href="https://linuxfr.org/redirect/72090">LWN : Le bilan des ajouts partie 1</a></li><li>lien nᵒ 3 : <a title="https://lwn.net/Articles/434637/" hreflang="en" href="https://linuxfr.org/redirect/72091">LWN : Le bilan des ajouts partie 2</a></li><li>lien nᵒ 4 : <a title="https://lwn.net/Articles/435716/" hreflang="en" href="https://linuxfr.org/redirect/72092">LWN : Le bilan des ajouts partie 3</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#toc-la-phase-de-test">La phase de test</a><ul>
<li><a href="#toc-rc-1">RC-1</a></li>
<li><a href="#toc-rc-2">RC-2</a></li>
<li><a href="#toc-rc-3">RC-3</a></li>
<li><a href="#toc-rc-4">RC-4</a></li>
<li><a href="#toc-rc-5">RC-5</a></li>
<li><a href="#toc-rc-6">RC-6</a></li>
<li><a href="#toc-rc-7">RC-7</a></li>
</ul>
</li>
<li>
<a href="#toc-les-nouveaut%C3%A9s">Les nouveautés</a><ul>
<li><a href="#toc-threaded-interrupts">Threaded interrupts</a></li>
<li><a href="#toc-ip-sets">IP sets</a></li>
<li><a href="#toc-media-controller">Media-controller</a></li>
<li><a href="#toc-block-device-plugging">Block device plugging</a></li>
</ul>
</li>
<li>
<a href="#toc-en-bref">En bref</a><ul>
<li><ul>
<li><a href="#toc-transcendent-memory">Transcendent memory</a></li>
<li><a href="#toc-user-namespaces">User namespaces</a></li>
<li><a href="#toc-syst%C3%A8me-de-fichiers-pstore">Système de fichiers pstore</a></li>
<li><a href="#toc-open-by-handle">Open by handle</a></li>
<li><a href="#toc-am%C3%A9liorations-de-lio">Améliorations de LIO</a></li>
<li><a href="#toc-device-mapper">Device mapper</a></li>
<li><a href="#toc-swap-mtd">Swap MTD</a></li>
<li><a href="#toc-syst%C3%A8mes-de-fichiers">Systèmes de fichiers</a></li>
<li><a href="#toc-appel-syst%C3%A8me-syncfs">Appel système syncfs</a></li>
<li><a href="#toc-unicore32">Unicore32</a></li>
<li><a href="#toc-perf">Perf</a></li>
<li><a href="#toc-pilotes-graphiques">Pilotes graphiques</a></li>
<li><a href="#toc-xen">Xen</a></li>
<li><a href="#toc-kvm">KVM</a></li>
<li><a href="#toc-dmi">DMI</a></li>
<li><a href="#toc-fen%C3%AAtre-de-congestion-tcp">Fenêtre de congestion TCP</a></li>
<li><a href="#toc-algorithmes-choke-et-sfb">Algorithmes CHOKe et SFB</a></li>
<li><a href="#toc-bkl-thats-all-folks">BKL: That's all folks</a></li>
</ul></li>
</ul>
</li>
<li><a href="#toc-le-bilan-en-chiffres">Le bilan en chiffres</a></li>
<li>
<a href="#toc-pour-la-suite">Pour la suite</a><ul>
<li><a href="#toc-arm--une-solution-en-vue">ARM : une solution en vue</a></li>
</ul>
</li>
</ul>
<h2 id="toc-la-phase-de-test">La phase de test</h2>
<h3 id="toc-rc-1">RC-1</h3>
<p>La version <a href="http://marc.info/?l=linux-kernel&m=130143288811886&w=2">RC-1</a> a été annoncée par Linus le 29 mars : </p>
<p><em>« Le 2.6.39-rc1 est dispo et la période d’intégration est terminée. J’ai encore à regarder le patch cleancache (je l’ai reçu largement dans les temps, mais j’ai décidé que j’allais le passer en revue une fois que la folie de la période merge serait terminée) mais à part ça tout est OK.</em><br>
<em>Que dire à propos de cette phase d’intégration ? À première vue, on pourrait dire qu’il n’y en a que pour les pilotes, les systèmes de fichiers et le nettoyage des interruptions. Le diff confirme ce sentiment sur les pilotes (65 % des patches), mais il montre qu’il y a largement plus de mises à jour sur les architectures que sur les systèmes de fichiers (le gros du boulot est sur ARM ; il y a quelques modifications des interruptions, mais la majorité des patches ARM se font sur les diverses cartes).</em><br>
<em>Toujours à propos des architectures, nous avons le début de l’unification de <code>m68k</code> avec <code>m68knommu</code>, ce qui est sympa ; nous verrons bien ce que ça va donner sur le long terme. Oh, et il y a aussi la nouvelle architecture <code>unicore32</code>.</em><br>
<em>Peut‐être un peu plus intéressant pour la majorité des gens de la communauté du noyau, est le nouveau modèle de branchement des périphériques en mode bloc. Ce branchement se fait maintenant par processus léger (thread), ce qui a permis de nettoyer considérablement le code. Cela permet aussi d’éviter pas mal de verrouillages sur le chemin critique, et ça devrait donc généralement être une bonne idée.</em><br>
<em>Rien d’autre ? Je suis sûr d’avoir oublié quelque chose de vraiment excitant. Mais en gros, je pense que ce devrait être une de ces versions “solides et sans surprises”.</em><br>
<em>Je touche du bois. J’aime quand c’est ennuyeux.</em> »</p>
<h3 id="toc-rc-2">RC-2</h3>
<p>La version <a href="http://marc.info/?l=linux-kernel&m=130205524912683&w=2">RC-2</a> a été annoncée le 6 avril, et Linus s’est félicité de l’absence de gros problèmes :</p>
<p><em>« Ça a été une -rc2 étrangement calme, ce qui devrait me rendre vraiment heureux, mais très honnêtement, ça me rend juste carrément méfiant. Vous me préparez un sale coup les gars, c’est ça ?</em><br>
<em>Bref, 35 % archi (ARM et gestion de l’énergie, quelques nettoyages sur unicore32), 35 % sur les pilotes (réseau, les entrées et quelques DRM), et 30 % divers (mises à jour de documentation, perf, réseau, btrfs).</em><br>
<em>Au final, pas tant de problèmes que ça. Ce qui, je l’espère sincèrement, est un signe que le 2.6.39 va être une version simple.</em><br>
<em>Touchons du bois. Allez‐y, testez ! »</em></p>
<h3 id="toc-rc-3">RC-3</h3>
<p>La version <a href="http://marc.info/?l=linux-kernel&m=130256884826679&w=2">RC-3</a> est sortie le 12 avril :</p>
<p><em>« Encore une semaine d’un calme presque effrayant. D’habitude ce genre de tranquillité n’arrive que bien plus tard dans le cycle (vers la RC-7 ou la RC-8), mais bon, je ne vais pas me plaindre. Je suis juste en train d’attendre la mauvaise nouvelle.</em><br>
<em>Et puis, il est possible que ce cycle reste tranquille jusqu’au bout. Nous n’avons certainement pas eu les changements révolutionnaires du cycle précédent, comme la résolution de chemin. Donc, je suis relativement confiant sur le fait que tout va bien se passer.</em><br>
<em>Bref, non seulement ça a été calme, mais c’est aussi parfaitement dans la norme. Deux tiers des changements sont dans les pilotes et le reste est globalement réparti un peu partout. Espérons que le cycle continue comme ça. J’aime quand les gens semblent vraiment appliquer la règle des “gros changements uniquement pendant la fenêtre de merge”.</em><br>
<em>Merci les gars. »</em></p>
<h3 id="toc-rc-4">RC-4</h3>
<p>Bien entendu, ce calme idyllique était trop beau pour durer, et Linus, dans son e‐mail d’annonce de la version <a href="http://marc.info/?l=linux-kernel&m=130318911602029&w=2">RC-4</a> du 19 avril, a expliqué les problèmes qui étaient apparus : </p>
<p><em>« Hélas, les choses n’ont pas continué à se stabiliser davantage. Nous avons eu plus de commits dans la RC-4 que dans la RC-3 et j’espère sincèrement que cette tendance à la hausse ne va pas continuer.</em><br>
<em>Ceci dit, jusqu’à présent, le seul truc qui a vraiment causé des problèmes dans ce cycle, c’est le changement dans la couche de branchement des périphériques en mode bloc. Dans cette RC-4, les soucis que nous avons eus avec MD devraient être derrière nous. Donc, nous progressons dans ce domaine.</em><br>
<em>Le code de branchement semble provoquer un bogue qui se manifeste pour les CD-ROM par un flux infini de notifications de changements sur le disque. Nous espérons que Jens va résoudre le problème bientôt. Dans l’intervalle, vous pouvez éviter le problème en étant en mode SMP ou en activant la préemption.</em><br>
<em>Quoi d’autre ? Certes, on a eu un peu plus de commits que dans la RC-3, mais rien de vraiment dramatique. À part les corrections sur les blocs et MD, nous avons eu les mises à jour des systèmes de fichiers (Btrfs, CIFS et Ubifs) et des pilotes (la plus grosse partie étant la suppression de duplicata). De l’USB, un peu de KMS, rien de révolutionnaire. »</em></p>
<h3 id="toc-rc-5">RC-5</h3>
<p>La version <a href="http://marc.info/?l=linux-kernel&m=130387868124845&w=2">RC-5</a> du 27 avril a été l’occasion pour Linus de faire part des ses hésitations lorsqu’il s’agit d’accepter des patches importants :</p>
<p><em>« Nouvelle semaine, nouveau clavier détruit en reversant du café dessus… C’est la vie.</em><br>
<em>Nous avons moins de changements que pour la RC-4, ce qui est bien. D’un autre côté, je dois réprimander quelques personnes pour avoir intégré des corrections de régressions assez invasives. Malheureusement, ces “personnes” que je dois engueuler, c’est essentiellement moi. La RC-5 contient ce qui est techniquement une régression, mais qui améliore aussi les performances. C’est donc un peu effrayant d’intégrer ça.</em><br>
<em>Il s’agit des correctifs d’Andi (avec quelques changements par Eric) qui permettent la résolution de chemin par RCU même si SELinux est activé.</em><br>
<em>Je me suis successivement botté les fesses pour l’avoir accepté et m’être réjoui que la résolution de chemin RCU fonctionne aussi en dehors des domaines non sécurisés… Je ne sais pas ce qui est le mieux.</em><br>
<em>Les corrections sont toutes assez simples (il y a aussi un peu de nettoyage concernant les dentries que j’ai effectué après avoir analysé le profilage et le code généré), et elles améliorent vraiment les performances de façon importante. En même temps, j’aurais hurlé si quelqu’un d’autre avait tenté de me faire intégrer ce truc si tard. Donc, je vais me considérer comme dûment réprimandé.</em><br>
<em>À part ça ? Nous devrions avoir corrigé tous les problèmes de branchement dans la couche bloc maintenant, et Tejun a corrigé le truc de notification infinie pour les CD-ROM. Donc, avec un peu de chance, c’est tout bon, et on n’en parle plus.</em><br>
<em>Et puis, il y a tout le bruit de fond habituel dans les pilotes, quelques mises à jour de ecryptfs et ext2, et juste quelques petites corrections ici et là. Le diffstat a une bonne gueule, et il y a surtout des correctifs d’une ligne et des trucs comme de nouveaux identifiants de périphériques, etc..</em><br>
<em>Allez‐y, testez. »</em></p>
<h3 id="toc-rc-6">RC-6</h3>
<p>La version <a href="http://marc.info/?l=linux-kernel&m=130447888603366&w=2">RC-6</a> du 4 mai a marqué le retour au calme et la stabilisation grandissante du noyau :</p>
<p><em>« La plupart des correctifs intégrés sont des trucs que l’utilisateur normal ne remarquera jamais vraiment (comme la série des patches sur les kprobes d’ARM) et le reste ce sont les habituels correctifs mono‐lignes sur les pilotes.</em><br>
<em>Mais nous avons quand même eu un bogue vraiment intéressant. Cela apparaissait comme une erreur RCU en mode mono‐processeur ; erreur qui s’est avérée être un problème lié à l’ordonnanceur, ce problème lui‐même étant en fait un souci d’initialisation de timer. C’était intéressant et plutôt obscur.</em><br>
<em>Mais la plupart des changements sont juste des petits correctifs un peu partout. Quelques mises à jour de média, un peu de travail sur NFS, quelques corrections sur DRM, la documentation, etc.. Vraiment des petites corrections, et les bogues ont été véritablement obscurs dans l’ensemble. On est encore en train de chercher à résoudre quelques problèmes, mais je pense qu’on est bon pour cette RC-6. Ce ne sera pas la RC finale, mais elle ne semble pas être en mauvaise condition. Les gens qui ont envoyé des rapports de régression sont priés de vérifier à nouveau, et les gens qui n’ont pas envoyé de rapports sont priés de tester aussi. »</em></p>
<h3 id="toc-rc-7">RC-7</h3>
<p>Enfin, la <a href="http://marc.info/?l=linux-kernel&m=130499582929922&w=2">septième et dernière RC</a> a été annoncée par Linus le 10 mai :</p>
<p><em>« Bon, les choses ont été plutôt calmes, et à moins qu’un problème majeur surgisse, je pense que ceci sera la dernière RC.</em><br>
<em>Il y a seulement une petite centaine de changements cette fois‐ci, et le gros des changements est dans “fs/hpfs”, qui est marqué BROKEN depuis le début de la fenêtre de merge, à cause du retrait définitif du <a href="http://fr.wikipedia.org/wiki/Verrou_global_du_noyau">verrou global</a>. Donc, c’est la correction d’une régression. Ceci dit, je confesse avoir songé à simplement laisser HPFS cassé pour cette version 39, et repousser cette série de correctifs pour la prochaine fenêtre de merge. Qu’importe. Autant l’appliquer maintenant, puisqu’elle n’a pas d’impact en dehors de HPFS et donc qu’elle ne pouvait pas aggraver les choses.</em><br>
<em>En dehors de ces patches HPFS, il n’y a pas eu grand‐chose d’intéressant. Quelques problèmes sur les points de traçage ptrace, quelques mises à jour CIFS et tous les minuscules correctifs habituels, surtout dans les pilotes. Rien qui ne sorte du lot, tout a été très calme.</em><br>
<em>Mais testez s’il vous plaît, juste pour s’assurer que le 39 final sera vraiment bon. »</em></p>
<h2 id="toc-les-nouveautés">Les nouveautés</h2>
<h3 id="toc-threaded-interrupts">Threaded interrupts</h3>
<p>Le noyau 2.6.39 permet de <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8d32a307e4faa8b123dc8a9cd56d1a7525f69ad3">forcer les interruptions à tourner dans des threads noyau</a>. Cette fonction est utile, entre autres, pour obtenir de meilleures données de débogage en cas de crash du gestionnaire des interruptions.</p>
<p>Tout d’abord, un peu de contexte. Quand votre ordinateur a besoin d’une action urgente de la part du système, alors il génère <a href="http://fr.wikipedia.org/wiki/Interruption_%28informatique%29">une interruption</a>, ce qui, comme son nom l’indique, interrompt le processeur dans son travail courant. Cela peut se produire dans le cas d’une opération d’entrée‐sortie, de l’avancement d’une horloge, d’une commutation entre deux tâches, d’un défaut matériel, etc..<br>
Ce système des interruptions est extrêmement intéressant, car cela permet au processeur de faire son travail normal d’exécution d’une tâche sans s’occuper de tout le reste. Si un évènement requiert son attention, alors il sera automatiquement prévenu par une interruption. Cela lui évite de devoir vérifier en permanence l’état des périphériques (s’il faisait ça, ce serait du <em>polling</em>, et c’est un comportement bloquant et consommateur de ressources). Quand l’interruption est émise, alors la tâche en cours d’exécution est automatiquement suspendue et la main passe au gestionnaire d’interruptions (<em>interrupt handler</em>). Ce gestionnaire s’occupe de la tâche qui a été demandée par le périphérique et, une fois le travail terminé, il redonne la main à la tâche qui était suspendue.</p>
<p>Nous avons vu quels étaient les avantages du système des interruptions… mais il faut reconnaître que ce mode de fonctionnement n’est pas sans défauts. Le plus important est la latence que cela induit dans l’exécution d’une tâche donnée. Imaginez que vous lanciez une tâche d’encodage qui nécessite une minute de temps CPU. Si cette tâche peut se faire interrompre en permanence à des moments non prévisibles, et si ces satanées interruptions s’emparent de vos précieuses ressources processeur, alors vous ne pouvez plus prévoir le moment ou votre encodage sera terminé. De plus, les interruptions peuvent elle‐mêmes se faire interrompre par d’autres, ce qui rajoute encore de la latence.<br>
En temps normal, ce comportement ne pose pas de gros problèmes, mais dans le cas d’un besoin de <a href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_temps_r%C3%A9el">temps réel</a>, il faut absolument trouver un palliatif. Un système temps réel cherche à être le plus déterministe possible, et ce système des interruptions qui ajoute des latences imprévisibles est intolérable.<br>
Depuis plusieurs années, une version du noyau Linux adapté au temps réel est développée dans une branche à part. Dans cette version « -RT », les interruptions sont <a href="https://lwn.net/Articles/302043/">intégrées à des <em>threads</em> du noyau</a>. L’<em>interrupt handler</em> va juste s’assurer de l’origine de l’interruption (opération nommée <em>« quick check handler »</em>) et va ensuite informer le noyau qu’il faut invoquer un <em>thread</em> spécifique pour traiter cette opération (<code>IRQ_WAKE_THREAD</code>).</p>
<p>L’interruption est donc minimale, puisqu’après la vérification de l’origine, on repasse tout de suite la main au noyau. Ce <em>thread</em> noyau peut ainsi être géré comme n’importe quelle tâche par l’ordonnanceur, et le code est plus simple et contient moins de verrous qu’une interruption classique. À cette réduction des latences s’ajoute un bénéfice annexe, puisque le plantage du gestionnaire des interruptions dans un <em>thread</em> ne provoquera qu’un <a href="http://en.wikipedia.org/wiki/Kernel_oops"><em>oops</em></a> au lieu d’aboutir à un crash total du système. Ce <em>oops</em> est bien plus intéressant quand on veut déboguer, puisqu’il permet d’avoir des données précises sur l’origine du problème.</p>
<p>Thomas Gleixner a donc pris le code de <em>threading</em> des interruptions qui existait dans la branche -RT et il a <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8d32a307e4faa8b123dc8a9cd56d1a7525f69ad3">soumis plusieurs patches</a> pour la branche principale du noyau. Évidemment, pour ne pas s’exposer à l’ire de ses collègues, il s’est assuré que son mécanisme était paramétrable. Il indique également que ce code sert surtout à déboguer les problèmes en empêchant un crash total de la machine, et il ne met pas l’accent sur la réduction des latences et le meilleur déterminisme des temps d’exécution des processus.<br>
Pour activer cette fonction, il faut passer <em>« threadirqs »</em> en paramètre au noyau au moment du démarrage (et que le noyau soit compilé avec <code>CONFIG_IRQ_FORCED_THREADING</code>). De plus, même si l’option est activée, il est toujours possible de forcer certaines interruptions à <em>ne pas</em> tourner dans un <em>thread</em>. Pour cela, il suffit de les marquer avec <code>IRQF_NO_THREAD</code> et elles se comporteront comme avant.</p>
<p>Comme il faut souvent choisir entre débit maximum et latences réduites, Thomas a indiqué que ce <em>threading</em> forcé des interruptions avait un certain impact sur le débit brut. Il a effectué des tests sur une machine à base de Core 2 Duo en lançant la commande <code>« time git grep irq_desc »</code>. Le résultat obtenu est rassurant :</p>
<ul>
<li>Avant (sans <em>thread</em>) : 1 min 18,741 s ;</li>
<li>Après (avec <em>thread</em>) : 1 min 19,061 s.</li>
</ul>
<p>On voit que l’impact, au moins dans ce cas de figure, est minimal. Comme le dit Thomas Gleixner dans son message de commit :</p>
<blockquote>
<p>C’est une pénalité raisonnable pour permettre de résoudre des problèmes dans le code des interruptions, puisque ça permet de ne pas planter complètement en cas de bogue.</p>
</blockquote>
<p>En plus de cette nouveauté importante que constitue le <em>threading</em> des interruptions, on peut noter que Thomas a <a href="http://article.gmane.org/gmane.linux.kernel.cross-arch/9099">largement nettoyé</a> toute la couche générique des interruptions. Parmi ces nombreux patches, on peut noter <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=dbec07bac614a61e3392c1e7c08cc6a49ad43f7a">la petite gueulante</a> qu’il pousse contre les développeurs qui essayent de traficoter la structure <code>« irq_desc »</code>. Selon lui, les statuts présents dans cette structure sont des informations internes qui ne devraient pas être modifiées.<br>
Pour résoudre ce problème irritant, il a opté pour un nom particulièrement explicite :</p>
<blockquote>
<p>Le nom <code>« core_internal_state__do_not_mess_with_it »</code> est suffisamment clair, suffisamment embêtant à taper, et il est facile à retrouver avec <code>grep</code>. Les contrevenants seront traqués et fouettés avec des truites puantes.</p>
</blockquote>
<h3 id="toc-ip-sets">IP sets</h3>
<p>Le <em>patch</em> réseau <a href="http://ipset.netfilter.org/"><em>IP sets</em></a>, qui existait depuis longtemps en dehors de la branche principale, a été <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a7b4f989a629493bb4ec4a354def784d440b32c4">officiellement incorporé</a> au noyau Linux 2.6.39.</p>
<p>Quand il s’agit d’établir un <a href="http://fr.wikipedia.org/wiki/Pare-feu_%28informatique%29">pare‐feu</a>, les systèmes GNU/Linux utilisent normalement le couple Netfilter / Iptables. <a href="http://fr.wikipedia.org/wiki/Netfilter">Netfilter</a> est une infrastructure générale de manipulation des paquets réseau, tandis qu’<a href="http://fr.wikipedia.org/wiki/Iptables">Iptables</a> est une application qui permet de configurer Netfilter.<br>
La simplicité d’utilisation n’est pas la caractéristique principale du couple Netfilter / Iptables, et l’objectif d’<em>IP sets</em> est de faciliter un peu la vie des administrateurs de pare‐feux. David Miller, le responsable de la couche réseau de Linux, a même qualifié le projet de <em>« totalement génial »</em> dans son <a href="http://thread.gmane.org/gmane.linux.kernel.wireless.general/66509">message sur la LKML</a>.</p>
<p>Pour paramétrer <em>IP sets</em>, on définit des « ensembles » (des <em>sets</em>) qui peuvent regrouper des données très diverses, comme par exemple des adresses IP, des numéros de ports, des adresses MAC, etc.. Au moment de la création du <em>set</em>, on spécifie son type selon les besoins. Par exemple, <strong>ipmap</strong> pour des plages d’adresses IP, <strong>iphash</strong> pour des tables de hachage d’adresses IP, ou encore <strong>nethash</strong> pour des tables de hachage de taille d’adresse réseau, etc.. La <a href="http://ipset.netfilter.org/features.html">liste des types disponibles</a> est présente sur le site du projet, et on voit qu’un large choix est mis à la disposition des utilisateurs.<br>
Cette définition précise des types est extrêmement utile, puisqu’elle permet d’utiliser des algorithmes de stockage des structures de données en mémoire qui sont spécialement optimisés pour chacun des types de fichiers.</p>
<p>Ces <em>sets</em> sont gardés en mémoire vive et ils sont administrés grâce à l’outil en ligne de commande <code>« ipset »</code>. On positionne ensuite une règle iptables <em>unique</em> qui fait référence à ce <em>set</em>, et hop, c’est fini !<br>
Si on est vraiment <s>vicieux</s> astucieux, on peut aussi assembler des <em>sets</em> en positionnant des références qui s’enchaînent les unes les autres. <a href="http://ipset.netfilter.org/ipset.man.html">La page du manuel</a> est très bien faite et explique parfaitement la syntaxe à utiliser pour créer ces <em>sets</em> de types variés.</p>
<p>Les avantages de ce système sont nombreux : par exemple, quand on veut changer les adresses IP ou les ports filtrés par le pare‐feu, on n’a pas besoin de toucher à la règle Iptables, puisque tout se fait dans le <em>set</em>. La modification est donc dynamique.<br>
On peut aussi citer un gros avantage en termes de performances, puisqu’une liste de plusieurs milliers d’adresses IP sera représentée par une seule ligne <em>ipset</em> et que tout est gardé en mémoire vive. Le passage en revue des règles par le noyau (<em>matching</em>) sera donc extrêmement rapide. Bien entendu, la contrepartie est une occupation mémoire plus grande qu’avec des règles classiques.</p>
<p>Comme le <em>patch</em> <em>IP sets</em> existe depuis déjà un certain temps, on le trouve intégré dans plusieurs distributions spécialisées dans les fonctions de pare‐feux. Il était également possible de « patcher » son noyau et d’installer le <a href="http://packages.debian.org/squeeze/ipset">paquet d’administration <em>ipset</em></a> pour l’utiliser dans une distribution généraliste.<br>
L’inclusion d’<em>IP sets</em> dans la branche principale du noyau Linux, via l’option <code>IP_SET</code> lors de la compilation, va donc faciliter son utilisation et accroître son audience auprès des administrateurs réseau ayant besoin de contrôler facilement les règles de filtrage de leurs pare‐feux.</p>
<h3 id="toc-media-controller">Media-controller</h3>
<p>Le sous‐système « <a href="https://lwn.net/Articles/415714/"><em>media controller</em></a> », qui constitue un complément de l’<a href="http://fr.wikipedia.org/wiki/Interface_de_programmation">API</a> classique <a href="http://fr.wikipedia.org/wiki/V4L">Video4Linux</a>, a été ajouté dans le noyau 2.6.39.</p>
<p>Écrit par Laurent Pinchart, ce nouveau sous‐système ambitionne de simplifier le travail des applications qui utilisent les périphériques audio ou vidéo de la machine.<br>
En effet, il a été constaté ces dernières années que les puces devenaient de plus en plus complexes et qu’elles intégraient de plus en plus de fonctions. Ce sont maintenant de véritables SoC (<a href="http://fr.wikipedia.org/wiki/System_on_Chip">Systems-on-a-Chip</a>) qui sont embarqués dans les <em>webcams</em> ou dans les cartes d’acquisition et de sortie vidéo. L’API spécialisée Video4Linux (V4L) a déjà été réécrite au moment de la série des noyaux 2.5.x, afin de permettre de gérer — entre autres — la compression matérielle. Cette interface de programmation de seconde génération (V4L2) a fidèlement servi les auteurs de pilotes, mais elle commence — elle aussi — à montrer ses limites. <a href="https://lwn.net/Articles/415714/">L’article de LWN</a> dédié au sous‐système <em>« media controller »</em> cite l’exemple de la puce <a href="http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=14649&navigationId=12643&templateId=6123">OMAP 3430</a> qui est utilisée dans les téléphones Nokia N900. Cette puce est en effet représentative de la complexité ahurissante qui caractérise les périphériques vidéo modernes.<br>
Outre le classique processeur ARM et les blocs spécialisés dans le codage / décodage matériel de divers formats, on y trouve également un ISP (<em>image signal processor</em>) très sophistiqué. Divers formats vidéo sont acceptés en entrée, et la compression JPEG, ainsi que la balance des blancs, se font à la volée directement dans la puce. Pour pallier les défauts des lentilles, qui sont souvent minuscules, un processeur spécialisé corrige les distorsions géométriques de l’image, etc..</p>
<p>Chacun de ces composants spécialisés constitue pour le noyau un périphérique qui doit être géré spécifiquement. De plus, la gestion de ces périphériques doit souvent être partagée avec d’autres sous‐systèmes (pensons à ALSA pour le son d’une <em>webcam</em>, par exemple) ce qui ajoute de la complexité. Toutes ces fonctions présentes sur les SoC devraient pouvoir être facilement accessibles par les applications résidant en espace utilisateur. Pour cela, le noyau doit être capable de présenter simplement les caractéristiques de tous les périphériques média… Mais cette contrainte devient de plus en plus difficile à tenir par l’API V4L2 qui n’a pas vraiment été conçue pour ça.</p>
<p>Le sous‐système <em>« media controller »</em> va donc permettre aux applications en espace utilisateur de découvrir et de contrôler les divers périphériques spécialisés présents sur la machine.<br>
Pour cela, ces périphériques sont représentés dans un <a href="http://fr.wikipedia.org/wiki/Graphe_orient%C3%A9">graphe orienté</a> de tous les blocs média (nommés <em>« entities »</em>) et qui sont connectés par des relations (nommées <em>« pads »</em>).<br>
La nouvelle structure <code>« media_device »</code> accueille les diverses descriptions des <em>« entities »</em> qui peuvent prendre la forme de périphériques audio, de processeurs de mise au point pour les images, de blocs vidéo, de capteurs <a href="http://fr.wikipedia.org/wiki/Charge-Coupled_Device#Les_capteurs_CCD">CCD</a> ou <a href="http://fr.wikipedia.org/wiki/Charge-Coupled_Device#Les_capteurs_CMOS">CMOS</a>, de blocs <a href="http://fr.wikipedia.org/wiki/Acc%C3%A8s_direct_%C3%A0_la_m%C3%A9moire">DMA</a>, etc..<br>
Ces <em>« entities »</em> vont être connectées entre elles par des relations <em>« pads »</em>, et le flot de données transite simplement depuis un <em>pad</em> de type « source » vers un <em>pad</em> de type <em>« sink »</em>. On voit bien que cette architecture générale fait penser aux <em>pipelines</em> de <a href="https://fr.wikipedia.org/wiki/GStreamer" title="Définition Wikipédia">GStreamer</a> qui utilisent, eux aussi, <a href="http://www.cin.ufpe.br/%7Ecinlug/wiki/index.php/Introducing_GStreamer#Pads">ces notions de sources, <em>pads</em> et <em>sink</em></a>.<br>
La phase de découverte et de caractérisation de la topologie des périphériques se fait dynamiquement à chaud, et il est possible d’assigner un numéro de groupe à certaines des entités afin d’indiquer qu’elles fonctionnent ensemble. Par exemple, on peut indiquer que le capteur CMOS, la puce intégrée de correction d’image, ainsi que le microphone, qui sont tous les trois présents dans une <em>webcam</em> font partie d’un même groupe.<br>
Laurent Pinchart a indiqué dans <a href="http://article.gmane.org/gmane.linux.alsa.devel/81497">ses e‐mails sur la LKML</a> que les versions successives de ses <em>patches</em> avaient été scrutées de près par les divers responsables du noyau :</p>
<blockquote>
<p>Le code a été passé en revue en profondeur par la communauté V4L. Cette nouvelle version est la première à incorporer des commentaires issus de la communauté ALSA.</p>
</blockquote>
<p>Il n’y a pas de concurrence, puisque <em>« media controller »</em> est complémentaire d’ALSA et de V4L2, et n’a pas du tout l’ambition de les remplacer. Pour l’instant — comme souvent avec l’introduction d’une nouvelle API — l’option de configuration <code>« MEDIA_CONTROLLER »</code> est encore <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=cf4b9211b5680cd9ca004232e517fb7ec5bf5316">marquée comme expérimentale</a>. La documentation détaillée est au format <a href="https://fr.wikipedia.org/wiki/Docbook" title="Définition Wikipédia">Docbook</a> et se trouve dans <code>« documentation/DocBook/v4l/media-controller.xml »</code>. On trouve quand même une brève présentation dans <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/media-framework.txt;h=1844c3f10728c4c128cbdf00dcc99ee61f6352af;hb=176fb0d108f7495ccf9aa127e1342a1a0d87e004"><code>« media-framework.txt »</code></a>.</p>
<p>Du côté des applications, il est bien sûr possible d’interroger finement le sous‐système <em>« media controller »</em> pour se renseigner sur les capacités matérielles de la machine. Cela se fait via des appels <a href="http://en.wikipedia.org/wiki/Ioctl"><em>ioctl</em></a> aux noms explicites comme <code>« MEDIA_IOC_DEVICE_INFO »</code> ou <code>« MEDIA_IOC_ENUM_ENTITIES »</code> ou encore <code>« MEDIA_IOC_ENUM_LINKS »</code>. Les applications peuvent changer les liens entre les <em>« entities »</em>, via un appel à <code>« MEDIA_IOC_SETUP_LINK »</code>.<br>
Le premier pilote à utiliser ce sous‐système <em>« media controller »</em> est l’ISP OMAP3, mais il ne fait aucun doute que de nombreux pilotes vont bientôt utiliser cette nouvelle infrastructure moderne présente dans le noyau Linux.</p>
<h3 id="toc-block-device-plugging">Block device plugging</h3>
<p>La grosse nouveauté du noyau 2.6.39, c’est l’intégration du <em>patch</em> « <a href="https://lwn.net/Articles/438256/"><em>block device plugging</em></a> » écrit par Jens Axboe, qui change considérablement le mode d’écriture des entrées‐sorties en mode bloc du noyau.</p>
<p>Auparavant, à l’ère des dinosaures, tout était relativement simple dans le mode d’envoi des blocs de données vers les périphériques. Quand un processus avait des opérations d’entrées‐sorties à effectuer, le noyau mettait le périphérique cible dans un état dit « branché » (<em>plugged</em>). Ainsi, au lieu d’envoyer directement les données vers le pilote du périphérique pour lancer l’écriture, on peut accumuler les requêtes dans le « tuyau de branchement » (<em>plugged queue</em>). Quand le processus se met à attendre que les données soient écrites, alors il est temps de « débrancher » le périphérique (<em>device unplug</em>) et d’écrire effectivement les données.<br>
Cette méthode permet de fusionner des opérations d’écritures en une seule commande globale et elle améliore donc les performances.</p>
<p>Malheureusement, ce code antédiluvien ne tenait aucun compte des machines multiprocesseurs, et l’opération de branchement impliquait un gros verrou qui limitait la montée en charge. En outre, le débranchement était lui aussi global (via la fonction <code>« blk_run_queues »</code>) ce qui provoquait un <em>« unplug »</em> sur tous les périphériques, alors qu’il aurait été préférable de ne débrancher que le périphérique concerné.<br>
Ces limitations ont conduit Jens Axboe (déjà lui !) à modifier le code du noyau <a href="https://lwn.net/Articles/75233/">en mars 2004</a>. Avec les <em>patches</em> de Jens, le débranchement pouvait se faire pour un périphérique spécifique (<em>per‐device unplug</em>) grâce à la fonction <code>« blk_run_queue »</code> (notez le « s » qui a disparu par rapport au nom de la précédente fonction). Ce changement a nécessité un <em>hack</em> assez vilain dans le sous‐système de la mémoire virtuelle, mais la montée en charge en a été facilitée et les performances ont fait un bond important.</p>
<p>Sept ans après ce travail, Jens Axboe s’est penché une nouvelle fois sur le code des entrées‐sorties du noyau en mode bloc. Il s’est rendu compte qu’en 2011, les compromis nécessaires ne sont plus les mêmes que ceux qui étaient pertinents en 2004. Par exemple, toute cette fonction de <em>« plugging »</em> des périphériques est désactivée pour les disques SSD qui ont une fonction intégrée de mise en queue. Les périphériques rapides, qui sont de plus en plus répandus, imposent donc de réécrire le code de <em>« plugging »</em>.<br>
Jens a décidé de revoir complètement la logique présente dans le noyau Linux, et c’est ce travail qui arrive maintenant dans la version 2.6.39 du noyau.</p>
<p>Le but que poursuit Jens est — comme toujours — de pouvoir faciliter la montée en charge (<em>scalability</em>) et d’augmenter les performances générales. Quels sont les problèmes du mécanisme actuel ?<br>
D’abord, il faudrait que le périphérique lui‐même ne soit plus bloqué par le <em>plugging</em>. En effet, un verrou est tenu sur la queue d’accumulation des données du périphérique, et ce verrou limite la montée en charge.<br>
Un autre problème est la nature asymétrique du mécanisme qui existait jusqu’à présent. On avait un branchement qui se faisait de façon implicite dès que des entrées‐sorties étaient soumises, mais le débranchement devait se faire de façon explicite via l’appel à la fonction <code>« blk_run_queue »</code>.</p>
<p>La solution retenue est de ne plus accumuler les opérations d’entrée‐sorties dans un tampon vivant dans le contexte du périphérique (<em>shared state in the device</em>). Au lieu de ça, une structure est créée directement dans la <a href="http://fr.wikipedia.org/wiki/Pile_%28informatique%29">pile</a> du processus qui soumet les données et cette structure, nommée <code>« struct blk_plug »</code>, va accueillir le tampon d’accumulation des entrées‐sorties.<br>
En résumé, maintenant, on ne branche plus un périphérique en particulier. On branche directement les processus qui veulent envoyer des données. Cette opération de branchement se fait explicitement avec la commande <code>« blk_start_plug »</code> et le débranchement s’effectue via <code>« blk_finish_plug »</code>.</p>
<p><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=73c101011926c5832e6e141682180c4debe2cf45">Ce nouveau mode opératoire</a> permet de corriger les deux défauts du précédent mécanisme qui ont été évoqués plus haut.<br>
Le plus important c'est qu'on n'accumule plus les données en tenant un verrou sur la queue de branchement du périphérique. Ainsi le chemin critique (<em>hot path</em>) est moins contraint par des verrouillages incessants et la montée en charge est bien plus facile.<br>
Les opérations de branchement et de débranchement sont maintenant complètement symétriques, ce qui réduit une source potentielle de bugs. Avant, il fallait utiliser des heuristiques pour débrancher quand un processus se mettait à attendre la complétion de ses opérations I/O. Maintenant, plus besoin d'heuristiques puisque le débranchement se fait explicitement avec un <code>blk_finish_plug</code> quand le thread qui soumettait des requêtes I/O à fini de les envoyer.<br>
Pour que la joie soit complète, la suppression de cette fonction de branchement implicite a permis de <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7eaceaccab5f40bbfda044629a6298616aeaed50">retirer de nombreuses lignes</a> de codes qui étaient devenues inutiles. Le changelog <a href="http://article.gmane.org/gmane.linux.kernel/1117424">a été qualifié par Jens</a> de <em>tasty</em> (succulent) car le nombre total de lignes est réduit dans le noyau (1520 lignes insérées et 2112 lignes supprimées).<br>
En outre, et pour que la joie soit <em>vraiment</em> ultime, le hack assez moche qui avait été introduit en 2004 dans la fonction <code>sync_page</code> n'est plus nécessaire et il a été retiré (pour le plus grand soulagement des responsables du sous-système de la mémoire virtuelle).</p>
<p>Linus ne s'y est pas trompé et ce nouveau mode d'écriture des entrées/sorties en mode bloc du noyau est le seul changement qui a droit à un paragraphe complet dans son mail d'annonce de la RC-1 :</p>
<blockquote>
<p>Le nouveau modèle de branchement des périphérique en mode bloc se fait maintenant par thread et a permis de nettoyer considérablement le code. Cela permet aussi d'éviter pas mal de verrouillages sur le chemin critique et ça devrait donc généralement être une bonne idée.</p>
</blockquote>
<p>Bien entendu il y a eu des petits problèmes au début lors de l'inclusion et Linus a aussi évoqué ces <em>légers</em> désagréments :</p>
<blockquote>
<p>Ceci dit, le nouveau mécanisme s'est mis à manger les systèmes de fichiers XFS pour son petit-déjeuner, mais c'est corrigé et on espère que tout devrait être bon maintenant.</p>
</blockquote>
<p>Les dernières corrections ont été intégrées au moment de la RC-4 ce qui démontre quand même qu'il n'y a pas assez de gens qui testent les noyaux de développement (la branche -next par exemple) et qu'il faut attendre la fin de la période de merge pour que les utilisateurs se mettent soudain à couiner en cas de bugs.<br>
Quoi qu'il en soit ce nouveau mécanisme semble bien plus efficace que son prédécesseur et il constitue donc une avancée marquante du nouveau noyau.</p>
<h2 id="toc-en-bref">En bref</h2>
<h4 id="toc-transcendent-memory">Transcendent memory</h4>
<p>Les patchs de « <a href="https://lwn.net/Articles/340080/">Transcendent memory</a> » écrits par Dan Magenheimer sont entrés dans la branche -staging du noyau 2.6.39.<br>
L'idée derrière ce patch <code>Tmem</code> consiste à doter le noyau d'un moyen différent de gérer la mémoire du système. Ce code alternatif offre un réservoir de pages mémoire créé par la fonction <code>tmem_new_pool()</code> et l'idée ressemble un peu à celle de <a href="http://fr.wikipedia.org/wiki/Memcached">memcached</a> puisqu'on va se servir de ce réservoir de mémoire pour éviter de coûteuses opérations d'entrées/sorties sur le disque. Selon Dan, cette technique et le mode de gestion particulier de cette mémoire sont notamment utiles dans le cas d'un système virtualisé.<br>
Aux côtés de ce patch de « Transcendent memory », on note également le mécanisme de compression du cache des pages mémoire « <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=daa6afa6d920a389015bb8f1ea519cef0636f528">zcache</a> » qui entre lui aussi dans -staging. Ce code utilise le mécanisme <code>Tmem</code> mais n'est pas encore fonctionnel puisqu'il nécessite une autre pièce du puzzle (le patch « cleancache ») que Linus a refusé lors de la période de merge.</p>
<h4 id="toc-user-namespaces">User namespaces</h4>
<p>Développé par Eric Biederman et Serge Hallyn, <a href="https://lkml.org/lkml/2010/12/17/181">le patch de « user namespace »</a> est une extension du méchanisme des « <a href="http://en.wikipedia.org/wiki/Capability-based_security">capabilities</a> » du noyau. Classiquement les capabilities sont utilisées pour donner à un processus des droits ayant une granularité plus fine que le classique, et fort dangereux, flag <code>setuid()</code>.<br>
Ici l'idée est de créer une sorte de conteneur où tous les processus auront l'illusion de tourner sur le système racine alors qu'en réalité, ils seront confinés dans leur espace de nommage (<em>namespace</em>) où chacun des conteneurs aura son ensemble d'<a href="http://fr.wikipedia.org/wiki/User_identifier">UIDs</a>.<br>
Jusque là, rien que de très classique…mais le but est de permettre à des utilisateurs normaux (non root) de créer ces conteneurs. Pour cela il faut contrôler de façon plus fine les capabilities des processus. <br>
Ainsi, un user non privilégié du système pourra utiliser l'appel <code>ns_capable()</code> pour gérer les capacités. Si ce user utilise cet appel système il ne pourra que positionner une capacité sur un processus dans son espace de nommage ou dans un espace de nommage qui descend du sien. Il lui sera interdit de « remonter » dans la hiérarchie des espaces de nommages.<br>
Le patch qui entre dans le noyau 2.6.39 n'est que le début d'un travail à long terme puisque le code a été conçu pour élargir progressivement les capabilities qui seront autorisées dans ces « user namespace » spéciaux. Pour l'instant, seuls trois appels système sont autorisés : <code>sethostname()</code> (si le user à la capacité <code>CAP_SYSADMIN</code>), l'appel <code>check_kill_permission()</code> (si le user à la capacité <code>CAP_KILL</code>) et enfin <code>ptrace()</code> (si <code>CAP_SYS_PTRACE</code> est positionné).<br>
<a href="https://wiki.ubuntu.com/UserNamespace">Une page du wiki Ubuntu</a> coordonne l'avancement des travaux et, comme l'explique fort bien <a href="https://lwn.net/Articles/420624/">cet article LWN</a>, l'approche incrémentale a été choisie afin de pouvoir relire et tester plus longuement les fonctions de « user namespace » puisqu'il s'agit d'une fonction sensible concernant la sécurité.</p>
<h4 id="toc-système-de-fichiers-pstore">Système de fichiers pstore</h4>
<p>Le <a href="https://lwn.net/Articles/434821/">système de fichiers spécialisé pstore</a>, destiné à recueillir les derniers mots d'un système à l'agonie, a été intégré au noyau 2.6.39. L'idée derrière <em>pstore</em> est simple. Quand le système se vautre, il est fort utile de connaître la raison du crash afin de pouvoir corriger le problème. Le moyen classique c'est de loguer les derniers messages du système sur le disque pour pouvoir les lire plus tard.<br>
L'ennui de ce schéma, c'est que le crash peut avoir empêché l'écriture des logs sur le disque ou bien tout simplement corrompu les données. Ce serait bien d'avoir une solution alternative qui n'utiliserait pas le disque et - bien entendu - cette option de la dernière chance ne devrait pas être spécifique à une architecture, mais plutôt conçue comme étant la plus générique possible.<br>
Il y a eu plusieurs faux départs puisqu'à l'origine, le code se basait uniquement sur la table ERST (<em>Error Record Serialization Table</em>) de la norme ACPI et l'interaction était réalisée via le système de fichiers virtuel <a href="http://fr.wikipedia.org/wiki/Sysfs">sysfs</a>. Après une <a href="http://article.gmane.org/gmane.linux.kernel.cross-arch/8280">suggestion d'Alan Cox</a>, il a été décidé de sauter le pas et de convertir pstore en un vrai système de fichiers.<br>
Par défaut, quand un Oops ou un panic se produit, les dix derniers kilo-octets de logs sont passés, à l'aide de <code>kmsg_dump</code>, au pilote pstore.<br>
<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/ABI/testing/pstore;h=f1fb2a004264bc6989a20d92ca333b436c7154d4;hb=ca01d6dd2d7a2652000307520777538740efc286">Avec cette solution en place</a>, toutes les plates-formes qui disposent d'une petite quantité de mémoire non volatile pourront sauver les derniers messages du noyau. Après un reboot, il suffira de lancer <code>mount -t pstore - /dev/pstore</code> pour aller ensuite lire la sauvegarde de données.<br>
David Miller, le mainteneur de l'architecture Sparc64, <a href="http://article.gmane.org/gmane.linux.kernel.cross-arch/8275/">a déjà indiqué</a> qu'il allait utiliser ce mécanisme pour implémenter la fonction sur son architecture de prédilection.</p>
<h4 id="toc-open-by-handle">Open by handle</h4>
<p>La fonctionnalité « Open by handle » qui est décrite dans <a href="https://lwn.net/Articles/375888/">cet article LWN</a>, a été incluse dans le noyau. Un <em>file handle</em> c'est, en gros, un identifiant numérique qui est attribué par le système lors de l'accès à un fichier. C'est une donnée purement interne qui normalement n'est pas accessible par les applications vivant en espace utilisateur.<br>
<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=becfd1f37544798cbdfd788f32c827160fab98c1">Le commit de Aneesh Kumar</a> change la situation puisqu'il ajoute deux nouveaux appels système, qui sont réservés à l'administrateur de la machine, et qui vont permettre à certaines applications d'utiliser directement le <em>handle</em> d'un fichier au lieu de passer par son nom. On va ainsi appeler la fonction <code>name_to_handle_at()</code> pour établir une correspondance entre un nom et le <em>handle</em> et la fonction <code>open_by_handle_at</code> pour ouvrir le fichier en utilisant le <em>handle</em>.<br>
Les noyaux compilés avec <code>CONFIG_FHANDLE</code> permettront donc d'utiliser cette possibilité qui est très utile dans le cas d'un serveur de fichier qui tournerait en espace utilisateur. Le serveur, une <a href="http://sourceforge.net/apps/trac/nfs-ganesha/">version spéciale de NFS</a> par exemple, va pouvoir trouver le <em>handle</em> d'un fichier et le passer directement au système de fichiers sous-jacent qui pourra s'en servir ultérieurement.</p>
<h4 id="toc-améliorations-de-lio">Améliorations de LIO</h4>
<p>L'infrastructure <a href="http://www.linux-iscsi.org/index.php/Main_Page">LIO</a> qui permet de faire du Target iSCSI et qui est <a href="//linuxfr.org/news/le-noyau-linux-est-disponible-en-version-2638#toc_14">entrée lors du cycle précédent</a>, a été améliorée par deux patchs assez conséquents.<br>
C'est tout d'abord le module <a href="http://linux-iscsi.org/wiki/Tcm_loop">tcm_ Loop</a> qui a été <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3703b2c5d041a68095cdd22380c23ce27d449ad7">intégré</a> par Nicholas Bellinger. Ce module permet d'émuler un périphérique SCSI à partir d'un « <em>raw device</em> » c'est-à-dire d'un périphérique en mode bloc qu'on va attaquer directement sans passer par le système des caches de l'OS.<br>
Le <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=12d233842987d9972957419e427987b94f7bd7b4">second patch</a> ajoute à LIO la possibilité d'utiliser le système de fichiers virtuel configFS pour récupérer des statistiques sur le fonctionnement de l'infrastructure de Target iSCSI. <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=12d233842987d9972957419e427987b94f7bd7b4">Le message de commit</a> explique bien toutes les données, complexes, qui sont maintenant disponibles.</p>
<h4 id="toc-device-mapper">Device mapper</h4>
<p>Le device mapper est la couche logique qui permet par exemple de faire du RAID logiciel ou du chiffrement de disques entre divers périphériques en mode blocs. La fonction de « <em>striping</em> » (c'est à dire l'aggrégation de disques en mode <a href="http://fr.wikipedia.org/wiki/RAID_%28informatique%29#RAID_0_:_volume_agr.C3.A9g.C3.A9_par_bandes">RAID 0</a>) a été complétée par l'ajout des "<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=29915202006c2e7bafe81348eb498ff9a724ac61">merge methods</a>" qui augmentent significativement les performances. Alors qu'avant, on pouvait avoir des cas où une seule page était envoyée dans une opération d'entrées/sorties, maintenant, le patch du noyau 2.6.39 prend soin d'utiliser la fonction <code>stripe_merge</code> pour assembler dans tous les cas une plus grande quantité de bios (bloc i/o). <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=29915202006c2e7bafe81348eb498ff9a724ac61">Le message de commit</a> indique que ces "merge methods" autorisent des gains en débit de données qui peuvent aller de 12% à 35%.<br>
Toujours en ce qui concerne le "device mapper", on peut citer la nouvelle cible DM nommée "<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3407ef5262b55ca5d7139d2b555ef792fe531eec">Flakey target</a>". Cette cible permet de générer des erreurs d'entrées/sorties avec des intervalles paramétrables (<em>up interval</em> et <em>down interval</em>). C'est très utile quand on veut tester intensivement des périphériques et le code de gestion d'erreur présent dans le noyau.</p>
<h4 id="toc-swap-mtd">Swap MTD</h4>
<p>Un pilote générique de swap pour les périphériques MTD (<a href="http://en.wikipedia.org/wiki/Memory_Technology_Device">Memory Technology Device</a>) a été écrit par Jarkko Lavinen. La couche MTD s'interpose entre le pilote matériel bas niveau des périphériques utilisant de la mémoire flash et les couches plus hautes du noyau Linux. Ces partitions MTD sont assez souvent utilisées dans le monde de l'embarqué. Le nouveau pilote mtdswap permet maintenant, avec l'option de configuration <code>MTD_SWAP</code>, d'utiliser le périphérique MTD comme si c'était un périphérique classique en mode bloc utilisé pour le <a href="http://fr.wikipedia.org/wiki/M%C3%A9moire_virtuelle#Swapping">swap</a> du système. Comme le support des données est constitué de mémoire flash, une fonction d'étalement des écritures (<a href="http://fr.wikipedia.org/wiki/Wear_levelling">wear levelling</a>) est incorporée dans le pilote mtdswap.</p>
<h4 id="toc-systèmes-de-fichiers">Systèmes de fichiers</h4>
<p>Dans le domaine des systèmes de fichiers présents dans ce nouveau noyau Linux, on notera l'activation par défaut dans ext4 de la fonction « <em>direct bio layer</em> » qui était <a href="//linuxfr.org/news/sortie-de-la-version-2637-du-noyau-linux#long1">décrite dans la news du 2.6.37</a>. Cette fonction augmente significativement les performances, mais elle avait été désactivée à la suite d'un bug de corruption de données. Le fix <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d50bdd5aa55">ayant été écrit</a> par Curt Wohlgemuth, et les tests démontrant que le mécanisme était devenu d'une robustesse à toute épreuve, Ted Ts'o a décidé <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6fd7a46781999c32f423025767e43b349b967d57">d'activer par défaut</a> la fonction.<br>
En ce qui concerne btrfs, outre <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1abe9b8a138c9988ba8f7bfded6453649a31541f">l'ajout de points de traçage</a> et l'utilisation de <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f7039b1d5c32241f87a513e33120db36bf30264d">la commande FITRIM</a> qui permet d'optimiser l'utilisation des disques SSD (voir <a href="//linuxfr.org/news/sortie-de-la-version-2637-du-noyau-linux#long2">l'explication</a>), on peut relever la nouvelle possibilité de compression par fichier ou par répertoire. Avant ce patch, on pouvait uniquement positionner une option lors du montage du système de fichiers pour lui indiquer d'activer, ou pas, les fonctions de compression et de COW (<a href="http://fr.wikipedia.org/wiki/Copy-On-Write">Copy-On-Write</a>). Le <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=75e7cb7fe0c391561bd3af36515be3f3c64a04c6">travail de Liu Bo</a> permet maintenant d'utiliser le flag générique <code>FS_IOC_SETFLAGS</code> pour spécifier si on souhaite activer la compression ou le COW pour un fichier ou un répertoire particulier.<br>
Enfin, le code de désallocation des blocs du système de fichiers pour clusters <a href="http://fr.wikipedia.org/wiki/Global_File_System">GFS2</a> a été amélioré par Bob Peterson de façon à ne plus mettre à jour le fichier des quotas et le fichier des statistiques à chaque désallocation. Bob a testé son optimisation en créant 200 fichiers de 100 Mo chacun sur quatre machines en cluster. La suppression simultanée de ces fichiers stresse GFS2 puisqu'il y a compétition entre les ressources. Avec l'ancien code le travail était terminé en 118,6 secondes alors qu'il ne faut plus que 89,4 secondes avec <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4c16c36ad62fff8485215bd803d778eb2bd0b8bd">le patch</a>.</p>
<h4 id="toc-appel-système-syncfs">Appel système syncfs</h4>
<p>L'appel système <code>sync()</code> permet d'ordonner au système de vider tous les caches sur le périphérique de stockage. Grâce à lui on peut s'assurer qu'une donnée a bien été écrite sur le disque et ainsi ne pas se tourmenter pour la cohérence des données.<br>
Tout ça est bien joli, mais un inconvénient de <code>sync()</code>, c'est qu'il oblige à synchroniser <em>tous</em> les systèmes de fichiers qui sont montés sur le système. On ne peut pas en choisir un et ne synchroniser que celui-là…ou plutôt si on peut, mais en rusant et en étant obligé d'avoir des droits root (par exemple en faisant un 'mount -o remount,rw' sur un système de fichiers pour forcer un sync).<br>
C'est <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b7ed78f56575074f29ec99d8984f347f6c99c914">pour corriger cette limitation</a> que Sage Weil a créé l'appel <code>syncfs()</code> qui prend en paramètre le système de fichiers qu'on désire synchroniser et qui, tout comme <code>sync()</code>, est un appel non privilégié qui n'est pas réservé à root.</p>
<h4 id="toc-unicore32">Unicore32</h4>
<p>Comme l'a annoncé Linus dans son mail sur la première version candidate, une nouvelle architecture fait son entrée dans la branche principale du noyau. C'est le « <a href="http://mprc.pku.cn/eng/intro.html">Microprocessor Research and Development Center</a> » de l'Université de Pékin qui a conçu cette puce <a href="http://en.wikipedia.org/wiki/Unicore">Unicore32</a>. Il s'agit d'un processeur RISC avec un jeu d'instructions mixte 16/32 bits qui vise l'embarqué et qui a été <a href="http://www.pkunity.com/english%20version/engintrcpu.htm">intégré dans divers SoC</a> en Chine. On le retrouve même dans des mini stations de travail fanless comme <a href="http://www.pkunity.com/english%20version/engncsp.htm">celle-ci</a>.<br>
On peut certes considérer que cette architecture est extrêmement exotique et que <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=790edb61c0d87d1f1daafcaaa8f7c66b7b82bdad">son ajout dans le noyau Linux</a> n'est qu'une anecdote sans importance. Ce serait une erreur puisque cela reflète en réalité la montée en puissance de la Chine et de ses technologies. Qu'il s'agisse d'Unicore32 ou de la puce MIPS/<a href="http://en.wikipedia.org/wiki/Loongson">Loongson</a> qui sera au coeur des <a href="http://en.wikipedia.org/wiki/Dawning_Information_Industry#Dawning_6000">futurs superordinateurs chinois</a>, il est clair que Pékin a de grandes ambitions et que cette volonté d'indépendance passe par Linux.</p>
<h4 id="toc-perf">Perf</h4>
<p>Comme d'habitude l'outil de tracing <code>perf</code> a fait l'objet d'une multitude de patchs améliorant son fonctionnement ou ajoutant des fonctions. C'est un sous-système du noyau qui est en évolution très rapide depuis plusieurs versions et les développeurs s'en donnent à coeur joie.<br>
En vrac on peut citer <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4979d2729af22f6ce8faa325fc60a85a2c2daa02">le support</a> des futurs processeurs AMD <a href="http://fr.wikipedia.org/wiki/Bulldozer_%28microarchitecture%29">Bulldozer</a>, la commande <code>evlist</code> qui <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=43adec955edd116c3e98c6e2f85fbd63281f5221">liste tous les évènements</a> enregistrés dans un fichier perf.data, la possibilité de <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=668b8788f497b2386402daeca583d6300240d41d#patch1">filtrer la liste des évènements</a> par catégorie alors qu'avant la commande <code>perf list</code> n'admettait pas d'arguments ou encore <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f4929bd37208540c2c6f416e9035ff1938f2dbc6">l'amélioration du support</a> des compteurs matériels des puces Nehalem.<br>
L'avancée la plus notable est sans doute <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25">le patch</a> permettant de ne monitorer qu'un cgroup particulier au lieu de devoir examiner tout le système. Ce nouveau filtrage par cgroup marche avec <code>perf stat</code> comme avec <code>perf record</code> avec la nouvelle option -G et on peut surveiller plusieurs groupes en parallèle en listant leurs noms séparés par une virgule.</p>
<h4 id="toc-pilotes-graphiques">Pilotes graphiques</h4>
<p>Le noyau 2.6.39 <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0867b42113ec4eb8646eb361b15cbcfb741ddf5b">intègre pour la première fois</a> dans sa branche -staging un pilote <code>psb_gfx</code> dédié à la puce graphique GMA500 (plus connue sous le nom de <a href="http://en.wikipedia.org/wiki/Poulsbo_%28chipset%29#Poulsbo">Poulsbo</a>). Le pilote est développé directement par Alan Cox et, même s'il ne dispose pas encore de la 3D accélérée et n'utilise pas les moteurs vidéos matériels de la puce, le code gère le framebuffer ainsi que la 2D. Comme <a href="http://thread.gmane.org/gmane.linux.kernel/1130687">l'explique Kristoffer Ericson</a> le pilote est stable et, si vous n'avez pas besoin de l'accélération 3D, il constitue une alternative tout à fait réaliste à l'ignoble <a href="http://fr.wikipedia.org/wiki/Binary_large_object">blob</a> d'Imagination Technologies.</p>
<p>Du côté d'AMD peu de nouveautés à noter hormis les patchs de prise en charge <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b7cfc9fe921ddd1a926803711df63e1ea52a7563">des puces HD 6900</a> (Cayman) et d'activation du <a href="http://en.wikipedia.org/wiki/Tiled_rendering">tiling</a> pour les puces R600 qui entrent dans le noyau.</p>
<p>Le pilote Nouveau <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8f7286f8e4e80f7b868ba3d117ae900f0d207cbe">offre maintenant la z-compression</a> c'est-à-dire que les données sur la profondeur sont stockées en mode compressé dans un tampon mémoire spécifique (le z-buffer). Cela permet de savoir si il faut vraiment afficher le pixel ou si ce n'est pas nécessaire parce qu'il est masqué. La <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d7117e0d4e21034202833088e51fc21f8c8271f9">technique du « page flipping » est également ajoutée</a> au pilote Nouveau du noyau 2.6.39. Avec <a href="http://download.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html">cette technique</a> on utilise deux tampons pour la vidéo, l'un qui est affiché sur l'écran (<em>front buffer</em>) tandis que l'autre se remplit (<em>back buffer</em>). Au moment opportun, on bascule d'un tampon à l'autre avec un pointeur ce qui évite de copier des données (qui a pensé aux <a href="http://fr.wikipedia.org/wiki/Sprite_%28jeu_vid%C3%A9o%29">sprites</a> ?).<br>
Enfin <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=bd35fe5a7930bf83ed56422ea4e4b6471ee6f739">la correction d'un problème de performance</a> permet de gagner d'un seul coup entre 10 et 30% <a href="http://en.wikipedia.org/wiki/Frame_rate">d'images par seconde</a> en plus par rapport aux noyaux précédents.</p>
<p>Pour en terminer avec les pilotes graphiques, en ce qui concerne Intel, on relève <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ccab5c82759e2ace74b2e84f82d1e0eedd932571">plusieurs</a> patchs <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e8b2c3c47a53348aebbbeb5322e32937df958793">améliorant</a> la gestion de la puce graphique présente dans le processeur Sandy Bridge (20% de performances en plus dans <a href="http://fr.wikipedia.org/wiki/Nexuiz">Nexuiz</a>). Le pilote i855 a également été complètement revu et nettoyé.</p>
<h4 id="toc-xen">Xen</h4>
<p>Les développeurs de l'hyperviseur <a href="http://fr.wikipedia.org/wiki/Xen">Xen</a> continuent leur combat pour essayer de rejoindre la branche principale du noyau en tant que Dom0 (c'est à dire en mode d'accueil de systèmes invités). Cette fois c'est le pilote réseau générique netback qui <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f942dc2552b8bfdee607be867b12a8971bb9cd85">entre dans le noyau</a>. Ce pilote permet aux systèmes invités, plus précisément à leurs périphériques réseau paravirtualisés, de communiquer entre eux. C'est une étape importante mais le noyau Linux n'est toujours pas prêt à jouer le rôle d'hôte en Dom0 puisqu'il manque encore des pilotes cruciaux. La situation n'est pas près de changer puisque les hackers du noyau semblent considérer que les développeurs de Xen <s>sont des gorets</s> produisent un code trop invasif. On peut citer l'exemple du pilote générique en mode bloc qui <a href="http://article.gmane.org/gmane.linux.kernel/1129246">a été proposé sur la LKML</a> par Konrad Rzeszutek Wilk qui travaille chez Oracle. La réponse de Christoph Hellwig <a href="http://article.gmane.org/gmane.linux.kernel/1129351">a été immédiate</a> : </p>
<blockquote>
<p>Tout ça devrait être en espace utilisateur. Et la dernière fois que cela a été discuté Stefano a indiqué que le backend Xen disk de qemu était tout aussi rapide que ce code noyau. Et encore il n'est même pas très optimisé.<br>
Donc de ma part c'est un clair NACK pour l'ajout de tout ce bordel dans le noyau. </p>
</blockquote>
<p>Même si Xen Dom0 semble bloqué la partie DomU continue d'avancer régulièrement. Dans cette nouvelle version 2.6.39 on retrouve également le support Xenbus pour les « <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c7853aea57d8e850b0979e7bdcbcabdcbbdd9e37">PM Events</a> ». Cela permet aux systèmes invités (<em>guests</em>) de recevoir les notifications du sous-système de gestion de l'énergie comme par exemple les mises en veille, en hibernation, etc.</p>
<h4 id="toc-kvm">KVM</h4>
<p>Toujours dans le domaine de la virtualisation, <a href="http://fr.wikipedia.org/wiki/Kernel-based_Virtual_Machine">KVM</a> a corrigé un <a href="http://thread.gmane.org/gmane.linux.kernel/1076542">problème de performance</a> ennuyeux. Rik van Riel a constaté que les systèmes invités, et en particulier Windows, souffraient dans certains cas d'une lenteur rédhibitoire ( <em>gigantic slowdown</em>).<br>
Auparavant, quand un thread d'un système invité était bloqué par un <a href="http://en.wikipedia.org/wiki/Spinlock">spinlock</a>, le processeur prévenait KVM de ce blocage et le code de KVM était conçu pour faire avancer d'autres processus extérieurs au guest. Il a été constaté que cette stratégie était finalement loin d'être optimale et qu'il valait mieux donner du temps de processeur au thread tenant le verrou. Ce renforcement de la priorité du thread s'effectue avec un appel à <code>yield_to()</code> et cela permet de <a href="https://lwn.net/Articles/419961/">renforcer les chances de déblocage</a> au profit de tout le système.<br>
Un second patch KVM qui vaut la peine d'être evoqué est celui qui s'intitule « <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0857b9e95c1af8bfe84630ef6747b9d4d61de4c6">asynchronous page faults processing</a> ». Le message de commit est très abscons, mais l'idée est finalement assez simple. Normalement, quand le système invité rencontre un <a href="http://en.wikipedia.org/wiki/Page_fault">défaut de page</a>, l'hôte interrompt le fonctionnement du guest et s'occupe d'aller chercher la page mémoire requise. L'idée du patch est de ne plus suspendre l'exécution du guest et d'utiliser ce délai pour permettre au système invité de faire avancer un autre thread. Pour cela, l'hôte envoie un message de « <em>défaut de cache asynchrone</em> » et l'invité endort uniquement le thread qui a demandé la page mémoire. Le guest peut donc continuer à faire tourner d'autres threads et n'est plus complètement bloqué. Quand l'hôte fournit la page, alors un signal de réveil est simplement envoyé au thread qui était suspendu.<br>
D'après les tests de Gleb Natapov, et qui sont résumés dans ce <a href="http://www.linux-kvm.org/wiki/images/a/ac/2010-forum-Async-page-faults.pdf">fichier pdf</a>, les gains sont très importants. Le protocole se base sur un hôte accueillant quatre machines virtuelles. Sur chacun des systèmes invités, un thread réalise des accès mémoire aléatoires tandis qu'un autre incrémente un compteur. Au bout d'une minute, on regarde le compteur pour voir la quantité de travail qu'a pu effectuer le thread d'incrémentation :<br>
Sans « <code>async page fault</code> » : 129 752 639 953<br>
Avec « <code>async page fault</code> » : 258 846 142 585<br>
Certes, le test est conçu pour bien mettre en évidence les changements induits par le patch…mais un doublement des performances c'est quand même assez spectaculaire !</p>
<h4 id="toc-dmi">DMI</h4>
<p>La norme DMI (<a href="http://fr.wikipedia.org/wiki/Desktop_Management_Interface">Desktop Management Interface</a>) est une couche d'abstraction qui permet de décrire tous les composants matériels d'un ordinateur. Le noyau Linux contient un décodeur DMI et, grâce à lui et grâce aux infos de <a href="http://en.wikipedia.org/wiki/System_Management_BIOS">SMBIOS</a>, on peut lancer une commande qui va retourner une liste descriptive de la machine. La commande en question, c'est le bien connu <code>dmidecode</code> qui doit être lancé en root.<br>
Pour faciliter l'obtention de ces informations sur le matériel, le noyau Linux 2.6.39 implémente une nouvelle interface <code>/sys/firmware/dmi/</code>. Si le noyau est configuré avec l'option <code>DMI_SYSFS</code> alors un simple utilisateur pourra utiliser les informations présentes dans ce répertoire pour connaître tous les secrets cachés de son ordinateur.</p>
<h4 id="toc-fenêtre-de-congestion-tcp">Fenêtre de congestion TCP</h4>
<p>Les réglages par défaut de la pile <a href="http://fr.wikipedia.org/wiki/Transmission_Control_Protocol">TCP</a> du noyau ont été modifiés dans la nouvelle version 2.6.39.<br>
Le protocole TCP spécifie un algorithme spécial pour découvrir le débit maximum que supporte une connexion. Cet algorithme, nommé « slow start », va commencer par envoyer très peu de données et va progressivement augmenter la cadence jusqu'à la saturation du lien. C'est bien pratique d'avoir ainsi un fonctionnement qui s'adapte aux conditions réelles du réseau… mais les ingénieurs de Google ont récemment <a href="http://research.google.com/pubs/pub36640.html">signalé un problème</a>. Comme l'indique le nom « slow start », on va commencer en douceur et la fenêtre de congestion (<em>initial congestion window</em>) est très petite au début de la connexion. La limite est de quatre <a href="http://fr.wikipedia.org/wiki/Transmission_Control_Protocol#Structure_d.27un_segment_TCP">segments</a>, ce qui correspond environ à 4 Ko. Si la durée de connexion est courte, alors cela signifie qu'on n'aura jamais vraiment profité du débit de la ligne puisqu'on sera resté tout le temps en mode « 4 segments ».<br>
Cette limite est donc de nos jours un goulet d'étranglement puisque les réseaux permettent des débits plus importants qu'au moment où a été décidé la limite de congestion (en 2002 dans la <a href="http://tools.ietf.org/html/rfc3390">RFC 3390</a>). Les tests de Google (voir <a href="http://research.google.com/pubs/archive/36640.pdf">le pdf</a> de l'article <code>An Argument for Increasing TCP's Initial Congestion Window</code>) ont montré qu'un passage à une fenêtre de congestion à dix segments permettrait de réduire d'environ 10% le temps de latence moyen d'une requête HTTP.<br>
David S. Miller, le mainteneur de la couche réseau du noyau, a donc écrit <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=442b9635c569fef038d5367a7acd906db4677ae1">le patch</a> qui modifie <a href="https://lwn.net/Articles/427104/">la taille de la fenêtre de congestion</a> et le noyau 2.6.39 est la première version à proposer ce nouveau réglage par défaut.</p>
<h4 id="toc-algorithmes-choke-et-sfb">Algorithmes CHOKe et SFB</h4>
<p>Toujours dans le domaine des réseaux, le noyau 2.6.39 accueille deux nouveaux algorithmes de <a href="http://fr.wikipedia.org/wiki/Tcp#Contr.C3.B4le_de_congestion">contrôle de la congestion</a>. En effet, quand un lien est saturé, il faut avoir une méthode pour réduire le débit et ce problème du contrôle de la congestion est encore un domaine de recherche actif pour trouver l'agorithme le plus efficace.<br>
<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e13e02a3c68d899169c78d9a18689bd73491d59a">Le patch d'intégration de SFB</a> (<em>Stochastic Fair Blue</em>) explique que la stratégie de cet algorithme ne se base plus sur la longueur des queues de paquets des routeurs pour déterminer qu'un engorgement du réseau est en cours. On va plutôt baser les heuristiques sur le nombre de paquets perdus et sur les périodes de veille du lien (<em>link idle events</em>), ce qui est perçu comme plus représentatif.<br>
<a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=45e144339ac59971eb44be32e1282760aaabe861">Le second algorithme intégré dans le noyau</a> adopte une stratégie complètement différente. Portant un nom qui ne peut que faire plaisir au barbare sanguinaire qui sommeille en nous, l'algorithme <a href="https://lwn.net/Articles/422477/">CHOKe</a> (pour « <em>CHOose and Kill</em> ») va examiner les limites fixées à la longueur des queues de paquets des routeurs. Quand la taille paramétrée est dépassée, on compare le paquet entrant avec un paquet se trouvant déjà dans la queue et choisi au hasard (c'est le <em>CHOose</em>). Si ces deux paquets émanent du même flux, alors il y a une grande chance que le coupable de la saturation du lien soit identifié. On passe alors à l'étape <em>Kill</em> en supprimant sans pitié les deux paquets. Bien entendu si les deux paquets ne sont pas membres d'un même flux, alors on se contente de tuer le paquet entrant.<br>
L'avantage de cette stratégie c'est que le routeur n'a pas a surveiller en permanence l'origine réelle des divers flux (ce qui est très coûteux) puisque l'heuristique pourra identifier le coupable avec une bonne précision en cas de problème.</p>
<h4 id="toc-bkl-thats-all-folks">BKL: That's all folks</h4>
<p>Après l'annonce de la fin du « <em>Big Kernel Lock</em> » dans <a href="//linuxfr.org/news/sortie-de-la-version-2637-du-noyau-linux#long7">le noyau 2.6.37</a> les derniers bouts de code obscurs qui l'utilisaient encore ont été impitoyablement traqués. Même si c'est plus pour la beauté du geste qu'autre chose, Arnd Bergmann a converti les derniers récalcitrants : les systèmes de fichiers <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=788257d6101d986ac8f2741aaa35974af47f574c">UFS</a> et <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9a311b96c3065f362e3348cb5d7af1a57ca6bff9">HPFS</a>, les protocoles <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=77b2283604bdd7053494a97b0e2fee97148206c6">X.25</a>, <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b0d0d915d1d1a0fe486849f3e41333c66df620c4">IPX</a> ou encore <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=60d9f461a20ba59219fdcdc30cbf8e3a4ad3f625">Appletalk</a> ont été modifiés pour supprimer toute référence au verrou global.<br>
Certes ce travail est sans doute un peu vain puisque les utilisateurs réels de ces sous-systèmes doivent se compter sur les doigts de la main d'un lépreux. Pourtant le fait de mettre un point final à cette épopée a une certaine valeur en soi. Psychologiquement, même si cela n'a pas de conséquences pratiques, il est important de ne pas laisser des parties délaissées du noyau dépendre du BKL. On peut sentir transparaître la satisfaction du devoir accompli quand on regarde <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ba8216cd90560bc402f52076f64d8546e8aefcb">le message de commit d'Arnd</a>. Qu'il s'agisse du fier « <a href="http://www.phrases.org.uk/meanings/350000.html">That's all Folks</a> », du listing des contributeurs ayant participé à la traque ou encore du statut « <em>deleted file</em> » appliqué au fichier <code>lib/kernel_lock.c</code>, c'est vraiment un commit historique que nous avons là et c'est une page du noyau qui se tourne avec la fin du BKL.</p>
<h2 id="toc-le-bilan-en-chiffres">Le bilan en chiffres</h2>
<p>Du côté des statistiques de ce cycle, <a href="https://lwn.net/Articles/442229/">l'article récapitulatif du site LWN</a> pour le 2.6.39 est disponible. On peut également consulter <a href="http://www.remword.com/kps_result/">le site remword</a> dédié aux statistiques du noyau Linux pour trouver les principales données quantitatives de cette version (chiffres au 17 mai).</p>
<p>Il est à noter que ce cycle a été particulièrement calme et court. Les régressions signalées sur la LKML ont été peu nombreuses et Linus a publié seulement 7 versions candidates avant de sortir le noyau 2.6.39 définitif. Entre le 14 mars et le 18 mai seulement 64 jours se sont écoulés, ce qui représente le cycle de développement le plus réduit depuis l'import initial dans Git en avril 2005 pour la version 2.6.12-rc2.</p>
<p>En matière de patchs et de nombre de développeurs cette version est un bon cru puisqu'on relève l'intégration de <a href="http://www.remword.com/kps_result/2_6_39_petop.html">10 208 patchs</a> écrits par 1 292 développeurs (9 432 patches et 1 201 développeurs pour le noyau 2.6.38). On peut noter qu'environ 670 000 lignes de code ont été ajoutées au noyau et 346 000 lignes supprimées et que le plus gros contributeur individuel est Thomas Gleixner (auteur des patchs sur le sous-système des interruptions évoqué plus haut).<br>
Une donnée toujours importante est celle des primo-contributeurs (les personnes postant un patch pour la toute première fois depuis la bascule vers Git en avril 2005). Ils sont cette fois <a href="http://www.remword.com/kps_result/2_6_39_ftc.html">310</a> ce qui constitue le second plus grand total depuis plus de dix cycles.</p>
<p>En termes de contributions par les entreprises, c'est toujours <a href="http://www.remword.com/kps_result/2_6_39_whole.html">Red Hat qui est en tête</a>, avec Intel en seconde position et Novell juste derrière.<br>
Dans <a href="https://lwn.net/Articles/442229/">l'article de LWN</a> Jon Corbet indique que la position d'Oracle continue de décliner et il est peut-être intéressant de vérifier cette assertion en regardant de plus près les statistiques. Je me suis donc penché sur les chiffres relatifs aux contributions d'Oracle afin de voir comment évoluent la tendance depuis quelques années. Est-ce que la création d'« <em>Unbreakable Linux</em> » a conduit au développement d'une solide expertise interne ? Est-ce que le nombre de patchs a varié depuis le rachat de Sun en janvier 2010 ? Est-ce que le niveau d'implication dans le noyau est toujours le même ?<br>
Regardons l'évolution depuis le noyau 2.6.27 d'octobre 2008 :</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7061747269636b677569676e6f742e667265652e66722f6c696e757866722f6f7261636c652e706e67/oracle.png" alt="Titre de l'image" title="Source : http://patrickguignot.free.fr/linuxfr/oracle.png"></p>
<p>Si on excepte le pic du noyau 2.6.29, qui s'explique par l'intégration de btrfs dans la branche principale, on constate que la tendance est plutôt à la baisse et qu'en termes de patches Oracle semble de moins en moins actif. En termes de rang parmi les autres entreprises contributrices le recul est également perceptible puisque Oracle était régulièrement dans les dix premiers contributeurs alors que depuis le noyau 2.6.33 l'entreprise s'enfonce lentement vers la vingtième place.<br>
Nul doute que ces données quantitatives, et la tendance qu'elles révèlent, sont à prendre en compte par les entreprises qui étudient une transition vers « <em>Unbreakable Linux</em> ».</p>
<h2 id="toc-pour-la-suite">Pour la suite</h2>
<p>En ce qui concerne les futures nouveautés des prochaines versions du noyau, on peut se tourner vers <a href="http://www.linuxfoundation.org/en/Linux_Weather_Forecast">la page spécifique</a> de la Fondation Linux.</p>
<h3 id="toc-arm--une-solution-en-vue">ARM : une solution en vue</h3>
<p><a href="https://lwn.net/Articles/439314/">Les récriminations</a> de Linus Torvalds au sujet de la branche ARM ont été suffisamment sonores pour inquiéter sérieusement les mainteneurs de cette architecture. Quand on lit des phrases comme « <a href="http://article.gmane.org/gmane.linux.ports.arm.kernel/113895">Je suis à <em>deux doigts</em> de ne plus accepter aucun patch de certaines personnes à moins que les choses ne s'améliorent</a> » c'est qu'il est grand temps de s'activer afin <a href="http://linux-foundation.org/weblogs/lwf/2011/05/14/whats-up-with-arm/">d'améliorer la situation</a> dans les futurs noyaux.</p>
<p>C'est pour réfléchir à la meilleure stratégie que <a href="http://en.wikipedia.org/wiki/Linaro">Linaro</a>, l'organisation à but non lucratif qui rassemble les entreprises intéressées par ARM, a organisé <a href="http://summit.linaro.org/uds-o/">un sommet des développeurs</a> à Budapest au mois de mai. Paul E. McKenney a résumé les échanges dans plusieurs posts successifs sur son blog (<a href="http://paulmck.livejournal.com/25785.html">1</a> - <a href="http://paulmck.livejournal.com/26362.html">2</a> - <a href="http://paulmck.livejournal.com/26599.html">3</a>).<br>
Il semble que les développeurs ARM vont essayer de migrer le maximum de sous-architectures vivant dans <code>/arch/arm/*</code> vers le répertoire <code>/drivers/*</code>. Cela permettra de fusionner plusieurs pilotes quasi-identiques et de partager davantage de code entre les divers SoC. Un travail de fond pour consolider le code des sous-architectures est également lancé. Qu'il s'agisse de la gestion des horloges, de cpufreq ou cpuidle, de l'unité de gestion de la mémoire (<a href="http://en.wikipedia.org/wiki/IOMMU">IOMMU</a>), des gestionnaires d'interruptions, etc. Chacun de ces points a été examiné soigneusement pour ne plus dupliquer le travail et le code.<br>
Quelques patchs d'unification vont rejoindre le noyau dès la version 2.6.40 mais c'est vraiment à partir du 2.6.41 que les choses vont s'accélérer avec la mise en place d'un « <a href="http://devicetree.org/Device_Tree_Usage#Basic_Concepts">device tree</a> » descriptif pour les cartes ARM et les SoC.<br>
Un dépôt Git spécifique va être mis en place avec des accès pour les principaux responsables ARM (Arnd Bergman, Nicolas Pitre, Marc Zyngier, Thomas Gleixner et Russell King) et des branches pour chacune des sous-architectures. Cela permettra de proposer à Linus des branches propres à importer vers le noyau.<br>
Selon Paul E. McKenney cette nouvelle organisation n'est certainement pas la solution ultime au problème ARM mais elle montre que les développeurs Linux sont conscients du problème et ont <a href="http://paulmck.livejournal.com/25785.html">commencé à s'y attaquer</a> :</p>
<blockquote>
<p>Il y a une quantité de code incroyable dans le répertoire ARM de Linux, et une quantité effrayante qui est générée chaque jour : plus d'un quart de million de lignes par an selon certaines estimations.<br>
Il serait trop facile de conclure que la situation actuelle est un désastre complet. Au contraire, ceux d'entre nous qui sont là-dedans depuis un certain temps verront ça comme une grosse amélioration par rapport à la période maudite où les développeurs de l'embarqué gardaient leurs patchs pour eux. Nous dans la communauté du noyau Linux nous leur avons demandé de soumettre leurs patchs et ils ont commencé à le faire. Il est donc temps pour nous de comprendre comment nous allons pouvoir boire à cette lance à incendie ;-)</p>
</blockquote>
</div><div><a href="https://linuxfr.org/news/sortie-du-noyau-linux-2639.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85864/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-du-noyau-linux-2639#comments">ouvrir dans le navigateur</a>
</p>
patrick_ghttps://linuxfr.org/nodes/85864/comments.atomtag:linuxfr.org,2005:Diary/311392011-05-17T10:56:50+02:002011-05-17T11:40:48+02:00Linux dans votre navigateur webLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Après, entre autre, <a href="http://wiki.qemu.org/Main_Page">Qemu</a>, <a href="http://www.ffmpeg.org/">Ffmpeg</a>, <a href="http://bellard.org/tcc">Tcc</a> et après avoir calculé le plus grand nombre de décimales de Pi, Fabrice Bellard nous livre cette fois-ci, <a href="http://bellard.org/jslinux">un émulateur x86 tournant dans un navigateur web</a>. Pour tester, il vous faudra utiliser soit FF4 soit Chromium. (A noter: l'exécution dans FF est environ 2 fois plus rapide.) </p>
<p>L'image disque est un ramfs qui contient un système de fichiers créé avec buildroot contenant busybox. Le noyau est un 2.6.20. Pour l'instant, il n'y a pas d'émulation réseau. Par contre le compilateur tcc est disponible ainsi que emacs (et vi). Il y a d'ailleurs un fichier hello.c que l'on peut compiler. </p>
<p>Il y a plus d'info disponible <a href="http://bellard.org/jslinux/tech.html">ici</a>. </p>
<p>Comme vu dans un commentaire sur un autre site, il ne manque plus qu'à faire tourner X et on pourra alors faire tourner FF qui tourne sur un Linux qui tourne sur FF qui tourne sur Linux qui... </p><div><a href="https://linuxfr.org/users/jiyuu/journaux/linux-dans-votre-navigateur-web.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86108/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/jiyuu/journaux/linux-dans-votre-navigateur-web#comments">ouvrir dans le navigateur</a>
</p>
jiyuuhttps://linuxfr.org/nodes/86108/comments.atomtag:linuxfr.org,2005:News/282052011-05-14T20:09:51+02:002021-07-11T19:02:41+02:00L'Union des Photographes veut la mort du LibreLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>L'UPP, dit l'Union des Photographes Professionnels, a déclaré la guerre aux photographies Libres de droits. Visiblement, les <a href="http://fr.wikipedia.org/wiki/Microstock">microstocks</a> mais aussi les licences CC, largement utilisés dans les projets tels que Wikipedia, sont dans leur ligne de mire. Selon <a href="http://www.upp-auteurs.fr/actualites.php?actualite=506">le communiqué</a> publié sur le site de l'UPP c'est une une nouvelle structure, nommée <strong>L'Association Contre le Libre de Droits</strong> qui a été créée lors du dernier congrès.</p>
<p>Le but de cette association est, je cite, <em>de lutter contre l'utilisation d’oeuvres visuelles dites « libres de droits » et contre leur commercialisation à un prix dérisoire.</em> Le danger est plus réel qu'il n'y parait, au Portugal un texte de loi sera bientôt proposé qui interdira purement et simplement le Libre (le logiciel n'est pas impacté).</p>
<p>Parce que le Libre, ce n'est pas que Linux ou l'informatique, mais c'est aussi la musique, la photographie ou l'écriture. Il faut veiller à ce que ce genre d'initiative ne s'étende pas en Europe, car le risque d'une interdiction pure et simple des médias Libres est un avenir possible. Si un tel texte de loi voyait le jour en France, même un site tel que LinuxFr.org pourrait être déclaré illégal puisqu'une partie au moins de son contenu est sous licence CC.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://upp-auteurs.fr/actualites.php?actualite=506" hreflang="fr" href="https://linuxfr.org/redirect/72085">L'appel à la pétition de l'UPP</a></li><li>lien nᵒ 2 : <a title="http://www.numerama.com/magazine/18734-les-creative-commons-bientot-illegales-au-portugal.html" hreflang="fr" href="https://linuxfr.org/redirect/72086">La proposition de loi au Portugal</a></li></ul><div></div><div><a href="https://linuxfr.org/news/lunion-des-photographes-veut-la-mort-du-libre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86084/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/lunion-des-photographes-veut-la-mort-du-libre#comments">ouvrir dans le navigateur</a>
</p>
Stephane TOUGARDhttps://linuxfr.org/nodes/86084/comments.atomtag:linuxfr.org,2005:News/281942011-05-12T01:53:38+02:002021-07-11T19:00:39+02:00La spécification d’ODF 1.2 est terminéeLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Avec pas mal de retard, puisque l'information date du 25 mars 2011, nous pouvons enfin dire que la norme de <a href="https://fr.wikipedia.org/wiki/OpenDocument" title="Définition Wikipédia">OpenDocument</a> 1.2 est finalisée. Il semblerait qu’il reste quelques détails administratifs, mais techniquement parlant cette norme est terminée. </p>
<p>Il a fallu pas moins de 4 ans de travail à l’<a href="http://fr.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standards" title="Organisation pour l’Avancée des Standards d’Information Structurée">OASIS</a> (Organization for the Advancement of Structured Information Standards — Organisation pour l’Avancée des Standards d’Information Structurée) pour finaliser cette norme. Une grande part du retard a été probablement induite par le fait que les experts sur le sujet ne sont pas très nombreux et ont dû corriger la norme Microsoft <a href="https://fr.wikipedia.org/wiki/OOXML" title="Définition Wikipédia">OOXML</a>. </p>
</div><ul><li>lien nᵒ 1 : <a title="http://lists.oasis-open.org/archives/members/201103/msg00008.html" hreflang="en" href="https://linuxfr.org/redirect/72042">Annonce</a></li><li>lien nᵒ 2 : <a title="http://www.robweir.com/blog/2010/12/odf-tc-creates-advanced-document-collaboration-subcommittee.html" hreflang="en" href="https://linuxfr.org/redirect/72043">Groupe de travail ODF 1.3</a></li><li>lien nᵒ 3 : <a title="http://www.openoffice.org/" hreflang="en" href="https://linuxfr.org/redirect/72044">OpenOffice.org</a></li><li>lien nᵒ 4 : <a title="http://www.libreoffice.org" hreflang="en" href="https://linuxfr.org/redirect/72045">LibreOffice</a></li><li>lien nᵒ 5 : <a title="http://www-03.ibm.com/software/lotus/symphony/home.nsf/home" hreflang="en" href="https://linuxfr.org/redirect/72046">IBM Lotus Symphony</a></li><li>lien nᵒ 6 : <a title="http://abisource.com/" hreflang="en" href="https://linuxfr.org/redirect/72047">Abiword</a></li><li>lien nᵒ 7 : <a title="http://en.wikipedia.org/wiki/OpenDocument" hreflang="en" href="https://linuxfr.org/redirect/72048">OpenDocument</a></li><li>lien nᵒ 8 : <a title="http://www.calligra-suite.org/" hreflang="en" href="https://linuxfr.org/redirect/72049">Calligra</a></li><li>lien nᵒ 9 : <a title="http://www.oasis-open.org/" hreflang="en" href="https://linuxfr.org/redirect/72054">Site de l’OASIS</a></li></ul><div><p><a href="http://www.robweir.com">Rob Weir</a> a fait une liste assez instructive des « <a href="http://www.robweir.com/blog/2011/05/te-things-about-odf12.html">10 choses que vous ne savez pas sur ODF 1.2</a> ». Personnellement, j’ai retenu :</p>
<ul>
<li>qu’il y avait eu 184 réunions ;</li>
<li>76 membres provenant de 17 pays, représentant 23 sociétés ou organisations et 17 membres individuels, ont élaboré cette norme. Rappelons que la norme concurrente n’a été développée que par une seule entreprise, sans aucune concertation avec qui que ce soit d’autre ; d’où le fiasco final ;</li>
<li>Quasiment 15 000 e‐mails ont été envoyés sur les listes de diffusion publiques du comité de développement ;</li>
<li>La norme a été laissée en révision publique pendant 270 jours. Cela ne tient naturellement pas compte du fait que <strong>tout</strong> le développement a été ouvert ;</li>
<li>1 800 commentaires ont trouvé réponse. Tous les commentaires ont été lus (je soupçonne que ceci est une petite référence au déroulement complètement aberrant du BRM <em>— Ballot Resolution Meeting —</em> de la norme concurrente).</li>
</ul>
<p>Les changements majeurs introduits par cette norme sont relatifs aux signatures numériques et à la normalisation tant attendue (même si déjà utilisée dans plusieurs suites bureautiques différentes) de la façon de conserver les formules dans un document.</p>
<p>Le comité va maintenant se tourner vers le développement de la version 1.3 qui amènera, entre autres, un moyen de suivre les changements effectués dans un document, afin de faciliter le travail en collaboration sur un document.</p>
<p>Il existe actuellement deux propositions à ce sujet. Une, provenant de <a href="http://www.deltaxml.com/">DeltaXML</a>, dont une première version a servi de base à deux implémentations dans les suites bureautiques Koffice et Abiword, et une autre, issue de… Microsoft ! Non, vous ne rêvez pas, Microsoft semble s’impliquer dans le développement de ODF 1.3 ! Naturellement, c’est probablement pour proposer une solution maison, mais si elle est valable, utilisable et surtout portable pour tout le monde, c’est une très bonne chose. La décision se fera par le comité spécifiquement mis en place pour ce sujet.</p>
<p>On peut noter qu’une des conditions pour obtenir le label <em>« norme OASIS »</em>, est d’avoir une déclaration d’au minimum trois membres déclarant que la norme fonctionne de façon interopérable. Au jour de l’annonce, il y avait IBM, Oracle, KDE et Novell qui avaient déjà fait cette déclaration.</p>
<p>Il n’existe pas de liste exhaustive de suites bureautiques utilisant ce format et cette version, mais nous pouvons tout de même mentionner : <a href="https://fr.wikipedia.org/wiki/OpenOffice.org" title="Définition Wikipédia">OpenOffice.org</a> et son dérivé <a href="https://fr.wikipedia.org/wiki/LibreOffice" title="Définition Wikipédia">LibreOffice</a>, <a href="https://fr.wikipedia.org/wiki/Koffice" title="Définition Wikipédia">Koffice</a> et son dérivé (interne) <a href="https://fr.wikipedia.org/wiki/Calligra" title="Définition Wikipédia">Calligra</a>, Abiword, IBM Lotus Symphony.</p>
<p>Ce format est en train de devenir la référence en tant que format bureautique, essentiellement en raison de l’impossibilité d’implémenter la norme concurrente, y compris par son concepteur qui en reste à une version personnalisée de la norme ISO/IEC IS 29500, et donc naturellement non‐interopérable, de la suite qui sert d’implémentation de référence.</p>
</div><div><a href="https://linuxfr.org/news/la-specification-d-odf12-est-terminee.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86034/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/la-specification-d-odf12-est-terminee#comments">ouvrir dans le navigateur</a>
</p>
Albert_https://linuxfr.org/nodes/86034/comments.atomtag:linuxfr.org,2005:Diary/311192011-05-11T10:51:59+02:002011-05-11T10:51:59+02:00Enregistrement audio de la conférence "IPv6, comment assurer une transition heureuse"Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>La <a href="http://linuxfr.org/news/conf%C3%A9rence-%C2%A0ipv6-comment-assurer-une-transition-heureuse%C2%A0-le%C2%A012%C2%A0avril-%C3%A0-grenoble">conférence</a> donnée par Stéphane Bortzmeyer, de l’AFNIC, à propos d'IPv6 à pu être enregistrée.</p>
<p>Vous trouverez les informations sur les sites suivants :</p>
<ul><li><a href="http://guilde.asso.fr/rencontres/20110412/">le site de la Guilde</a></li>
<li><a href="http://www.bortzmeyer.org/transition-ipv6-guilde.html">le blog de S. Bortzmeyer</a></li>
<li><a href="http://commons.wikimedia.org/wiki/File:IPv6_comment_assurer_une_transition_heureuse_sans_question.ogg">sur Wikimedia Commons</a></li>
</ul><p>Une captation vidéo a également été faite, mais les fichiers ne sont pas encore disponibles.</p><div><a href="https://linuxfr.org/users/ellendhel/journaux/enregistrement-audio-de-la-conf%C3%A9rence-ipv6-comment-assurer-une-transition-heureuse.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/86025/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/ellendhel/journaux/enregistrement-audio-de-la-conf%C3%A9rence-ipv6-comment-assurer-une-transition-heureuse#comments">ouvrir dans le navigateur</a>
</p>
Ellendhelhttps://linuxfr.org/nodes/86025/comments.atomtag:linuxfr.org,2005:News/281802011-05-09T14:59:36+02:002021-07-11T19:00:12+02:00LyX 1.6.10 et LyX 2.0.0 pour les 15 ans du projetLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p><a href="https://fr.wikipedia.org/wiki/LyX" title="Définition Wikipédia">LyX</a> est un logiciel libre, sous <a href="https://fr.wikipedia.org/wiki/licence%20GPL" title="Définition Wikipédia">licence GPL</a>, dédié à la création de documents <a href="https://fr.wikipedia.org/wiki/LaTeX" title="Définition Wikipédia">LaTeX</a>. Il a été conçu pour que l’utilisateur ait à se concentrer sur le contenu et sur la structure de son document, en s’affranchissant de sa mise en page.</p>
<h2 id="toc-la-série16x">La série 1.6.x</h2>
<p>Les équipes du projet sont heureuses d’annoncer la sortie de la version <a href="http://www.lyx.org/News">LyX 1.6.10</a>. Il s’agit de la 11<sup>e</sup> et dernière version de maintenance de la série 1.6.x. LyX 1.6.10 conclut le succès de la série 1.6, qui a été la série stable de ces deux dernières années.<br>
La caractéristique la plus notable de cette version, est que cette version est capable de lire et importer des documents de la nouvelle branche : LyX 2.0.x. Il s’agit de faire permettre aux utilisateurs qui souhaitent s’en tenir à LyX 1.6.x pour le moment, de pouvoir coopérer avec les utilisateurs de la nouvelle version. <br>
Notez que LyX 1.6.10 écrit encore dans le format 1.6, et qu’il ne peut pas produire des documents au format LyX 2.0.</p>
<h2 id="toc-la-série20x">La série 2.0.x</h2>
<p>Les équipes du projet sont fières d’annoncer la sortie de <a href="http://www.lyx.org/News">LyX 2.0.0</a>.<br>
Avec cette version, LyX fête ses 15 ans d’existence, et commence une nouvelle branche stable (série 2.x). <br>
LyX 2.0.0 est l’aboutissement de deux ans et demi de dur labeur. Comme pour toute mise à jour majeure, celle‐ci est livrée avec beaucoup de nouvelles fonctionnalités, mais également quelques problèmes connus et des différences par rapport aux versions LyX 1.6.x. (le fichier « <a href="http://www.lyx.org/trac/browser/lyx-devel/branches/BRANCH_2_0_X/RELEASE-NOTES">RELEASE-NOTES</a> » répertorie ces problèmes).</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.lyx.org/News" hreflang="en" href="https://linuxfr.org/redirect/72013">Annonce officielle</a></li><li>lien nᵒ 2 : <a title="http://www.lyx.org/announce/1_6_10.txt" hreflang="en" href="https://linuxfr.org/redirect/72014">ChangeLog 1.6.10</a></li><li>lien nᵒ 3 : <a title="http://www.lyx.org/trac/browser/lyx-devel/branches/BRANCH_2_0_X/RELEASE-NOTES" hreflang="en" href="https://linuxfr.org/redirect/72015">ChangeLog 2.0.0</a></li></ul><div><h2 id="toc-version1610">Version 1.6.10</h2>
<p>Voici quelques changements notables de la version 1.6.10 :</p>
<ul>
<li>lecture du format LyX 2.0 ;</li>
<li>mise à jour de la traduction française du tutoriel et du guide de l’utilisateur ;</li>
<li>correction de quelques bogues mineurs pouvant faire planter le logiciel ;</li>
<li>compilation avec GCC 4.6 désormais possible.</li>
</ul>
<h2 id="toc-version200">Version 2.0.0</h2>
<p>Les nouveautés de cette série sont vraiment très nombreuses, par rapport à la série 1.6.x.<br>
Ces nouveautés sont présentées sur la <a href="http://wiki.lyx.org/LyX/NewInLyX20/">page dédiée du Wiki du projet</a>. <br>
On trouve notamment :</p>
<ul>
<li>outil de recherche avancée : recherche prenant en considération le format (expression mathématique, style de paragraphe…) et les expressions régulières ;</li>
<li>vérification de l’orthographe à la volée : LyX 2.0.0 apporte le support de Hunspell (le correcteur orthographique utilisé par OpenOffice, Firefox et Thunderbird) ;</li>
<li>comparaison des documents ;</li>
<li>thésaurus multilingue : MyThes-thesaurus (le thésaurus d’OpenOffice) est utilisé à la place de Aiksaurus ;</li>
<li>sortie au format XHTML ;</li>
<li>aperçu instantané de certaines parties du document.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/lyx-1610-et-lyx-200-pour-les-15-ans-du-projet.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85985/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/lyx-1610-et-lyx-200-pour-les-15-ans-du-projet#comments">ouvrir dans le navigateur</a>
</p>
_seb_https://linuxfr.org/nodes/85985/comments.atomtag:linuxfr.org,2005:News/281712011-05-06T09:05:30+02:002021-07-11T18:59:54+02:00Sortie de Shinken 0.6 Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Les auteurs de Shinken, outil de supervision compatible avec Nagios, viennent de publier leur dernières avancées sur ce projet. Cette version est dans la continuité de ce à quoi ils nous ont habitué, avec de nombreuses nouveautés :</p>
<ul>
<li>un module de découverte automatique du réseau ;</li>
<li>une amélioration de l’architecture distribuée, pour gérer au mieux les pertes des sites distants et les DMZ ;</li>
<li>un support avancé des environnements VMWare.</li>
</ul>
</div><ul><li>lien nᵒ 1 : <a title="http://www.shinken-monitoring.org" hreflang="en" href="https://linuxfr.org/redirect/71976">Site du projet</a></li><li>lien nᵒ 2 : <a title="http://www.shinken-monitoring.org/download/" hreflang="en" href="https://linuxfr.org/redirect/71977">Téléchargement</a></li><li>lien nᵒ 3 : <a title="http://www.monitoring-fr.org/2011/05/le-fugu-sans-peur-aka-shinken-0-6-est-lache/" hreflang="fr" href="https://linuxfr.org/redirect/71978">Annonce sur monitoring-fr.org</a></li><li>lien nᵒ 4 : <a title="http://www.shinken-monitoring.org/wiki/shinken_10min_start" hreflang="en" href="https://linuxfr.org/redirect/71979">Tutoriel d’installation en 10 minutes</a></li></ul><div><h2 id="toc-un-module-de-découverte">Un module de découverte !</h2>
<p>Le grand ajout de cette version est incontestablement le module de découverte. De base, il permet de détecter les machines et les services réseau classiques (HTTP, DNS, MySQL, Mssql, Oracle, etc.), et de les rajouter automatiquement à la configuration. Un module de découverte des machines virtuelles sous VMware, vSphere, est également disponible.</p>
<p>Ce module est très facilement extensible, que ce soit pour la découverte à proprement parler (ceci se base sur de simples scripts qui retournent les informations, comme le font les sondes Nagios), ou bien son système de règles qui permet, suivant les informations récoltées, de créer les hôtes et les services dans la configuration.</p>
<h2 id="toc-larchitecture-globale-est-achevée">L’architecture globale est achevée</h2>
<p>Cette version voit arriver la fin des travaux initiés depuis les toutes premières versions sur l’architecture distribuée. C’était même la raison d’être initiale du projet.</p>
<p>Un soin tout particulier a été donné aux services (<em>daemons</em>) qui lancent les sondes de supervision, afin qu’ils puissent être placés en zone DMZ et que leurs connexions soient uniquement du sens LAN → DMZ. Le rajout de ce type de service est également désormais possible à chaud, sans redémarrer toute l’architecture !</p>
<p>Enfin, les utilisateurs ont désormais à disposition un nouveau service <em>optionnel</em> pour les données passives, que l’on peut disposer sur les sites distants qui sont régulièrement coupés. Il n’y a ainsi plus de perte d’informations possible.</p>
<h2 id="toc-un-lien-fort-avec-vmware">Un lien fort avec VMware</h2>
<p>Tout comme pour le module de découverte, Shinken est de plus en plus adapté à la supervision des environnements virtuels, VMware en tête. Il permet ainsi de détecter les liens de dépendances entre les machines virtuelles et leurs hôtes. De plus, si le lien change au fil du temps (avec une migration VMotion, par exemple), le lien de dépendance entre les hôtes dans Shinken est automatiquement mis à jour, sans que l’administrateur n’ait à intervenir !</p>
<h2 id="toc-une-documentation-retravaillée">Une documentation retravaillée</h2>
<p>Un travail de fond a été fait sur le <em>wiki</em> du projet pour le rendre plus accessible aux débutants. Ce travail est toujours en cours, mais il est déjà bien plus simple de débuter sur Shinken avec des tutoriels simples, comme celui qui propose de démarrer en 10 minutes avec découverte automatique et interface graphique (Thruk) !</p>
<h2 id="toc-et-maintenant">Et maintenant ?</h2>
<p>Avec la finalisation de l’architecture, c’est toute une phase de ce projet qui se termine. Les objectifs initiaux du projet sont atteints, et une phase de stabilisation se profile. Celle‐ci va consister en la rédaction d’une aide de plus en plus importante pour aider les utilisateurs à installer et tirer parti de tout le potentiel de l’outil. </p>
<p>Mais gageons que les auteurs nous raviront encore dans le futur proche, avec de nouvelles fonctionnalités qui faciliteront la vie des gentils administrateurs. :-)</p>
<p>La partie distribution de charge n’est pas oubliée non plus, et le dernier point possible de contention est levé, grâce à la possibilité de multiplier, selon les besoins, les services responsables de la sauvegarde / présentation des données.</p>
</div><div><a href="https://linuxfr.org/news/sortie-de-shinken-06.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85947/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-shinken-06#comments">ouvrir dans le navigateur</a>
</p>
Jean Gabeshttps://linuxfr.org/nodes/85947/comments.atomtag:linuxfr.org,2005:News/281642011-05-04T16:44:34+02:002021-07-11T18:59:19+02:00Sortie de FreeNAS 8Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>FreeNAS, le système d’exploitation prévu pour le stockage en réseau (<a href="http://fr.wikipedia.org/wiki/Stockage_en_r%C3%A9seau_NAS">NAS, pour <em>Network Attached Storage</em></a>), vient de sortir en version 8. Outre les mises à jour de logiciels en provenance de <a href="https://fr.wikipedia.org/wiki/FreeBSD" title="Définition Wikipédia">FreeBSD</a>, cette version marque une nouvelle direction.</p>
<p>En effet, FreeNAS s’adresse maintenant tout particulièrement aux entreprises. Cela se traduit par un retrait des fonctionnalités orientées particulier ; ainsi, on ne trouvera plus les fonctionnalités suivantes :</p>
<ul>
<li>
<a href="https://fr.wikipedia.org/wiki/UPnP" title="Définition Wikipédia">UPnP</a> ;</li>
<li>Peer2Peer (<a href="https://fr.wikipedia.org/wiki/BitTorrent" title="Définition Wikipédia">BitTorrent</a>…) ;</li>
<li>
<a href="https://fr.wikipedia.org/wiki/Digital%20Audio%20Access%20Protocol" title="Définition Wikipédia">Digital Audio Access Protocol</a> ;</li>
<li>
<a href="https://fr.wikipedia.org/wiki/RSync" title="Définition Wikipédia">RSync</a>.</li>
</ul>
<p>Ces fonctionnalités ne disparaissent, bien sûr, pas totalement et seront accessibles via des greffons qui ne sont pas disponibles pour le moment. Si vous utilisez FreeNAS et ces fonctionnalités, vous devriez peut‐être attendre un peu avant de faire la mise à jour.</p>
<p>Cette nouvelle version apporte une gestion de la version 15 du système de fichiers <a href="https://fr.wikipedia.org/wiki/ZFS" title="Définition Wikipédia">ZFS</a>. Cette version a aussi été l’occasion de revoir l’interface d’administration. Maintenant, elle est faite en <a href="http://fr.wikipedia.org/wiki/Django_%28framework%29">Django</a>.</p>
<p>Ci‐dessous, une capture d’écran de la nouvelle interface :</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f77696b692e667265656e61732e6f72672f5f6d656469612f7765626775695f6d61696e2e706e67/webgui_main.png" alt="Capture d'écran" title="Source : http://wiki.freenas.org/_media/webgui_main.png"></p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.freenas.org" hreflang="en" href="https://linuxfr.org/redirect/71958">FreeNAS.org</a></li><li>lien nᵒ 2 : <a title="http://www.freenas.org/about/news/item/freenas" hreflang="en" href="https://linuxfr.org/redirect/71959">Annonce de la nouvelle version</a></li><li>lien nᵒ 3 : <a title="http://www.developpez.com/actu/31668/FreeNAS-8-disponible-le-serveur-de-stockage-reseau-fonde-sur-FreeBSD-prend-un-virage-tres-professionnel/" hreflang="fr" href="https://linuxfr.org/redirect/71960">Sources</a></li></ul><div></div><div><a href="https://linuxfr.org/news/sortie-de-freenas-8.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85926/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-freenas-8#comments">ouvrir dans le navigateur</a>
</p>
Barret Michelhttps://linuxfr.org/nodes/85926/comments.atomtag:linuxfr.org,2005:Diary/310872011-05-04T14:10:41+02:002011-05-04T14:10:41+02:00Putain de nazis de l'interface!Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Alors la je suis bien énervé...</p>
<p>Ou comment les gens de GNOME peuvent de donner envie de ...</p>
<p>Résumons, actuellement, il y'a du bruit autour de dbusmenu chez KDE pour l'intégrer par défaut dans Qt... Ca permettrait d'avoir cela:<br /><a href="http://kde-look.org/content/show.php/Oxygen-appmenu?content=141254">http://kde-look.org/content/show.php/Oxygen-appmenu?content=141254</a></p>
<p>directement dans le toolkit et les applications et pas à l'arrache dans un style kwin...</p>
<p>Pour l'instant tout se base sur le travail de Canonical sur dbusmenu/appmenu (qui doit probablement évoluer vers une évolution du menu pour un truc plus proche de ce que propose firefox4)</p>
<p>En discutant un peu avec des devs GTK (enfin GNOME), voilà ce que j'apprend:<br />
- Ils s'en foutent, ils bossent déjà sur autre chose (action via dbus) pour faire des truc bien cool: <a href="https://gitorious.org/gnome-design/gnome-design/blobs/raw/master/mockups/menu-experiments/eog-menu-experiments.png">https://gitorious.org/gnome-design/gnome-design/blobs/raw/master/mockups/menu-experiments/eog-menu-experiments.png</a><br />
- Ils ne veulent surtout pas que les Dev Qt/KDE participent.<br />
- Ils s'en branlent de l'intégration de leurs applications dans KDE<br />
- Pour eux, GNOME c'est un système d'exploitation ("Gnome is working towards at a consistent user experience inside Gnome; it's not about applications any more - it's about a whole operating system")</p>
<p>Bref, merci GNOME, ca va vraiment être de la merde le desktop Unix à l'avenir... Ce qui n'est pas vrai, vu qu'une fois des plus, les devs Qt/KDE vont devoir se soumettre à la tyrannie made in GNOME.</p><div><a href="https://linuxfr.org/users/gnumdk/journaux/putain-de-nazis-de-linterface.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85925/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/gnumdk/journaux/putain-de-nazis-de-linterface#comments">ouvrir dans le navigateur</a>
</p>
gnumdkhttps://linuxfr.org/nodes/85925/comments.atomtag:linuxfr.org,2005:News/281582011-05-03T17:06:08+02:002021-07-11T18:59:09+02:00Sortie d'OpenBSD 4.9Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Pendant que tout le monde était occupé à acheter du muguet et/ou manifester, le premier mai est discrètement sortie la 30ème version d'OpenBSD, la 4.9. Le <a href="http://www.openbsd.org/lyrics.html#49">thème</a> de cette nouvelle version est le guide du routard galactique, ainsi qu'un clin d'oeil à 4.2BSD.</p>
<p>Pour rappel, le projet OpenBSD fournit un système d'exploitation de type UNIX <strong>libre</strong> sous licence ISC-BSD basé sur 4.4BSD, qui peut être utilisé autant comme <a href="http://undeadly.org/cgi?action=article&sid=20110420080633">station de travail bureautique</a>, comme machine de jeu, comme coeur de réseau ou serveur de fichiers/web/mail/bases de données, le tout sur <a href="http://www.openbsd.org/plat.html">diverses architectures matérielles</a>.</p>
<p>Pour soutenir financièrement le projet, on peut <a href="http://www.openbsd.org/orders.html">commander cette version</a> sous la forme d'un set de trois CDs, ainsi que divers posters/t-shirts/sweat-shirts.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.openbsd.org/49.html" hreflang="en" href="https://linuxfr.org/redirect/71932">Notes de version</a></li><li>lien nᵒ 2 : <a title="http://marc.info/?l=openbsd-announce&m=130434499622572&w=2" hreflang="en" href="https://linuxfr.org/redirect/71933">Annonce de la sortie</a></li><li>lien nᵒ 3 : <a title="http://www.openbsd.org/orders.html" hreflang="en" href="https://linuxfr.org/redirect/71934">Commande des CDs</a></li><li>lien nᵒ 4 : <a title="http://undeadly.org/" hreflang="en" href="https://linuxfr.org/redirect/71935">Undeadly</a></li><li>lien nᵒ 5 : <a title="http://www.openbsd.org/faq/index.html" hreflang="en" href="https://linuxfr.org/redirect/71936">The hitchiker's guide to OpenBSD</a></li><li>lien nᵒ 6 : <a title="http://ftp.fr.openbsd.org/pub/OpenBSD/4.9" hreflang="fr" href="https://linuxfr.org/redirect/71937">Miroir FTP/HTTP francais</a></li></ul><div><p>Comme à l'accoutumée, pas de révolution dans cette nouvelle version, mais une foule de petites améliorations, notamment (liste à la Prévert) :</p>
<ul>
<li>le support du multiprocesseur sur les plateformes de type HPPA/RISC ;</li>
<li>les plateformes longsoon et SGI utilisent maintenant GCC 4 par défaut, comme hppa, sparc64, i386, amd64 et socppc/macppc ;</li>
<li>un processus peut maintenant allouer 2Go de mémoire sur i386 ;</li>
<li>Les noyaux SMP peuvent maintenant booter sur des machines ayant jusqu'à 64 coeurs ;</li>
<li>Les instructions <a href="http://en.wikipedia.org/wiki/AES-NI">AES-NI</a> qui permettent d’accélérer certains calculs cryptographiques sont maintenant supportées ;</li>
<li>l'activation par défaut du support NTFS en lecture seule : le pilote n'a pas changé, mais ainsi plus de personnes peuvent le tester/débugguer ;</li>
<li>des nouveaux pilotes pour certains matériels réseau ;</li>
<li>des optimisations dans la pile réseau avec l'algorithme MCLGETI ;</li>
<li>la mise en veille/réveil via l'ACPI à été améliorée, le support de l'hibernation est prévu ;</li>
<li>le support de <a href="http://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching">MPLS</a> est maintenant actif par défaut ;</li>
<li>un énorme travail a été accompli sur la pile SCSI ;</li>
<li>la possibilité de configurer la clef WPA directement dans ifconfig(1), il fallait précedemment passer via wpa-psk(1) ;</li>
<li>le support des wide-chars a été ajouté à la librairie ncurses ;</li>
<li>
<a href="http://www.nlnetlabs.nl/projects/nsd/">nsd</a>, un serveur de nom autoritatif, a été ajouté. À noter qu'il est utilisé par certains TLD, et devrait à terme remplacer bind/named(8), une fois le serveur/resolver/cache <a href="http://unbound.net/">unbound</a> ajouté ;</li>
<li>le support des DUID pour nommer les disques durs/externes de manière homogène a été amélioré ;</li>
<li>mandoc 1.10.10 gère la compilation des pages de manuels en lieu et place de l'ancêtre groff.</li>
</ul>
<p>Du côté des ports/packages :</p>
<ul>
<li>un système de gestion des démons a été ajouté, <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rc.d&sektion=8">rc.d(8)</a>. Systemd n'a qu'a bien se tenir…</li>
<li>plus de 6 800 ports sont disponibles ;</li>
<li>les environnements de bureau Gnome 2.32.1, KDE 3.5.10 et Xfce 4.8.0 (et bien d'autres gestionnaires de fenêtres) ;</li>
<li>les services MySQL 5.1.54, PostgreSQL 9.0.3, Postfix 2.7.2, OpenLDAP 2.3.43 et aussi sa version 2.4.23 (et bien d'autres, lighttpd, nginx, asterisk…) ;</li>
<li>côté mozilla, Firefox 3.5.16 et 3.6.13, Thunderbird 3.1.7 (Firefox 4 est bien sur disponible en -current) ;</li>
<li>côté édition/bureautique, OpenOffice.org 3.3.0rc9, LibreOffice 3.3.0.4, Emacs 21.4 et 22.3 ainsi que Vim 7.3.3 sont proposés ;</li>
<li>enfin, côté langages : PHP 5.2.16, Python 2.4.6, 2.5.4 et 2.6, Ruby 1.8.7.330 et 1.9.2.136 (et bien sur Perl 5.12.2 dans le système de base) ;</li>
<li>des améliorations notables ont été faites sur les ports Tcl/Tk, Ruby et Mozilla via des <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=port-modules&sektion=5">port-modules</a>.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/sortie-dopenbsd-49.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85907/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-dopenbsd-49#comments">ouvrir dans le navigateur</a>
</p>
gastonhttps://linuxfr.org/nodes/85907/comments.atom