[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Module Java dans le noyau Linux



Extrait de http://www.docmaster.org/articles/linux070.htm :

********************************************************************

le répertoire sys/fs contient également le sous-répertoire binfmt_misc qui
permet de contrôler les types d'exécutables reconnus par le noyau.
binfmt_misc permet de déclarer de nouveaux types de fichiers exécutables au
noyau sans avoir à le recompiler. Le système fonctionne en repérant les
exécutables soit par nombre magique ("magic number" en anglais) ou soit par
extension du nom de fichier.
Une fois que le noyau a reconnu un type d'exécutable, l'interpréteur associé
sera invoqué avec le nom du fichier exécutable passé en paramètre. Le
répertoire binfmt_misc contient les fichiers register et status, plus un
fichier par format déclaré. La syntaxe standard pour déclarer un nouveau
type d'exécutable est la suivante :


echo :nom:type:offset:magic:mask:interpréteur >
/proc/sys/fs/binfmt_misc/register

Un exemple valant mieux qu'un long discours, voyons comment utiliser ce
système pour permettre au noyau d'exécuter directement des applications
Windows (grâce à l'émulateur Wine) et des scripts Python.


echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
echo ':Python:E::py::/usr/bin/python:' > /proc/sys/fs/binfmt_misc/register

La lettre `M' ou `E' indique si le repère pour déterminer le type du fichier
sera son magic numer ou l'extension du nom de fichier (les deux premiers
caractères d'un exécutable Windows sont toujours MZ).


# ls -al /proc/sys/fs/binfmt_misc/
dr-xr-xr-x     2 root     root     0 May  1 16:55 .
dr-xr-xr-x     3 root     root     0 May  1 16:55 ..
-rw-r--r--     1 root     root     0 May  1 16:55 DOSWin
-rw-r--r--     1 root     root     0 May  1 16:55 Python
-w--------     1 root     root     0 May  1 16:55 register
-rw-r--r--     1 root     root     0 May  1 16:55 status

# cat /proc/sys/fs/binfmt_misc/Python
enabled
interpreter /usr/bin/python
extension .py

Essayons maintenant d'exécuter directement un script Python.


# cat > test.py
print 'hello'
^D
# chmod +x test.py
# ./test.py
hello

Ca marche !
Le fichier status quant à lui permet de déterminer si la fonctionnalité
binfmt_misc est activée ou non.


# cat /proc/sys/fs/binfmt_misc/status
enabled

Vous pouvez de même changer cette valeur en écrivant 0 (désactiver) ou 1
(activer) dans ce fichier. Chaque format enregistré crée un fichier dans le
répertoire binfmt_misc. Ceux-ci ont la même fonction que le fichier status,
à la différence qu'ils ne s'appliquent par à la fonctionnalité, mais
seulement au format en question.

********************************************************************

----- Original Message -----
From: "Frédéric Bothamy" <fbothamy@mail.dotcom.fr>
To: <debian-user-french@lists.debian.org>
Sent: Friday, October 25, 2002 4:02 PM
Subject: Re: Module Java dans le noyau Linux


> * MEDDOUR Djamal Eddine thesard FTRD/DAC/LAN
<djamaleddine.meddour@rd.francetelecom.com> [2002-10-25 14:54] :
> > Salut
> >
> > Excuse moi mais par l'intermédiaire du module binfmt_misc c'est quoi son
intérêt donc ?
>
> Je n'ai jamais essayé personnellement, mais d'après la documentation
> du noyau, il est possible d'exécuter des programmes compilés Java,
> Python, Emacs, DOS ou Windows en les lançant de la ligne de commande
> (i.e. pas besoin de spécifier un lanceur comme wine, python, emacs,
> dosemu, java). Le noyau reconnaît le type de fichier à exécuter et
> invoque l'interpréteur associé (à définir avant, bien sûr).
>
> Pour plus d'information et quelques exemples, voir le fichier
> $(KERNEL_SOURCE)/Documentation/binfmt_misc.txt.
>
> Fred
>
>
> --
> To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org
>
> ___________________________________________________________________
> Haut Débit: Modem offert soit 150,92 euros remboursés sur le Pack eXtense
de Wanadoo !
> Profitez du Haut Débit à partir de 30 euros/mois :
http://www.ifrance.com/_reloc/w

___________________________________________________________________
Haut Débit: Modem offert soit 150,92 euros remboursés sur le Pack eXtense de Wanadoo !
Profitez du Haut Débit à partir de 30 euros/mois : http://www.ifrance.com/_reloc/w



Reply to: