Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Tag: Curiosité

Niveau :      
Résumé : /proc/sys/fs/binfmt_misc/register

Exécution

Savez-vous qu'on peut rendre n'importe quel fichier exécutable sous linux ? Bien sûr il suffit de faire un chmod +x, mais le noyau risque de vous envoyer balader si le fichier n'est pas réellement exécutable.

Mais je parle ici de rendre exécutable n'importe quel fichier, un jar, un source en C, un MP3 ...

Mais comment quoi que donc !?

Pour exécuter un fichier, le noyau lit les premiers octets du fichier et vérifie qu'ils correspondent à un format binaire (binfmt) connu. Il existe un système pour ajouter des formats binaires à ceux déjà supportés dans le noyau (en gros les elf et les scripts). Il s'agit du format misc.

Pour savoir si ce format est supporté chez vous, ce qui est très probable, lancez la commande :

$ cat /proc/sys/fs/binfmt_misc/status

S'il n'est pas supporté, il faut charger le module et monter le répertoire :

$ modprobe binfmt_misc
$ mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc 

continue reading...

Niveau :      
Résumé : tcpdump, wireshark

Il y a quelque temps, un ami me dit qu'il a trouvé comment se faire embaucher en passant ses nuits devant des trames réseau.

Tout comme lire des logs sans filtre, lire les dump réseau est une activité qui bousille le cerveau. Je me suis donc dit qu'il était complètement barré.

Puis il y a quelques jours, il m'envoie le dump d'un accès à un site web, je vous le livre légèrement filtré. Devinez ce qu'on trouve dans l'en-tête HTTP de la réponse ...

GET /index.html HTTP/1.1
Host: xxx.wordpress.com

HTTP/1.0 200 OK
Server: nginx
Date: Sat, 13 Nov 2010 12:30:04 GMT
Content-Type: text/html; charset=UTF-8
X-hacker: If you're reading this, you should visit xxx.com/jobs and apply to join the fun, mention this header.

Du boulot !

Je ne vous ai pas mâché le travail et vous ne retrouverez pas le site si facilement.

Vous aussi, passez vos nuit à lire des trames, ou mieux, mettez la même chose sur votre site, pour être sûr d'embaucher quelqu'un un minimum compétent le jour où vous tomberez dessus.

Pour cela, si vous avez un apache allez dans sa conf et ajoutez :

header set X-Hadopi Enfoiré de pirate je vais te couper ta connexion - Un ministre anonyme

Je vous laisse chercher pour les autres serveurs qu'apache.

Pour continuer dans le même ordre d'idée, on peut gagner des netbook en regardant attentivement des vidéos de google.

Niveau :      
Résumé :

Quoi ?

Vous connaissez le standard ISO 216 ? C'est celui qui définit la taille des pages A4, A3, ... Ces pages ont un ratio hauteur/largeur de racine de 2. Caractéristique intéressante qui permet de coller 2 pages côte à côte pour passer au format du dessus.

Je digresse, mais disons que la plupart des papiers écrits ont a peu près ce ratio, en format paysage (revues, livres de poche, document imprimés, ...) Quand je dis a peu près c'est très approximatif, 1.4, 1.3, 1.6 c'est a peu près pareil.

L'important étant que les écrans respectent en général l'inverse de ce format (mode paysage quoi). Pourtant si les papiers utilisent ce genre de ratio ce n'est pas vraiment pour le côté standard, mais pour le coté lisibilité. Les journaux mettent même plusieurs colonnes sur une même page pour augmenter cette lisibilité.

C'est pourquoi je vous propose de retourner votre écran. Si vous avez la chance d'avoir un écran que le pied vous permet de pivoter vous pouvez le mettre en format portrait assez facilement.

Comment ?

Sous linux xrandr permet de faire ce genre de chose assez facilement :

$ xrandr -o left

Pour ceux qui ont un dual boot, notez que les raccourcis ctrl-alt-fleche permettent aussi de tourner virtuellement l'écran de windows.

Pourquoi ?

Une fois cette modification effectuée, vous constaterez que beaucoup de choses n'apparaissent plus de la même façon.

  • Un manuel d'une page fait ... une page, plus besoin de scroller.
  • Un document à éditer a le même format que le papier sur lequel il sera imprimé, pratique pour ce qu'on appelle le WYSIWYG
  • Les PDF sont rendu sur une page similaire à ce qu'ils seraient s'ils étaient imprimés (pas besoin d'acheter ipad, bande de ...)
  • Les sites webs restent lisible (les exceptions sont tellement rare que je n'ai jamais eu besoin de retourner mon écran pour en lire un) voire deviennent plus lisibles pour certains.
  • Vous pouvez maintenant mettre votre barre des taches en bas de l'écran sans que cela vous grille votre précieux espace de lecture.

continue reading...

Niveau :      
Résumé : /proc/<pid>

Les processus comme je l'ai déjà décrit, forment une grande famille.

La famille processus


Dans la famille processus je voudrais le père

Les processus se reproduisent par fork (Mitose en français). Ce qui veut dire qu'à la genèse il n'y avait qu'un processus que nous ne nommerons pas Adam mais init.

Tous les processus possèdent un identifiant (pid) ainsi qu'un identifiant de processus parent (ppid) permettant de les repérer dans un arbre généalogique (pstree).

Comment reconnait-on le père du fils lors du fork d'un processus ? Uniquement par le code de retour de la méthode fork qui vaut 0 pour le fils et donne le pid du fils au père. En dehors de cela les 2 processus sont rigoureusement identiques.

Dans la famille processus je voudrais la mère

Désolé, il n'y a pas de femme chez les processus, la reproduction est asexuée, mais c'est une idée à creuser ...

Dans la famille processus je voudrais le fils

Lorsqu'un processus forke, en général le père poursuit sa vie comme si de rien n'était, par contre le fils va muter. La mutation génétique chez les processus est bien plus violente que chez les êtres vivants. En effet, le code (l'ADN en français) est intégralement relu et remplacé depuis un nouveau fichier sur le disque. C'est ce qu'on appelle un exec.

Il existe quelques cas de processus qui ne fonctionnent pas comme ceci, mais qui laissent leur père mourir (ingrats !) et qui prennent leur place. C'est le cas des démons (un parricide est-il un démon ?) dont le but est de devenir indépendants (émancipés) et ne plus avoir de problèmes d'adolescence (le tty du père) ou de famille (le groupe de processus).

Dans la famille processus je voudrais le grand-père

Lorsqu'un processus meurt, sa dépouille est remise à son père. Elle est essentiellement constituée de son code de retour.

Lorsque le père est déjà mort, c'est le doyen qui a la charge de récupérer le code de retour, par exemple avec la méthode wait.


continue reading...

Niveau :      
Résumé :

Maintenant que nous savons nous servir d'un interpréteur postscript, nous allons pouvoir développer. Postscript est un langage complet au sens de Turing. C'est à dire qu'on peut tout faire avec, même faire décoller une fusée. Mais bon, avant d'en arriver là, on va essayer de faire quelque chose d'utile.

Pour vous présenter le langage, je vous propose un exemple basé sur la fourmi de Langton. C'est une fourmi qui a ceci de particulier qu'elle ne sait que tourner. Son univers ressemble beaucoup à celui du jeu de la vie, c'est-à-dire une grille infinie de cases noires ou blanches. Lorsque la fourmi est sur une case noire, elle tourne à droite, lorsqu'elle est sur une case blanche, elle tourne à gauche. De plus elle inverse la couleur de la case sur laquelle elle se trouve.

Le concept est assez simple, et lorsqu'on lance la fourmi sur une grille blanche, son comportement a l'air aléatoire. Et pourtant au bout d'un moment elle fabrique ce qui ressemble à une autoroute.

Tout ça pour dire que le postscript c'est bien. C'est un langage à pile, qui fonctionne en notation inversée. Les possesseurs de HP48 et amateurs de RPL y retrouveront leurs petits (ou de vieux souvenirs). Les développeurs forth (faite sous savoir si vous êtes dans la salle) apprécieront aussi probablement.

La base

Les commentaires

Toute ligne commençant par un % est un commentaire. Exemple :

% Rien

Les commandes

Les commandes sont des mots simples. Étant donné la notation inversée, la commande se trouve après ses arguments. Par exemple une addition :

5 9 add

A cette notation est associée une pile. 5 pose 5 sur la pile, 9 pose 9 sur la pile, add retire les 2 derniers éléments (donc 9 et 5) puis additionne et repose le résultat sur la pile. D'où la représentation de la pile :

    %avant la ligne de commande
5   % 5 
5 9 % 9
    %pendant le add (invisible)
14  % après le add 

Les commandes peuvent être séparées par des espaces ou des retours à la ligne.


continue reading...

Niveau :      
Résumé :

Après les "top of mind" qui prouvent qu'il existe toujours une solution pour vous dans le libre, voici des alternatives. Ces nouveaux choix ne sont pas moins bons, il sont même meilleurs dans biens des cas. Il est juste moins fréquent de les indiquer à un nouveau venu, tout simplement parce qu'il faut bien faire le premier choix pour lui. Mais il ne faut pas oublier que le monde du libre est le monde de la variété, l'utilisateur a toujours la possibilité de choisit une alternative.

Cette liste est là simplement pour donner des idées à tous ceux qui veulent choisir. Pour chaque section, une recherche sur google vous en ressortira bien d'autres.

Serveurs :
Administration :
Clients :
Divers
Et les protocoles:
  • Transfert de fichier : ftp http
  • Serveur de fichier : webdav ssh ocfs smb
  • Réception de mails : pop imap uucp
  • Gestion d'utilisateurs : passwd nis

... liste très loin d'être exhaustive ...

Niveau :      
Résumé :

Aujourd'hui une petite liste de logiciels à connaître et à conseiller. Attention, s'ils sont là, c'est parce qu'ils sont "top of mind", ils ont les fonctionnalités les plus larges et conviendront au plus grand nombre. C'est pourquoi il est bon de les conseiller à ceux qui ne savent pas quoi choisir. Cela ne veut pas dire qu'il n'existe pas pour autant d'alternatives fiables, voire meilleures.

Avant d'avoir le choix, il faut avoir une base à partir de laquelle choisir, donc on commence par un choix par défaut, puis on adapte en fonction des besoins. Apache est un bon serveur web, mais dans certains cas on préfèrera lighthttpd, ces cas étant plus rares on commence par apache.

Serveurs :
  • Serveur web : apache 2.2
  • Serveur smtp : postfix
  • Serveur pop et imap : dovecot
  • Serveur dns : bind
  • Serveur ftp : vsftpd
  • Serveur d'annuaire : openldap
  • Serveur base de données : mysql
  • Serveur telnet : aucun
  • Serveur ntp : openntp
  • Serveur irc : conseillez-moi
  • Proxy : squid
  • Mailing-list : mailman
  • Application : ne se prononce pas
Administration :
Clients :
Divers
Et les protocoles:
  • Transfert de fichier : sftp
  • Serveur de fichier : nfs
  • Réception de mails : imaps
  • Gestion d'utilisateurs : ldap

... liste non exhaustive ...