tag:linuxfr.org,2005:/tags/minix/publicLinuxFr.org : les contenus étiquetés avec « minix »2022-07-30T08:41:16+02:00/favicon.pngtag:linuxfr.org,2005:Bookmark/49722022-07-28T10:28:10+02:002022-07-28T10:28:10+02:00Why I Use the GPL and Not Cuck Licenses<a href="https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/">https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128381/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/hellpe/liens/why-i-use-the-gpl-and-not-cuck-licenses#comments">ouvrir dans le navigateur</a>
</p>
Laurent Pointecouteauhttps://linuxfr.org/nodes/128381/comments.atomtag:linuxfr.org,2005:Diary/375672017-11-08T07:26:27+01:002017-11-08T07:26:27+01:00Minix plus utilisé que Linux!Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Dans un revirement de situation aussi ironique que déconcertant, beaucoup de médias anglophones rapportent la confirmation que le Intel Management Engine (Intel ME) <a href="https://www.networkworld.com/article/3236064/servers/minix-the-most-popular-os-in-the-world-thanks-to-intel.html">utilise Minix comme système d'exploitation</a>. Rappelons que le ME est un ensemble matériel et logiciel composé d'un processeur <em>additionnel</em> qui fonctionne à un niveau de privilège <em>plus élevé</em> que l'OS lui-même… Vous en avez peut-être déjà entendu parlé plus tôt cette année, après la divulgation d'une faille <em>zero-day</em> concernant l'AMT (faisant partie du ME dans certaines configurations) <a href="https://lwn.net/Articles/721586/">permettant la prise de contrôle à distance indépendamment de l'OS</a>…</p>
<p>D'un point de vue purement factuel, il est donc correct de dire que Minix équipe plus de PC que GNU/Linux… La question est surtout de savoir si c'est une bonne chose. Dans <a href="http://www.cs.vu.nl/%7East/intel/">une lettre ouverte à Intel</a>, Andrew S. Tanenbaum (l'auteur principal de Minix)… ne parle de rien de tout ça. Il reproche simplement à Intel de ne pas lui avoir dit que "Minix était maintenant l'OS le plus utilisé sur x86"—à noter toutefois que s'il roule bien sur un x86, ce n'est pas le processeur central mais bien un <a href="https://en.wikipedia.org/wiki/Intel_Quark">Intel Quark</a> intégré au chipset, ce qui mitige quelque peu la revendication.</p>
<p>Pour autant, s'il y a une chose que je retiens de cette lettre ouverte, c'est sa position sur la liberté de l'utilisateur :</p>
<blockquote>
<p>If nothing else, this bit of news reaffirms my view that the Berkeley license provides the maximum amount of freedom to potential users. […] Many people (including me) don't like the idea of an all-powerful management engine in there at all (since it is a possible security hole and a dangerous idea in the first place), but that is Intel's business decision and a separate issue from the code it runs.</p>
</blockquote>
<p>Traduction de mon cru :</p>
<blockquote>
<p>Ultimement, cette nouvelle me permet d'insister sur le fait que la licence BSD maximise la liberté des utilisateurs potentiels du logiciel. Plusieurs personnes (moi compris) n'aiment pas du tout l'idée d'un Intel ME tout puissant (puisqu'il s'agit d'une source potentielle de failles et, plus généralement, une idée dangereuse), mais il s'agit d'une décision d'affaires d'Intel distincte du code utilisé pour la mettre en place.</p>
</blockquote>
<p>On remarquera qu'il considère que sa licence maximise la liberté de l'utilisateur… qui se révèle ici être Intel. Je ne discuterai pas de l'interprétation légale de cette attribution, mais elle n'est pas délirante si on considère le ME comme un produit en soi, qui pourrait aussi bien être entièrement implémenté <em>in silico</em>. Il est toutefois dommage qu'un des plus grands chercheurs du domaine se contente de cette interprétation. Bien sûr, rien ne l'oblige à prendre position, mais il passe ainsi à côté (probablement volontairement) du cœur du problème : qui est l'utilisateur du code, en réalité? Est-il acceptable de permettre à nos machines d'exécuter du code sans que nous n'ayons aucun contrôle sur celui-ci? </p>
<p>Dans certains cas, par exemple des firmwares très petits, cela peut être justifié par la simplicité du matériel et du logiciel de contrôle, mais dans ce cas-ci, nous parlons bel et bien d'un OS POSIX et sommes donc <em>très loin</em> du contrôleur de four micro-onde. Indépendamment de ce que la licence permet ou ne permet pas à l'utilisateur, il n'est pas acceptable que l'on puisse faire glisser la sémantique jusqu'à qualifier Intel comme étant l'utilisateur unique de toutes les machines basées sur ses processeurs… </p><div><a href="https://linuxfr.org/users/kalenx/journaux/minix-plus-utilise-que-linux.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113038/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/kalenx/journaux/minix-plus-utilise-que-linux#comments">ouvrir dans le navigateur</a>
</p>
Kalenxhttps://linuxfr.org/nodes/113038/comments.atomtag:linuxfr.org,2005:Diary/353682014-10-27T02:46:53+01:002014-10-27T02:46:53+01:00Conférence d'Andrew S. TanenbaumLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><a href="http://www.cs.vu.nl/%7East">Andrew S. Tanenbaum</a>, créateur de Minix, un OS à micro-noyau qui a été une des sources d'inspiration de Linux, viendra parler de <a href="http://www.minix3.org/">Minix 3</a> mardi 28 Octobre 2014 à Jussieu à 18h dans l'amphi 24.</p>
<p>La <a href="http://colloquium.lip6.fr/Tanenbaum-2014-10-28/">conférence</a> a lieu dans le cadre du <em>colloquium d'informatique de l'UPMC</em>, série de conférences auxquelles ont déjà participé, entre autres sommités de l'informatique, Donald Knuth, Leslie Lamport, Robert Sedgewick, ou Tony Hoare.</p>
<p>Vous aurez l'occasion de demander à Tanenbaum si <a href="https://groups.google.com/forum/#!topic/comp.os.minix/wlhw16QWltI%5B1-25-false%5D">Linux est obsolète</a>, comme il l'affirmait en 1992, ou plus sérieusement, de discuter des mérites comparés des micro-noyaux et des noyaux monolithiques.</p>
<blockquote>
<p>But in all honesty, I would suggest that people who want a <strong>MODERN</strong> "free" OS look around for a<br>
microkernel-based, portable OS, like maybe GNU or something like that.</p>
</blockquote>
<p>(Hé oui, le développement de GNU/Hurd a commencé en 1990, deux ans avant ce message sur <em>comp.os.minix</em> !)</p><div><a href="https://linuxfr.org/users/programlyrique/journaux/conference-d-andrew-s-tanenbaum.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103754/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/programlyrique/journaux/conference-d-andrew-s-tanenbaum#comments">ouvrir dans le navigateur</a>
</p>
programLyriquehttps://linuxfr.org/nodes/103754/comments.atomtag:linuxfr.org,2005:Diary/351012014-07-10T21:56:02+02:002014-07-10T21:56:02+02:00Andrew Tanenbaum à la retraiteLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Je suppose qu'ici beaucoup de personnes connaissent Andrew Tanenbaum qui est une personne incontournable de l'univers de l'informatique, du moins pour ceux qui programment et aiment savoir comment ça fonctionne à l'intérieur de ces machines qui traitent de l'information.</p>
<p>En effet, il a écrit des ouvrages considérés comme des références sur le réseau, les systèmes d'exploitation ou encore l'architecture des ordinateurs. Si vous n'avez pas lu ces ouvrages, ils sont vivement recommandés comme livres de chevet si ces domaines vous intéressent. D'autant que leur disponibilité en langue française ne devrait pas empêcher les non-anglophones d'en profiter.<br>
Il est également connu pour avoir crée <a href="http://www.minix3.org/">Minix</a>, le système d'exploitation maintenant libre destiné à l'apprentissage de la conception d'un OS et étant une démonstration de fonctionnement d'un système à base de micro-noyau. Ce projet qui a reçu une subvention de l'Union Européenne a été la source d'inspiration (avec le livre associé) qu'un certain Linus Torvalds puisa pour écrire son noyau Linux le jour où une erreur de manipulation de son émulateur de terminal détruisit la partition de Minix et le poussa à améliorer ce programme en Linux que l'on connait.</p>
<p>Quand le <a href="http://severino.free.fr/archives/copieslocales/tribunelibre/fr-appa.html">professeur Tanenbaum ne trollait pas Linus Torvalds</a> sur la <s>tribune</s> Usenet, il enseignait également à l'université d'Amsterdam aux Pays-Bas. Il enseignait la conception des OS en particulier, et c'est de <a href="http://www.cs.vu.nl/tanenbaum/">cette organisation qu'il va prendre congé le 23 octobre 2014.</a> Tout le monde est convié à s'y rendre pour un dernier hommage, hommage à un homme qui a permis à de nombreux informaticiens d'apprendre des choses passionnantes et d'utiliser certains logiciels dont sa contribution directe ou indirecte devrait inspirer un certain respect.</p>
<p>Tout le monde vieillit, hélas les personnes pionnières en informatique commencent à accuser d'un certain âge, mais au moins nous avons la chance de profiter de leurs travaux et de pouvoir encore les remercier directement.</p>
<p>Merci Andrew, et espérons que la retraite n'empêchera pas d'écrire d'autres éditions ou d'autres ouvrages bien complets et utiles !</p><div><a href="https://linuxfr.org/users/renault/journaux/andrew-tanenbaum-a-la-retraite.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102742/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/renault/journaux/andrew-tanenbaum-a-la-retraite#comments">ouvrir dans le navigateur</a>
</p>
Renaulthttps://linuxfr.org/nodes/102742/comments.atomtag:linuxfr.org,2005:News/287412011-11-17T14:01:03+01:002012-03-13T21:57:45+01:00Entretien avec Andrew Tanenbaum à propos de MINIXLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p><a href="http://fr.wikipedia.org/wiki/Minix">MINIX</a> 3 est système d’exploitation libre sous <a href="http://fr.wikipedia.org/wiki/Licence_BSD">licence BSD</a>. Créé par le professeur <a href="http://fr.wikipedia.org/wiki/Andrew_Tanenbaum">Andrew Tanenbaum</a>, il est basé sur un <a href="http://fr.wikipedia.org/wiki/Noyau_%28informatique%29#Syst.C3.A8mes_.C3.A0_micro-noyaux">micro‐noyau</a> et il vise avant tout la fiabilité et la modularité.</p>
<p>Alors que la <a href="http://en.wikipedia.org/wiki/Minix#Licensing">licence d’origine</a> était propriétaire et que le système était conçu avant tout comme étant un projet pédagogique, la situation a commencé à évoluer à partir de l’an 2000. La licence a été changée pour la BSD, puis, en 2005, c’est la raison d’être même du projet qui a changé. Plus question de système pédagogique réservé aux étudiants désireux de comprendre les entrailles d’un système d’exploitation !</p>
<p>
<img src="http://www.minix3.org/images/logo.png" alt="Minix3" />
</p></div><ul><li>lien nᵒ 1 : <a title="http://www.minix3.org/" hreflang="en" href="https://linuxfr.org/redirect/73860">Le site Web de MINIX</a></li><li>lien nᵒ 2 : <a title="http://wiki.minix3.org/en/MinixFaq" hreflang="en" href="https://linuxfr.org/redirect/73861">La FAQ MINIX</a></li><li>lien nᵒ 3 : <a title="http://www.cs.vu.nl/~dcvmoole/docs/login2010.pdf" hreflang="en" href="https://linuxfr.org/redirect/73862">MINIX 3: Status report and current research</a></li><li>lien nᵒ 4 : <a title="http://2011.eurobsdcon.org/papers/gras/minix-bsd.pdf" hreflang="en" href="https://linuxfr.org/redirect/73863">Beastie Meets Raccoon: MINIX 3 as a BSD</a></li><li>lien nᵒ 5 : <a title="http://linuxfr.org/news/minix-3-google-summer-of-code" hreflang="fr" href="https://linuxfr.org/redirect/73864">Dépêche LinuxFr sur MINIX 3</a></li></ul><div><p>MINIX 3 a été réécrit de zéro pour devenir :</p>
<blockquote>
<p><em>utilisable sérieusement en tant que système destiné aux ordinateurs embarqués ou ayant des ressources limitées, ou pour les applications nécessitant une haute fiabilité.</em></p>
</blockquote>
<p>En 2011, six ans après ce changement d’orientation, quelle est la situation et où en est le projet ? MINIX 3 est disponible sur architecture x86-32 et il peut être <a href="http://www.minix3.org/download/">testé</a> en tant que <em>live‐CD</em> ou <em>live‐USB</em>.</p>
<p>Le système est partiellement conforme à la <a href="http://fr.wikipedia.org/wiki/Posix">norme POSIX</a> ce qui devrait faciliter le portage des applications. Seul un minuscule micro‐noyau d’environ 5 000 lignes de code tourne en espace privilégié. Tout le reste vit en espace utilisateur. Un serveur spécial, dit de « réincarnation », permet de redémarrer automatiquement, et selon divers critères, les pilotes ayant planté. <a href="http://www.usenix.org/publications/login/2007-02/openpdfs/herder.pdf">Ce fichier PDF</a> explique plus en détail le fonctionnement de ce serveur de réincarnation.</p>
<p><a href="http://wiki.minix3.org/en/UsersGuide/InstallingBinaryPackages">Depuis la version 3.1.8</a> de MINIX les paquets binaires s’installent via l’application <a href="http://pkgin.net/"><em>pkgin</em></a> écrite par <a href="http://imil.net/wp/"><em>iMil</em></a>. Un important travail est <a href="http://wiki.minix3.org/en/SummerOfCode2011/NetbsdUserland">en cours</a> pour importer les outils du projet NetBSD, afin de renforcer la facilité d’utilisation pour les gens ayant une expérience UNIX classique (voir le fichier PDF <em>« Beastie Meets Raccoon »</em> dans les liens de la dépêche).</p>
<p>MINIX a donc fait du chemin depuis qu’il a servi, en 1991, à stimuler un certain étudiant finlandais (<a href="http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate">passionné et opiniâtre</a>) pour développer son propre système. Pour faire le point sur ce système d’exploitation original, <em>LinuxFr.org</em> a réalisé une interview du professeur Tanenbaum, dont vous trouverez une traduction en seconde partie de la dépêche. Pour ceux qui préféreraient lire la version en anglais de l’entretien, il est <a href="http://linuxfr.org/nodes/88229/comments/1291183">présent en commentaire ci‐dessous</a>.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Est‐ce que vous continuez à « hacker » MINIX, ou bien est‐ce que vous vous consacrez uniquement à la supervision de vos étudiants ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Personnellement, je n’écris plus guère de code, mais j’ai trois programmeurs à plein temps qui travaillent sur MINIX 3. Le développement se fait assez rapidement.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Est‐ce qu’il existe réellement une communauté MINIX en dehors de l’université d’Amsterdam ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> <a href="http://www.sitemeter.com/?a=stats&s=s23minix3downloads">Oui</a>. La page permettant de télécharger l’ISO a été visitée 850 000 fois depuis la fin 2005. Le nombre de téléchargements réels est d’environ un demi‐million. Le nombre de visites sur le site <em>minix3.org</em> est de plus de deux millions. Il y a des liens vers ces statistiques en bas de certaines pages du site de MINIX.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Par « communauté MINIX », je voulais parler d’une communauté élargie. Je n’ai pas vu de patches soumis au projet MINIX par des développeurs en dehors de l’université libre d’Amsterdam. Peut‐être est‐ce parce que vous ne croyez pas au modèle de développement de type « <a href="http://fr.wikipedia.org/wiki/La_Cath%C3%A9drale_et_le_Bazar">bazar</a> » ? Pensez‐vous qu’un modèle de développement très contrôlé améliore la qualité du code ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Nous sommes certainement ouverts aux développeurs extérieurs et nous avons du code contribué par eux, mais, pour des raisons de qualité, nous voulons que que ce code nous soit soumis plutôt que les contributeurs aient eux‐mêmes accès au dépôt.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Est‐ce que vous pouvez détailler un peu l’idée du serveur de réincarnation dans MINIX ? Quand on découvre qu’un pilote ne fonctionne pas correctement est‐ce vraiment une bonne idée de le relancer ? Comment tout cela se compare à <a href="http://pages.cs.wisc.edu/~swift/nooks/">Nooks</a> ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> La plupart des problèmes trouvent leur origine dans des erreurs de <em>timing</em> et dans des situations de concurrence. Si vous relancez le pilote une nouvelle fois, le bogue sera certes toujours là, mais il est très très improbable qu’il se manifeste à nouveau.<br />
Maintenant, c’est mieux de trouver le bogue, mais il est encore mieux de signaler le bogue et de corriger le code pour que tout fonctionne.</p>
<p>Nooks a été une tentative unique d’écriture de 20 000 lignes de code pour « envelopper » les pilotes de Linux. Mais c’était devenu obsolète au bout d’un an, parce que tous les pilotes avaient été modifiés. De toute façon, ce n’était pas fiable, puisque le code protégé par Nooks pouvait quand même écrire n’importe quoi dans la RAM.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Est‐ce qu’il est possible de relancer automatiquement des composants « <a href="http://en.wikipedia.org/wiki/Stateful">stateful</a> » du système ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Pas encore, mais nous y travaillons.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Quelles sont les nouveautés que nous allons voir apparaître dans MINIX au cours des prochains mois (version 3.2) ou des prochaines années ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> À l’heure actuelle nous nous concentrons sur trois choses : la compatibilité avec NetBSD, les systèmes embarqués et la fiabilité.</p>
<p>La version 3.2 apportera de nombreux entêtes, bibliothèques et programmes utilisateurs venant de NetBSD. C’est un système qui est très stable, très mature. Les BSD sont très populaires comme vous le savez peut‐être. L’un d’entre‐eux est vendu par Apple sous le nom <em>Macintosh</em>.<br />
Une des caractéristiques uniques de MINIX c’est sa capacité à se remettre de nombreuses erreurs fatales qui auraient fait tomber d’autres systèmes. Nous poussons continuellement les limites dans ce domaine. Nous travaillons également sur les mises à jour à chaud. Nous pouvons maintenant remplacer à la volée tous les sous‐systèmes du système d’exploitation, à l’exception du petit micro‐noyau, pendant le fonctionnement. Tout ça sans redémarrer, ni affecter les processus en cours.<br />
Cette fonction n’est pas encore intégrée dans la nouvelle version mais nous avons du code qui fonctionne. Il y a beaucoup d’applications dans le monde qui adoreraient pouvoir fonctionner en 24/7/365 sans jamais devoir devoir’arrêter, même pas pour mettre à jour vers une nouvelle version du système d’exploitation. Windows et Linux ne peuvent certainement pas faire ça.</p>
<p>Nous nous orientons également vers le monde de l’embarqué. Probablement 95 % ou plus des ordinateurs 32 bits dans le monde sont des systèmes embarqués. Nous pensons que MINIX pourrait parfaitement convenir du fait de sa modularité, de sa fiabilité, de sa faible empreinte mémoire et de sa licence BSD. Nous savons que de nombreuses sociétés trouvent que la GPL est inacceptable et qu’elles refusent d’utiliser Linux pour cette raison. À cet égard, nous pourrions devenir une petite alternative sous licence BSD à Linux.</p>
<hr /><p>
<strong>LinuxFr.org : <em>En ce qui concerne le support des processeurs multi‐cœurs, quelle est la stratégie retenue ? Est‐ce qu’il est possible d’avoir un système d’exploitation simple et fiable avec ce support SMP ? Que pensez‐vous de <a href="http://www.barrelfish.org/">Barrelfish</a> ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Le multicœur, c’est difficile. Nous faisons essentiellement la même chose que Barrelfish : nous traitons notre Intel SSC 48 cœurs comme s’il s’agissait de 48 ordinateurs séparés qui seraient juste physiquement proches les uns des autres, mais qui ne partageraient pas leur mémoire. Nous divisons le système de fichiers, la pile réseau et peut‐être encore d’autres composants, pour que tout ça tourne sur des cœurs séparés.</p>
<p>L’accent est vraiment mis sur la fiabilité, mais nous commençons à travailler sérieusement pour voir comment le multi‐cœur peut améliorer cette fiabilité (avoir d’autres cœurs qui vérifient ce que le cœur principal est en train de faire, décomposer le travail en pièces plus petites pour qu’elles soient divisées entre les cœurs, etc.).</p>
<hr /><p>
<strong>LinuxFr.org : <em>J’ai vu que MINIX <a href="http://wiki.minix3.org/en/SummerOfCode">participait</a> au</em> Google Summer of Code. <em>Est‐ce que c’est important pour le projet ? Est‐ce que cela a été un succès ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Ce n’est pas quelque chose de crucial, mais nous avons eu de bons étudiants et ils ont fait du bon travail. De manière générale nous sommes contents d’eux.</p>
<hr /><p>
<strong>LinuxFr.org : <em>MINIX a reçu une subvention d’un montant de 2,5 millions d’euros de la part du Conseil européen de la recherche. Est‐ce que cela signifie que MINIX reste un projet qui est plus orienté vers la recherche académique que vers les besoins en production dans le monde réel ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Non, non, pas du tout. le Conseil européen de la recherche désire fortement que les résultats soient commercialisés. En fait, je viens juste de recevoir une seconde subvention du CER ayant uniquement pour but de commercialiser MINIX 3. Nous allons le porter sur ARM à partir de janvier.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Pourquoi porter les outils de NetBSD ? Est‐ce que le but est de devenir un système BSD plus ou moins comme les autres ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Nous pensons que NetBSD est un système stable et mature. Linux n’est pas aussi bien écrit et change tout le temps. NetBSD a quelque chose comme 8 000 paquets logiciels. C’est bien assez pour nous.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Quelles sont les performances de MINIX par rapport aux autres systèmes d’exploitation ? Est‐ce qu’il existe des bancs d’essai quelque part ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Le système est sûrement plus lent, mais il est difficile de faire des mesures qui signifient vraiment quelque chose. Il y a tellement de paramètres qu’on peut changer et qui affectent les performances, cela dépend vraiment de ce que vous voulez mesurer. Selon mes observations les performances d’un système d’exploitation ne sont plus réellement un problème de nos jours. Si vous tripliez la vitesse de votre système, Firefox ne gagnerait pas une seule milliseconde et les applications limitées par les accès disque (comme les bases de données) n’iraient probablement pas beaucoup plus vite non plus.</p>
<p>Ce que la plupart des utilisateurs ordinaires veulent d’un système d’exploitation, c’est qu’il fonctionne <strong>toujours</strong>. En termes d’ingénierie, je dirais que cela peut s’exprimer en un « temps moyen avant dysfonctionnement » de 50 ans. Je jugerai que les systèmes d’exploitation sont suffisamment stables quand personne, parmi les gens que je connais personnellement, n’aura rencontré un crash du système au cours de sa vie.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Ainsi, l’un des buts principaux de MINIX est la fiabilité. Comment pouvons‐nous évaluer réellement la fiabilité d’un système d’exploitation ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> La métrique employée est normalement le « temps moyen avant dysfonctionnement », mais c’est difficile à mesurer. Nous avons effectué de nombreux tests de fiabilité en injectant des millions d’erreurs dans le système, en réécrivant du binaire à chaud. Nous avons rencontré seulement une poignée de plantages et, en définitive, ils étaient tous causés par des bogues matériels dans le bus PCI. Le code fautif faisait quelque chose qui provoquait un gel du bus PCI et nous devions « tirer sur la prise » pour permettre le redémarrage.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Si vous pouviez retourner dans le passé pour changer la première licence propriétaire de MINIX en licence GPL, est‐ce que vous pensez que votre système aurait pu devenir le système d’exploitation libre dominant aujourd’hui ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Jamais. La raison pour laquelle MINIX 3 n’a pas dominé le monde est liée à une erreur que j’ai faite aux alentours de 1992. À cette époque, je pensais que BSD allait prendre le pouvoir dans le monde. C’était un système mature et stable. Je ne voyais pas l’intérêt d’entrer en compétition avec lui, donc j’ai orienté MINIX sur l’éducation. Quatre des développeurs BSD venaient juste de fonder une compagnie pour commercialiser BSD. Ils avaient même un joli numéro de téléphone : <code>1-800-ITS-UNIX</code>.</p>
<p>C’est ce numéro de téléphone qui les a perdus, et moi avec. AT&T les a attaqués en justice à cause de ce numéro de téléphone, et le procès a pris trois ans avant de se conclure. C’était précisément la période pendant laquelle Linux était lancé et BSD gelé du fait du procès. Le temps que tout soit réglé juridiquement, Linux avait décollé.</p>
<p>Mon erreur a été de ne pas réaliser que le procès allait prendre si longtemps et allait handicaper autant BSD. Si AT&T n’avait pas fait un procès ou, mieux encore, s’ils avaient acheté BSDI, Linux ne serait jamais devenu populaire et BSD dominerait le monde.</p>
<p>Maintenant que nous commençons à nous lancer sur le marché, nous réalisons la valeur de la licence BSD. De nombreuses sociétés refusent de faire des investissements majeurs pour modifier Linux afin qu’il corresponde à leurs besoins, parce que cela veut dire donner le code à leurs compétiteurs. Nous pensons que la licence BSD est, à elle seule, une grande aide pour notre projet, au même titre que la taille réduite du code, la fiabilité et la modularité.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Cependant nous voyons des contributions venant de nombreuses sociétés lors de chaque cycle de développement du noyau Linux (Intel, IBM, Novell, Google, Oracle, Broadcom, Samsung, TI, Freescale, Fujitsu, etc.).</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Clairement, certaines sociétés sont prêtes à faire ça, mais je connais aussi un bon nombre de sociétés qui refusent d’utiliser Linux pour cette raison.</p>
<p>Cela dépend de l’entreprise et de l’avis qu’elle se fait au sujet des contributions qui pourraient aider des compétiteurs. En outre, il est facile de surestimer l’aide qu’apportent les entreprises. D’habitude, il s’agit de choses qui sont développées pour leur bénéfice direct, comme assurer le fonctionnement correct de leurs pilotes et de leurs programmes sous Linux.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Dans un entretien avec LinuxFr.org, Linus a donné <a href="http://linuxfr.org/nodes/85904/comments/1230981">son opinion</a> au sujet des micro‐noyaux :</em></strong>
</p>
<blockquote>
<p><em>« Je suis toujours convaincu qu’il s’agit d’une de ces idées qui sonnent bien sur le papier, mais qui sont finalement des échecs en pratique. Parce que dans la vraie vie, la complexité se trouve dans les interactions, pas dans les modules individuels.</em><br /><em>Et les micro‐noyaux s’efforcent de rendre les modules encore plus indépendants, ce qui rend les interactions encore plus compliquées et indirectes. Cette séparation aboutit au fait de supprimer pas mal de canaux de communication qui sont simples et évidents. »</em></p>
</blockquote>
<p>
<strong>
<em>Que pensez‐vous de son avis ?</em>
</strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Je ne suis pas convaincu. Il spécule à propos d’un sujet sur lequel il ne connaît rien. Nos modules sont extrêmement bien définis, parce qu’ils tournent dans des espaces d’adressage séparés. Si vous voulez changer le gestionnaire de mémoire, un seul module est affecté. Faire le même changement dans Linux est bien plus compliqué, parce que c’est bourré de code spaghetti là‐dedans.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Pensez‐vous que le succès de Linux prouve que c’est lui qui avait raison dans cette controverse, ou bien est‐ce que ça n’a rien à voir ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Non, Linux n’a « réussi » que parce que le développement de BSD était gelé par AT&T à un moment crucial. C’est juste de la chance pure.<br />
Et puis, ce succès est relatif. Je gère un site Web consacré à la politique que les gens ordinaires consultent. Sur ce site les statistiques montrent que nous avons environ 5 % de visiteurs sous GNU/Linux, 30 % sous Macintosh (qui est un BSD à l’intérieur) et le reste sous Windows. Ce sont des utilisateurs normaux et pas des passionnés d’ordinateurs. Je ne pense pas que 5 % soit un succès si éclatant que ça.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Donc vous ne pensez pas que ce qu’on nomme « l’équité » de la GPL (« Vos contributions doivent être disponibles de la même façon que l’était le code original »), le modèle de développement de type « bazar » et un meneur talentueux ont été les facteurs importants pour les contributions au noyau Linux ? Pour vous c’est juste une chance aveugle ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Oui, je pense que Linux a gagné contre BSD, qui, a cette époque, était le système stable et mature, simplement parce que BSDi a été embringué dans ce procès et que le développement a été stoppé durant plusieurs années.</p>
<p>Il y a seulement une demi‐douzaine de projets <em>open source</em> qui dominent leur marché, comme Apache et GCC. Même quelque chose comme Firefox, qui a reçu des millions de dollars de Google en échange de la petite boîte de recherche en haut, est sur le point de tomber à la troisième place, après IE et Chrome. Mais si l’Union européenne bannissait IE pour des raisons légales pendant une durée de trois ans, vous seriez stupéfait de voir à quelle vitesse Firefox gagnerait des parts de marché.</p>
<p>Si l’<em>open source</em> et la GPL était le chemin à suivre, vous trouveriez des centaines de produits <em>open source</em> qui domineraient leur marché, au lieu d’une demi‐douzaine.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Depuis 2005, MINIX 3 a été conçu comme un système destiné aux matériels ayant des ressources limitées et aux ordinateurs embarqués, et plus comme simplement un outil éducatif. Est‐ce que MINIX remporte des succès dans l’industrie en ce moment ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> En vérité, un des problèmes de la licence BSD, c’est que je ne sais pas. Les sociétés qui utilisent MINIX n’ont pas à nous mettre au courant de quoi que ce soit. Mon expérience me fait dire que beaucoup d’entreprises n’aiment pas parler des technologies qu’elles utilisent. Mais nous commençons maintenant à faire un réel effort vers les systèmes embarqués.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Le marché des mobiles et des tablettes est très actif en ce moment. Est‐ce que MINIX vise ce genre de périphériques ? Est‐ce qu’il y a un portage ARM disponible ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Nous commençons le portage ARM en janvier.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Le monde de l’embarqué était auparavant une niche pour les micro‐noyaux, mais de nos jours les gens de l’embarqué se dirigent vers Linux (avec Android, mais aussi d’autres solutions comme MontaVista ou Wind River). Pourquoi un noyau monolithique est capable de gagner ainsi le marché de l’embarqué ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> J’ai vu les rapports sur les parts de marché dans le monde de l’embarqué. Linux n’est pas du tout en train de gagner. Environ 30 % des systèmes n’ont pas de système d’exploitation du tout, et 30 % ont un système développé localement. Le reste est divisé en nombreux petits segments comme QNX, Green Hills, VxWorks, Linux, NetBSD et d’autres acteurs.<br />
En fait, l’une des raisons pour lesquelles nous nous aventurons dans le monde de l’embarqué est qu’il n’y a pas d’acteur dominant sur ce marché. Android n’est même pas un acteur majeur. Android est seulement populaire sur les téléphones et les tablettes. Personne ne gère sa voiture, son avion ou son scanneur IRM avec Android.<br />
Un autre fait notable est que Google et d’autres consacrent de gros efforts pour retirer de grandes parties du code du noyau Linux pour le remplacer par du code BSD en espace utilisateur, à la fois pour le rendre plus simple et pour en finir avec la GPL. Nous sommes cinq ans en avance dans cette direction.</p>
<hr /><p>
<strong>LinuxFr.org : <em>De nos jours les deux plus célèbres micro‐noyaux sont MINIX et L4. Quelles sont les différences entre ces deux systèmes ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> L4 a beaucoup de succès. Gernot Heiser, en Australie, a réussi à le vendre à Qualcomm. Donc, maintenant, ça tourne sur 300 millions de téléphones dans le monde. Pas mal pour un micro‐noyau.</p>
<p>La plus grosse différence, pour nous, est que nous faisons tourner tout le système d’exploitation en tant que serveurs dans l’espace utilisateur. Eux font tourner Linux en tant qu’entité unique dans l’espace utilisateur. Cela signifie qu’un seul bogue dans Linux peut le faire planter. Certes, L4 survivra, mais tout ce que ça apporte, c’est un redémarrage plus rapide. Cela ne résout pas le problème de la fiabilité.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Mais que pouvez‐vous dire sur les différences techniques entre le code de L4 et de MINIX ? Je suppose que tous les micro‐noyaux ne sont pas identiques ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Il y a de nombreuses différences techniques entre MINIX et L4, mais la cible de nos projets est différente. Nous avons un micro‐noyau, donc nous pouvons faire tourner un système multi‐serveur. Les efforts se portent vers cette orientation multi‐serveur et vers la possibilité de redémarrer les composants du système de façon indépendante.</p>
<p>L4 est utilisé pour faire tourner Linux et sur les téléphones. Cela n’a rien à voir avec des différences techniques. Nous aurions pu utiliser L4 et ils auraient pu utiliser MINIX, mais c’était plus facile pour nous de nous servir de notre code, parce que nous pouvions le changer à volonté en fonction des besoins.</p>
<hr /><p>
<strong>LinuxFr.org <em>: Que pensez-vous des <a href="http://fr.wikipedia.org/wiki/M%C3%A9thode_formelle_%28informatique%29">méthodes formelles de vérification</a>, et en particulier du travail sur <a href="http://en.wikipedia.org/wiki/SeL4#Current_research_and_development">seL4</a> ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Ils ont certainement fait un bon travail, mais c’est vraiment difficile de vérifier si tout marche comme prévu, parce que le matériel lui‐même n’est pas défini de façon rigoureuse. Et un système d’exploitation doit beaucoup interagir avec le matériel.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Considérez‐vous qu’un système d’exploitation basé sur les « <a href="http://en.wikipedia.org/wiki/Capability-based_security">capacités</a> », comme <a href="http://en.wikipedia.org/wiki/Coyotos">Coyotos</a>, est une bonne solution pour améliorer la sécurité ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Les systèmes basés sur les capacités existent depuis quarante ans. Lors de la récente conférence SOSP, le professeur Jack Dennis, du M.I.T., a reçu un prix pour les avoir inventés en 1967. Ces systèmes ont certainement du potentiel. Mon premier système distribué, <em>Amoeba</em>, utilisait les capacités. En ce qui concerne Coyotos, il ne va nulle part.</p>
<hr /><p>
<strong>LinuxFr.org : <em>Pour finir, quel est votre rêve pour MINIX ? Prendre le pouvoir dans le monde ?</em></strong>
</p>
<p><strong>Andrew Tanenbaum :</strong> Je suis trop modeste pour ça. Une chose que je voudrais c’est que, quand les micro‐noyaux domineront le monde, ce à quoi je m’attends, nous ayons au moins une note en bas de page.</p>
<p>De nombreux hyperviseurs gagnent de plus en plus de fonctions au fil du temps, au point qu’ils deviennent indistinguables avec les micro‐noyaux. Ils sont juste mal conçus. Et avec les gens d’Android et de Microsoft qui migrent de plus en plus de code en espace utilisateur, nous allons aussi dans cette direction.</p>
<p>Être en avance sur son temps n’est jamais bon. J’ai publié un article en 1978 sur un sujet très proche de la machine virtuelle Java, mais nous n’avons jamais reçu le crédit pour ça, alors que nous étions des années en avance par rapport à Sun. La vie est comme ça parfois.</p>
<p>
<strong>LinuxFr.org : <em>Merci beaucoup, Professeur Tanenbaum, d’avoir pris le temps de répondre aux questions de LinuxFr.org.</em></strong>
</p></div><div><a href="https://linuxfr.org/news/entretien-avec-andrew-tanenbaum-a-propos-de-minix.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/88229/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/entretien-avec-andrew-tanenbaum-a-propos-de-minix#comments">ouvrir dans le navigateur</a>
</p>
patrick_gDavy DefaudNÿcoBenoît Sibaudhttps://linuxfr.org/nodes/88229/comments.atomtag:linuxfr.org,2005:Post/284442010-03-02T20:37:57+01:002010-03-02T20:37:57+01:00Un noyau tout petit, en C(++)
Bonjour forum !<br />
<br />
Aujourd'hui, pour apprendre la programmation des systèmes d'exploitation, je cherche un noyau avec seulement le strict minimum, un code compréhensible, et pas trop "spaghetti".<br />
Plutôt pour faire des expérimentations (Test d'ordonnanceur, test de concept, bidouille). En fait, j'aurai bien essayé avec linux, mais sa complexité me décourage (rien que le nombre de fichier dans le dossier "kernel" fait peur, alors...)<br />
<br />
Il faut donc que ce noyau remplisse plusieurs conditions: multitâche (même minimal), possibilité d'être exécuté depuis Qemu (ou autre émulateur d'ailleurs), code source disponible (évidemment), code source commenté (au moins, un nom de fichier explicite), présence d'un README (Pour aider à démarrer), en C et/ou C++.<br />
<br />
Voila.<div><a href="https://linuxfr.org/forums/programmation-c--2/posts/un-noyau-tout-petit-en-c.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/82956/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/programmation-c--2/posts/un-noyau-tout-petit-en-c#comments">ouvrir dans le navigateur</a>
</p>
William Briandhttps://linuxfr.org/nodes/82956/comments.atomtag:linuxfr.org,2005:News/252292009-03-27T12:12:22+01:002009-03-27T12:12:22+01:00MINIX 3 - Google Summer of Code<div><a href="http://fr.wikipedia.org/wiki/Minix">MINIX</a> 3 est un très petit système modulaire multiserveur qui vise une grande fiabilité, une tolérance aux erreurs et l'auto-guérison. Le code qui tourne en mode noyau fait approximativement 5000 lignes de code seulement.
<br />
Le reste est exécuté en tant que processus utilisateurs, en majorité des processus pour chaque pilote de périphérique et serveur.
<br />
<br />
Si un pilote plante, il est automatiquement remplacé par une nouvelle copie, sans l'intervention de l'utilisateur (ni même qu'il le sache) et sans affecter les programmes actuellement exécutés.
<br />
<br />
Il y a peu d'autres systèmes qui peuvent résister à des erreurs fatales dans des composants de système critique de manière continue.
<br />
Le but des systèmes fiables sera achevé quand :
<br />
<ul><li>aucun ordinateur n'aura de bouton RESET
<br />
et
<br />
</li><li>aucun utilisateur n'aura connu de plantage ni même ne connaîtra quelqu'un dans son entourage ayant expérimenté ce désagrément.</li></ul>Pour la seconde année consécutive, le projet MINIX 3 est accepté au Google Summer of Code, permettant à des étudiants de travailler (travail rémunéré par Google) sur MINIX 3 durant l'été, avec certains de ses développeurs.
<br />
<br />
<i>NdM : Cette dépêche est une traduction en français de la page MINIX sur le Google Summer of Code 2009.</i></div><ul><li>lien nᵒ 1 : <a title="http://www.minix3.org/soc/" hreflang="en" href="https://linuxfr.org/redirect/61296">La page à l'origine de cette dépêche</a></li><li>lien nᵒ 2 : <a title="http://groups.google.com/group/minix3" hreflang="en" href="https://linuxfr.org/redirect/61297">Liste de diffusion du projet</a></li><li>lien nᵒ 3 : <a title="http://www.minix3.ucsc.edu/wikis/minix3/" hreflang="en" href="https://linuxfr.org/redirect/61298">Wiki du projet</a></li><li>lien nᵒ 4 : <a title="http://code.google.com/soc/" hreflang="en" href="https://linuxfr.org/redirect/61299">Site du Summer of Code</a></li><li>lien nᵒ 5 : <a title="http://www.minix3.org/soc/application.html" hreflang="en" href="https://linuxfr.org/redirect/61300">Formulaire d'inscription</a></li></ul><div>MINIX 3 gère l'interface POSIX et environ 500 programmes UNIX standards y ont été portés, ce qui comprend X11, gcc, perl, python, ghostview, mplayer, la collection des outils GNU et bien <a href="http://www.minix3.org/software">plus encore</a>. Il y a également un environnement graphique utilisateur basique (EDE). Néanmoins il reste beaucoup à faire.
<br />
<br />
Les développeurs souhaitent continuer le développement pour démontrer que bâtir un système à partir de petits composants interchangeables conduit à une conception extrêmement robuste qui est bien plus simple à comprendre et maintenir que des systèmes avec des millions de lignes de code noyau.
<br />
Si de bonnes performances sont importantes, ce n'est plus un critère aussi déterminant que par le passé.
<br />
Si la plupart des utilisateurs ordinaires se voyait offrir le choix entre le système le plus rapide possible et un autre 10 à 20% plus lent mais qui ne plante jamais, les développeurs de minix pensent qu'une large proportion d'utilisateur choisirait le second.
<br />
Pour de nombreuse entreprises (ex : banques, sites de commerce en ligne), avoir un système qui fonctionne 24h/24, 7j/7 sans la moindre erreur est la première des priorités.
<br />
<br />
Les systèmes embarqués sont un autre secteur où la grande fiabilité est importante. Les gens ne s'attendent pas à ce que leur télé et leur caméra numérique leur affiche un écran bleu, sauf pour afficher les images d'un beau ciel bleu.
<br />
<br />
En résumé, les développeurs de Minix 3 tentent de bâtir un système d'exploitation modulaire, fiable (et sécurisé) à partir de composants qui peuvent être remplacés à la volée et ils recherchent de l'aide dans cette optique.
<br />
Vous pouvez consulter <a href="http://www.cs.vu.nl/~ast/publications/acsac-2006.pdf">le document qui présente MINIX 3 et son architecture</a> plus en détail. Plus de détails sont également disponibles dans <a href="http://www.minix3.org/doc/">la page de documentation en ligne</a>.
<br />
<br />
Au passage, signalons que MINIX 3 n'est pas la même chose que les précédents MINIX.
<br />
En effet, les versions antérieures étaient des projets à but pédagogique mais depuis cela a grandement évolué vers un système léger se concentrant sur la fiabilité (et la sécurité).
<br />
En tant que projet libre, il est plutôt populaire. Pas moins de 1,3 million de visiteurs ont consulté le nouveau site internet (mis en ligne il y a 3 ans). Actuellement 12 000 personnes téléchargent l'image CD-ROM chaque mois pour l'installer.
<br />
<br />
<b>Résumé des projets de l'an dernier</b>
<br />
<br />
De la participation au <abbr title="Summer of Code">SoC</abbr> de 2008 on peut mentionner le projet qui s'est le plus distingué, le projet sur le <a href="http://fr.wikipedia.org/wiki/RAID" title="Définition Wikipédia">RAID</a> logiciel.
<br />
Le but de ce projet était d'améliorer MINIX 3 avec le support pour les pilotes de filtres qui pourraient s'insérer de manière transparente entre le système de fichiers et le pilote de <a href="http://en.wikipedia.org/wiki/Block_device#Block_devices">périphérique bloc</a>.
<br />
En particulier, les développeurs de MINIX ont demandé à l'étudiant d'implémenter un processus serveur faisant des sommes de contrôle de toutes les données et pouvant faire le "mirroring" des données pour permettre les copies de sauvegarde de partitions.
<br />
De cette façon, il est devenu possible de détecter et restaurer les corruptions de données dues à des permutations de bits sur le disque ou d'un pilote bogué.
<br />
L'étudiant n'a pas seulement implémenté la fonctionnalité, mais a également mesuré les performances du framework résultant. Le projet a été un fort succès et a même conduit à une publication co-écrite par l'étudiant qui a récemment été présentée à une conférence internationale.
<br />
<br />
<b>Profil recherché pour le SoC</b>
<br />
<br />
Les idées du projet ci-dessous s'échelonnent du plus simple au plus difficile.
<br />
Toutes requièrent que vous soyez un(e) programmeur/programmeuse C expérimenté(e).
<br />
Pour certaines d'entre elles il serait utile que vous ayez déjà lu le <a href="http://www.amazon.com/Operating-Systems-Implementation-Prentice-Software/dp/0131429388/ref=pd_bbs_sr_4?ie=UTF8&s=books&qid=1204884702&sr=8-4">livre MINIX</a>, par exemple dans un cours que vous avez suivi à l'université.
<br />
Étant donné la difficulté de ces projets, les mentors attendent des personnes prêtes à travailler à plein temps tout l'été. Cela veut dire aucun travail à côté de cela et ne pas suivre de cours pendant ce temps.
<br />
<br />
Comme il s'agit d'un projet libre, de nombreuses personnes étudieront le code plus tard.
<br />
Pour cette raison il est essentiel que vous soyez quelqu'un qui est fier de son travail et qui veut produire du code :<ul><li>propre,
<br />
</li><li>efficace,
<br />
</li><li>élégant
<br />
</li><li>et bien documenté</li></ul>de manière à ce que les autres personnes s'émerveillent de sa beauté.
<br />
<br />
Faire simplement quelques hacks rapides pour que cela fonctionne la plupart du temps ne suffit pas.
<br />
Les gens doivent admirer votre code et même envier votre capacité à écrire un code si bon.
<br />
<br />
Si vous êtes un(e) programmeur(programmeuse) C expérimenté(e) qui s'y connait en système d'exploitation et capable d'écrire du code clair, bien documenté, jetez un œil aux idées ci-dessous et <a href="http://www.minix3.org/soc/application.html">au formulaire d'inscription</a>.
<br />
<br />
<br />
<b>Liste des idées proposées</b>
<br />
<br />
Les idées ci-dessous sont des suggestions, mais vous pouvez en proposer d'autres.
<br />
Pour vous lancer dans les projets liées au noyau vous devez avoir de l'expérience dans ce domaine.
<br />
Pour réaliser les pilotes, vous avez besoin d'une solide expérience en programmation et d'au moins un minimum de connaissances en développement noyau.
<br />
Le troisième groupe ne nécessite pas d'expérience en développement noyau.
<br />
<br />
MINIX 3 est diffusé sous licence BSD. En vous inscrivant, vous acceptez de diffuser votre code sous cette licence.
<br />
<br />
<u>Projets noyau</u>
<br />
<br />
<ul><li>Utilisation de mémoire virtuelle.
<br />
Une implémentation de mémoire virtuelle a récemment été faite, mais elle n'est pas beaucoup utilisée pour le moment. Dans le cadre de ce projet vous pourriez développer, par dessus cette implémentation, une mémoire partagée du modèle POSIX. Ce projet n'est pas pour les débutants.
<br />
</li><li>Gestion du calcul à virgule flottante matérielle.
<br />
MINIX ne gère actuellement pas l'utilisation de cette extension matérielle. À la place une gestion logicielle est utilisée. Pour gérer le matériel, il est nécessaire de sauvegarder et restaurer les registres et un certains nombre d'autres choses. Ce projet nécessite une expérience avancée en développement noyau.</li></ul>
<br />
<u>Projets de pilotes de périphérique</u>
<br />
<ul><li>Adaptateur NDIS.
<br />
Tous les systèmes d'exploitation libre ont des difficultés pour l'écriture de pilotes. Une approche possible serait d'utiliser les pilotes binaires conçus pour d'autres systèmes et de les adapter pour les rendre utilisables avec le système cible. Cela a été réalisé pour des pilotes de carte Wi-Fi pour Linux mais pas encore pour MINIX 3. Dans ce projet l'étudiant fera la même chose pour MINIX 3. Ce projet ne devrait être tenté que si vous possédez une grande expérience dans les pilotes Linux, BSD ou Windows.
<br />
</li><li>Implémenter les commandes AHCI.
<br />
MINIX 3 gère les disques IDE mais pas les disques <a href="http://fr.wikipedia.org/wiki/Advanced_Host_Controller_Interface">AHCI</a>. C'est la raison pour laquelle lorsque vous l'installez sur une nouvelle machine vous aurez souvent à paramétrer le BIOS pour utiliser l'émulation IDE au lieu de l'interface AHCI native. Une modification du pilote de disque pour utiliser les commandes AHCI de manière native serait donc intéressante. Une expérience avec les périphérique E/S et leurs pilotes est nécessaire pour ce projet.
<br />
</li><li>Porter ou écrire des pilotes de périphériques.
<br />
Tous les pilotes de périphérique sont les bienvenus. À peu prêt tout ce à quoi vous pouvez penser serait utile. Il devrait être possible de porter des pilotes d'autres systèmes, mais l'expérience montre qu'en pratique cela est extrêmement difficile car chacun des pilotes doit être lancé comme un processus utilisateur différent en dehors du noyau. Il est généralement mieux d'étudier un pilote existant pour voir comment cela fonctionne et d'en écrire ensuite un nouveau à partir de zéro. La plus haute priorité est mis sur les pilotes de carte gigabit Ethernet (par ex. Intel Pro/1000). Vous devriez avoir un minimum de compétences dans ce domaine pour vous présenter à ce projet.
<br />
</li><li>Gestion de débogueur distant.
<br />
MINIX 3 s'implante dans le monde de l'embarqué. Cela signifie qu'il devient nécessaire de pouvoir déboguer des machines sans périphérique d'affichage ni clavier. Il faut donc créer un petit module qui peut prendre les commandes à travers le port série depuis un débogueur distant, tel que gdb et de les exécuter.</li></ul>
<br />
<br />
<u>Autres projets</u>
<br />
<br />
Aucun des projets suivants ne nécessite d'expérience dans le développement noyau,
<br />
mais requiert tout de même de bonnes compétences en C.
<br />
<br />
<ul><li>Écrire les systèmes de fichiers /proc et /dev.
<br />
Ce projet se divise en deux sous-projets très liés.
<br />
<ul><li>Tout d'abord, MINIX 3 ne possède pas encore de système de fichier /proc qui fournit les informations sur les processus. Dans ce projet, vous devrez implémenter un nouveau serveur de système de fichiers qui peuple le répertoire /proc avec des informations par processus, permettant ainsi à 'ps' de les interroger. Une autre fonctionnalité pourrait être, par exemple, /proc/meminfo pour des statistiques sur l'utilisation mémoire et /proc/modules pour une liste des serveurs et des pilotes chargés.
<br />
</li><li>Deuxièmement, MINIX 3 alloue actuellement tous les nodes de périphérique de manière statique dans le périphérique racine (<abbr title="Note du Traducteur">NdT</abbr> : root). Une meilleure solution serait d'utiliser un système de fichiers /dev où les pilotes de périphérique peuvent enregistrer dynamiquement leurs périphériques. Une implémentation d'un nouveau serveur de système de fichiers /dev qui fournirait une interface pour les pilotes et modifierait le système pour l'utiliser serait donc à écrire.</li></ul></li>
<br />
<li>Amélioration des performances.
<br />
Aucun effort n'a été fait pour mesurer les performance du système et l'améliorer jusqu'à présent. Il y a cependant quelques outils disponibles et porter et utiliser les outils <a href="http://wiki.freebsd.org/PmcTools">Pmc de BSD</a> devrait être possible. Ce projet consiste à mesurer les performances, trouver les goulots d'étranglement, et si possible les faire disparaitre. Vous devriez commencer par trouver et porter les outils de mesure existants sur les autres systèmes et écrire des scripts pour les utiliser et collecter les résultats automatiquement.</li>
<br />
<li>Porter les utilitaires BSD sur MINIX 3.
<br />
Des centaines de logiciels utilitaires ont été écrits spécifiquement par les contributeurs de MINIX. Les utilitaires GNU ont également été portés. Cependant, certaines personnes préfèrent les versions BSD de ces utilitaires, qui ne sont actuellement pas disponibles pour ce système. Le projet consiste simplement à réaliser ces ports.</li>
<br />
<li>Test de stress de MINIX 3.
<br />
De nombreux tests de stress, qui poussent le système dans ses retranchements et tentent de le faire s'écrouler, ont été écrits pour d'autres systèmes . Le projet consiste ici à porter certains d'entre eux sous MINIX 3 et à écrire les scripts pour automatiser leur mise en œuvre. Si vous parvenez à faire planter MINIX 3, vous devrez également tenter de découvrir ce qui a produit le plantage.</li>
<br />
<li>Porter des logiciels applicatifs vers MINIX 3.
<br />
Plus de 500 logiciels applicatifs ont déjà été portés, mais davantage encore seraient les bienvenus. Porter des logiciels Linux ou FreeBSD demande quelques efforts malgré la disponibilité de cc et gcc et de la conformité POSIX, les appels systèmes de Linux et FreeBSD ne sont pas gérés, et l'arborescence des fichiers d'en-tête est organisée différemment, etc. La seule chose à savoir est que les choses les plus simples ont déjà été faites. Les ports restant à faire sont plus gros et plus complexes.
<br />
<br />
Les programmes fonctionnels petits et rapides sont tout spécialement appréciés, en particulier pour les environnements (mobiles) aux ressources limitées, mais les bons logiciels de bureautiques, les frameworks et autres bibliothèques sont également utiles.
<br />
Quelques exemples : <ul><li>le navigateur web Dillo
<br />
</li><li>Le serveur web Lighttpd
<br />
</li><li>Le framework logiciel Qt
<br />
</li><li>les programmes réseau comme Tcpdump, Traceroute, Netcat, nslookup, etc.</li></ul>
<br />
L'équipe est ouverte à toutes les suggestions pour le port d'autres programmes. Dans certains cas, les ports peuvent être suffisamment simples pour que vous puissiez en proposer plusieurs.</li>
<br />
<li>Améliorer la portabilité.
<br />
Tenter de faire tourner les commandes de MINIX 3 sous Linux ou FreeBSD (pour des motifs de comparaison) s'avère extrêmement difficile malgré leur écriture en <a href="http://fr.wikipedia.org/wiki/C_(langage)">C ANSI</a> et la conformité <a href="http://fr.wikipedia.org/wiki/POSIX">POSIX</a>. Les problèmes sont souvent liés à la structure et au contenu des fichiers d'en tête (par ex. ce qui est précisément défini dans types.h) et comment les Makefiles sont organisés. Ce projet consiste donc à travailler sur les fichiers d'en tête de MINIX 3 et les Makefiles des applications pour faciliter l'utilisation de gcc et pour facilement porter les programmes de MINIX 3 sous Linux et FreeBSD.</li></ul>
<br />
<br />
Vous pouvez aussi regarder <a href="http://www.minix3.ucsc.edu/wikis/minix3/WishList">la liste des requêtes</a> sur le wiki de MINIX 3.
<br />
Les membres du projet sont ouverts aux suggestions de projets alternatifs.
<br />
<br />
Gardez en tête que la date limite pour postuler est le 3 avril.
<br />
<br />
<b>Conclusion</b>
<br />
<br />
Même si vous n'êtes pas intéressé par le SoC, essayez MINIX 3. Vous pourriez être surpris. Par exemple, il peut se compiler lui même, le noyau, tous les serveurs et les pilotes, etc. – 125 compilations – en seulement 6 secondes sur un PC moderne. Et si vous voulez aider le projet en dehors du SoC, vous êtes le(la) bienvenu(e).</div><div><a href="https://linuxfr.org/news/minix-3-google-summer-of-code.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/24318/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/minix-3-google-summer-of-code#comments">ouvrir dans le navigateur</a>
</p>
Mathieu Stumpfhttps://linuxfr.org/nodes/24318/comments.atomtag:linuxfr.org,2005:Diary/224802006-08-25T01:32:11+02:002006-08-25T01:32:11+02:00Linux a 15 ans aujourd'hui !Il y a 15 ans un certain Linus Torvald posta ce message sur Usenet, il ne pensait surement pas ce que ça allait devenir :<br />
<br />
From: torva...@klaava.Helsinki.FI (Linus Benedict Torvalds)<br />
Newsgroups: comp.os.minix<br />
Subject: What would you like to see most in minix?<br />
Summary: small poll for my new operating system<br />
Keywords: 386, preferences<br />
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI><br />
Date: 25 Aug 91 20:57:08 GMT<br />
Organization: University of Helsinki<br />
Lines: 20<br />
<br />
<br />
Hello everybody out there using minix -<br />
<br />
I'm doing a (free) operating system (just a hobby, won't be big and<br />
professional like gnu) for 386(486) AT clones. This has been brewing<br />
since april, and is starting to get ready. I'd like any feedback on<br />
things people like/dislike in minix, as my OS resembles it somewhat<br />
(same physical layout of the file-system (due to practical reasons)<br />
among other things). <br />
<br />
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. <br />
This implies that I'll get something practical within a few months, and<br />
I'd like to know what features most people would want. Any suggestions<br />
are welcome, but I won't promise I'll implement them :-)<br />
<br />
Linus (torva...@kruuna.helsinki.fi)<br />
<br />
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. <br />
It is NOT protable (uses 386 task switching etc), and it probably never<br />
will support anything other than AT-harddisks, as that's all I have :-(.<div><a href="https://linuxfr.org/users/michael/journaux/linux-a-15-ans-aujourdhui.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/48941/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/michael/journaux/linux-a-15-ans-aujourdhui#comments">ouvrir dans le navigateur</a>
</p>
ZAKRZEWSKI Michaëlhttps://linuxfr.org/nodes/48941/comments.atomtag:linuxfr.org,2005:News/197882005-10-25T04:11:43+02:002005-10-25T04:11:43+02:00un nouveau Minix<div>Minix est un respectable OS, conçu par Andrew Tanenbaum quand la "propriétarisation" de Unix l'a empêché de montrer le code source d'un véritable système d'exploitation. Il a donc codé un clone fonctionnel.
<br />
Le code source de ce système a été publié dans son excellent livre "Les systèmes d'exploitation". Hélas, sous une licence non-libre, en grande partie à cause de l'éditeur du livre. Plus tard, en 1997, il est passé sous <a href="http://minix1.hampshire.edu/LICENSE.html">une licence libre</a>.
<br />
Cet OS a toujours été supporté par ses qualités didactiques, son utilisation dans le milieu éducatif et une forte communauté d'utilisateurs sur le ng <b>comp.os.minix</b>, bien connu grâce à un certain finlandais.
<br />
Et cette communauté a publié la version 3 de Minix...
<br />
<br />
NdR: Merci à Diwann et Kartoch pour avoir proposé une dépêche similaire.</div><ul><li>lien nᵒ 1 : <a title="http://www.cs.vu.nl/~ast/minix.html" hreflang="en" href="https://linuxfr.org/redirect/44106">Minix chez ast</a></li><li>lien nᵒ 2 : <a title="http://minix1.hampshire.edu/" hreflang="en" href="https://linuxfr.org/redirect/44107">_Le_ site Minix</a></li><li>lien nᵒ 3 : <a title="http://www.minix3.org/" hreflang="en" href="https://linuxfr.org/redirect/44108">Et le petit nouveau</a></li></ul><div>... que vous pouvez découvrir dans <a href="http://www.minix3.org/">http://www.minix3.org/</a>
<br />
<br />
<b>traduction libre</b>:
<br />
Minix 3 rajoute le nouvel objectif d'être utilisable comme un système sérieux sur des machines embarquées ou à ressources limitées, et pour des applications demandant une haute fiabilité.
<br />
Ce nouvel OS est très petit, la partie qui tourne en mode noyau fait moins de 4000 lignes de code exécutable. La partie qui tourne en mode utilisateur est divisée en petits modules, isolés les uns des autres.
<br />
Par exemple, chaque pilote de périphérique fonctionne comme un processus utilisateur séparé. Une bogue dans ce pilote (ce qui est la plus grande cause de problèmes dans tous les systèmes) ne peut écrouler l'intégralité du système.
<br />
En fait, quand un pilote se gaufre, il est automatiquement remplacé sans demander d'intervention de l'utilisateur, sans redémarrer, et sans affecter les programmes en cours.
<br />
<i>
<br />
Voilà, ayant pratiqué Minix dans ma jeunesse, et ayant suivi son évolution, je pense que c'est un nouveau beau jouet pour les geeks technophiles.
<br />
</i></div><div><a href="https://linuxfr.org/news/un-nouveau-minix.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/19101/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/un-nouveau-minix#comments">ouvrir dans le navigateur</a>
</p>
Thierry Boudethttps://linuxfr.org/nodes/19101/comments.atomtag:linuxfr.org,2005:Diary/197762005-10-24T14:51:39+02:002005-10-24T14:51:39+02:00Minix 3 vient de sortir.Minix, le fameux OS de Tanenbaum, vient de sortir dans sa version 3. Notez qu'il ne vise pas vraiment les systèmes les plus récents actuellement (limitations à 128GB de HD, 4GB de RAM, peu de cartes réseaux supportées) mais est plutôt destiné aux vieux PC à partir de 16 MB de RAM et à l'éducation via l'étude de son code source. Il vise à terme le marché embarqué, il faudra pour cela que ses ports vers de multiples plateformes aboutisse (aujourd'hui les ports ARM7 et PowerPC sont en cours).<br />
Un Live CD est disponible, et l'installation est possible à partir du même CD.<br />
La plupart des sources sont disponibles sur le CD après avoir booté dessus, le reste sur le site dans la section Software.<br />
Une grosse partie des couches système peut aussi être lue online : <a href="http://www.minix3.org/doc/AppendixB.html">http://www.minix3.org/doc/AppendixB.html</a><br />
À noter que la partie en kernel space du noyau ne fait que 3800 lignes.<br />
<br />
Le site : <a href="http://www.minix3.org/">http://www.minix3.org/</a><div><a href="https://linuxfr.org/users/xilun666/journaux/minix-3-vient-de-sortir.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/46290/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/xilun666/journaux/minix-3-vient-de-sortir#comments">ouvrir dans le navigateur</a>
</p>
Guillaume Knispelhttps://linuxfr.org/nodes/46290/comments.atomtag:linuxfr.org,2005:Diary/171812005-02-17T22:07:32+01:002005-02-17T22:07:32+01:00Minix !J'ai récupéré un vieux 486, avec le bouton turbo qui rend le processeur 4 fois plus rapide... Ah nostalgie...<br />
Le disque dur de 230 Mo est encore en état et n'a aucun secteur défectueux. Mais il ne possède malheureusement que 4 Mo de RAM, 8 Mo auraient été préférables...<br />
<br />
Donc, j'ai pensé à installer un Linux dessus. Le problème, c'est que Linux, l'air de rien, ça pompe de la mémoire vive, et 4Mo, c'est assez juste : juste de quoi lancer le noyau, un shell et un vi (ou un centième de emacs, au choix).<br />
<br />
Je me suis donc tourné naturellement tourné vers Minix, dont je connaissais l'existence, mais pas du tout ses qualités.<br />
<br />
Je rappelle que Minix est le système sur lequel tournait le 386 de Linus Torvalds quand il a écrit la version 0.0.1 de Linux (que j'essayerai de compiler sous Minix d'ailleurs !).<br />
<br />
Minix est un système de type UNIX très (vraiment) léger qui tourne même sur des architectures 16 bits comme le 286, voire le 8088. En tout cas, sur mon 486, ça tourne avec aisance, c'est d'une rapidité fulgurante, foudroyante, étonnante, inimaginable. Bref, c'est carrément utilisable pour développer, le compilateur C étant très léger et rapide.<br />
<br />
Vous en saurez beaucoup plus sur la page officielle de cet OS conçu par le célèbre Andrew S. Tanenbaum, afin de rendre accessible à ses étudiants les rouages d'un OS. Les sources sont disponibles, et sous une licence qui ressemblerait plus à la licence BSD.<br />
<br />
[1] La page officielle de Minix :<br />
<a href="http://www.cs.vu.nl/~ast/minix.html">http://www.cs.vu.nl/~ast/minix.html(...)</a><br />
<br />
[2] Quelques outils GNU portés pour Minix :<br />
<a href="http://barnyard.syr.edu/minix.shtml">http://barnyard.syr.edu/minix.shtml(...)</a><br />
<br />
--<br />
<br />
Puisque c'est *mon* journal (pourquoi me sens-je obligé de me justifier ? :), j'en profite pour poser une question à propos du parcage de tête de lecture de disque dur...<br />
<br />
Je rappelle que le parcage consiste à ranger la tête de lecture d'un disque dur dans une zone sécurisée, empêchant cette tête de lecture de toucher la surface magnétique du disque, ce qui entraînerait un endommagement irrémédiable du disque.<br />
<br />
Sur les anciens disques durs, il vaut mieux effectuer un parcage manuel avant d'éteindre son ordinateur et donc son disque dur, ce parcage étant effectué de manière automatique (par de l'électronique) sur les disques actuels.<br />
<br />
J'ai alors une question : comment savoir si mon disque dur effectue ce parcage ?<br />
Le cas échéant, peut-on programmer facilement ce parcage ? Où pourrais-je trouve un tel programme, pour Linux Minix voire DOS ?<div><a href="https://linuxfr.org/users/_kd/journaux/minix.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/43754/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/_kd/journaux/minix#comments">ouvrir dans le navigateur</a>
</p>
kdhttps://linuxfr.org/nodes/43754/comments.atom