httpd-2.2.4, mutt

Un petit billet pour vous signaler la sortie de serveur httpd Apache en version 2.2.4 (téléchargement ici).
Quoi de neuf me direz-vous ?

  • Le support de gros fichiers
  • Une configuration repensée
  • un module de Load Balancing (avec différents algos)
  • le module d’authorisation réécris (support: DBM, SQL, LDAP, Fichiers)
  • module de cache revu

Bref pas mal de nouveautés.
Cette version marque un changement majeur: C’est la nouvelle version stable du serveur httpd.

Un truc qui pourra aider les petits gars qui utilisent encore mutt:
Comment voir directement les messages méchamment écrit en HTML 🙁 :

 # cat ~/mutt/mailcap text/html; /usr/bin/w3m -dump -T text/html '%s'; copiousoutput; description=HTML Text; nametemplate=%s.html # 

Bien sûr, il vous faut w3m.

Quelques sites bien utilses concernant Mutt :

D’ailleurs, j’ai trouvé cela :

 set mime_forward=yes set mime_forward_rest=yes 

Permet de forwarder mail + pièces jointes directement.

AjaX ammoniaqué, linux-2.6.20, qemu-0.9.0

Bon cette fois, on y va !
Ce billet va être relativement technique, euh quoique, après une bière, c’est dur d’écrire des trucs qu’on y comprends quelque chose 😉

Bref, m’en veuillez pas trop si c’est pas clair 🙂

Bon qui a dit que c’était compliqué de laver son sol carlé ?!? MDR !

Bah oui, je parle de la technologie Ajax. Je vous recommande la lecture de cette documentation : AJAX: Premiers pas!. Pour plus d’informations sur le sujet : http://developer.mozilla.org/fr/docs/AJAX.
Bref, il vaut mieux un dessin de de longs discours comme ils disent…
Alors voyons, faisons un tout petit bout de code HTML. Celui-ci depuis la page, va charger un fichier depuis un serveur WEB et l’afficher dans un DIV.
Ce code le voici :

 function joliAjaxAmmoniaque() { var xhr = null; if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); else if (window.ActiveXObject) xhr = new ActiveXObject(Microsoft.XMLHTTP); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { el = document.getElementById('a'); el.style.visibility="visible"; el = document.getElementById('b'); el.style.visibility="visible"; el.innerHTML="<PRE>" + xhr.responseText + "</PRE>"; } else { document.ajax.dyn="Error code " + xhr.status; } } }; xhr.open('GET', "http://titux.mcom.fr/~clucas/toto.txt", true); xhr.send(null); } 

Ce qui donne cela !
Comme quoi ce n’était pas si compliqué que cela !

Bon passons maintenant aux nouvelles du front !

1. linux-2.6.20
Quoi de neuf chez nos amis du noyau : Je ne vais pas faire un plagiat de ce que l’on peut trouver sur la très bonne page de nos amis de KernelNewbies. Mais pour moi, ce que j’en retiendrais c’est l’avancement du support de la PS3, le travail continue sur l’intégration de KVM et de la paravirtualisation, Fault injection(Ce qui permet d’insérer des fault (exception, faute de pages, …), afin d’aider les développeurs à débugger), un HID générique (plus uniquement USB), et comme d’habitude de nouveaux drivers
Au passage, je vous conseille de lire cet article concernant la résolution d’un bug dû à une sorte de race-condition entre

set_dirty_page()

(pour une page appartenant à un fichier par exemple) et la manière dont gère le FS le dirty bit via les buffer-head.

2. Qemu 0.9.0
Sortie de Qemu en version 0.9.0, mais surtout sortie de KQemu en version GPLv2!!! Ca c’est une grande nouveau! Merci fabrice 🙂

Week-end, processeur, and co

Bon week-end tranquille: Ca fait beaucoup de bien.
Samedi: magasins, soldes et installation de notre nouveau lit. Et oui ca faisait un mois qu’on dormait par terre sur le matelas en attendant que M. Coforama daigne nous donner notre lit (Plus en stock, qu’il disait :-().

J’ai réfléchis longtemps pour acheter le prochain livre que j’allais lire. Après avoir relu le “Silence des Agneaux” de Thomas Harris. Cela sera “Forteresse Digitale” de Dan Brown.

J’ai longtemps hésité entre “Le parfum d’Adam” de Jean-Christophe Rufin.

et le livre de Dan Brown.
J’avoue que le battage médiatique opéré autour du livre de Jean-Christophe Rufin, m’a refroidi. Dommage, je verrais peut-être un peu après selon les retours que j’aurais depuis le net.

En parlant de battage médiatique, je parle des présidentiels bien sûr. Que vouliez-vous que cela soit ?
Je vous recommande l’écoute de : François Bayrou sur les logiciels libres au salon Solution Linux 2007. Et lire : http://www.bayrou.fr/evenements/bayrou-salon-linux-310107.html  => Retournement de jugement sur les brevets, mais bon…

Un peu d’humour:

Merci
Cyrille :-)!!

Et un peu plus technique, une petite news: La chine produit un processeur (le leur). Celui-ci n’est pas un Intel ou AMD, mais bien un produit de leur crû. Celui-ci s’appelle : Loogson.
Quelques liens :

Ce processeur est basé sur MIPS, mais pas complètement. Il est gravé à 90 nanomètres et possède 47 millions de Transistors. Ce processeur consomme entre 3 et 8W.

if (Vista) { goodbye_microsoft(); }

Bon avec la plétore d’articles sur l’imminente sortie de Vista (Microsoft (TM)), j’ai tenté d’en lire quelques uns.
Bon, ok mes lectures sont un peu partisanes :

Bon je vous recommande chaudement la lecture de ces pointeurs. Le second est un peu plus technique, mais très très intéressant 😉
En lisant ces liens, je me dis que je n’acheterai plus de PC autre qu’en assembleur et __sans__ Microchiotte Windows(TM).

Enfin si l’envie vous prenez d’installer un Linux, je vous recommande l’installeur suivant:   =>http://goodbye-microsoft.com/

C’est une installation de Linux en dual-boot directement depuis Microchiotte Windaube.

Ah pour finir: Excellent les petits gars de Radiohead tiennent un blog : http://www.radiohead.com/deadairspace/

Bière, FT, IE, Slides…

Bon pour commencer: si vous êtes intéressés par la bière dans toutes ses formes et que cela vous exaspère d’avoir toujours votre baron vide… Je pense que vous devriez investir dans cette demande de collaboration ANVAR/OSEO :
  =>Le sous-bock interactif
Pour que nos verres ne soient plus jamais vides !!!!

J’aime beaucoup l’apropos de ce site en mettant une pseudo-pub pour un mec qui a inventé une boisson raffraichissante….

Bon je pense qu’il serait temps que des groupes comme FT, pensent à autre chose que IE. A l’heure d’aujourd’hui, Firefox represente, je dirais 30% de la fréquentation des sites web. Donc restreindre leur application web qu’à IE est quand même fortement contraignant.


Alors vous pensez, moi qui utilise Linux + Firefox… Arfff.

Bon une zolie présentation du lutin saad@ (Saad Kadhi)… Slides

Pour ceux qui s’amusent avec les contraintes en assembleur en ligne avec GCC, je vous recommande la lecture de cette documentation : http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Simple-Constraints.html#Simple-Constraints, qui provient de : http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/.

Cartons, Lecture, OpenBSD et guelante…

Bon week-end difficile: Montage de meubles, rangement des cartons, …
Mais bon, on commence à en voir le bout. Néanmoins ce matin, j’ai bien mal au dos !!!!!

Bon malgré le rangement, j’ai tout de même fini de lire Hannibal: les origines du mal. Et bien, c’est un livre assez sympa à lire. On y apprend comme son nom l’indique les origines des maux d’Hannibal, mais aussi comment s’est formé son esprit si ingénieux et brillant, mais aussi d’où provient ses facilité à perpétré des atrocités.
Bref à lire…
Ca donne même envie de relire le “Silence des Agneaux”.

Alors, petite news concernant l’informatique : flashboot est en version béta. Celle-ci est basée sur la version 4.0 d’OpenBSD.
Flashboot est un ensemble d’outils afin de créer une installation d’OpenBSD sur les plateformes PcEngines, Soekris et Commell LE564. Bref des plateformes basées sur du x86.

Bon pour finir, une petite guelante! L’administration française est une grosse bouse, plus particulièrement la CPAM qui n’a pas de réél status, mais qui est d’une lourdeur incroyable. Laetitia change de régime social vu que nous nous sommes mariés et pendant 4 à 6 semaines, elle n’est assuré par ~~personne~~, et “on ne peut rien faire” ! “Il faut attendre” qu’ils disent. Pendant ce temps, ils risquent de ruiner son année ces gros c0nN4r*s de fonctionnaires(je ne sais même pas).
Il faut arrêter avec toutes ces institutions lourdes, vieillotes et sectaires! (Je ne qualifie pas de secte quelques institutions que ce soit, mais la manière dont les dirigeants sont nommés: oui un peu!).
Ce genre de problème régulier ne m’incite pas à continuer dans le même élan politique qu’est l’alternance droite/gauche… Quel dilemne à la vue des prochaines élections présidentielles !

FreeBSD, SPARC, montage de meuble

Ah une tite nouvelle concernant le monde BSD 🙂
Cette petite news provient de nos amis les lutins de http://www.gcu-squad.org/:
La prochaine version 6.2 de FreeBSD est proche selon ce petit lien ci.
Arrff faites chauffer les fils de cuivre 🙂

La suite : FreeBSD-7 sera peut-être suivant cela : http://ivoras.sharanet.org/freebsd/freebsd7.html

Bon sinon quelques liens histoire de vous faire chauffer les neurones. Ceux-ci concerne les architectures SPARC :

Bon sinon ce week-end on fait montage de meubles, reception de notre nouveeau lave-linge… Bref que des trucs physiques loin d’une console et de la toile!
Ah si, léger lien avec le net : Le film “Operation Espadon”, qui est soit dit en passant une grosse daube qui vous refroidit les neurones. Dialogues informatiques à deux balles, …

Fin du déménagement…

Notre appartement est enfin fini de déménager, les réfections sont finies aussi.
Et grande nouvelle pour nous, cet appartement après visite d’une nana, sera reloué pour le 26 janvier ! Yeah!!! Cela ne nous fera qu’un seul double loyer à payer. Ceci sachant que notre bail se finissait le 3 mars. Kweel !!!

   

Est-ce que votre processeur est un intel en utilisant CPUID ?!?

 static inline void verify_intel_proc() { unsigned int ebx, ecx, edx; /bin /boot /cdrom /dev /etc /home /initrd /initrd.img /lib /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /vmlinuz eax == 0 */ __asm__ ("xorl %%eax, %%eaxn" "cpuid" : "=b" (ebx), "=c" (ecx), "=d" (edx) : : "ax"); /bin /boot /cdrom /dev /etc /home /initrd /initrd.img /lib /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /vmlinuz value from : intel vol 3, chap 3, CPUID instr */ if (ebx == 0x756e6547 && edx == 0x49656e69 && ecx == 0x6c65746e) { printk("CPU is a GenuineIntel.n"); } else { printk("CPU is not an Intel CPU.n"); } } 

Vili, j’avance un ti peu sur la détection du processeur avec CPUID…

Ah oui pour les lutins, un petit lien pour concernant la compilation et les paramètres du noyau, par le gars Greg !!! Librement téléchargeable et sous Licence : Creative Commons Attribution-ShareAlike 2.5 license
=> http://www.kroah.com/lkn/

Linux Kernel in a Nutshell cover image

Conneries, Soekris net4801 et OpenBSD

Bon, Noël comme toujours: famille, bcp à manger, rires, chansons…

Bon plus marrant, quelques conneries :

Et finalement quelque chose de bien plus amusant, venant de http://www.gcu-squad.org/: Un petit HOWTO mettant en forme un rack 1U 19″ avec deux cartes Soekris net4801, dans le but de faire un firewall redondant en utilisant OpenBSD 4.0, carp(4), pfsync(4).

Très bonne lecture et encore un point pour les BSD 😉
Bon vous me direz, on peut faire la même chose avec deux pingouins et VRRPd.

i386 et CPUID

Comment détecter si l’instruction CPUID est implémentée sur un processeur i386 ?

Qu’est-ce que CPUID me direz-vous ?
CPUID est une instruction disponible sur les processeurs i386 et supérieur (CISC).

A quoi sert-elle ?
Cette instruction permet de récupérer des informations sur votre processeur. En effet, par le biais de cette instruction et via la commande mise dans le registre %eax, nous pouvons récupérer diverses informations telle que le type de processeur, possibilités (PAE, PSE, …).
Bref des trucs bien sympatoches…

Mais dans un premier temps, il faut vérifier que cette instruction est disponible sur le processeur. Pour cela il faut modifier le bit 21 du registre EFLAGS ceci afin de voir si celui-ci est modifiable ou non.

Comment fait-on cela ?
Ainsi :

 static int destect_cpuid_instr() { int result = -1; /bin /boot /cdrom /dev /etc /home /initrd /initrd.img /lib /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /vmlinuz 0x200000 = bit 21 */ asm volatile ( "pushfn" "popl %%eaxn" "xorl $0x200000, %%eaxn" "movl %%eax, %%ecxn" "andl $0x200000, %%ecxn" "pushl %%eaxn" "popfn" "pushfn" "popl %%eaxn" "andl $0x200000, %%eaxn" "xorl %%eax, %%ecxn" "movl %%ecx, %0n" : "=r" (result) : : "eax", "ecx"); return (result == 0); } 

REMARQUE:
Le mémonique PUSHFD et PUSHF sont identiques au sens de GCC. Néanmoins au sens Intel du terme, ils signifient :

  • PUSHF: Empile les 16 bits de poids faibles de EFLAGS sur la pile.
  • PUSHFD: Empile complètement EFLAGS sur la pile (et donc décrémente de 4 la pile)

En bref, GCC ne reconnait pas “pushfd” en tant que commande en assembleur (asm();).

Bref,
On commence par empiler eflags[1], ensuite, on dépile dans le registre eax, on fait un xor entre 0x200000 et eax (bref on modifie le bit 21 de eflags).
Ensuite, on met le contenu de %eax dans %ecx, on fait un “et” de 0x200000 avec %ecx (Pour que dans %ecx, le bit 21 soit à “1” et le __reste__ à “0” (plus facile pour tester)).
Puis, on empile %eax, puis on dépile le haut de la pile dans eflags et on rempile. Si la modification apportée sur le bit 21 reste (0/1) alors CPUID est une instruction valide sur ce processeur.

On dépile vers %eax, on fait un “et” entre 0x200000 et %eax, puis un xorl entre %eax et %ecx. Et finalement, on place le contenu de %ecx dans %0 qui correspond à “result” (: “=r” (result)).

En rapide, on stocke la valeur au début, puis on fait la modification du bit 21, puis on récupère eflags modifié dans %eax et on regarde si cela la modification a été gardée ou non.