Les articles de GNU/Linux Magazine N°132

Article mis en avant

Combattre efficacement le spam avec DSPAM

Vous avez déjà goûté du spam ? Je veux dire, du vrai spam. Celui qui est servi en boîtes rectangulaires et a vaguement la couleur du jambon. On m’en a servi, une fois, lors d’un réveillon, et je peux vous assurer que ce n’est vraiment pas bon ! Mais le spam dont on va parler ici est différent, plus électronique, mais tout aussi dégoûtant.Combattre le spam est probablement la tâche la plus complexe du postmaster. Les techniques sont nombreuses et il est indispensable de les cumuler pour obtenir un résultat pertinent.
Le monde de la téléphonie mobile est étrange.
Nous abordons dans ce numéro le noyau Linux 2.6.36. C'est le vingtième que nous présentons dans ces colonnes ; que d'évolutions depuis le lointain noyau 2.6.16 ! À l'honneur des changements, pour cette fois-ci, la gestion de la mémoire avec un tout nouveau OOM-killer, deux nouveaux appels système, une refonte des Workqueues, l'intégration du module de sécurité AppArmor qui vient s'ajouter à SElinux et TOMOYO, mais également de nombreuses améliorations. Comme à notre habitude, nous tenterons de satisfaire votre curiosité tout en vous encourageant à poursuivre votre incursion dans le noyau.
Lors du précédent article, nous avons vu comment mettre en place un serveur maître et son serveur esclave. Nous allons aller un peu plus loin dans cet article, en proposant maintenant une réplication beaucoup plus synchronisée (mais toujours pas synchrone).Nous allons aussi passer en revue un certain nombre de points importants à connaître pour administrer au mieux ses serveurs en réplication. Tout d'abord, le problème posé par les requêtes en lecture seule. Ces dernières posent des verrous et, aussi peu gênants soient-ils dans une utilisation normale, ils peuvent poser quelques soucis majeurs pour un serveur esclave. Nous verrons aussi comment effectuer une bascule dans deux cas : la bascule volontaire (« switchover ») et la bascule forcée (« failover »). Enfin, nous verrons comment surveiller l'état de la réplication et des deux serveurs concernés.
La visite du code de la montre continue avec ce second article, bref mais intense, dédié à une toute petite unité de conception : « increment_vector_4 ». Petite par la taille mais d'une grande utilité.
« When it's ready ». La politique de publication des nouvelles versions de Debian a le don d'agacer un grand nombre de personnes dans la communauté du libre. C'est pourtant sur cette idée fondatrice que repose toute la politique d'assurance-qualité du projet Debian. Illustration de l'indépendance du projet face aux contingences commerciales, une nouvelle version de Debian est avant tout l'œuvre et la fierté de la communauté des contributeurs qui l'ont faite naître, elle et ses paquets.Au cours d'un long processus, un logiciel nouvellement empaqueté va traverser différentes étapes avant, peut-être, d'être la version disponible de ce logiciel dans la version stable. Indissociable des paquets qui la composent, une version est néanmoins dotée d'attributs propres qui lui confèrent sa spécificité. Le tout constituera l'image publique du projet Debian et la base de travail d'administrateurs et développeurs du monde entier pendant plusieurs années.
Après avoir étudié les différentes formes et transformations d'un programme depuis le code source jusqu'à l'exécutable chargé, il nous reste à nous intéresser aux mécanismes qui régissent son exécution. Celle-ci doit s'effectuer dans un cadre très strict, contrôlé à outrance par un autre programme qui joue le rôle d'autorité du système : le noyau.
Java et le monde JEE ayant plus de 10 ans aujourd'hui, beaucoup de progrès, en termes d'industrialisation, ont été réalisés depuis ses débuts, et le monde open source y a très largement contribué. Cet article propose donc un tour d'horizon du sujet pour bien comprendre les enjeux de l'industrialisation et le rôle qu'y jouent de nombreuses technologies open source.
Les attaques informatiques étant de plus en plus compliquées et robustes, les solutions actuelles de protection (antivirus) sont de moins en moins efficaces. La création de nouveaux jeux d’instructions de la part des fabricants de processeurs, pour l’amélioration des performances des solutions de virtualisation (VMware, XEN, etc.), a permis la création de nouvelles solutions de sécurité. L’article présente un état de l’art de diverses solutions proposées par la communauté scientifique, permettant la protection du système d’exploitation et/ou des applicatifs.
Pharo est un nouveau Smalltalk open source disponible sur http://www.pharo-project.org. Il offre des outils puissants pour la gestion du code au travers de son infrastructure de package nommée Monticello. Nous allons montrer les rudiments du système de package Monticello ainsi que la gestion de version distribuée. Nous montrons en particulier comment l'on peut scripter la manipulation de packages à l'aide de Gofer. Dans un prochain article, nous montrerons comment gérer des configurations entières de packages à l'aide de Metacello.
En C, la création d'un fichier de configuration et son analyseur est souvent un éternel recommencement. Il existe de plus de nombreuses façons de faire, comme le tout-à-la-main à base de strchr(ligne,'='), le format XML avec, par exemple, libxml2. Nous allons voir dans cet article comment faire avec deux bibliothèques. L'une est la très répandue Glib. L'autre est la récente (pas tant que cela - 2005 d'après Freshmeat) et puissante Libconfig. Enfin, pour nous amuser un peu, nous allons prendre pour base de travail un carnet d'adresses, dont nous allons afficher le contenu. Ce carnet d'adresses sera contenu dans une base PostgreSQL (et nous pourrons ainsi réviser un peu ce sujet).
Python est un langage particulièrement riche. Il dispose notamment d'une importante bibliothèque standard couvrant de larges besoins. Toutefois, il n'est pas rare de recourir à un module externe. Par exemple, si votre application nécessite l'accès à une base de données PostgreSQL, vous pouvez recourir au module tierce psycopg2. Qu'ils soient ou non inclus dans la bibliothèque standard, il existe deux grandes familles de modules : les modules natifs, écrits entièrement en Python et les extensions, qui sont des modules écrits dans un autre langage, typiquement le C. Nous allons nous intéresser dans cet article aux différentes façons d'écrire une extension Python.