Linux France

S'abonner à flux Linux France
Mis à jour : il y a 29 min 20 sec

Xfce 4.12 est là !

Lundi 2 Mars

Xfce est un environnement de bureau basé sur GTK+ qui se veut léger, simple mais complet, souple, modulaire, portable et respectueux des standards portés par Freedesktop Ce 28 février est sortie la version 4.12, après presque 3 ans de développement depuis la version 4.10, et quelques versions intermédiaires dont la 4.11. Cette version est une « évolution sans révolution », le projet continue de se focaliser sur l'expérience utilisateur.

Principales Nouveautés :
  • Gestionnaire de fenêtres (xfwm4)

    • Le sélecteur d'applications ALT+TAB est disponible en trois modes : L'historique liste d'icônes des apps, une liste des noms des apps, et la prévualisation complète.
    • Le mode carrelage (tiling) prend en compte le carrelage en coins d'écran.
    • Les décorations «côté-client» (CSD : client side decorations) sont gérées, permettant un affichage parfait d'applications écrites avec la dernière version de GTK+ (GTK+3)
    • La prise en charge des hautes résolutions est possible (hdpi, xhdpi)
  • Gestionnaire de bureau (xfdesktop)

    • Possibilité d'afficher une prévisualisation des images sur le bureau au survol de la souris
    • Nouveau dialogue pour le changement de fond d'écran, avec possibilité de gérer les fonds d'écrans par moniteur
  • Application Finder (xfce4-appfinder)

    • Prend en charge les données des applications AppData
  • Gestionnaire de session (xfce4-session)

    • Utilisation logind et upower pour l'hibernation et la veille.
    • Ajout de la gestion de ConsoleKit2
  • Gestionnaire des paramètres (xfce4-settings)

    • Prévisualisation des icônes et des thèmes
    • Amélioration de la gestion du multi-écrans, nouvelle fenêtre de réglage rapide lors du branchement d'un écran
    • Prise en compte de libinput qui permet de gérer les périphériques avec X.org et Wayland
  • Gestionnaire de fichiers (thunar)

    • Beaucoup d'améliorations : gestion des onglets, amélioration de la navigation clavier, gestion des signets de nouveau active pour GTK2 et GTK3, "freespace bar" dans les propriétés des fichiers, les scripts ne sont plus exécutés par défaut
  • Moteur de thèmes (gtk-xfce-engine)

    • Gtk3>3.14 n'ayant plus besoin de moteur de thèmes (les thèmes doivent maintenant être en CSS), la partie Gtk3 du moteur a donc été supprimée.
    • Le thème par défaut a été revu, et un nouveau est disponible (Xfce-flat)
  • Tableau de bord (xfce4-panel)

    • Le panel peut maintenant se cacher intelligemment lorsque des fenêtres l'approchent
    • Il gère également les greffons développés en Gtk3
  • Gestion de l'alimentation (xfce4-power-manager)

    • Un nouveau greffon pour le tableau de bord, permettant par exemple de gérer directement la luminosité
    • Utilisation de logind et upower
    • Les options ont été complètement revues
    • Possibilité de contrôler les options de verrouillage d'écran (light-locker)
Goodies

Xfce ne serait pas ce qu'il est sans tous ses fameux goodies. On peut noter les changements suivants :

  • Xfburn prend maintenant en charge les Blu-ray
  • Le gestionnaire de tâches a été réécrit et porté sur Gtk3
  • Parole, le lecteur musical et de vidéo, utilise aussi Gtk3 et gstreamer1.0
  • Mousepad, l'éditeur de texte, a aussi été complètement réécrit et porté sur Gtk3
  • Xfce4-screenshooter peut maintenant envoyer les captures d'écran sur imgur.com
  • Whiskermenu, un menu alternatif, fait maintenant partie du projet xfce
  • xfce4-pulseaudio-plugin, un nouveau greffon pour le tableau de bord, permettant de contrôler le mixer PulseAudio
  • Un travail de fond a été effectué sur les greffons du tableau de bord afin d'uniformiser leur interface

Pour la petite histoire, la majorité des captures d'écran du "tour de version" ont été effectuées sur OpenBSD, une "preuve" que xfce est toujours portable, une attention particulière étant apportée à la prise en compte de tous les Unix. Ainsi Xfce peut être compilé et utilisé sur NetBSD, FreeBSD, OpenBSD, Solaris, Cygwin et MacOS X, sur x86, PPC, Sparc, Alpha…

Dans le même registre, des discussions sont en cours pour faire renaître une image "GUI" du côté de DragonFly BSD et Xfce semble être le DE désigné. Rien n'est encore définitif, mais plusieurs utilisateurs de DragonFly ont avancé le fait que Xfce est un des environnements de bureau s'intégrant le mieux à cet OS.

Et pour l'avenir ?

Le travail sur la version 4.14 a déjà commencé. L'essentiel des efforts devrait se concentrer sur la migration vers Gtk3 (certains composants prennent déjà partiellement en compte Gtk3 et certains goodies ont déjà été portés).

L'objectif étant une transition "en douceur" apportant le minimum de changements visibles pour l'utilisateur, une feuille de route plus précise est en cours d'élaboration.

Si vous souhaitez commencer à contribuer à Xfce en douceur, une page des bugs "faciles" à corriger a été créée sur le wiki. De manière générale la liste de diffusion des développeurs ainsi que le chan IRC #xfce-dev sur freenode est le meilleur moyen pour s'investir dans ce beau projet !

Télécharger ce contenu au format Epub

Lire les commentaires

Livre Red Hat Enterprise Linux - CentOS chez ENI (2ème édition)

Lundi 2 Mars

La 2ème édition de mon livre Red Hat Enterprise Linux - CentOS - Mise en production et administration de serveurs vient de paraître. Ce livre sur Red Hat Enterprise Linux et CentOS (versions 5 à 7) s'adresse à tout informaticien appelé à déployer un serveur Linux performant en entreprise et à en assurer l'administration. Émaillé d'explications pédagogiques, d'exemples et d'astuces, ce livre va à l'essentiel, fournit des méthodes techniques et logistiques, présente les bonnes pratiques et n'oublie pas la sécurité.

L'auteur s'est attaché à écrire un livre efficace, sur des situations réalistes et concrètes rencontrées en entreprise, pour permettre au lecteur de devenir un administrateur compétent et autonome.

Plus de détails et un entretien avec l'auteur en seconde partie.

Sommaire Objectifs du livre
  • comprendre la philosophie d'exploitation proposée par Red Hat,
  • procéder à une installation efficace du système d'exploitation par DVD, VNC, PXE et Kickstart,
  • effectuer une configuration réseau adaptée à l'entreprise (SSH, Interface Bonding, VLANs, Pare-feu),
  • exploiter l'immense bibliothèque de logiciels disponibles,
  • configurer les supports de stockage, mettre en place le RAID, LVM,
  • automatiser des tâches, analyser, maintenir et dépanner le système,
  • gérer des utilisateurs,
  • mettre en œuvre des scripts Bash,
  • mettre en place des services courants en entreprise (HTTP, DNS, DHCP, FTP, etc.).
  • se familiariser avec les nouveautés de la version 7 (systemd, journald, firewalld, Network Manager, Docker, KVM etc.).

Des éléments complémentaires sont disponibles en téléchargement.

Les chapitres du livre :

Avant-propos – Présentation de Red Hat – Déploiement d'un serveur Red Hat – Démarrage du système – Installation de logiciels – Partitions et système de fichiers – Gestion des utilisateurs et des groupes – Réseau - Les scripts bash – Services de production courants – Maintenance du système en production – Aide-mémoire des principales commandes

Entretien avec Thibault Bartolone

a) Bonjour Thibault, peux tu te présenter aux lecteurs de DLFP en quelques mots ?

Bonjour. Je suis honoré de répondre à tes questions. Ma vocation première, c’est le réseau. Avec un DUT Télécom et Réseau, je peux dire que je suis bien tombé, car à l’époque (en 1996/97), Internet était moins une évidence que maintenant. Linux aussi, mais j’avais bien sûr déjà un œil dessus, en faisant mes premières armes sur du Mandrake Linux. Après avoir travaillé pour un opérateur, je me suis mis en freelance. Je suis un geek qui suit avidement l’actualité open source / high-tech et gadget, mais j’ai aussi goût pour la Dolce Vita (le bon vin et la culture).

b) Quelles sont les expériences de la vraie vie qui ont nourri ton expérience personnelle ? De quel type de parcs s'agissait-il ?

Avec un ami, on a d’abord essayé de développer un outil de gestion de parc Linux… mais très vite, en plus de mon activité réseaux IP, j’ai cherché à compléter mon panel de prestations avec l’autre outil qui fait Internet : Linux. J’ai donc fait beaucoup d’administration de serveurs et du projet autour de Linux, surtout dans le monde du réseau (serveurs Web, serveurs de supervision, firewalls), souvent pour des petites boîtes, mais aussi pour des opérateurs de télécoms.

c) Comment t'est venue l'idée et l'envie de faire partager cela au travers d'un livre ?

Donc, je suis Linux depuis un bon moment. En parallèle, j’évolue dans le monde du réseau qui n’est pas si loin (les premiers routeurs était des BSD…) mais qui a pris son envol en devenant plus « corporate ». C’est cette approche qui m’a séduit chez Red Hat. On va au-delà de l’attachement « sentimental » à Linux, tout en restant convaincu que c’est un excellent produit. On peut faire de l’open source et du business en même temps. Cette façon de voir est pour moi la meilleure façon de promouvoir ce système d’exploitation génial.

De plus, en toute franchise je trouve qu’il y a un gros besoin de pédagogie en rapport avec Linux ; c’est soit inexistant, soit ultra détaillé (ou périmé). Par exemple, quand on cherche à comprendre les descripteurs de fichiers, sur le net on tombe 9 fois sur 10 sur… les redirections et les entrées/sorties standards, alors que le concept de File Descriptor est
quand même plus large.

Ainsi, quand ENI cherchait un auteur pour compléter sa collection Linux, j’ai naturellement présenté mon projet.

d) Quelles sont les nouveautés mises en valeur dans cette seconde édition ?

Il y a d’abord bien-sûr les apports de la version 7 (systemd, firewalld), qui sont expliqués d’une manière adaptée à la productivité, et non pas extensivement. Les concepts de Docker sont difficiles à comprendre (à mon grand regret), j’ai donc essayé de fournir une base, en étant le plus pédagogique possible. La partie réseau a été grandement étendue, avec l’ajout entre autres du VPN (IPSec et SSL).

La pédagogie est essentiellement l’autre raison de cette mise à jour ; je reviens sur des bases nécessaires à une bonne compréhension de l’OS. Par exemple, dans les premiers chapitres, on explique les composants principaux d’un système Linux, ainsi que des fondamentaux en matière de sécurité. On trouvera également à la fin du livre une cheatsheet de toutes les commandes du livre, qui est disponible en téléchargement.

Ah, et on a rajouté CentOS sur la couverture pour rameuter du monde. :-)

NdM : le chapitre que vous pouvez consulter illustre parfaitement cet accent pédagogique.

e) Quel est ton point de vue, de professionnel et de libriste, sur les axes de changement actuellement en vigueur dans Redhat 7 ?

J’ai parfois l’impression que chez Red Hat, ils sont un peu démagogiques :
ils prennent la décision d’adopter une technologie parce que c’est nouveau, parce que ça va ramener du monde. Cela dit, ce n’est pas forcément une mauvaise politique.

e) Linus T. veut le « desktop » : Gnome et Redhat semblent ensemble faire le nécessaire afin d'être résistant à l'utilisateur desktop : penses-tu que Redhat 7 est utilisable en entreprise sur des desktops ? Quels sont ses avantages et inconvénients, à ton avis, dans cet usage particulier ?

Je ne pense pas qu’en l’état, Linux en général puisse faire du desktop pour l’utilisateur lambda. Regardons les choses en face, au risque de tomber encore une fois dans le lieu commun : moi-même utilisateur relativement expérimenté de Linux, je m’arrache parfois encore les cheveux pour installer un logiciel.

Un tweet posté récemment par @nixCraft révèle quel est le principal obstacle :

« La mauvaise réputation de Linux et des UNIX-like n’est absolument pas méritée, créée par des gens qui n’y comprennent rien, qui ne se sont pas penché dessus et n’ont jamais rien essayé. »

Tout d’abord, il n’est pas vrai de dire que Linux a mauvaise réputation. Linux est apprécié partout. En fait, ce tweet indique plutôt un petit côté parano chez son auteur (et ceux qui le cautionnent), genre « moi seul contre le reste du monde ».

Ensuite, et c’est sans doute le pire, on dit : si ça ne marche pas, c’est à cause de l’autre, c’est lui qui doit se mettre à ma portée.

Tant que quelques-uns (même une fraction) continueront de penser ça, il est évident que Linux aura du mal à se faire aimer du grand public. Certaines gens du monde Linux prônent l’efficacité, genre « DEB est 1% plus efficace que RPM ». Mais même si l’autre était 20% plus efficace, ce n’est pas le plus important. En effet, ce qui fera décoller Linux en desktop, c’est l’unité, et non l’efficacité. Quitte à faire peur à certains, il faut proposer un système unique, simple. Il faut également que la communauté soit unie.

Donc, pour systemd, arrêtons de gaspiller notre énergie en guerre de chapelles. Adoptons un système et poussons tous ensemble pour qu’il fonctionne.

Cela n’empêche pas les devs d’expérimenter d’autres solutions. Mais ne transformons pas l’utilisateur en développeur.

En résumé, pour l’instant RHEL est adapté à une utilisation serveur en ligne de commande, et c’est sur ce postulat que se base mon livre.

f) Quels sujets te passionnent actuellement, pour lesquels fais-tu un développement actif et quels sont ceux auxquels tu aimerais pouvoir participer ?

En ce moment, je développe un cours sur IPv6 pour Learning Tree http://www.learningtree.fr/courses/2703/ipv6-mise-en-uvre/, un institut de formation cher à mon cœur. On y parle beaucoup de l’Internet des Objet (IoE), qui est une grosse tendance, et je pense que Linux doit être un acteur majeur dans ce développement, en continuant son effort dans l’embarqué avec des empreintes OS réduites.

g) à quelle(s) question(s) aurais-tu voulu répondre en plus ?

« Alors, systemd ou pas systemd ? » Mais je n’ai pas envie de troller (et j’ai déjà plus ou moins répondu plus haut). :-)

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 9 de l'année 2015

Lundi 2 Mars

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[Le Monde.fr] Victoire cruciale pour la neutralité du Net aux Etats-Unis

Par la rédaction, le jeudi 26 février 2015. Extrait:

Le régulateur des télécommunications a annoncé après des années de débats de nouvelles règles concernant le traitement des données sur le Web.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2015/02/26/etape-decisive-pour-la-neutralite-du-net-aux-etats-unis_4583490_4408996.html

[EurActiv] La France fait marche arrière sur l'arbitrage dans le TTIP

Par Aline Robert, le jeudi 26 février 2015. Extrait:

Dans une note transmise aux élus français, le SGAE appelle à ne pas fermer totalement la porte aux mécanismes de règlements des différends investisseurs-Etat.

Lien vers l'article original: http://www.euractiv.fr/sections/commerce-industrie/la-france-fait-marche-arriere-sur-larbitrage-dans-le-ttip-312427

Et aussi:

[Direction Informatique] Mise au point sur le logiciel libre et sur sa sécurité

Par Laurent Bounin, le jeudi 26 février 2015. Extrait:

Au cours des trente dernières années, le thème de la sécurité a été largement exploité par les équipes de marketing et de vente des éditeurs propriétaires pour mettre à mal les logiciels libres.

Lien vers l'article original: http://www.directioninformatique.com/blogue/mise-au-point-sur-le-logiciel-libre-et-sa-securite/33013

[Numerama] Apple condamné à payer un demi-milliard de dollars à un "patent troll"

Par Julien L., le mercredi 25 février 2015. Extrait:

Apple vient d'être condamné aux USA à verser 532,9 millions de dollars de dommages et intérêts à une société américaine qui l'accuse d'avoir enfreint trois de ses brevets. L'entreprise s'avère être un patent troll, c'est-à-dire une firme qui ne fait que collecter des brevets pour pouvoir toucher ensuite des redevances. Apple prévoit de faire appel.

Lien vers l'article original: http://www.numerama.com/magazine/32320-apple-condamne-a-payer-un-demi-milliard-de-dollars-a-un-34patent-troll34.html

[Next INpact] E-éducation: les universités ont encore «de gros efforts à accomplir»

Par Xavier Berne, le mercredi 25 février 2015. Extrait:

Le Conseil économique, social et environnement (CESE) a adopté hier à l’unanimité un rapport sur la «pédagogie numérique» au sein des établissements de l’enseignement supérieur. Les auteurs de ces travaux estiment que la France a encore de gros progrès à effectuer.

Lien vers l'article original: http://www.nextinpact.com/news/93177-e-education-universites-ont-encore-gros-efforts-a-accomplir.htm

Et aussi:

[Mediapart] Un "Temps des communs" à Toulouse à l’automne

Par Bernard Brunet, le mardi 24 février 2015. Extrait:

Après une première édition en octobre 2013 (200 événements dans 5 pays) intitulée Villes en Biens communs, nous rééditons le festival des communs, appelé cette fois-ci «Le temps des Communs»: rencontres-débats, ateliers, colloques bien entendu, mais aussi initiation aux licences libres ou à des logiciels libres, cartoparties, écriture collaborative d’un manuel scolaire ouvert, troc de semences, initiation à Arduino ou à une imprimante 3D, découverte de l’open data culture, film sur l’autogestion de l’eau, décryptage de l’habitat groupé… A Toulouse, un groupe s’est constitué pour organiser une

Lien vers l'article original: http://blogs.mediapart.fr/blog/friture-mag/240215/un-temps-des-communs-toulouse-l-automne

Télécharger ce contenu au format Epub

Lire les commentaires

conférence SO Data III le 26 mars 2015 à Paris

Lundi 2 Mars

La conférence SO Data, 3ème édition, se tiendra le 26 Mars prochain à l'Institut des Systèmes Complexes à Paris (113 rue Nationale, 75013 Paris Métro ligne 6 (Nationale) et 14 (Olympiades)). Rappelons que cette journée est consacrée à l'Open Data dans le milieu scientifique. L'accès est libre, il suffit juste de s'inscrire sur le site. Au programme: exposés longs, partages d'expériences (lightning talks) et débat.

Deux sessions de Lightning Talks sont à nouveau proposées cette année pour vous permettre de venir partager votre expérience de l'Open Data. Un appel à contribution, sous forme d'un bref résumé, est accessible par ici

Télécharger ce contenu au format Epub

Lire les commentaires

Les journaux LinuxFr.org les mieux notés du mois de février 2015

Lundi 2 Mars

LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l'équipe de modération avant publication. C'est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

Ce que l’on sait moins, c’est que LinuxFr.org vous propose également à tous de tenir vos propres articles directement publiables, sans validation a priori des modérateurs. Ceux-ci s'appellent des journaux. Voici un florilège d'une dizaine de ces journaux parmi les mieux notés par les utilisateurs… qui notent. Lumière sur ceux du mois de février passé.

Télécharger ce contenu au format Epub

Lire les commentaires

Libre en Fête 2015 à Nogent (52) le 14 mars

Dimanche 1 Mars

À l'occasion de Libre en fête, des adhérents des associations COAGUL et APRIL vous invitent à une journée de sensibilisation aux logiciels et à l'informatique libres à Nogent (52, Haute-Marne) le samedi 14 mars 2015 de 10h00 à 16h00 à la Médiathèque Bernard Dimey.

Cet événement sera l'occasion de fédérer des utilisateurs, des promoteurs et des concepteurs de logiciel libre en vue de créer un LUG Haut-Marnais (GULL). Si ce projet vous intéresse vous pourrez y prendre part et ainsi pérenniser une activité de promotion et d'entraide autour du logiciel libre sur le secteur de la Haute-Marne.
N'hésitez pas à venir nous rencontrer.

Plusieurs ateliers vous sont proposés :

  • Découverte des logiciels libres les plus populaires
  • Install party pour vous accompagner dans l'installation de logiciels libres sur votre ordinateur et vous guider dans le choix et l'utilisation de logiciels libres
  • Vidéos pour découvrir les valeurs de la culture « logiciel libre »
  • Sensibilisation du web centralisé, découvrez des alternatives fiables et éthiques Le « libre » plus que des logiciels, une philosophie.
Télécharger ce contenu au format Epub

Lire les commentaires

Atelier CLI le mardi 03 mars2015 à Bègles

Dimanche 1 Mars

Le 3 mars 2015, l'atelier CLI (Command Line Interface) aura pour thème la configuration et sécurisation d'un serveur SSH.

Les ateliers CLI ont lieu dans les locaux du Labx (à la Fabrique Pola, rue Marc Sangnier 33130 Bègles) :

  • un mercredi sur deux de 19h00 à 20h00 pour les utilisateurs débutants
  • chaque mardi de 20h00 à 22h00 pour les utilisateurs avancés,

Les ateliers CLI permettent de progresser en ligne de commande au sein d'un groupe, autour d'un outil ou d'un thème.

Télécharger ce contenu au format Epub

Lire les commentaires

RPGBoss 0.7.0

Dimanche 1 Mars

RPGBoss est un logiciel gratuit et libre de création de RPG (à la RPG Maker), qui vient de publier sa version 0.7.0.

Il avait déjà été présenté lors de la sortie de la version 0.6.0. De l'eau a coulé sous les ponts mais pas que : le grand Tommy Cli (qui vit à Los Angeles) accompagné de Hendrix et Julian nous ont concocté une nouvelle version avec plusieurs nouveautés que je vais vous présenter.

Pour ma part, dans le projet, je m'occupe juste de la francisation du programme et d'en parler tout autour de moi. Voir la suite de la dépêche pour les nouveautés.

Voici les nouveautés de cette version:

  • définir un chronomètre

  • changer la météo

  • teindre l'écran

  • déplacer la caméra (pour faire une cinématique)

  • offrir un choix au joueur

  • copier/coller un événement
  • mise à jour de libgdx

À venir:

  • la possibilité d'afficher le visage du joueur (dans une vignette) lors d'un message
  • pour la version 1.0, offrir un moteur aussi puissant que celui de RPG Maker ; ensuite il sera envisageable de faire de grosses nouveautés comme par exemple un export vers Android ou HTML5.

N'hésitez pas à nous rejoindre si vous souhaitez nous aider.

Télécharger ce contenu au format Epub

Lire les commentaires

Journée du Libre à Nancy le 28 mars 2015

Dimanche 1 Mars

Le groupe d’utilisateurs de logiciels libres Mirabellug organise une Journée du Libre le 28 mars 2015. Celle-ci aura lieu à la MJC des Trois Maisons de Nancy.

« Au travers de cet évènement, vous pourrez découvrir les Logiciels Libres, un bien commun accessible à tous, une communauté vivante prête à aider les nouveaux venus. »

De 10h00 à 17h00, venez découvrir stands, ateliers et conférences divers sur les logiciels libres ainsi que des communautés qui les promeuvent. L’entrée est libre et gratuite.

Stands :

  • Ordinateurs en libre service pour découvrir différents environnements de bureau.
  • Test de systèmes GNU/Linux sur ordinateurs emmenés par les visiteurs. Un atelier d’installation sera mis en place ultérieurement à l’événement si besoin. Animé par le GOALL et le Mirabellug.
  • Démonstrations de montages vidéos avec Kino, Pitivi ou Open Shot Video. Animé par le Mirabellug.
  • Promotion d’entreprises travaillant avec des logiciels libres, animé par le GOALL.

Conférences :

  • Ce qu’est le logiciel libre, animé par le Mirabellug.
  • Dégooglisons Internet : pourquoi et comment ? animé par Framasoft

Ateliers :

  • Bonnes pratiques de l’utilisation d’Internet, animé par LDN

Les horaires des conférences et ateliers seront disponibles sur la page web dédiée prochainement.

Avec la participation de :

Un grand remerciement à la MJC des Trois Maisons pour la disponibilité de leurs locaux.

Cette journée se déroulera dans le cadre de l'initiative nationale Libre en Fête. Tout en accompagnant l'arrivée du printemps, de nombreux évènements de découverte des Logiciels Libres sont proposés partout en France autour du 21 mars.

Télécharger ce contenu au format Epub

Lire les commentaires

Moodlemoot et le Maharahui francophone 2015 à Tours du 10 au 12 Juin 2015

Samedi 28 Février

Le Moodlemoot et le Maharahui francophone sont les rencontres des utilisateurs de la plateforme pédagogique Moodle et du e-portfolio Mahara. Ce colloque international réunit les acteurs de la pédagogie numérique utilisant ces plateformes open source dans le processus de formation tout au long de la vie. Vous y trouverez des cycles de conférences, des ateliers, des défis et des tables rondes autour de l'usage de ces plateformes dans une ambiance conviviale. La prochaine édition du Moodlemoot/Maharahui 2015 aura lieu à Tours du 10 au 12 juin 2015.

L'appel à contribution pour cette édition est ouvert jusqu'au 27 mars 2015.
Pour connaître l'ensemble des thèmes abordés et les informations utiles pour contribuer, rendez-vous sur la page officielle de l'appel à contribution.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie d’IPython en version 3.0

Samedi 28 Février

Pour ceux qui ne connaissent pas IPython, je vous propose de consulter les dépêches précédentes car, même si à l'origine il s'agissait uniquement d'une console évoluée pour Python, l'envergure des possibilités a bien changé.

Pour rappel : IPython est une console alternative principalement tournée vers l’exploration interactive des données. […] Au‐delà d’une simple console Python, elle est aussi agnostique au niveau du langage en offrant une console Qt, un notebook Web (interface Web riche) et l’architecture pour y écrire dans son dialecte préféré.

Pour ceux qui préfèrent une version des nouvelles fonctionnalités dans la langue de Shakespeare, je vous suggère de lire les notes de version en anglais. Je vais me contenter de faire une traduction libre dans la langue de Molière, ainsi que de digresser sur d'autres sujets voisins.

Merci à tous les contributeurs à cette dépêche qui ont corrigé toutes mes fautes, anglicismes et autre erreurs qui font saigner les yeux etc. Merci palm123, eggman, BAud, Jiehong, Nÿco, Snark, Ytterbium et Nicolas Casanova.

Sommaire En quelques mots

Le lecteur de LinuxFr.org étant friand de temps libre et n'étant pas habitué au roman de plus de 150 caractères, à cause de la plateforme sociale de gazouillement, un résumé s'impose :

  • Presque un an de travail.
  • Beaucoup de changements sous le capot
  • Nouveau design de l'interface
  • Peu de nouvelles fonctionnalités dans le cœur, mais malgré tout :
    • sélecteur de noyau dans l'interface
    • complétion Latex vers Unicode
    • nouveaux formats de Notebook
    • terminal dans le navigateur
    • éditeur de texte
  • Nouveautés externes:
    • Multi-utilisateur
    • Au revoir IPython, on renomme une grande partie du projet.
    • NbGrader pour noter ses élèves
    • Intégration avec Google Drive
  • Essayez-le maintenant dans votre navigateur avec Python, R & Julia : try.jupyter.org
Récapitulatif

Pour cette version 3.0 de IPython, nous avons eu plus de 150 contributeurs et près de 6000 commits, sur une durée d’un peu moins d’un an. La prise en charge de langages autres que python s'est beaucoup améliorée et, en particulier, il est maintenant possible de changer de noyau à la volée sans redémarrer le serveur web et configurer un nouveau profil.

Éditeur de texte

Suite à une demande de plus en plus forte d'héberger ses serveurs dans les nuages, la possibilité d'éditer des fichiers texte a été incorporée. Grâce à CodeMirror vous pouvez maintenant directement éditer des fichier .py, .jl , .js et tout autre fichier texte à partir de votre navigateur. Cet éditeur gère même des modes d'édition Vim, Emacs et Sublime Text afin de faire plaisir à la majorité des barbus qui utiliseraient cette interface web.

Bien sûr cet éditeur ne vaut pas un bon vieux ed sur un VT100, mais dépanne quand même.

Terminal

Bien sûr comme tout (bon) codeur a besoin de son terminal, il est possible d'avoir un émulateur de terminal complètement écrit en JavaScript pour utiliser son gestionnaire de versions ou son installeur de paquet favoris. Alors c'est utilisable, mais faut pas compter sur les standards web pour prendre en compte les claviers non QWERTY. Ainsi on peut dire au revoir à tout caractère qui aurait besoin de recourir à la touche ALT or ALT-GR. Sur mon AZERTY donc, pas de pipe.

On remercie aussi les concepteurs de polices de caractères, en particulier le créateur de "Consolas", pour qui une police monospace n'est monospace que pour les caractères ASCII. Ce serait trop facile sinon. Ainsi une fonte en caractère gras—même monospace—, n'est pas la même fonte qu'en normal, ou italique, et n'a donc pas la même largeur. Les logiciels utilisant curses ou équivalent (type aptitude of midnight commander) sont donc partiellement cassés.

LaTeX

Petite addition, mais pas des moindres, pour les scientifiques. Il est possible de taper les caractères Unicode en utilisant la notation LaTeX si le noyau le permet. On doit cette amélioration aux développeurs de Julia principalement. F\vec<tab> vous donnera un joli vecteur F, ou \alpha<tab>\dot<tab> si vous préférez les dérivées de lettres grecques.

Le web étant, encore une fois, un monde merveilleux plein de licornes roses dansant sur des arc-en-ciels, un navigateur ayant pas mal de part de marché combine les signes diacritiques avec le caractère suivant au lieu du précédent, donc ce n'est pas toujours utilisable…

Format de Notebook

Le format de Notebook a été simplifié et uniformisé, ce qui devrait faciliter la manipulation et génération par des bibliothèques ou programmes tiers. Le format est aussi décrit par un schéma JSON, donc plus de surprise pour l'interopérabilité, le schéma sert de référence.

De même le protocole de communication ZMQ ou websocket devrait être plus cohérent et avoir moins de cas particuliers à traiter.

Une fois n'est pas coutume, les changements ont été rétroportés sur IPython version 2.4 qui sera donc capable de lire les Notebooks générés par son grand frère.

Design

Le design du Notebook a été plus travaillé que dans les précédentes versions. Adrienne Wan Tulok a même été engagée à temps partiel et s'est même essayée au jeu des Pull Request sur GitHub, ce qui n'a pas été un grand succès. Néanmoins nous sommes contents du travail de design effectué et recommencerons l'expérience.

Tout ça pour ça ?

Bon, finalement, en un an de travail, ça fait peu de choses visibles pour l'utilisateur final ! Elles sont où les nouvelles fonctionnalités ? Et bien, majoritairement elles sont au niveau des API et dans des projets externes.

IPython est maintenant capable de parler avec pas moins de 33 noyaux, et pas forcément des moins impressionnants. Nous avons en particulier eu la surprise de voir Facebook relâcher un noyau LuaJit. Il est aussi en particulier possible d'écrire un noyau basé sur Python en moins de 80 lignes. Ceci est en partie dû à l'amélioration et la simplification du protocole qui, à chaque version, devient un peu moins spécifique à Python.

Certains n'hésitent pas à écrire des noyaux bash, qui affichent des images, et font de l'analyse de donnée avec.

IPython est mort, longue vie à IPython

Le fait qu’IPython soit polyglotte est peut-être un bon côté, mais le projet tel qu'il est aujourd'hui commence à devenir une usine à gaz. Le terme Python dans le nom est aussi problématique pour la communication. Beaucoup de personnes se demandent pourquoi installer IPython si le but est d'écrire en Haskell ou en Perl ! Pour des raisons légales aussi : en effet IPython est trop proche de Python et la PSF (Python Software Foundation) serait dans le droit, et serait probablement même obligée, de demander de changer de nom dans le cas où une majorité du code ne serait pas en Python.

C'est pour cela qu'une grande partie du code de IPython va être renommé pour devenir Jupyter. Le programmeur attentif remarquera même que le terme et logo s'invitent déjà dans beaucoup d'endroits dans cette nouvelle version :

Jupyter

Jupyter est donc l'endroit qui regroupe et accueille volontiers tout projet en rapport avec Jupyter/IPython, sans avoir de spécificité pour un langage en particulier. On retrouvera, ici, la majorité des nouvelles fonctionnalités.

JupyterHub

JupyterHub fait partie des premiers projets créés sous cette organisation et se charge d'établir des fonctionnalités multi-utilisateurs. Le public visé est plutôt la petite structure disposant d'une équipe informatique que l'utilisateur lambda.
Avec JupyterHub, vous pouvez vous connecter et avoir accès à vos Notebooks, sans exposer une centaine de ports au monde entier.

Tempnb

De JupyterHub s'est dérivé tempnb, qui est maintenant gracieusement hébergé par Rackspace.

Il s'agit d'un service qui déploie des serveurs temporaires sous Docker sur lequel vous pouvez vous amuser pendant quelques heures. Les conteneurs n'ont pas accès au réseau cependant, donc pas de spam ou de minage de bitcoin.

Durant les périodes de test, tmpnb était déployé sur des machines relativement puissantes allant jusqu'au demi-Teraoctet de mémoire vive, et plus de stockage SSD que je ne pensais pouvoir voir dans un serveur physique.

Vous pouvez aller vous amuser à l'adresse suivante : try.jupyter.org. Il y a Python, Julia et R, plus quelques bibliothèques d'installées. Si vous voulez aidez un peu l'open source, envoyer un Tweet de remerciement à @jessenoller,@rgbkrk,@smashwilson and @rackspace, cela les aidera à convaincre les dirigeants de donner plus de ressources à l'open source (cliquez ici pour un tweet pré-remplis). N'hésitez pas non plus à contacter Rackspace developpeur si vous avez un projet open source qui a besoin de machines !

NbGrader

Bien que ce ne soit pas le but principal des Notebooks, ceux-ci sont semblerait-il de plus en plus utilisés dans l'enseignement. On trouve en particulier de plus en plus de cours en ligne qui utilisent des Notebooks. Jess Hamrick et Brian Granger ont pris l'initiative de faire leur enseignement en utilisant les Notebooks et d'auto-noter à l'aide de NbGrader. L'enseignant crée les Notebooks avec énoncés, solutions, et points assignés à chaque question. Chaque Notebook peut alors être exporté en version étudiants, qui les complètent et les renvoient. À l'aide de tests unitaires les points sont assignés à l'élève. Quant aux questions ouvertes, un export vers Google Forms permet au correcteur de noter tout en gardant l'anonymat de l'étudiant, puis d'exporter un fichier de notes vers une base de données. Lors de la soumission, les élèves peuvent aussi être prévenus des questions auxquelles ils ne peuvent avoir tous les points.

Ceci permet de fortement diminuer la charge de travail du correcteur, qui du coup peut passer plus de temps avec chaque étudiant. Il est aussi envisagé d'intégrer ceci avec une plateforme d'aide en ligne qui permettrait à l'étudiant de directement poster un lien vers la question problématique au lieu de copier/coller des morceaux de code.

L'utilisation de ce système est en test à l'Université de Berkeley, et à L'Université Polytechnique de l'État de Californie. La combinaison JupyterHub, Nbgrader, IPython 3 avec Authentification intégrée avec GitHub est utilisée pour la distribution des sujets aux élèves, ainsi que la soumission de leurs solutions. Le tout étant hébergé pendant la période de test chez Rackspace.

Jupyter drive

Le web étant de plus en plus collaboratif, la demande de pouvoir partager et travailler à plusieurs sur un Notebook est croissante.

Ceux qui ont suivi l'actualité Python ont probablement vu l'annonce de Google qui a créé coLaboratory : une version du Notebook basée sur Google Drive avec collaboration en temps réel. Google étant Google, l'avenir du projet était plus qu'incertain. Qui plus est, il s'agissait d'une ré-implémentation complète de l'interface, difficile à maintenir sur le long terme.

L'idée est donc venue d'intégrer les fonctionnalité de coLaboratory directement dans IPython sous forme d'extensions, de manière propre et maintenable.

C'est ce qu'est Jupyter Drive. L'extension ne prend pas encore en compte, pour l'instant, les commentaires et la synchronisation en temps réel, mais permet déjà d'accéder à ses fichiers sur Google drive.

Pour ma part je suis maintenant à l'Université de Berkeley grâce à une généreuse donation de Google à cette même université. Je vais travailler jusqu'en novembre prochain sur l'intégration de l'API "real-time" de Google au sein de Jupyter Drive et, si le temps le permet, fournir une alternative open-source du côté serveur.

Divers O'reilly

Suite à une discussion avec des développeurs de la plateforme d'édition Atlas d'O'reilly,
on a eu le plaisir de voir un prototype qui utilisait l'architecture de Jupyter pour rendre les exemple de codes de leurs ouvrages exécutable. Si le projet est continué en interne, la possibilité d'exécuter le code ne serait-elle donnée qu'aux auteurs, ou O'Reilly fera-t-il des e-books interactifs, le futur nous le dira.

La Pomme

Le nouveau terrain de jeux du nouveau langage de la Pomme (Apple Swift Playground) ressemble de plus en plus au Notebook d'après les descriptions de leur blog. Bonne ou mauvaise chose, je ne sais pas.

Applications natives

Certains doctorants allemands ont du temps à perdre, et ont fait des applications OSX "native", sous le nom Kronos Notebook qui empaquette le Notebook avec le noyau python, ou le noyau haskell. Je n'ai pas testé mais l'utilisation de NWJS (ex node-webkit) devrait permettre de s'abstraire un peu plus des limitations imposées par les navigateurs (peu de raccourcis claviers, et d'accès aux ressources locales).

Le mot de la fin ?

Durant les semaines qui suivront la publication de IPython 3.0, le dépôt va être découpé en un grand nombre de plus petits projets.

Ceci devrait permettre un cycle de publication de chaque projet bien plus rapide et, on l'espère, favoriser les contributions. Chaque projet étant bien plus petit, il sera aussi beaucoup plus facile d'avoir une influence sur la direction prise et, qui sait, de se voir donner les droits de commit sur le dépôt principal.

Renommer une partie du projet permet aussi de montrer que Python n'est pas le seul langage. Avec une trentaine de langages compatibles, on espère voir participer des internautes de tous horizons, capables d'apporter un point de vue programmation fonctionnelle, ou bien structure de données immutable. On serait aussi heureux de savoir si les utilisateurs désireraient une interface traduite.

Merci donc à tous les utilisateurs, contributeurs, et lecteurs, ce fût un plaisir, tout du moins pour moi, de travailler sur ce projet, et j'espère que ça continuera ainsi longtemps.

Télécharger ce contenu au format Epub

Lire les commentaires

Plus que quelques jours pour soutenir Libre OS USB

Samedi 28 Février

Suite à la parution le 10 février 2015 d'une dépêche sur ce site, vous avez été nombreux à commenter ce projet de clé USB avec système Linux embarqué qui servira de bureau et de boite à outils itinérants.
Les conseils ont été pris en compte, la clé arrive à maturité et comporte désormais de nouvelles possibilités :

  • Cryptage complet du répertoire utilisateur en AES-256.
  • Possibilité d'utiliser des clés ou des cartes SD de grandes capacités.
  • Possibilité de synchroniser ses données dans le nuage (OwnCloud, Dropbox,…).
  • Version disponible en langue française et en langue anglaise.
  • Garantie du produit par Libre Expert pendant 3 années.
  • Et toujours démarrage aussi bien en mode UEFI avec Secure boot ou bien en CSM (Legacy).

Le projet sur le site de financement participatif Ulule arrive à terme dans quelques jours, mais il reste encore un besoin de soutiens pour que l'objectif soit atteint avant l'échéance.

Sont présents sur la clef entres autres ces logiciels :

  • Navigateurs Google Chrome et Firefox préinstallés
  • Nombreux outils Internet (Thunderbird, Skype, Filezilla, Bittorent, Pidgin, Teamviewer…)
  • Chiffrement de votre dossier utilisateur avec Ecrpytfs (cryptage AES-256)
  • Possibilité de synchroniser ses données avec un service Cloud (ownCloud, Dropbox, …)
  • Nombreux jeux classiques (Sudoku, Mahjong, Solitaire, SuperTux Cart, Echecs,…)
  • Suite bureautique LibreOffice complète
  • Lecteur vidéo et musique VLC
  • Édition et enregistrement audio avec Audacity
  • Retouche photo avec The Gimp, dessin avec Inkscape, Simple Scan pour le scanner et Cheese pour la webcam
  • Gravure et extraction de DVD et CD-Audio
  • Outil de partitionnement avec GParted
Télécharger ce contenu au format Epub

Lire les commentaires

Le BIB hackerspace à Montpellier : Reloading !

Samedi 28 Février

Ce samedi 28 février de 14 h à 23 h, votre hackerspace montpelliérain vous accueille dans sa nouvelle peau, pour relancer le radeau d'émancipation technologique pour tous.

Le local est très largement en WIP (travaux en cours) mais c'est justement l'occasion pour venir découvrir, adhérer, aider, contempler, et assister éventuellement à la traditionnelle coupe du ruban RJ45 en guise d'inauguration. La dépêche est un peu "dernière minute" mais ça dure toute la journée, "come one, come all"

Rendez-vous donc au 5 Avenue Georges Clémenceau, ce samedi 28 février de 14h à 23h.

Ce que nous voulons faire de ce hackerspace ?

  • Ateliers, projets collaboratifs, code, électronique, art, récup, détournements, fabrication, rencontres, débats, …
  • Soudure et électronique, informatique vulgarisée, logiciels libres, sécurité des données, audionumérique, Puredata, Processing, …
  • Récupération des épaves électroniques et numériques, conception de machines ou d'outils, ateliers artistiques et techniques de tous niveaux concernant : le logiciel, le matériel, les installations, etc.
Le partage des connaissances et des ressources est la règle.

Nous serons donc ravis d'accueillir toutes les bonnes volontés, pour discuter, échanger, se marrer et engager le plus d'équipiers possible pour faire de ce bateau votre bateau !

Amenez vos ateliers : vous voulez suggérer, proposer ou animer des ateliers autour des valeurs du BIB ? Bienvenue à bord, parlons-en :)

#datalove #SoManyCoolThingsToDo #SharingIsCaring

L'équipage du BIB

Télécharger ce contenu au format Epub

Lire les commentaires

Atelier "Concevoir un système embarqué Linux avec Yocto"

Vendredi 27 Février

Le projet Yocto constitue probablement la solution de référence pour les industriels qui veulent concevoir un périphérique basé sur Linux embarqué.

Hébergé par la Linux Foundation et soutenu par de très nombreux fondeurs tels Intel, AMD, Broadcom, Texas Instruments, Freescale, il sert de base à des solutions Linux commerciales, mais peut également être utilisé par tout développeur qui souhaite bénéficier d'une solution Linux embarqué à fort contenu applicatif, avec une grande qualité de production de la distribution tant du point de vue de la richesse que de la fiabilité ou de la reproductibilité.

CIO Systèmes Embarqués a animé pour le compte du programme Cap'tronic plusieurs séminaires qui ont démontré l'intérêt des industriels pour Yocto. Pour donner suite à cet intérêt, c'est maintenant un atelier de 2 jours qui est proposé les 30 et 31 Mars 2015 à Gardanne (Bouches du Rhône).

L'atelier est articulé autour d'une journée de présentation théorique et d'une journée de Travaux Pratiques qui permettront diverses adaptations d'une distribution de base proposée par Yocto :

  • Ajouter de nouveaux composants logiciels
  • Créer une layer spécifique
  • Paramétrer la langue du clavier et la timezone
  • Ajouter et configurer un client NTP
  • Ajouter et configurer un serveur FTP
  • Créer une recette pour composant logiciel upstream non supportés nativement
  • Créer une recette pour logiciel développé en interne.
Télécharger ce contenu au format Epub

Lire les commentaires

Les brevets logiciels : un frein à l'innovation et la recherche (un nouvel exemple aux États-Unis)

Jeudi 26 Février

L'histoire en seconde partie raconte comment un brevet qui n'aurait jamais dû exister peut tuer la créativité, l'innovation et la recherche mathématique appliquée. On y voit aussi les ravages que peut commettre une entreprise qui a de l'argent et des avocats…

J'aime les maths, j'aime les maths appliquées à l'informatique. J'ai très souvent posté à ce sujet, par exemple dans le domaine du stockage de données : « De la probabilité que votre RAID vous abandonne… » ou encore le post scriptum. Je vais parler de ce second lien.

J'avais à l'époque cité dans ce post scriptum l'article « A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems » de James Plank. Ce formidable article m'a permis d'approcher le domaine. Cet article est simple, clair et efficace (Ce qui est rare dans le domaine). De nombreux logiciels libres tels que parchive se sont inspirés de ce papier.

Pourquoi je vous parle de cet article ? Aujourd'hui, je suis allé sur le site de l'auteur de cet article pour faire un peu de veille mathématique. Au détour des pages, j'ai visité les pages dédiées à ses implémentations libres : jerasure. A mon grand étonnement, j'ai trouvé la notice suivante sur la page :

On this page I (James Plank) am providing notice that: * GF-Complete and Jerasure versions 2.0 and later are no longer supported. * StreamScale, Inc. offers a similar solution for commercial purposes. * I offer no representations or warranties in general about StreamScale's products. * I have verified that StreamScale's solution is faster than GF-Complete or Jerasure in at least some respects. StreamScale, Inc. asserts that the use of GF-Complete (particularly as part of Jerasure 2.0 or later) or any similar software, method or code for erasure coding infringes StreamScale's issued United States Patent No. 8,683,296. * I express no opinion on StreamScale's claims, but I believe that parties should be aware that StreamScale asserts such claims.

En résumé, le monsieur a été menacé par une firme s'appelant StreamScale (inconnue au bataillon pour moi) pour violation de brevets. Ni une, ni deux, je me renseigne un peu, je trouve techdirt et erasure-code-patents qui expliquent la situation.

Cette brave boite a breveté le fait d'utiliser des instructions SIMD (MMX, SSE, …) pour effectuer des opérations sur un champ fini comme décrit dans mon post scriptum appliqué au codage avec effacement (erasure code). Je suis sur le cul et les bras m'en tombent.

Ils décrivent (les independent claims - le reste, on s'en fiche) dans le brevet ce que tous les erasure code font depuis la nuit des temps, en résumé : ils multiplient une matrice avec un vecteur ou une matrice avec des instructions SIMD

Rien n'est original, rien n'est d'autre que des maths, les SIMD sont utilisées à profusion dans les logiciels de calcul matriciel, les SIMD sont utilisés depuis bien longtemps dans les EC, normal c'est juste du calcul matriciel (par exemple, dans le code RAID6 de linux décrit depuis au moins 2004) ! Bref, des tonnes et des méga-tonnes de prior art.

Cette charmante boite a réussi :

  • à bloquer la recherche principale d'un chercheur de renommée : J. Plank ;
  • à arrêter le développement de bibliothèque par ce même auteur (ah ah ! Rien n'arrête le libre mais pour J. Plank c'est fini) ;
  • à menacer un journal scientifique, usenix (D'ailleurs, ils prétendent qu'il a révélé des secrets, faudrait savoir c'est un brevet ou pas ? Si oui, breaking news, c'est plus un secret car c'est publié ! Ils parlent peut-être d'autre chose mais le langage est tellement vague qu'il est impossible de le déterminer).

Alors selon vous, StreamScale patent troll ou pas ? Moi, mon opinion personnelle est faite !

Et la nimage indispensable, ironie du sort, leur logo est un grand qui écrase des petits…

Télécharger ce contenu au format Epub

Lire les commentaires

TorPy : la Tortue Python vernaculaire

Mercredi 25 Février

TorPy est une version francisée (mais pouvant être traduite dans toute autre langue) du module turtle de Python. Inspiré de la tortue Logo, turtle permet d'apprendre à programmer, puisqu'on écrit les instructions que la tortue n'effectuera qu'ensuite. De plus, cela permet de produire de belles figures géométriques !

TorPy a été écrit par votre serviteur après avoir fait des essais d'utilisation de turtle par des élèves de collège. Son but est de pallier aux quelques difficultés rencontrées.

TorPy est développé en Python, et nécessite les dépendances supplémentaires suivantes :

Quelques particularités de TorPy
  • les instructions du module turtle sont traduites en français : par exemple on écrit avance(100) au lieu de forward(100) ;
  • seules les instructions sont affichées dans la zone de saisie, le reste du programme Python (shebang, etc) est masqué ;
  • les instructions sont exécutées sans avoir besoin d'être enregistrées au préalable (mais on peut évidemment enregistrer son fichier) ;
  • la liste des instructions disponibles peut être consultée à tout moment, et des exemples d'utilisation de chaque instruction peuvent être copiés-collés ;
  • toute autre instruction Python peut être utilisée pour une utilisation plus avancée (boucles, définitions de fonctions, importations de modules, etc…) ;
  • le programme peut être facilement adapté à d'autres langues que le français et il est facile aussi d'ajouter de nouvelles instructions ;
  • si le fichier est enregistré, le résultat peut être enregistré en image (format EPS, mais aussi SVG sous GNU/Linux si pstoedit est installé).
Fonctionnement

Au lancement, un sous-dossier torpy est créé dans le dossier temporaire de l'ordinateur et 3 fichiers y sont copiés :

  • turtle.cfg : fichier de configuration de la fenêtre de turtle (dimensions, titre, etc…) ;
  • importturtle.py : fichier contenant les traductions des fonctions ;
  • torpy.py : fichier qui sera exécuté (et contient un import du fichier importturtle.py).

Lorsque l'utilisateur demande l'exécution de ses instructions, celles-ci sont insérées dans le fichier torpy.py avant qu'il ne soit exécuté. Plus précisément, ce fichier contient la ligne suivante qui sert de repère et sera remplacée par les instructions de l'utilisateur :

# USER INSTRUCTIONS Remarque

Afin de pouvoir utiliser TorPy dans d'autres langues que le français, le fichier qui est situé dans le sous-dossier files s'appelle importturtle_xx.py, où xx désigne la langue de l'ordinateur.
La langue est détectée au lancement et si le fichier correspondant existe, il est copié dans le dossier temporaire sous le nom importturtle.py.

En conclusion

J'ai développé TorPy car j'en avais besoin pour mes élèves.
Ensuite je me suis dit que ça pouvait intéresser un peu de monde, donc autant prendre le temps de le finir, de rédiger une documentation et de venir ici signaler son existence.

Télécharger ce contenu au format Epub

Lire les commentaires

Tableau dynamique Logiciels Éducatifs Libres

Mercredi 25 Février

Paulo Francisco Slomp, de l'université brésilienne UFRGS (Universidade Federal do Rio Grande do Sul) cherche à diffuser le « Tableau dynamique Logiciels Éducatifs Libres » (disponible en anglais, espagnol, italien, allemand et portugais). Ce tableau regroupe des informations sur les logiciels libres qui abordent le contenu du programme d’études scolaires. Il s'agit d'une page wiki éditable.

Ce tableau sous licence CC By Sa fait partie du projet « Logiciel Éducatif Libre dans Wikipedia », prévu par les édits 18 et 19 du Secrétariat de l'éducation à distance de l'UFRGS.

Télécharger ce contenu au format Epub

Lire les commentaires

jeudi du libre du 5 mars 2015, à Lyon : logiciel libre, des solutions pour le numérique

Mercredi 25 Février

Rendez-vous mensuel organisé par l'ALDIL, le principal GULL lyonnais, le jeudi du libre du mois de mars prendra la forme d'une conférence au sujet du logiciel libre et des solutions qu'il apporte pour le numérique. Nous profitons de la semaine citoyenne du lieu d'accueil, la Maison Pour Tous, qui a pour thème les initiatives alternatives, pour proposer cette session.

La conférence débutera à 19h30 et aura lieu à la Maison Pour Tous / Salle des Rancy : 249 rue Vendôme - 69003 LYON (Métro Saxe Gambetta).

Plus de détails sur la conférence et l'intervenant en seconde partie de la dépêche.

La conférence

Le numérique occupe une place essentielle dans notre vie, au point qu'il devient impossible d'envisager agir sur la société sans prendre en compte sa présence et ses enjeux. Cependant, il ne faudrait pas envisager le numérique comme un monde entièrement différent : beaucoup de règles sont communes, et les enjeux sont ceux que l'on retrouve dans d'autres domaines. Au cours de cette conférence, nous envisagerons quelques parallèles entre le monde numérique et d'autres aspects de la société. Nous verrons ensuite quelles réponses le mouvement du logiciel libre est en mesure d'apporter et en quoi faire le choix du libre est un complément essentiel aux autres engagements sociaux.

L'intervenant

Doctorant en informatique, ancien professeur des écoles, Sébastien Dufromentel est militant pour le Logiciel Libre et la neutralité du net, mais s'investit également dans d'autres luttes, notamment pour l'éducation populaire et contre les discriminations injustes. Au cours de cette conférence, il expliquera ce qu'est le logiciel libre et quels en sont les enjeux, tout en proposant des parallèles avec d'autres mouvements qu'il a eu l'occasion d'approcher.

Télécharger ce contenu au format Epub

Lire les commentaires

IPFS : Un protocole révolutionnaire pour un hébergement P2P, résilient à la censure

Mardi 24 Février

Voici un projet très intéressant : IPFS, The permanent Web. Son ambition est de créer un nouveau protocole (comme HTTP) permettant de décentraliser l'hébergement de sites web (ou de n'importe quelle ressource statique). Ce protocole se base sur BitTorrent et Git (gestionnaire de version). Chaque ressource est identifiée par son hash (une empreinte unique), et les nœuds du réseau hébergent chacun des copies de certaines ressources, de manière décentralisée.

Cette infrastructure est une DHT. C'est une technique déjà utilisée dans les back office des applications web et dans les bases de données NOSQL. La nouveauté est d'en faire un protocole client et d'utiliser le réseau Torrent existant pour que ce réseau serve directement des contenus statiques, l'instar des CDN.

On obtient ainsi une infrastructure résiliente, hébergeant des resources versionnées. Il devient impossible de supprimer un contenu, à moins de faire tomber tous les nœuds qui en contiennent une copie.

Il existe déjà deux implémentations alpha, en Go et en Node.js hébergées sur GitHub. IPFS permet aussi de monter l'ensemble du réseau sur son système de fichier.

Une vidéo de démo assez impressionnante est disponible sur le net. Elle montre le démarrage d'un nœud du réseau, agissant comme passerelle HTTP, et permettant d'accéder aux ressources avec un navigateur web.

Télécharger ce contenu au format Epub

Lire les commentaires

systemd : l'init martyrisé, l'init bafoué, mais l'init libéré !

Mardi 24 Février

systemd est un projet composé de trois parties distinctes :

  • Un processus d'initialisation, systemd. Il s’occupe de gérer le démarrage, du lancement du noyau Linux à l’interface graphique, et de la surveillance des processus ;
  • Un ensemble d’outils qui contrôlent le processus systemd, notamment systemctl. Ils permettent entre autre de suivre, redémarrer et arrêter les différents services d'une machine ;
  • Un jeu d'outils qui peuvent être utilisés comme base pour la création d'un système d'exploitation complet — un peu à la manière de ce que le projet GNU propose, mais avec une portabilité beaucoup plus réduite.

La première version de systemd a été publiée le 30 mars 2010. Presque cinq ans plus tard, quasiment toutes les distributions majeures l’ont adopté.

Remplaçant un composant central du système, il n’est pas étonnant que l’arrivée de systemd ait provoqué de nombreuses réactions. Elles ont parfois été violentes, mais pourquoi au juste ?

Cette dépêche éminemment collective (à peu près tous les contributeurs habituels sont venus participer, pour faire court) présente un état des lieux des opinions en présence, dans une démarche de remise à plat et d'apaisement un peu similaire à celle entreprise ici ou et visible ici.

Sommaire Introduction

Les discussions sont souvent enflammées concernant systemd, et comme le sujet est un peu technique, il est parfois difficile de s’y retrouver. Pas de panique, il vous est expliqué de façon simple ce qu’est systemd, comment il se démarque des systèmes qu’il est censé remplacer, ainsi que les arguments des parties en présence.

Démarrage du système

Lorsqu’un ordinateur démarre, il initialise les différents composants de l’ordinateur (processeur, mémoire vive, disque dur, carte graphique, etc.) et effectue quelques vérifications basiques, puis démarre le cœur du système d’exploitation : le noyau (ici, Linux). En effet, c’est la partie qui communique directement avec les périphériques comme le clavier, la souris, la mémoire ou l’écran et permet leur utilisation.

Lorsque le noyau est chargé, l’ordinateur n’est pas encore prêt à l’emploi. Le noyau délègue au système d’initialisation le lancement du reste du système, selon la configuration établie par l'administrateur. Il lance les services d'arrière-plan (montage des périphériques de stockage, configuration du réseau, messagerie…) et l'interface utilisateur, qu’elle soit graphique ou pas. Le système d’initialisation possède aussi une autre fonction : récupérer les processus qui sortent de leur session. En effet, dans tous les Unix-like—et cela inclut GNU/Linux—tous les processus doivent avoir au moins un processus père, sauf le tout premier processus lancé (PID 1). Si un processus renie son père (on dit qu'il est démonisé), le noyau le rattache alors au premier processus.

Hormis le noyau, il est donc le premier processus lancé sur la machine (ce qui explique l’appellation « PID 1 » — « processus n°1 ») et le dernier à s'arrêter, car il contrôle tous les autres. Par conséquent, le système d’initialisation est un composant critique du système car s’il ne fonctionne pas, la machine ne démarre pas. D’où sa robustesse requise.

Jusqu'à récemment ce programme était souvent SysVinit, mais des remplaçants, plus ou moins compatibles, se sont multipliés ces dernières années, comme Upstart qui est l'init par défaut d'Ubuntu. Un init de type SysV fonctionne comme suit : il lit le fichier /etc/inittab qui lui indique quoi faire à un niveau d'exécution (runlevel) particulier, puis il démarre, redémarre ou arrête automatiquement les services selon le niveau choisi par l'utilisateur.

La syntaxe de ce fichier n’étant pas turing complète, les administrateurs ont préféré déléguer l’essentiel du démarrage à des scripts rc nommés dans ce fichier et appelés par init.

Ces scripts sont aujourd’hui décriés à cause du travail dupliqué entre les distributions, de la difficulté réelle ou supposée de les maintenir et de leurs limites. Sont-elles supposées ou avérées ? Là est toute la question ! Quelques exemples :

  • tous ne sont pas, par exemple, forcément compatibles avec des composants tels que selinux (ou autre LSM à la mode) ;

  • il est difficile de lancer un service uniquement suite à un événement. Par exemple, lors du branchement d’une clé USB ;

  • il est difficile de s'assurer qu'un service (par exemple, sshd) sera relancé automatiquement en cas d'arrêt.

Le système d’init nécessite un travail d’intégration important dans la distribution ; il ne peut donc pas, la plupart du temps, être changé facilement par l’utilisateur.

Adoption de systemd

(bonus image Commitstrip : Systemd World : le parc est ouvert)

systemd est utilisé ou sera utilisé sur :

  • Fedora depuis presque 4 ans,
  • openSUSE, Mageia, Arch Linux depuis plus de 2 ans,
  • RHEL (Red Hat Entreprise Linux) et SLES (SUSE Linux Entreprise Server) depuis moins d’un an,
  • Debian 8.0 et Ubuntu 15.04.

Il y a cependant deux absents parmi les distributions majeures :

  • Gentoo, qui utilise par défaut OpenRC (une implémentation moderne du format traditionnel SysV), mais laisse la possibilité d’utiliser systemd ;
  • Slackware, dont la philosophie l’a souvent poussé à adopter les nouvelles technologies bien après les autres distributions.

Dans les distributions moins connues, on peut aussi citer Linuxconsole ou Crux.

C’est un logiciel relativement jeune pour un composant d’une telle importance. Son adoption a été fulgurante et beaucoup de personnes pensent que ce changement a été trop rapide, pas assez réfléchi, voire carrément forcé.

En dehors de l’adoption des logiciels eux-mêmes, la philosophie de systemd a rencontré de l’écho auprès de FreeBSD qui envisage de développer un système d’initialisation dont le fonctionnement est plus proche de systemd.

Qu'est-ce qui différencie systemd du système précédent ?

Tout d’abord, quelques explications techniques.

Le projet systemd est écrit avec le langage de programmation C. Il s’agit d’une collection de logiciels sous forme de binaires. Le pilotage des services se fait grâce à des fichiers de configuration.

À première vue, cela ressemble à SysV (écrit en C, formé de trois exécutables et configuré par le fichier « inittab »), mais la grande différence est que SysV suit une approche minimaliste qui déplace une grande partie de l'initialisation des services dans des programmes écrits en Shell et utilisant des bibliothèques externes (par exemple, « start-stop-daemon » pour l'init Debian). À contrario, systemd implémente un large éventail d'actions afin de décourager l'utilisation de scripts de lancement. En pratique, un service SysV pour sshd a pour élément central un script de quelques centaines de lignes (script Shell qui peut être utilisé indépendamment de l'init), alors que sous systemd le service sera généralement piloté par un fichier texte d'une dizaine de lignes (dans une syntaxe spécifique à systemd).

On vante souvent la simplicité des anciens systèmes d’init : en effet, quoi de plus simple que des fichiers textes exécutables, certes pas forcément triviaux, mais dont on peut lire l’exécution ligne par ligne ?

En éditant ces fichiers, on a une maîtrise totale du démarrage de l’ordinateur (à partir du moment où l’on est capable de comprendre le code). Mais modifier le système d’init en lui-même peut poser problème lors de mises à jour ou simplement parce que ce code n’a pas été testé.

Systemd remplit les mêmes fonctions que les précédents systèmes, mais il met l’accent sur la simplicité d’utilisation et sur une maîtrise du système plus poussée et moins éparpillée, ce qui est parfois vu comme l’opposé de la philosophie Unix.

Ainsi, beaucoup de choses qui nécessitaient auparavant de modifier des scripts Shell existent maintenant sous la forme d’un simple paramètre dans un fichier. Le comportement est codé dans systemd ce qui permet de mutualiser beaucoup de code et de rendre les fichiers souvent beaucoup plus courts.

Pour la plupart des gens, utiliser systemd ou SysVinit ne fait aucune différence, y compris pour la vitesse de démarrage ; pour bidouiller, tout dépend des outils que l'on maîtrise, soit les outils systemd et leur syntaxe de configuration, soit la programmation Shell, les outils de suivi de processus et la configuration SysV.

Alternatives Upstart

Créé pour Ubuntu, est la seule alternative adoptée par des distributions de famille différentes (RHEL et Fedora, openSUSE). Aujourd’hui, la décision de Debian d’adopter systemd pour sa prochaine version stable a poussé Ubuntu à lui emboiter le pas, Upstart sera donc probablement abandonné.

OpenRC

Développé et utilisé par Gentoo, est l’alternative à systemd la plus souvent citée. Elle est basée sur un init SysV traditionnel, un cœur en C compilé et des scripts Shell. Pour résumer, OpenRC est plus simple, son cœur possède moins de fonctionnalités que systemd et il ne dépend pas de Linux.

Uselessd

C'est un fork jeune et non-stable de systemd. De nombreuses fonctionnalités ont été supprimé, et on peut utiliser musl ou uClibc (principalement pour l’embarqué, mais pas uniquement : par exemple des distributions légères comme Alpine y ont recours) là où l’auteur principal de systemd refuse de prendre en compte d’autres libc que la glibc.

D'autres systèmes d'init moins connus ont aussi vu le jour par le passé : on se souvient du système d'init de Pardus, de InitNG, d’expérimentations à base de make -j …, de runit, fastboot et d'autres encore. Aucun d'eux n'a percé, même si certains véhiculaient de bonnes idées.

À la suite du rejet par le comité Debian de maintenir deux systèmes d’initialisation différents, les responsables du site Debian fork ont annoncé qu’il forkeraient effectivement Debian. La distribution, nommée Devuan, sera donc une Debian sans systemd. Une collecte de fonds a été lancée pour soutenir le démarrage du projet. Le système d’initialisation de Devuan n'est pas encore connu.

Apports de systemd

Comme on le voit, l’adoption de systemd est loin de s’être faite sans heurts. Quels avantages ont permis à systemd de contrebalancer l’avalanche de critiques, lors des décisions concernant son adoption ?

Tout d’abord, techniquement, il ne faut pas perdre de vue que systemd apporte certaines fonctionnalités qui ne se retrouvaient pas dans l’ancien système. En voici une liste non-exhaustive :

  • Allocation fine des ressources (processeur, mémoire, E/S, etc) aux services, grâce aux fonctionnalités avancées du noyau comme les cgroups ;
  • Surveillance améliorée (grâce aux cgroups, un processus ne peut pas s'échapper, même en forkant) ;
  • Log plus complet (commençant plus tôt, comprenant aussi la sortie standard et les sous-processus, proposant un aperçu centralisé de l’état des services ou un résumé des erreurs de démarrage…) ;
  • Possibilité de démoniser tout processus en le relançant automatiquement s'il s'arrête (à la façon de "runit", bien au-delà de ce que permet "start-stop-daemon") ;
  • Séparation claire entre les services fournis par la distribution et les services créés par l’administrateur, avec la possibilité pour l’administrateur de personnaliser les scripts de la distribution sans avoir à les dupliquer ;
  • Système de template dans les unités de lancement (par exemple un seul fichier getty@.service peut être utilisé pour gérer un nombre arbitraire d’instances : getty@tty1.service, getty@tty2.service…).

À un niveau moins technique, systemd est le seul projet à apporter les espoirs suivants dans le monde GNU/Linux :

  • Centralisation du développement des briques de base du système, ce qui permet une certaine normalisation entre différentes distributions GNU/Linux ;
  • Simplification du processus d’empaquetage des services en maintenant un seul fichier service en amont ;
  • Normalisation des formats de logs, grâce à journald.

Ces points sont moins techniques car auraient très bien pu être réalisés avec l’ancien système pour peu que les distributions et les différents projets aient pu se mettre d’accord ; il reste toutefois au crédit du projet systemd d’avoir réussi à lancer cette dynamique.

Arguments et points de débat Philosophie Unix

La philosophie UNIX est plutôt : au lieu d'écrire un gros logiciel pour résoudre un problème, écrire plein de petits logiciels qui se concentrent sur une étape de la résolution du problème, fonctionnent orthogonalement et utilisent un protocole clair. L'intérêt est qu'avec cette stratégie, il est beaucoup plus facile d'adapter son travail pour résoudre un problème “voisin” et qu'on résout potentiellement beaucoup plus de problèmes (plus les composants sont orthogonaux, plus la combinatoire de ces composants est intéressante). Cf : http://marmaro.de/docs/studium/unix-phil/unix-phil.pdf

La limite de ce modèle est quand diverses couches doivent intervenir. Les logiciels sont alors sur des sables mouvants, les interdépendances devenant importantes. Il est quasi impossible de faire évoluer les logiciels indépendamment. L'exemple typique est la crosscompilation de Linux, GCC et la libc qui ne fonctionnent que pour des versions bien précises.

Un des reproches que l'on fait souvent à systemd est son non-respect de la philosophie Unix. Son résumé le plus connu est celui fait par Douglas McIlroy :

Écrire un bon programme qui ne réalise qu’une seule tâche. Écrire des programmes coopérant entre eux. Écrire des programmes qui gèrent des flots de données textuelles, car cette interface est universelle.

Comme tous les aphorismes, derrière ces quelques mots se cache une réalité plus complexe ; ainsi, Eric Raymond décrit environ 17 règles, qu’il explicite dans son livre L'Art de la Programmation Unix. On peut par exemple y lire (chapitre 4) une mise en garde contre une interprétation trop superficielle de cette citation :

Le conseil de Doug McIlroy « faire une seule chose, et la faire bien » est souvent compris comme un conseil de simplicité. En fait, il porte aussi sur l’orthogonalité, ce qui est au moins aussi important.

L’orthogonalité est importante car elle garantit l'indépendance réelle. Ainsi l'usage du texte comme format d'échange est primitif, mais a le bon goût de rester un format stable dans le temps.

Autrement dit, dans la philosophie Unix, l’approche pour résoudre un problème est d’écrire plein de petits logiciels qui se concentrent sur une étape de la résolution du problème, fonctionnent orthogonalement et utilisent un protocole clair, au lieu d'écrire un gros logiciel.

De ce point de vue, la principale critique faite à systemd est de ne pas respecter ces principes d’indépendance et d’orthogonalité (on ne peut pas, par exemple, séparer la gestion du cycle de vie des services de la gestion des cgroups). Pire encore, systemd tend à détruire l’orthogonalité dans des parties qui l’étaient précédemment ; ainsi Lennart a annoncé récemment que udev nécessiterait systemd, alors que les deux problématiques « gestion du matériel » et « gestion de l’initialisation du système » étaient clairement séparées auparavant.

Le monde des Unix-like possède en fait plusieurs philosophies — qui toutes tendent vers le même but : rassurer l'utilisateur et l'administrateur système. La chose la plus importante pour une entreprise (ou pour un professionnel de façon générale) est la pérennité de ce qu'il crée. Rien n'est plus désagréable que de mettre en place une méthode de travail pour créer des outils et des produits et de devoir tout mettre à la poubelle du jour au lendemain pour cause de changement massif dans la technologie. C'est parfois nécessaire, la technologie évoluant, mais c'est rarement bien accueilli.

De fait, les différentes philosophies existantes dans le libre sont là pour permettre aux professionnels de s'investir sereinement dans une technologie. Parmi les plus populaires, on a le KISS (Keep It Simple, Stupid), le rasoir d'Ockham et le Don't Repeat Yourself.

De plus, chaque gros projet a une philosophie ou, en tout cas, met l'emphase sur un aspect de leur stratégie de développement, toujours dans le but de rassurer l'utilisateur.
Pour le noyau Linux, le mot d'ordre est : « ne jamais casser l'expérience utilisateur ». En d'autres termes une correction ne doit jamais entraîner de régressions touchant l'espace utilisateur (Linus est très attaché à cela).

Pour FreeBSD, il s'agit de respecter le principe de la moindre surprise. Pour OpenBSD, le but est la sécurité et la chose la plus mise en avant est le respect de séparation des privilèges.

Concrètement, chaque outil de systemd fait une chose et la fait bien et tous ces outils sont développées ensemble afin de fournir une « boîte à outils » cohérente, un peu comme certains *BSD maintiennent tout un tas d’outils de base dans un même dépôt.

Systemd en tant qu'ensemble se focalise grandement sur l'aspect « Don't Repeat Yourself » les redondances de code sont limitées au maximum et les étapes de démarrage sont factorisées autant que possible. Cela garantit une bonne maintenabilité du code et évite de devoir agir sur plusieurs éléments séparés du code pour corriger un problème. Et il s'appuie aussi une approche type « rasoir d'Ockham », on enlève tout ce qui n'est pas strictement nécessaire. Repenser le PID 1.

Cependant, l'approche a des défauts, le PID 1 (systemd init) se retrouve à faire de très nombreuses choses (démarrage, suivi, restrictions de droits, application de cgroups, escalade de privilèges, changements de priorité, etc.). C'est une conséquence de la factorisation du code, les fonctions qui permettent (par exemple) de lancer, arrêter et suivre un processus sont souvent très liées, pour éviter de dupliquer du code il faut donc que ces fonctions soient dans le même processus.

Un autre défaut de l'approche systemd est que de nombreux processus deviennent fortement interdépendant. L'init systemd a absolument besoin de udev et de journald pour fonctionner par exemple, et bien que les binaires soient disjoints - ils sont fortement couplés (cf section plus bas).

Pour finir, dans un souci de simplicité et pour conserver la maintenabilité du projet dans son ensemble, systemd n'hésite pas à couper les ponts avec l'existant ou à intégrer des fonctionnalités de base dans son sein, puis à les faire évoluer dans son sens.

C'est sûrement ce dernier aspect qui pose le plus de problèmes, notamment avec l'intégration de udev (processus chargé de matérialiser coté utilisateur les différents périphériques connectés) dans le projet systemd. En l'absence de vision claire la distribution Gentoo a décidé de forker udev (c.-à.-d. développer en parallèle une version plus adaptée à leurs besoins) udev-ng vs eudev

Dans cet article, Greg KH annonce que le projet systemd n'a pas de buts à long terme bien définis, mais qu'il va forcer la main des distributions pour qu'elles suivent une structure dans laquelle les modifications sont sous contrôle, plutôt que de continuer à réinventer la roue en permanence.
Deux ans plus tard, Lennart Pottering annonce que les nouvelles versions de udev seront incompatibles avec les anciennes et devront nécessairement reposer sur un noyau récent (utilisation de kdbus). C'est le dernier avertissement pour Gentoo

Le projet systemd fournit environ 80 binaires. Parmi ces binaires, quelques exemples :

  • /sbin/init (systemd) ne s'occupe que de l'init ;
  • journalctl ne s'occupe que de consulter le journal ;
  • udev s'occupe de découvrir les périphériques et peupler /dev ;
  • hostnamectl s'occupe de la gestion du nom d'hôte (hostname) de la machine ;
  • machinectl s'occupe de la gestion des conteneurs lancés par systemd ;
  • coredumpctl s'occupe des vidanges système (core dump) ;
  • systemd-analyze s'occupe d'inspecter la vitesse du démarrage ;
  • systemctl permet de gérer les services.

D'un point de vue sécurité, systemd limite aussi les droits et capacités des services qu'il lance (il permet par exemple à Xorg — et Weston — d'être lancé sans qu'il soit root) appliquant ainsi la séparation des privilèges.

Couplage fort vs couplage faible

Tout d'abord il faut bien comprendre ce qu'est le couplage. Lorsque deux outils informatiques doivent interagir l'un avec l'autre et s'échanger des informations, on dit qu'ils sont couplés et la force de ce couplage est évaluée en termes de modifications à faire dans un logiciel quand l'autre évolue.

Jusqu'ici, SysVinit était faiblement couplé avec le noyau Linux : SysV n'utilisait que le strict minimum des API de Linux pour démarrer.

Systemd change très fortement la donne à ce niveau là. Systemd profite de multiples API du noyau pour contrôler et gérer les services, notamment :

C'est là d'où vient tout son intérêt et sa fiabilité. Mais, au fur et à mesure de ses évolutions, systemd n'hésite pas à se détacher des anciennes versions du noyau, des anciennes versions de D-Bus et udev ou encore des outils systemd précédents. Exemple :

Soyons clair, on s'attend à ce que systemd et le noyau soient mis à jour simultanément. On ne prend pas du tout en charge le mélange d'un noyau vraiment vieux avec un systemd vraiment récent. Jusqu'ici, on s'est concentré sur la prise en charge par systemd du noyau, jusqu'à une version antérieure de 2 ans (ce qui veut dire la 3.4 actuellement), mais même cela devrait être considéré avec précaution.

L'avantage de cette méthode est qu'elle permet d'avoir un ensemble limité de situations à prendre en compte et, de fait, limite les problèmes de rétrocompatibilité au minimum. L'inconvénient est que la masse de tests à faire pour monter en version est nettement accrue. En effet une mise à jour de systemd signifie nécessairement une mise à jour de udev et peut signifier une mise à jour de D-Bus, du noyau, des stratégies cgroups/SELinux, voire d'une partie de la hiérarchie de fichiers.

Dans un environnement où l'administrateur n'a pas forcément la maîtrise intégrale de ses systèmes (par exemple, pilotes propriétaires pour une baie de disque, programmes propriétaires ou non maintenus, mais nécessaires au fonctionnement de l'entreprise, hébergement de services ou de machines virtuelles pour des clients) - les tests peuvent être très complexes, voire impossibles à faire. La capacité à faire les mises à jour sereinement est mise à mal. Cependant, la capacité à ne pas mettre à jour l'ensemble du système et à bricoler avec une vieille version du noyau (par exemple) est, elle, complètement oblitérée. Plus on prend de retard sur des mises à jour systemd, plus la quantité de tests à faire pour s'assurer d'une non régression augmente et plus il va être dur de faire corriger les soucis rencontrés en upstream.

Les mises à jour sont donc complexes à faire, mais la non mise à jour n'est pas une option envisageable, même à court terme (systemd évolue à grande vitesse et des changements majeurs non rétrocompatibles se produisent tous les six mois environ — dernier en date udev nécessite désormais kdbus).

On peut donc comprendre une certaine réticence vis-à-vis de ce couplage fort par tout administrateur qui a soit de nombreux services au sein de son service informatique (i.e. beaucoup de tests), soit des applications fermées (i.e. d'un jour à l'autre, il va falloir lancer en urgence une migration parce que l'application X ne fonctionnera plus).

Journaux au format binaire

Il est reproché à systemd d'avoir des journaux systèmes (ou logs) au format binaire, alors que Syslog les stocke au format texte. Cela permet notamment :

  • de disposer de fonctions de recherche puissantes via journalctl (filtrage par date, application, etc., un peu comme une base de données) ;
  • d’intégrer des données binaires — telles que la vidange (dump) d’un résultant d’un plantage — directement dans le journal ;
  • de ne pas laisser n’importe qui ayant un accès root le pouvoir de modifier le journal (tel qu’un intrus voulant effacer ses traces).

Cependant, pour pouvoir traiter les journaux avec les outils qu’on utilise habituellement pour manipuler du texte, il faut utiliser journald. Cela signifie qu’en cas de problème, le format binaire ne peut pas être lu par une plateforme ne disposant pas de systemd.

D’autre part, l’indexation automatique de journald ne concerne que des éléments internes et connus, la recherche d'un élément arbitraire (par exemple une poignée de main SIP) nécessite toujours une recherche complète ou l’utilisation d’un système d’indexation externe type plein texte.

Un fichier binaire est plus sensible à la corruption qu’un fichier texte ; par exemple, il suffit généralement d’écrire une suite aléatoire de caractères au début du journal pour rendre l’ensemble du fichier inexploitable. Une autre technique consiste à apposer un sceau (seal) au début.

Cependant, comme avec syslog, les journaux sont répartis en plusieurs fichiers et journald est capable de gérer certains types de corruptions. Cela étant dit, des journaux qui se corrompent facilement peuvent devenir une vraie difficulté pour les administrateurs système quand ils doivent diagnostiquer des problèmes.

D’autre part, le format binaire de journald lui permet d'être actif très rapidement, et de mettre en log le tout début de l’initialisation de l'espace utilisateur qui était jusqu'alors non supervisable. Un flux binaire a besoin de nettement moins de fonctions du noyaux actives. On n’a, par exemple, pas besoin des locales, des maps de caractères, de faire attention aux caractères de contrôle, etc.

Cependant, il est tout à fait possible de paramétrer journald pour envoyer tous les journaux à syslog, retrouvant ainsi le format texte avec des informations supplémentaires (en effet, journald est capable de récupérer des informations plus tôt pendant le démarrage).

L’embarqué

Les fonctionnalités et la maîtrise qu’offre systemd se paye en terme de ressources utilisées. Par exemple, un développeur Debian nous apprend que systemd nécessite 236 kio à 550 kio de bibliothèques additionnelles à charger en mémoire et que la taille résidente en mémoire est de 1,8 Mio, soit 1 Mio de plus que Sysvinit. Autant dire que même sur un Raspberry Pi, ça ne fait aucune différence à l’utilisation.

Si systemd est aussi conçu pour et utilisé sur des plateformes embarquées, systemd peut se révéler trop gourmand sur certaines configuration particulièrement limitées. D’ailleurs, systemd ne fonctionne qu’avec la glibc et ne peut pas être utilisé, par exemple, avec les bibliothèques standards C plus légères qu’on retrouve sur certains systèmes embarqués.

Réécriture d’outils

On dit souvent que systemd réinvente la roue (syndrome NIH).

En effet, systemd intègre des fonctionnalités fournis par d’autres logiciels (par exemple, inetd ou cron). Cela permet à systemd de rendre ces fonctionnalités plus faciles à utiliser par systemd et par l’utilisateur.

systemd propose aussi des outils ayant comme but d’être des alternatives plus simples (moins de code), légères (moins de fonctionnalités) et sécurisées (moins de privilèges nécessaires) par rapport aux outils qui existent déjà, lesquels sont relégués au traitement des cas les plus complexes.

Au final, beaucoup de personnes se sont inquiétées de voir systemd réécrire et maintenir des outils qui existaient déjà, doutant de l’utilité réelle de ce travail en comparaison de la charge de développement et de maintenance supplémentaire.

L’étendue du projet systemd

Un argument important porte sur la forme du projet beaucoup plus que le fond technique. En effet, ce qui au départ n’était qu’un projet de système d’initialisation englobe désormais tout un tas d’autres outils et est définit par ses mainteneurs comme une plateforme modulaire qui fait la glu entre les applications et le noyau Linux.

Cette plateforme est développée comme un écosystème à la BSD, c’est pourquoi les outils jugés nécessaires sont tous développés en interne et maintenus dans le même dépôt. Il est alors légitime de s’inquiéter qu’un seul projet maintienne autant d’outils importants si on n’a pas confiance (que ça soit techniquement ou que ça soit des relations qu’ils entretiennent avec les autres projets).

D’autre part, certains outils sont difficiles à utiliser sans systemd comme udev (cf. udev), ce qui pose des interrogations quant à la possibilité de réutiliser ces composants ailleurs (comme on pourrait l’attendre d’un outil Unix).

En effet, il est devenu compliqué d’utiliser udev seul pour les distributions n’utilisant pas systemd, au point qu'on lui associe souvent, par abus de langage, le slogan adopte, étend et étouffe.

L’équipe de développement de Gentoo a créé un fork d’udev nommé eudev qui fonctionne sans systemd. C’est évidemment du travail en plus pour Gentoo mais n’importe quelle distribution peut maintenant utiliser eudev pour se passer de systemd.

Influence de Red Hat dans le développement de systemd

On reproche de temps en temps à systemd d’être le produit de Red Hat pour couler GNU/Linux (c’est rarement dit de manière plus subtile). Mais plus précisément, on reproche à Red Hat de forcer l’adoption de leurs logiciels.

Il faut rappeler que 26 personnes ont droit de commit sur le projet et 40 personnes contribuent tous les mois. D’un autre côté, Red Hat emploie 3 des 4 plus gros contributeurs à systemd, à savoir Lennart Pottering, Kay Sievers (développeur de udev) et Tom Gundersen (qui est aussi développeur Arch Linux).

Pourtant, les équipes de maintenance des distributions ont surement longuement réfléchi avant de choisir d’inclure ou non systemd, car c’est loin d’être un changement trivial. Le fait que Red Hat engage des gens pour travailler dessus est un point positif, c’est sûr, mais c’est loin d’être le seul critère pour l’intégration ou non de systemd.

Dépendance de GNOME à systemd

Depuis la version 3.8, GNOME dépend de systemd pour certaines fonctions liées à la gestion de l’énergie et aux paramètres système.

En réalité, systemd fournit une fonctionnalité utile via une interface documentée que le projet GNOME a décidé d’utiliser pour se simplifier la vie, plutôt que ConsoleKit qui n'est plus maintenu depuis plusieurs années. Cela a permis à Ubuntu de réimplanter l’interface pour faire fonctionner GNOME et donc a permis à Ubuntu GNOME de naître.

Il est logique que systemd expose de nouvelles interfaces de programmation pour accéder au matériel, et il est compréhensible que GNOME veuille en tirer partie. Il est cependant dommage que le fait d’utiliser GNOME sans systemd demande du travail supplémentaire aux distributions utilisant un autre système d’init. Cela est toutefois cohérent avec la politique de GNOME de réduction du nombre de fonctionnalités.

Jusqu'à présent, les autres environnements de bureau ont été plus prudents et essaient d’éviter les dépendances les liant à un système d’exploitation en particulier ou demandant un travail d’intégration supplémentaire.

Par exemple, KDE et Xfce4 tirent partie des avancés de systemd mais fonctionnent sans. Cela demande plus de travail, mais on peut espérer dans le futur que des projets comme systembsd permettent de profiter de certaines fonctionnalités de systemd sans lui et de se débarrasser du vieux code.

Attitude des développeurs de systemd Lennart Poettering

C’est l’auteur de systemd, qui mène toujours aujourd’hui en grande partie son développement. Il est employé par Red Hat pour travailler sur systemd.

Il a développé PulseAudio, le logiciel qui gère le son dans la majorité des distributions GNU/Linux. Pourtant, PulseAudio a une mauvaise réputation. Il est souvent désigné coupable par défaut des problèmes de son. L’histoire est en réalité bien plus complexe.

Certains affirment également que « systemd est un jouet qu’il abandonnera quand il en aura marre », rappelant qu’il a abandonné le développement d’Avahi. Ce dernier est également peu apprécié à cause de son fonctionnement parfois jugé intrusif.

Bref, si parler du comportement des développeurs de systemd est pertinent, il faut éviter de tomber dans le piège de l’Argumentum ad personam qui n’indique pas grand chose sur la qualité du logiciel.

Il y a un poste pour les adorateurs de L. Poettering : Startup and Shutdown System Expert

Conclusion

Voilà, à présent vous devriez mieux comprendre les débats enflammés concernant systemd.

systemd apporte plein de bonnes choses, mais a aussi ses points négatifs et il devient de plus en plus difficile de s’en passer. Après tout, utiliser des logiciels libres, c’est une question de choix… non ?

Cette dépêche ne prétend pas être parfaitement neutre, mais grâce à la participation de courants opposés dans une relative bonne ambiance où chacun à fait des concessions, elle essaie d’être au plus près des faits et d’apporter pour chaque argument un contre-argument.

Les titres de dépêche auxquels vous avez échappé
  • Pourquoi systemd existe ?
  • systemd a-t-il des problèmes d’init ?
  • Pourquoi systemd, pourquoi la vie ?
  • Pourquoi systemd est bon pour votre santé
  • La réponse à la question sur l’univers, la vie et systemd
  • all your init are belong to systemd
  • Je suis systemd
  • GNU/Systemdnux
  • 3 utilisateurs sur 6 aiment dé
  • systemd : Yes we Kaane !
  • The fabulous fairy tale of systemd and the 50 bastards.
  • Nous partîmes 500 et paf systemd.
  • xcomcmdrd.
  • systemd dans ta gueule, connard
  • systemd, haters are gonna ♫ hate hate hate ♫
  • l'antisystemdisme, un mal français
  • systemd, une lumière dans la nuit
  • systemd : let's drop Linux
  • systemd ne t'a rien demandé
  • systemd président, Zino 1er ministre, MultiDeskOS aux affaires étrangères
  • (systemd : l'init martyrisé, l'init bafoué, mais l'init libéré !) ah non vous n'y avez pas échappé
  • systemdivise
  • systemd : il ne passera pas par moi.
  • systemd sera le genre humain.
  • systemd : l'union sacrée
  • Souriez, vous êtes systemd :)
  • Kabaled

1 000 commits, 50+ participants, 25+ titres, 1 dialogue de sourds

Télécharger ce contenu au format Epub

Lire les commentaires

Pages