Wxcafé//wxcafe.net/Mon, 17 Feb 2014 05:02:00 +0100NAT//wxcafe.net/posts/nat/<p>NAT (Network Address Translation) in a word?<br /> It&rsquo;s complicated. Very. Don&rsquo;t do it, you&rsquo;d damage your brain. </p> <p>Bon, sinon, prochain article serieux vite, bisous.</p>wxcaféMon, 17 Feb 2014 05:02:00 +0100tag:wxcafe.net,2014-02-17:posts/nat/Pourquoi je vais quitter linux pour passer a FreeBSD.//wxcafe.net/posts/pourquoi-je-vais-quitter-linux-pour-passer-a-freebsd/<p><em>This is subject to debate, and as most of the actors in this field are not French-speaker, there is an English version of this text <a href="http://data.wxcafe.net/archives/126">here</a></em></p> <p>Bon, voila. J&rsquo;ai passé le cap. Je suis sous GNU/Linux depuis un certain temps, maintenant, et depuis un certain temps je remarque des changements malvenus. Bien entendu, au début, je n&rsquo;avais pas les connaissances nécessaires pour comprendre ne serait-ce que ces modifications existaient. Et puis certaines sont arrivées avant que je n&rsquo;ai même idée que quelque chose dans mon système d&rsquo;exploitation avait cette fonction la. Par exemple, udev, ou policykit/consolekit/. A l&rsquo;époque, je n&rsquo;avais aucune idée de la façon dont les disques étaient montés sur mon système. Le premier système non-Windows que j&rsquo;ai utilisé fut Ubuntu 9.10 Karmic Koala, et il était encore trop tôt pour que je cherche a démonter le système pour comprendre comment il fonctionnait en profondeur. Cependant, avec le temps, les connaissances s&rsquo;accumulant et mon niveau de compréhension du système s&rsquo;améliorant, j&rsquo;ai commencé a remarquer que certain bouts de l&rsquo;OS ne collaient pas exactement avec les autres. Bien sur, je ne saurais dire si cette réalisation s&rsquo;est faite a cause de la recrudescence de ces bouts d&rsquo;OS, ou bien juste a cause de ma compréhension plus poussée. Toujours est-il que ces petits bouts d&rsquo;OS ne s’adaptant pas au reste du système se faisaient de plus en plus visible. Et puis, un jour, j&rsquo;en ai eu marre de voir unity sur ma machine, et j&rsquo;ai choisi de passer a Archlinux. C&rsquo;était avant le passage a systemd. Ce système me convenait bien. Si je n&rsquo;installais pas Gnome, ce que je ne comptais pas faire, il ne me forçait pas a installer un *kit quelconque, ni dbus. Oui, udev était toujours la, mais c&rsquo;était le moins envahissant de ceux la.</p> <p>Mais Archlinux est passé a systemd. Attention hein, je ne critique ici ni systemd, ni udev, ni même les <em>kit, et surtout pas Archlinux. Les premiers sont probablement très efficaces dans leur domaine, et le second n&rsquo;a pas <strong>vraiment</strong> eu le choix, rapport a la philosophie de la distribution d&rsquo;avoir au plus vite les dernières versions de tout. Cependant, systemd, tout comme udev et les </em>kits (bien que ce ne soient pas les seuls a faire ça&hellip;) ont un problème très précis, qui n&rsquo;importe pas a tout le monde, mais qui est très gênant pour ceux a qui il importe, et ce problème est que ces systèmes ne respectent absolument pas la philosophie UNIX. La philosophie UNIX, pour rappel, se résume en ces 9 principes :</p> <ol> <li>Ce qui est petit est beau</li> <li>Faites en sorte que chaque programme fasse une chose, bien.</li> <li>Faites un prototype aussi vite que possible</li> <li>Choisissez la portabilité plutôt que l&rsquo;efficacité</li> <li>Stockez les données dans des fichiers textes.</li> <li>Utilisez ce qui existe déjà a votre avantage. [<strong>1</strong>]</li> <li>Utilisez des scripts shells pour faciliter la portabilité et la réutilisation.</li> <li>Évitez les UI qui &ldquo;capturent&rdquo; l&rsquo;utilisateur.</li> <li>Faites de chaque programme un filtre.</li> </ol> <p>Alors bien entendu, un système d&rsquo;exploitation est fait pour évoluer, et on pourrait penser qu&rsquo;UNIX a fait son temps. Cependant, ce n&rsquo;est pas exactement la façon dont l&rsquo;informatique fonctionne. Effectivement, les standards, les systèmes d&rsquo;exploitation, les logiciels, tout doit évoluer - ou mourir - et UNIX ne fait pas exception a la règle. Mais ce n&rsquo;est pas d&rsquo;UNIX que nous parlons ici. C&rsquo;est de la <em>philosophie</em> UNIX. Et celle-ci n&rsquo;a pas fait son temps, <strong>elle a fait ses preuves.</strong> La philosophie UNIX, en plus d&rsquo;être efficace sur le papier, a aussi 44 ans de tests derrière elle, et fonctionne aussi bien qu&rsquo;au premier jour.<br /> La philosophie UNIX est aussi et surtout une garantie d&rsquo;utilisabilité et de simplicité pour les administrateurs systèmes, pour les développeurs, bref pour tous ceux qui font de l&rsquo;informatique<em>sérieusement</em> (je ne dis pas que les autres métiers de l&rsquo;informatique ne sont pas sérieux, je prend juste ceux-ci comme exemples parce que ce sont ceux qui sont les plus proches du système).</p> <p>Tous OS se doit d&rsquo;avoir un système standardisé pour faire communiquer les programmes entre eux. UNIX a un système de pipes, des sortes de fichiers spéciaux permettant d&rsquo;échanger des informations. C&rsquo;est efficace, ça respecte le &ldquo;tout est fichier&rdquo;, c&rsquo;est standard, c&rsquo;est simple a comprendre, bref, ça fonctionne parfaitement. Dbus vient remplacer ça, avec une interface qui n&rsquo;est explicitement pas faite pour être utilisée a la ligne de commande mais a l&rsquo;aide d&rsquo;APIs, et un programme monolithique qui effectue sa tache d&rsquo;une façon complètement obscure pour l&rsquo;utilisateur. Alors bien sur, il l&rsquo;effectue d&rsquo;une façon efficace, cette tache. Oui, ça va plus vite qu&rsquo;avant. Oui, c&rsquo;est plus &ldquo;rangé&rdquo;, ça fait moins &ldquo;fouillis&rdquo;. Mais c&rsquo;est moins efficace. C&rsquo;est<em>beaucoup</em> moins utilisable pour l&rsquo;utilisateur final. C&rsquo;est horriblement chiant pour les sysadmins, parce qu&rsquo;ils ne peuvent plus lire facilement les échanges entre programmes. C&rsquo;est peu pratique, en fin de compte. Et ça ne respecte pas du tout la philosophie UNIX.<br /> Systemd prend le même parti de créer une interface unifiée, accessible via des appels a des APIs uniquement, complètement obscure, extrêmement abstraite, bien entendu monolithique, et très peu ouverte a la modification par l&rsquo;utilisateur final. Alors oui, il parait que ça augmente la vitesse de boot. Eh bien, au risque d&rsquo;en choquer quelques uns, je préfère avoir un système qui boote <em>légèrement</em> plus lentement et que je puisse modifier facilement, et qui soit ouvert, compréhensible et distribué. C&rsquo;est presque comme si les projets freedesktop.org avaient pour but de remplacer la base UNIX de linux en créant un système concurrent, bâtard, bâti sur le kernel Linux mais n&rsquo;employant plus les systèmes basiques d&rsquo;UNIX.</p> <p>Le problème est qu&rsquo;il est facilement visible que la direction prise par la communauté Linux n&rsquo;est pas celle du retour sur les systèmes UNIX ni celle du développement de solutions respectant la philosophie UNIX, mais remises au gout du jour (?), mais est bien d&rsquo;accepter et de pousser les changements apportés par les projets freedesktop.org directement dans le cœur du système lui même. Ainsi, Fedora (très près de Red Hat, dont font partie de nombreux développeurs de ces projets), a déjà adopté tous ces changements (archlinux aussi, mais pour d&rsquo;autres raisons&hellip;), et on peut compter sur le fait que les autres distributions l&rsquo;adopteront un jour ou l&rsquo;autre.</p> <p>Bon, maintenant que nous avons, si ce n&rsquo;est démontré la nocivité de ces systèmes, tout du moins exprimé les raisons qui font qu&rsquo;ils me déplaisent, on pourrait penser qu&rsquo;il suffit de passer a une distribution n&rsquo;incluant pas systemd, voire a une distribution n&rsquo;incluant pas du tout de contenus freedesktop.org, et de vivre avec le fait de ne pas être sur archlinux. Cependant, avec un peu de réflexion, on voit que si des distributions comme archlinux et Fedora ont adopté systemd (et qu&rsquo;OpenSUSE est en train de l’intégrer), il est probable que cela devienne un standard au fil des années, et que seuls survivent systemd et upstart, le gestionnaire de démarrage d&rsquo;ubuntu, qui ne changera probablement pas (je les vois mal revenir en arrière sur ce point.) Toujours est-il que l&rsquo;init héritée du System V semble condamnée a mourir sous Linux. Il pourrait être judicieux de passer sous debian squeeze, qui ne recevra probablement jamais la mise a jour, ou a wheezy, qui ne la recevra probablement que dans 2/3 ans. Cependant, cette période est toujours trop courte, et met sur mon système d&rsquo;exploitation une date d&rsquo;expiration, chose qui ne me plait que moyennement. Non, la solution est de passer sous un système autre, qui ait son propre système d&rsquo;init (ou qui ne risque pas de passer sous systemd). Dans ce cas, deux options principales s&rsquo;ouvrent a moi: OpenSolaris et *BSD. Minix n&rsquo;est pas vraiment un choix, vu le peu de programmes qu&rsquo;il permet de faire fonctionner et le fait qu&rsquo;il ne soit disponible que sur i386, ce qui n&rsquo;est pas vraiment avantageux au vu de mon système en x86_64. Haiku n&rsquo;est pas un choix non plus, puisque le but est de rester dans une optique UNIX.</p> <p>OpenSolaris est un système d&rsquo;exploitation tout a fait valable. Je n&rsquo;ai en théorie aucun problème sur cet OS, sauf que certains choix de design ne correspondent pas du tout a l&rsquo;idée que j&rsquo;ai d&rsquo;un OS. En effet, OpenSolaris ressemble assez a Debian dans sa vision du fonctionnement de ses outils, avec des paquets modifiés pour les rendre plus simples a utiliser (fichiers de configuration fournis par défaut, par exemple, et autres patchs &ldquo;release-only&rdquo;), et une tendance a faire des scripts et des outils installés par défaut pour tout et n&rsquo;importe quoi. Bref, cela n&rsquo;est pas le sujet. Il convient aussi de voir qu&rsquo;avec la récente acquisition de Sun par Oracle, il est possible que le projet OpenSolaris n&rsquo;ait pas de très beaux jours devant lui (la <a href="http://hub.opensolaris.org/bin/view/Main/">page d’accueil</a> du projet affiche d&rsquo;ailleurs un ÉNORME logo Oracle, du meilleur gout.)</p> <p>Il reste donc *BSD. Pourquoi choisir FreeBSD plutôt qu&rsquo;OpenBSD, NetBSD ou DragonFlyBSD (pour ne citer que les plus connus) ? Et bien c&rsquo;est simple : pour aucune raison particulière. OpenBSD et NetBSD ont pour réputation d&rsquo;être orientées sécurité, et d&rsquo;après ce que j&rsquo;ai pu en voir DFBSD ressemble aussi au système de l&rsquo;assistance a l&rsquo;user a outrance décris plus haut. Mais la vérité est que je n&rsquo;ai pas fait suffisamment de recherches et que FreeBSD ne va me voir arriver que par hasard, parce qu&rsquo;entre toutes les BSD ca me semble la plus sympa et la plus agréable a utiliser, plus le fait que le système de ports me convient bien (j&rsquo;aime pouvoir configurer mes logiciels de façon assez profonde.)</p> <p>Voila, c&rsquo;est mon avis sur ce &ldquo;problème&rdquo; actuel du monde de Linux. Bien entendu, je continuerai a utiliser Linux, et je ne peux qu’espérer que les systèmes tels que systemd ou dbus ne disparaissent, ou tout du moins n&rsquo;apparaissent jamais chez certaines distributions, créant de ce fait un choix pour les utilisateurs.<br /> [1]: Je n&rsquo;ai pas trouvé de traduction satisfaisante a &ldquo;software leveraging&rdquo;, mais l&rsquo;idée est la&hellip;*</p>WxcafeMon, 04 Feb 2013 17:41:00 +0100tag:wxcafe.net,2013-02-04:posts/pourquoi-je-vais-quitter-linux-pour-passer-a-freebsd/Update et pensées a propos du Raspberry Pi//wxcafe.net/posts/update-et-pensees-a-propos-du-raspberry-pi/<p>Bon.<br /> J&rsquo;ai annoncé il y a environ 20 jours que j&rsquo;avais pour projet de faire une Piratebox basée sur un Raspberry Pi, <del>astucieusement</del> nommée PiRatBox. Il se trouve qu&rsquo;après de nombreux essais, un problème récurrent apparait: le Raspberry Pi n&rsquo;est pas capable de fournir assez de courant par défaut pour faire fonctionner a la fois un disque dur et une antenne WiFi.<br /> Alors, autant il me semble évident qu&rsquo;avec une alimentation provenant d&rsquo;un port USB a 2A (max), je n&rsquo;avais pas énormément de chances d&rsquo;avoir 2A sur chacun des ports host du Raspi, autant avoir moins de 250 mA sur chacun de ces ports me semble un tout petit peu exagéré en terme de rentabilité. </p> <p>De même, le fait de ne pas pouvoir désactiver le port Ethernet (ne me servant a rien) (vous savez, celui qui est monté en USB&hellip;), qui consomme énormément, est assez louche. Il devrait toujours être possible de désactiver une device USB, me semble-t-il, au niveau logiciel. La, bien qu&rsquo;il soit surement possible de la désactiver au niveau du kernel, il n&rsquo;est pas <strong>simplement</strong> possible de la &ldquo;débrancher&rdquo;. Ce qui est bien chiant, étant donné le besoin évident de puissance électrique dans lequel on se retrouve. </p> <p>Bon, je dois avouer n&rsquo;avoir pas testé de lancer les différents services composant le système des piratebox sous arch, pour la simple <del>et bonne</del> raison qu&rsquo;arch utilise systemd et qu&rsquo;il n&rsquo;existe pas de wrapper systemd pour les daemons piratebox, et que j&rsquo;ai la flemme d&rsquo;en faire, parce que systemd est une horreur a utiliser avec les scripts init. Donc non, j&rsquo;utiliserai debian. Le problème d&rsquo;utiliser debian dans ce cas précis est que apt/dpkg a une gestion des dépendances dans un sens mais pas dans l&rsquo;autre, en ce sens que si on installe un package &ldquo;haut&rdquo;, c&rsquo;est a dire dépendant de plusieurs autres packages, apt/dpkg se charge efficacement d&rsquo;installer toutes les dépendances nécessaires, tandis que si on désinstalle un package &ldquo;bas&rdquo;, c&rsquo;est a dire sur lequel de nombreux autres packages dépendent, apt/dpkg ne désinstalle pas ces packages &ldquo;hauts&rdquo;, ce qui pose un vrai problème quand on se retrouve sur un Raspberry Pi, puisqu&rsquo;il n&rsquo;y a pas de moyen &ldquo;facile&rdquo; de choisir ce qui sera installé sur le système avant l&rsquo;installation proprement dite (puisque le moyen &ldquo;universel&rdquo; d&rsquo;installation sur Raspberry Pi est le dd vers la SD qui sert de disque système.)</p> <p>Il y a <strong>énormément</strong> d&rsquo;autres critiques que l&rsquo;ont pourrait faire concernant le Raspberry Pi. Son système de démarrage a s&rsquo;arracher les cheveux, par exemple. En effet, plutôt que de faire comme tout pc normalement constitué ou la partie calcul démarre, lance le bootloader, cherche le kernel de l&rsquo;OS qui lui même se lance, initialise le hardware, etc&hellip;, a un système bâtard du au fait que la puce au centre de la carte est a la base une puce graphique a laquelle on a greffé un cœur de calcul (probablement au fond d&rsquo;une cour d&rsquo;immeuble, dans les quartiers pauvres de Bratislava, vu la propreté de la greffe&hellip;), et le moyen le plus efficace qu&rsquo;aient trouvé les personnes ayant implémenté cette atrocité de gérer le boot est donc de faire démarrer le cœur graphique en premier, ce dernier exécute un code propriétaire pour démarrer le cœur de calcul, qui a son tour lance le bootloader qui cherche le kernel etc&hellip; </p> <p>Ce qui non seulement complique énormément le boot, non seulement ajoute du code propriétaire a un projet se disant libre, mais en plus n&rsquo;est<strong>visiblement</strong> pas fait pour être utilisé de cette manière. Le hack, oui, mais uniquement quand c&rsquo;est bien réalisé, sinon je dis non. </p> <p>Enfin, le projet que j&rsquo;avais est toujours en cours de réalisation. Je le terminerai dès que j&rsquo;aurai récupéré les outils nécessaires pour monter mon alimentation personnalisée pour le Raspberry Pi. Et une fois que cela sera fait, ce Raspi restera une Piratebox pour le reste de sa vie. Les problèmes qu&rsquo;il m&rsquo;a posé, qu&rsquo;il n&rsquo;aurait pas du me poser, m&rsquo;ont trop agacé pour que j&rsquo;aie envie de le sortir et de jouer avec une fois sa mission remplie. </p> <p>Dommage.</p>WxcafeSun, 27 Jan 2013 01:55:00 +0100tag:wxcafe.net,2013-01-27:posts/update-et-pensees-a-propos-du-raspberry-pi/