Voici ce qui se passe lorsque j'exécute mon programme print-size-of-pointer sur ma Sun Fire sous Solaris:
(Il y a deux versions: compilé en 32-bit et compilé en 64-bit):
Résultat sur fire (Sun Fire 64-bit):
Version du kernel:
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>uname -a
SunOS fire 5.10 Generic_118833-33 sun4u sparc SUNW,UltraAX-i2
Sommes-nous en 64-bit ?
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>isainfo -b
64
Oui, nous sommes en 64-bit
Voyons les fichiers
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>ls -l
total 142
-rwxr-xr-x 1 pbn users 6587 Jun 1 20:00 print-sizeof-pointer-linux-32bit.bin
-rwxr-xr-x 1 pbn users 9415 Jun 1 20:00 print-sizeof-pointer-linux-64bit.bin
-rwxr-xr-x 1 pbn users 53640 Jun 1 20:00 print-sizeof-pointer-macosx.bin
-rw-r--r-- 1 pbn users 561 Jun 1 20:00 print-sizeof-pointer.c
Je compile mon programme en 32-bit
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>gcc -o print-sizeof-pointer-solaris-32bit.bin -m32 print-sizeof-pointer.c
Je compile mon programme en 64-bit
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>gcc -o print-sizeof-pointer-solaris-64bit.bin -m64 print-sizeof-pointer.c
Voyons de quel type d'exécutable il s'agit:
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>file *solaris*
print-sizeof-pointer-solaris-32bit.bin: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped, no debugging information available
print-sizeof-pointer-solaris-64bit.bin: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped, no debugging information available
J'exécute la version 32-bit de mon programme:
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>./print-sizeof-pointer-solaris-32bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 4
J'exécute la version 64-bit de mon programme:
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>./print-sizeof-pointer-solaris-64bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 8
[pbn@fire] /export/home/pbn/Documents/print-sizeof-pointer>
En bref sous Solaris sur une machine 64-bit avec un OS 64-bit, je peux à la fois exécuter les exécutables 32-bit et 64-bit. Et en fait, les exécutables 32-bit ont leurs adresses en 32-bit, les exécutables 64-bit ont leurs adresses en 64-bit.
dimanche 21 juin 2009
print-size-of-pointer: exécution sous Mac OS X
Voici ce qui se passe lorsque j'exécute mon programme print-size-of-pointer sous MacOSX:
Résultat sur albert (iMac Intel Core 2 Duo à 2 GHz, Mac OS X 10.5 Intel):
Quel kernel avons-nous ?
[pbn@albert] /Users/pbn>uname -a
Darwin albert 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
En particulier, quelle est l'architecture ?
[pbn@albert] /Users/pbn>uname -m
i386
Le CPU est-il 64-bit ?
[pbn@albert] /Users/pbn>sysctl hw.cpu64bit_capable
hw.cpu64bit_capable: 1
Oui, le CPU est 64-bit
Voyons les fichiers
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>ls
print-sizeof-pointer-linux-32bit.bin print-sizeof-pointer-macosx.bin
print-sizeof-pointer-linux-64bit.bin print-sizeof-pointer.c
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>ls -l
total 160
-rw-r--r-- 1 pbn staff 6587 1 jui 20:00 print-sizeof-pointer-linux-32bit.bin
-rw-r--r-- 1 pbn staff 9415 1 jui 20:00 print-sizeof-pointer-linux-64bit.bin
-rwxr-xr-x 1 pbn staff 53640 1 jui 20:00 print-sizeof-pointer-macosx.bin
-rw-r--r-- 1 pbn staff 561 1 jui 20:00 print-sizeof-pointer.c
Voyons de quel type d'exécutable il s'agit: c'est un "universal binary" qui contient quatre exécutables pour quatre architectures différentes
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>file print-sizeof-pointermacosx.bin
print-sizeof-pointer-macosx.bin: Mach-O universal binary with 4 architectures
print-sizeof-pointer-macosx.bin (for architecture i386): Mach-O executable i386
print-sizeof-pointer-macosx.bin (for architecture x86_64): Mach-O 64-bit executable x86_64
print-sizeof-pointer-macosx.bin (for architecture ppc7400): Mach-O executable ppc
print-sizeof-pointer-macosx.bin (for architecture ppc64): Mach-O 64-bit executable ppc64
J'exécute mon programme:
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>./print-sizeof-pointer-macosx.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 8
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>
En bref le cas de Mac OS X 10.5 "Léopard" est un peu particulier: sur une machine 64-bit sous Mac OS X 10.5 "Léopard":
Résultat sur albert (iMac Intel Core 2 Duo à 2 GHz, Mac OS X 10.5 Intel):
Quel kernel avons-nous ?
[pbn@albert] /Users/pbn>uname -a
Darwin albert 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
En particulier, quelle est l'architecture ?
[pbn@albert] /Users/pbn>uname -m
i386
Le CPU est-il 64-bit ?
[pbn@albert] /Users/pbn>sysctl hw.cpu64bit_capable
hw.cpu64bit_capable: 1
Oui, le CPU est 64-bit
Voyons les fichiers
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>ls
print-sizeof-pointer-linux-32bit.bin print-sizeof-pointer-macosx.bin
print-sizeof-pointer-linux-64bit.bin print-sizeof-pointer.c
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>ls -l
total 160
-rw-r--r-- 1 pbn staff 6587 1 jui 20:00 print-sizeof-pointer-linux-32bit.bin
-rw-r--r-- 1 pbn staff 9415 1 jui 20:00 print-sizeof-pointer-linux-64bit.bin
-rwxr-xr-x 1 pbn staff 53640 1 jui 20:00 print-sizeof-pointer-macosx.bin
-rw-r--r-- 1 pbn staff 561 1 jui 20:00 print-sizeof-pointer.c
Voyons de quel type d'exécutable il s'agit: c'est un "universal binary" qui contient quatre exécutables pour quatre architectures différentes
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>file print-sizeof-pointermacosx.bin
print-sizeof-pointer-macosx.bin: Mach-O universal binary with 4 architectures
print-sizeof-pointer-macosx.bin (for architecture i386): Mach-O executable i386
print-sizeof-pointer-macosx.bin (for architecture x86_64): Mach-O 64-bit executable x86_64
print-sizeof-pointer-macosx.bin (for architecture ppc7400): Mach-O executable ppc
print-sizeof-pointer-macosx.bin (for architecture ppc64): Mach-O 64-bit executable ppc64
J'exécute mon programme:
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>./print-sizeof-pointer-macosx.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 8
[pbn@albert] /Users/pbn/Documents/other/print-sizeof-pointer>
En bref le cas de Mac OS X 10.5 "Léopard" est un peu particulier: sur une machine 64-bit sous Mac OS X 10.5 "Léopard":
- l'operating system est 64-bit
- l'API (Cocoa) est 64-bit et/ou 32-bit
- le kernel est 32-bit
- les fichiers "Universal Binaries" peuvent contenir les exécutables pour plusieurs architectures.
Libellés :
64-bit,
fat binary,
Mac OS X,
print-sizeof-pointer,
Universal Binary
samedi 20 juin 2009
print-size-of-pointer: exécution sous Linux
Voici ce qui se passe lorsque j'exécute mon programme print-size-of-pointer sous Linux:
(Il y a deux versions: compilé en 32-bit et compilé en 64-bit):
Résultat sur cobra (Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, Debian GNU/Linux "squeeze" 64-bit):
[pbn@cobra] /home/pbn>cd other/print-sizeof-pointer/
Voyons les fichiers
[pbn@cobra] /home/pbn>ls -l
total 92
-rwxr-xr-x 1 pibe pibe 561 jun 1 20:00 print-sizeof-pointer.c
-rwxr-xr-x 1 pibe pibe 6587 jun 1 20:00 print-sizeof-pointer-linux-32bit.bin
-rwxr-xr-x 1 pibe pibe 9415 jun 1 20:00 print-sizeof-pointer-linux-64bit.bin
-rwxr-xr-x 1 pibe pibe 53640 jun 1 20:00 print-sizeof-pointer-macosx.bin
Voyons de quel type d'exécutable il s'agit, c'est du Linux ELF 32-bit
[pbn@cobra] /home/pbn>file print-sizeof-pointer-linux-32bit.bin
print-sizeof-pointer-linux-32bit.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
Voyons de quel type d'exécutable il s'agit, c'est du Linux ELF 64-bit
[pbn@cobra] /home/pbn>file print-sizeof-pointer-linux-64bit.bin
print-sizeof-pointer-linux-64bit.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Voyons la version du kernel:
[pbn@cobra] /home/pbn>uname -a
Linux cobra 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64 GNU/Linux
Voyons le "type de machine" du kernel:
[pbn@cobra] /home/pbn>uname -m
x86_64
Demandons à dpkg sur quelle architecture nous sommes:
[pbn@cobra] /home/pbn>dpkg --print-architecture
amd64
J'exécute la version 32-bit de mon programme:
[pbn@cobra] /home/pbn>./print-sizeof-pointer-linux-32bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 4
J'exécute la version 64-bit de mon programme:
[pbn@cobra] /home/pbn>./print-sizeof-pointer-linux-64bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 8
[pbn@cobra] /home/pbn>
En bref sous Linux sur une machine 64-bit avec un OS 64-bit, je peux à la fois exécuter les exécutables 32-bit et 64-bit. Et en fait, les exécutables 32-bit ont leurs adresses en 32-bit, les exécutables 64-bit ont leurs adresses en 64-bit.
(Il y a deux versions: compilé en 32-bit et compilé en 64-bit):
Résultat sur cobra (Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, Debian GNU/Linux "squeeze" 64-bit):
[pbn@cobra] /home/pbn>cd other/print-sizeof-pointer/
Voyons les fichiers
[pbn@cobra] /home/pbn>ls -l
total 92
-rwxr-xr-x 1 pibe pibe 561 jun 1 20:00 print-sizeof-pointer.c
-rwxr-xr-x 1 pibe pibe 6587 jun 1 20:00 print-sizeof-pointer-linux-32bit.bin
-rwxr-xr-x 1 pibe pibe 9415 jun 1 20:00 print-sizeof-pointer-linux-64bit.bin
-rwxr-xr-x 1 pibe pibe 53640 jun 1 20:00 print-sizeof-pointer-macosx.bin
Voyons de quel type d'exécutable il s'agit, c'est du Linux ELF 32-bit
[pbn@cobra] /home/pbn>file print-sizeof-pointer-linux-32bit.bin
print-sizeof-pointer-linux-32bit.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
Voyons de quel type d'exécutable il s'agit, c'est du Linux ELF 64-bit
[pbn@cobra] /home/pbn>file print-sizeof-pointer-linux-64bit.bin
print-sizeof-pointer-linux-64bit.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
Voyons la version du kernel:
[pbn@cobra] /home/pbn>uname -a
Linux cobra 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64 GNU/Linux
Voyons le "type de machine" du kernel:
[pbn@cobra] /home/pbn>uname -m
x86_64
Demandons à dpkg sur quelle architecture nous sommes:
[pbn@cobra] /home/pbn>dpkg --print-architecture
amd64
J'exécute la version 32-bit de mon programme:
[pbn@cobra] /home/pbn>./print-sizeof-pointer-linux-32bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 4
J'exécute la version 64-bit de mon programme:
[pbn@cobra] /home/pbn>./print-sizeof-pointer-linux-64bit.bin
print-sizeof-pointer.c
If the result is 8, this machine is a 64-bit system.
If the result is 4, this machine is a 32-bit system.
Result: 8
[pbn@cobra] /home/pbn>
En bref sous Linux sur une machine 64-bit avec un OS 64-bit, je peux à la fois exécuter les exécutables 32-bit et 64-bit. Et en fait, les exécutables 32-bit ont leurs adresses en 32-bit, les exécutables 64-bit ont leurs adresses en 64-bit.
Libellés :
64-bit,
Debian GNU/Linux,
Linux,
print-sizeof-pointer
vendredi 12 juin 2009
64 bits ou 32 bits: mon petit programme print-sizeof-pointer.c
Comme je viens de m'offrir un PC de bureau 64-bit, je m'intéresse aux différences entre 64-bit et 32-bit.
J'ai donc écrit un tout petit programme en C qui permet de connaître la taille des pointeurs:
/*
print-sizeof-pointer.c
This little program prints the size of pointers.
On a 64-bit system, pointers are 64-bit (8 bytes),
so this program prints "8".
On a 32-bit system, pointers are 32-bit (4 bytes),
so this program prints "4".
Pierre Bauduin
le 12 juin 2009 */
#include <stdio.h>
int main()
{
printf ("print-sizeof-pointer.c\n");
printf (" If the result is 8, this machine is a 64-bit system.\n");
printf (" If the result is 4, this machine is a 32-bit system.\n");
printf (" Result: %d\n", sizeof(void *));
}
Ce programme permet donc de savoir si l'adressage est 64-bit ou 32-bit.
Si la taille des pointeurs est 8 octets, cela veut dire que l'adressage est 64-bit.
Si la taille des pointeurs est 4 octets, cela veut dire que l'adressage est 32-bit.
Attention, évitons les confusions:
Comment compiler une version 64-bit et/ou 32-bit ?
Si vous avez un système 64-bit, il est possible de dire au compilateur de générer un exécutable 32-bit ou 64-bit.
Cas de Linux, FreeBSD et Solaris:
Pour compiler en 64-bit:
gcc -o print-sizeof-pointer-solaris-64bit.bin -m64 print-sizeof-pointer.c
Pour compiler en 32-bit:
gcc -o print-sizeof-pointer-solaris-32bit.bin -m32 print-sizeof-pointer.c
Cas de Mac OS X: Comme expliqué dans un post précédent, MacOSX permet de générer des "universal binaries" qui contiennent dans le même fichier les exécutables pour une, deux, trois ou même quatre architectures:
gcc -arch i386 -arch ppc -arch ppc64 -arch x86_64 -o print-sizeof-pointer.bin print-sizeof-pointer.c
J'ai donc écrit un tout petit programme en C qui permet de connaître la taille des pointeurs:
/*
print-sizeof-pointer.c
This little program prints the size of pointers.
On a 64-bit system, pointers are 64-bit (8 bytes),
so this program prints "8".
On a 32-bit system, pointers are 32-bit (4 bytes),
so this program prints "4".
Pierre Bauduin
le 12 juin 2009 */
#include <stdio.h>
int main()
{
printf ("print-sizeof-pointer.c\n");
printf (" If the result is 8, this machine is a 64-bit system.\n");
printf (" If the result is 4, this machine is a 32-bit system.\n");
printf (" Result: %d\n", sizeof(void *));
}
Ce programme permet donc de savoir si l'adressage est 64-bit ou 32-bit.
Si la taille des pointeurs est 8 octets, cela veut dire que l'adressage est 64-bit.
Si la taille des pointeurs est 4 octets, cela veut dire que l'adressage est 32-bit.
Attention, évitons les confusions:
- Sur une machine 64-bit on peut faire tourner un OS 64-bit ou un OS 32-bit. Si l'OS est 32-bit, l'adressage est 32-bit.
- Même si la machine et l'OS sont tous les deux 64-bit, cela ne veut pas dire que tous les exécutables doivent être 32-bit ou 64-bit. Par exemple avec Mac OS X 10.5 "Léopard", une grande majorité des exécutables est encore 32-bit.
- Et donc, sur une machine 64-bit avec un OS 64-bit, il est généralement possible de faire tourner à la fois des exécutables 64-bit et des exécutables 32-bit.
- C'est en fait c'est à la compilation (voir ci-dessous comment) qu'il est possible de choisir de générer un exécutable 32-bit ou 64-bit.
Comment compiler une version 64-bit et/ou 32-bit ?
Si vous avez un système 64-bit, il est possible de dire au compilateur de générer un exécutable 32-bit ou 64-bit.
Cas de Linux, FreeBSD et Solaris:
Pour compiler en 64-bit:
gcc -o print-sizeof-pointer-solaris-64bit.bin -m64 print-sizeof-pointer.c
Pour compiler en 32-bit:
gcc -o print-sizeof-pointer-solaris-32bit.bin -m32 print-sizeof-pointer.c
Cas de Mac OS X: Comme expliqué dans un post précédent, MacOSX permet de générer des "universal binaries" qui contiennent dans le même fichier les exécutables pour une, deux, trois ou même quatre architectures:
gcc -arch i386 -arch ppc -arch ppc64 -arch x86_64 -o print-sizeof-pointer.bin print-sizeof-pointer.c
Libellés :
64-bit,
Debian GNU/Linux,
development,
FreeBSD,
Linux,
Mac OS X,
print-sizeof-pointer,
Solaris
lundi 1 juin 2009
Mac OS X 10.5: 64 ou 32 bits ?
A note époque les systèmes d'exploitations existent en 32-bit ou en 64-bit. Comme j'en ai déjà parlé précédemment, Mac OS X 10.5 ("Léopard") est une version combinée qui est à la fois 32-bit et 64-bit. De plus, comme Apple est occupé à passer de l'architecture PowerPC à l'architecture Intel, les exécutables Mac OS X sont (ou en tous cas, peuvent être) multi-architectures. Il s'agit des "Universal Binaries" dont je vous ai déjà parlé.
Sur mon iMac Intel sous Mac OS X 10.5 ("Léopard"), lorsque j'essaye de voir si un exécutable est 32-bit ou 64-bit, PowerPC ou Intel, j'utilise (par exemple) la commande file:
[pbn@albert] /Users/pbn>file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture i386): Mach-O executable i386
/bin/ls (for architecture ppc7400): Mach-O executable ppc
[pbn@albert] /Users/pbn>
... ceci est un "Universal Binary". Il contient des binaires pour deux architectures: i386, c'est à dire x86 32-bit, et ppc c'est à dire PowerPC 32-bit. C'est un peu décevant: où sont les binaires 64-bit ?
En fait, Mac OS X 10.5 ("Léopard"), peut faire tourner les exécutables 32-bit et 64-bit, mais la majorité des exécutables sont toujours 32-bit.
Sous, Mac OS X 10.5 ("Léopard"), même le kernel est 32-bit:
[pbn@albert] /Users/pbn>uname -a
Darwin albert 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
[pbn@albert] /Users/pbn>file /mach_kernel
/mach_kernel: Mach-O universal binary with 2 architectures
/mach_kernel (for architecture i386): Mach-O executable i386
/mach_kernel (for architecture ppc): Mach-O executable ppc
Cependant Cocoa, et donc les librairies (ou en bon français les bibliothèques) sont en 32-bit et 64-bit. Un exemple:
[pbn@albert] /Users/pbn>file /usr/lib/libSystem.dylib
/usr/lib/libSystem.dylib: Mach-O universal binary with 4 architectures
/usr/lib/libSystem.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/lib/libSystem.dylib (for architecture ppc64): Mach-O 64-bit dynamically linked shared library ppc64
/usr/lib/libSystem.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/lib/libSystem.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
[pbn@albert] /Users/pbn>
... voilà qui est plus intéressant. On constate ici que cette librairie est un "Universal Binary" qui contient quatre binaires différents:
En fait la librairie /usr/lib/libSystem.dylib est particulièrement importante sous Mac OS X puisqu'elle contient entre autres toute la librairie glibc.
Il est logique que les librairies existent en 32-bit et 64-bit. En effet, pour pouvoir exécuter des exécutables 32-bit et 64-bit (compilés dynamiquement, en tous cas), il faut avoir quelque part les librairies à la fois en 32-bit et 64-bit.
Sur mon iMac Intel sous Mac OS X 10.5 ("Léopard"), lorsque j'essaye de voir si un exécutable est 32-bit ou 64-bit, PowerPC ou Intel, j'utilise (par exemple) la commande file:
[pbn@albert] /Users/pbn>file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture i386): Mach-O executable i386
/bin/ls (for architecture ppc7400): Mach-O executable ppc
[pbn@albert] /Users/pbn>
... ceci est un "Universal Binary". Il contient des binaires pour deux architectures: i386, c'est à dire x86 32-bit, et ppc c'est à dire PowerPC 32-bit. C'est un peu décevant: où sont les binaires 64-bit ?
En fait, Mac OS X 10.5 ("Léopard"), peut faire tourner les exécutables 32-bit et 64-bit, mais la majorité des exécutables sont toujours 32-bit.
Sous, Mac OS X 10.5 ("Léopard"), même le kernel est 32-bit:
[pbn@albert] /Users/pbn>uname -a
Darwin albert 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
[pbn@albert] /Users/pbn>file /mach_kernel
/mach_kernel: Mach-O universal binary with 2 architectures
/mach_kernel (for architecture i386): Mach-O executable i386
/mach_kernel (for architecture ppc): Mach-O executable ppc
Cependant Cocoa, et donc les librairies (ou en bon français les bibliothèques) sont en 32-bit et 64-bit. Un exemple:
[pbn@albert] /Users/pbn>file /usr/lib/libSystem.dylib
/usr/lib/libSystem.dylib: Mach-O universal binary with 4 architectures
/usr/lib/libSystem.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/lib/libSystem.dylib (for architecture ppc64): Mach-O 64-bit dynamically linked shared library ppc64
/usr/lib/libSystem.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/lib/libSystem.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
[pbn@albert] /Users/pbn>
... voilà qui est plus intéressant. On constate ici que cette librairie est un "Universal Binary" qui contient quatre binaires différents:
| 32-bit | 64-bit | |
| PowerPC | ppc7400 | ppc64 |
| Intel | i386 | x86_64 |
En fait la librairie /usr/lib/libSystem.dylib est particulièrement importante sous Mac OS X puisqu'elle contient entre autres toute la librairie glibc.
Il est logique que les librairies existent en 32-bit et 64-bit. En effet, pour pouvoir exécuter des exécutables 32-bit et 64-bit (compilés dynamiquement, en tous cas), il faut avoir quelque part les librairies à la fois en 32-bit et 64-bit.
Libellés :
64-bit,
Apple,
fat binary,
Intel,
Leopard,
Mac OS X,
Universal Binary,
Unix
dimanche 12 avril 2009
Clef USB Debian Live
Faites comme moi
Il devient parfois difficile de trouver une clef USB neuve de 2 GB. Après quelques recherches sur Internet j'ai trouvé une offre assez intéressante: la clef Kingston DataTraveler 100 2GB sur pixmania.com. Elle ne coûte pas cher, et elle a un bon rapport qualité/prix. Elle n'est pas la plus rapide (seulement 10 MB/sec en lecture), si vous cherchez plus rapide, utilisez plutôt la Corsair Flash Voyager.
Notez que je ne touche pas d'argent ni de Kingston ni de Pixmania :)
- achetez des clefs USB de 2 GB
- installez Debian Live dessus
- donnez les autour de vous
Il devient parfois difficile de trouver une clef USB neuve de 2 GB. Après quelques recherches sur Internet j'ai trouvé une offre assez intéressante: la clef Kingston DataTraveler 100 2GB sur pixmania.com. Elle ne coûte pas cher, et elle a un bon rapport qualité/prix. Elle n'est pas la plus rapide (seulement 10 MB/sec en lecture), si vous cherchez plus rapide, utilisez plutôt la Corsair Flash Voyager.

Notez que je ne touche pas d'argent ni de Kingston ni de Pixmania :)
mardi 7 avril 2009
Nouvel autorun.inf pour clef USB
Suite des aventures avec Debian Live:
Sur la partition DOCUMENTS j'ai créé un fichier autorun.inf qui contient tout simplement:
Quand je branche la clef USB dans une machine Windows, je vois ceci dans explorer.exe:
Sur la partition DOCUMENTS j'ai créé un fichier autorun.inf qui contient tout simplement:
Ceci provoque l'ouverture du fichier debian_live.html (une page web avec des explications) dans le programme qui est associé aux fichiers de type .html sur la machine Windows (le navigateur web par défaut en l'occurence).
[autorun]
icon=linux.ico
shellexecute=debian_live.html
Quand je branche la clef USB dans une machine Windows, je vois ceci dans explorer.exe:
samedi 4 avril 2009
Debian Live sur une clef USB: la solution définitive pour les partitions
Dans un post précédent (enfin il y a plus d'un an) je vous expliquais un "dilemme":
Lorsqu'on introduit une clef USB qui contient plusieurs partitions, Windows monte seulement la première partition, et aucune autre !
Ceci est embêtant car sur ma clef USB Debian Live j'ai en fait deux partitions
La solution que j'avais trouvée il y a un an fonctionnait, mais n'était pas très élégante. Je devais utiliser dd ou parted pour déplacer la partition DEBIAN_LIVE à la fin de la clef USB. Ensuite je recréais la partition DOCUMENTS comme première partition de la clef USB.
Comme me l'a suggéré Stuart (merci beaucoup !) dans un commentaire sur mon blog, il y a une solution beaucoup plus élégante. On se base sur le fait que la première partition de la table des partitions n'est pas obligatoirement la première partition sur la clef USB. La partition que Windows va monter est celle qui est la première dans la table des partitions, mais elle peut être n'importe où sur la clef USB.
Voici en pratique comment faire:
C'est beaucoup plus élégant, et ça va beaucoup plus vite !
Merci encore à Stuart...
Lorsqu'on introduit une clef USB qui contient plusieurs partitions, Windows monte seulement la première partition, et aucune autre !
Ceci est embêtant car sur ma clef USB Debian Live j'ai en fait deux partitions
- une partition DEBIAN_LIVE qui contient le système Debian Live bootable
- une partition DOCUMENTS formatée en FAT32 qui contient divers fichiers utiles
La solution que j'avais trouvée il y a un an fonctionnait, mais n'était pas très élégante. Je devais utiliser dd ou parted pour déplacer la partition DEBIAN_LIVE à la fin de la clef USB. Ensuite je recréais la partition DOCUMENTS comme première partition de la clef USB.
Comme me l'a suggéré Stuart (merci beaucoup !) dans un commentaire sur mon blog, il y a une solution beaucoup plus élégante. On se base sur le fait que la première partition de la table des partitions n'est pas obligatoirement la première partition sur la clef USB. La partition que Windows va monter est celle qui est la première dans la table des partitions, mais elle peut être n'importe où sur la clef USB.
Voici en pratique comment faire:
** Je m'occupe de ma clef USB: /dev/sdc
[root@cobra] /home/pbn/debian-live>fdisk /dev/sdc
** Je regarde les partitions
Command (m for help): p
Disk /dev/sdc: 2004 MB, 2004876800 bytes
255 heads, 63 sectors/track, 243 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00075233
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 134 1076323+ 83 Linux
** Je vois qu'il y a une partition, c'est DEBIAN_LIVE, qui commence au cylindre 1 et s'arrête au cylindre 134
** Je jette la partition 1
Command (m for help): d
Selected partition 1
** Je crée une nouvelle partition 2
** Cette partition va du cylindre 1 à 134 inclus
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1-243, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-134, default 134):
Using default value 134
** Je marque la partition 2 comme bootable
Command (m for help): a
Partition number (1-4): 2
** Je crée une nouvelle partition 1
** Cette partition va du cylindre 135 à la fin
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-243, default 1): 135
Last cylinder or +size or +sizeM or +sizeK (135-243, default 243):
Using default value 243
** Cette partition est de type 0x0b (FAT32)
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 0b
Changed system type of partition 1 to b (W95 FAT32)
** Je regarde le résultat
Command (m for help): p
Disk /dev/sdc: 2004 MB, 2004876800 bytes
255 heads, 63 sectors/track, 243 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00075233
Device Boot Start End Blocks Id System
/dev/sdc1 135 243 875542+ b W95 FAT32
/dev/sdc2 * 1 134 1076323+ 83 Linux
Partition table entries are not in disk order
* J'écris la table des partitions
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
* Ca y est on a fini !
C'est beaucoup plus élégant, et ça va beaucoup plus vite !
Merci encore à Stuart...
Libellés :
Clef USB,
Debian GNU/Linux,
Debian Live,
FAT,
FAT32,
Linux,
partitions,
Windows
samedi 21 mars 2009
Debian Live le retour
Avec la sortie de Debian GNU/Linux 5.0 "Lenny" ce 14 février je me suis attelé à me replonger à nouveau dans Debian Live.

Debian Live est, comme son nom le laisse entendre, un outil très puissant qui permet de créer une version Live (Live-CD ou Live-USB ou Live-Net) entièrement personnalisée. Je l'utilise pour générer des clefs USB bootables.
Lorsque j'arrive devant un ordinateur lambda, je n'ai qu'à brancher la clef USB, forcer la machine à booter sur le port USB, et je me retrouve en quelques secondes dans ma version personnalisée de Debian:
Bien entendu Debian Live ne touche pas au disque dur de la machine, donc vous pouvez l'utiliser sur une machine qui n'est pas à vous...
Debian Live génère des images pour CD/DVD (LiveCD), pour clef USB (LiveUSB), mais aussi des systèmes Debian Live qu'il est possible de démarrer par le réseau avec une machine qui supporte PXE. Un serveur DHCP/BOOTP et TFTP est également nécessaire pour démarrer par le réseau.
Voici l'incantation magique:
lh_config --mirror-binary http://debian-mirror:7777/debian/ --mirror-binary-security http://debian-mirror:7777/debian-security/ --mirror-bootstrap http://debian-mirror:7777/debian/ --mirror-chroot http://debian-mirror:7777/debian/ --mirror-chroot-security http://debian-mirror:7777/debian-security/ -b usb-hdd -d lenny --bootappend-live "quickreboot locale=fr_BE.UTF-8 keyb=be2-latin1" --hostname debian-live --packages "akregator alsa-base alsaplayer-text alsa-tools alsa-utils amarok atlantik audacity aumix bzip2 console-setup cupsys cupsys-bsd cupsys-client debian-goodies eject elinks enscript ethtool evolution evolution-exchange finger fortunes fortunes-fr frozen-bubble ghc6 gimp gkrellm gnuchess gwenview htop iceweasel iceweasel-l10n-fr imagemagick k3b k3b-i18n kalarm kasteroids kate kaudiocreator kcalc kcheckgmail kde-i18n-fr kdebase kdeprint keytouch kgoldrunner khangman khexedit kicker-applets kmahjongg kmix kompose kpat kpdf kpersonalizer kpoker kpowersave krdc kreversi kscreensaver kscreensaver-xsavers ksirtet ksnapshot kweather kwifimanager kwin4 laptop-detect less live-helper lftp lmms locate lsdvd lshw lsof lynx mc memtest86+ mpg321 mtools munin-node mutt ncftp network-manager-kde ntpdate octave3.0 openoffice.org openoffice.org-l10n-fr openssh-server partimage parted pinball psmisc qtparted resolvconf screen slay smb4k smbclient smlnj strace sysstat tcpdump tcsh telnet tofrodos traceroute unzip vim wamerican wdutch wfrench wget xorg xbill xboard xdaliclock xgalaga xine-plugin xine-ui x-ttcidfont-conf xscreensaver xserver-xorg xsysinfo xterm zsh" && lh_build
Note: on suppose que l'on dispose d'un miroir local appelé debian-mirror sur le port 7777. Personnellement j'utilise apt-cacher pour mon miroir local.
Ensuite sans surprise il suffit d'écrire le fichier binary.img directement sur la clef USB:
dd if=/home/pbn/debian-live/binary.img of=/dev/sdX
... où vous remplacez /dev/sdX par le périphérique correspondant à la clef USB. Attention, ne vous trompez pas de périphérique, sinon vous risquez d'effacer le contenu de votre disque dur ! Je vous aurai prévenu...
Debian Live est, comme son nom le laisse entendre, un outil très puissant qui permet de créer une version Live (Live-CD ou Live-USB ou Live-Net) entièrement personnalisée. Je l'utilise pour générer des clefs USB bootables.
Lorsque j'arrive devant un ordinateur lambda, je n'ai qu'à brancher la clef USB, forcer la machine à booter sur le port USB, et je me retrouve en quelques secondes dans ma version personnalisée de Debian:
- choix des paquets installés
- ajout de mes propres programmes personnalisés
- configuration du fond d'écran, de l'écran de veille
- configuration des locales, des langues disponibles
Bien entendu Debian Live ne touche pas au disque dur de la machine, donc vous pouvez l'utiliser sur une machine qui n'est pas à vous...
Debian Live génère des images pour CD/DVD (LiveCD), pour clef USB (LiveUSB), mais aussi des systèmes Debian Live qu'il est possible de démarrer par le réseau avec une machine qui supporte PXE. Un serveur DHCP/BOOTP et TFTP est également nécessaire pour démarrer par le réseau.
Voici l'incantation magique:
lh_config --mirror-binary http://debian-mirror:7777/debian/ --mirror-binary-security http://debian-mirror:7777/debian-security/ --mirror-bootstrap http://debian-mirror:7777/debian/ --mirror-chroot http://debian-mirror:7777/debian/ --mirror-chroot-security http://debian-mirror:7777/debian-security/ -b usb-hdd -d lenny --bootappend-live "quickreboot locale=fr_BE.UTF-8 keyb=be2-latin1" --hostname debian-live --packages "akregator alsa-base alsaplayer-text alsa-tools alsa-utils amarok atlantik audacity aumix bzip2 console-setup cupsys cupsys-bsd cupsys-client debian-goodies eject elinks enscript ethtool evolution evolution-exchange finger fortunes fortunes-fr frozen-bubble ghc6 gimp gkrellm gnuchess gwenview htop iceweasel iceweasel-l10n-fr imagemagick k3b k3b-i18n kalarm kasteroids kate kaudiocreator kcalc kcheckgmail kde-i18n-fr kdebase kdeprint keytouch kgoldrunner khangman khexedit kicker-applets kmahjongg kmix kompose kpat kpdf kpersonalizer kpoker kpowersave krdc kreversi kscreensaver kscreensaver-xsavers ksirtet ksnapshot kweather kwifimanager kwin4 laptop-detect less live-helper lftp lmms locate lsdvd lshw lsof lynx mc memtest86+ mpg321 mtools munin-node mutt ncftp network-manager-kde ntpdate octave3.0 openoffice.org openoffice.org-l10n-fr openssh-server partimage parted pinball psmisc qtparted resolvconf screen slay smb4k smbclient smlnj strace sysstat tcpdump tcsh telnet tofrodos traceroute unzip vim wamerican wdutch wfrench wget xorg xbill xboard xdaliclock xgalaga xine-plugin xine-ui x-ttcidfont-conf xscreensaver xserver-xorg xsysinfo xterm zsh" && lh_build
Note: on suppose que l'on dispose d'un miroir local appelé debian-mirror sur le port 7777. Personnellement j'utilise apt-cacher pour mon miroir local.
Ensuite sans surprise il suffit d'écrire le fichier binary.img directement sur la clef USB:
dd if=/home/pbn/debian-live/binary.img of=/dev/sdX
... où vous remplacez /dev/sdX par le périphérique correspondant à la clef USB. Attention, ne vous trompez pas de périphérique, sinon vous risquez d'effacer le contenu de votre disque dur ! Je vous aurai prévenu...
Libellés :
Clef USB,
Debian GNU/Linux,
Debian Live,
Linux
dimanche 21 septembre 2008
Une commande Debian GNU/Linux peu connue: saidar
Lorsque vous désirez surveiller l'utilisation des ressources d'une machine dans un xterm, vous connaissez certainement top et htop.
Mais il existe une commande peu connue mais qui peut être utile:saidar.
Un peu d'information:
Pour l'installer:
(en tant que root)
Pour l'utiliser:
(pas besoin d'être root)
Mais il existe une commande peu connue mais qui peut être utile:saidar.
Un peu d'information:
[pbn@cobra] /home/pbn>aptitude show saidar
Package: saidar
State: installed
Automatically installed: no
Version: 0.13-1
Priority: optional
Section: utils
Maintainer: Bartosz Fenski
Uncompressed Size: 102k
Depends: libc6 (>= 2.3.5-1), libncurses5 (>= 5.4-5), libstatgrab6
Description: curses-based program which displays live system statistics
saidar is a curses-based application to display system statistics. Statistics
include CPU, processes, load, memory, swap, network I/O and disks I/O along
with their free space.
saidar utilizes libstatgrab library.
Homepage: http://www.i-scream.org/libstatgrab/
Tags: uitoolkit::ncurses
Pour l'installer:
(en tant que root)
[root@cobra] /home/pbn> aptitude-install saidar
Pour l'utiliser:
(pas besoin d'être root)
[pbn@cobra] /home/pbn>saidar
Libellés :
Debian GNU/Linux,
Linux,
Open Source
vendredi 8 août 2008
version preliminaire 0.0.7 de munin node pour Mac OS X
En ce 08/08/2008, voici une nouvelle version de ma version préliminaire de munin-node pour Mac OS X.
Il y a maintenant six plugins:
cpu, df, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.7.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
Il y a maintenant six plugins:
cpu, df, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.7.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
vendredi 18 juillet 2008
photo de mon site sur un des premiers iPhone 3G de Belgique
Un petit événement: cet après-midi, j'ai pu naviguer sur mon site à l'aide d'un des premiers iPhone 3G de Belgique. Voyez la photo:

Voici les entrées du log d'Apache:
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET / HTTP/1.1" 200 5995 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/powered_by_debian.png HTTP/1.1" 200 2761 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/64711.png HTTP/1.1" 200 3626 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/pbn_egypte.png HTTP/1.1" 200 265094 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"

Voici les entrées du log d'Apache:
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET / HTTP/1.1" 200 5995 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/powered_by_debian.png HTTP/1.1" 200 2761 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/64711.png HTTP/1.1" 200 3626 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
194.78.xx.xx - - [18/Jul/2008:11:17:49 +0000] "GET /images/pbn_egypte.png HTTP/1.1" 200 265094 "http://pierre.baudu.in/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20"
mardi 15 juillet 2008
the OpenBSD crowd is a bunch of masturbating monkeys
Le créateur du kernel Linux, Linus Torvalds lui-même, a fait preuve d'un certain franc-parler sur la liste de distribution linux.kernel:
"I think the OpenBSD crowd is a bunch of masturbating monkeys"
Linus Torvalds
Voyez le texte original du post
"I think the OpenBSD crowd is a bunch of masturbating monkeys"
Linus Torvalds
Voyez le texte original du post
samedi 12 juillet 2008
version préliminaire 0.0.5 de munin node pour Mac OS X
Voici une nouvelle version de ma version préliminaire de munin-node pour Mac OS X.
Cette version corrige quelques petits bugs par rapport à la précedente. En particulier le fichier
/var/run/munin/munin-node.pid n'est plus créé par Net::Server
Il y a toujours cinq plugins:
cpu, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.5.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
Cette version corrige quelques petits bugs par rapport à la précedente. En particulier le fichier
/var/run/munin/munin-node.pid n'est plus créé par Net::Server
Il y a toujours cinq plugins:
cpu, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.5.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
mercredi 9 juillet 2008
version préliminaire 0.0.4 de munin-node pour Mac OS X
Voici une nouvelle version de ma version préliminaire de munin-node pour Mac OS X.
Cette version corrige quelques bugs par rapport à la précedente.
Il y a maintenant cinq plugins:
cpu, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.4.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
Cette version corrige quelques bugs par rapport à la précedente.
Il y a maintenant cinq plugins:
cpu, load, processes, uptime, users
Bien entendu vous êtes libres d'écrire des plugins supplémentaires :)
Pour l'utiliser, téléchargez ce fichier et allez dans /usr/local et décompressez le fichier (créez /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.4.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Lisez ensuite la suite des instructions dans le fichier readme.txt
samedi 5 juillet 2008
version préliminaire 0.0.3 de munin-node pour Mac OS X
Voici (enfin) une version préliminaire de munin-node pour Mac OS X
Comment l'installer ?
D'abord je télécharge le fichier
munin-1.2.5-pbn-macosx-experimental-0.0.3.tar.gz

Attention vous allez travailler en ligne de commande avec sudo. Soyez attentif...
Je vais dans dans /usr/local et je décompresse le fichier (je crée /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.3.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Je regarde la liste des groupes existants et de leur gid:
$ dscl . list /Groups gid | sort -n -k 2 | less
Je crée le groupe munin. ATTENTION: Je veille à lui donner un gid qui n'est pas encore utilisé:
$ sudo dscl . -create /Groups/munin gid 144
$ sudo dscl . -create /Groups/munin passwd 42ab7u
Je copie dans /Library/LaunchDaemons le fichier qui se trouve dans le répertoire
/usr/local/munin-1.2.5-pbn-experimental/copy_the_file_in_this_directory_to_Library_LaunchDaemons:
en faisant:
$ sudo cp -P /usr/local/munin-1.2.5-pbn-experimental/copy_the_file_in_this_directory_to_Library_LaunchDaemons/localhost.munin-node.plist
/Library/LaunchDaemons
Je n'oublie d'aller modifier le fichier /usr/local/munin-1.2.5-pbn-experimental/etc/munin/munin-node.conf
en y indiquant l'adresse IP de mon serveur munin en mettant allow ^10\.20\.10\.1 dans mon cas
Ensuite je redémarre la machine (ou, pour les utilisateurs avancés, je lance manuellement le démon en faisant launchctl start local.munin-node.plist)
... et voilà, munin-node est installé et tourne !
Comment l'installer ?
D'abord je télécharge le fichier
munin-1.2.5-pbn-macosx-experimental-0.0.3.tar.gz

Attention vous allez travailler en ligne de commande avec sudo. Soyez attentif...
Je vais dans dans /usr/local et je décompresse le fichier (je crée /usr/local s'il n'existe pas déjà)
$ sudo mkdir /usr/local
$ cd /usr/local
$ sudo tar --preserve -zxvf munin-1.2.5-pbn-macosx-experimental-0.0.3.tar.gz
Un répertoire /usr/local/munin-1.2.5-pbn-experimental a été créé
Je regarde la liste des groupes existants et de leur gid:
$ dscl . list /Groups gid | sort -n -k 2 | less
Je crée le groupe munin. ATTENTION: Je veille à lui donner un gid qui n'est pas encore utilisé:
$ sudo dscl . -create /Groups/munin gid 144
$ sudo dscl . -create /Groups/munin passwd 42ab7u
Je copie dans /Library/LaunchDaemons le fichier qui se trouve dans le répertoire
/usr/local/munin-1.2.5-pbn-experimental/copy_the_file_in_this_directory_to_Library_LaunchDaemons:
en faisant:
$ sudo cp -P /usr/local/munin-1.2.5-pbn-experimental/copy_the_file_in_this_directory_to_Library_LaunchDaemons/localhost.munin-node.plist
/Library/LaunchDaemons
Je n'oublie d'aller modifier le fichier /usr/local/munin-1.2.5-pbn-experimental/etc/munin/munin-node.conf
en y indiquant l'adresse IP de mon serveur munin en mettant allow ^10\.20\.10\.1 dans mon cas
Ensuite je redémarre la machine (ou, pour les utilisateurs avancés, je lance manuellement le démon en faisant launchctl start local.munin-node.plist)
... et voilà, munin-node est installé et tourne !
lundi 9 juin 2008
Voici enfin l'iPhone 3G !
Aujourd'hui à la WWDC 2008 à San Francisco, on s'y attendait mais...
Steve Jobs a présenté...
... le nouvel iPhone !

C'est l'iPhone 3G.
Comme son nom l'indique, il supporte la technologie 3G
Mais ce n'est pas tout:
(Mais c'est la théorie, en pratique, ce sera plus tard...)
Lien sur "The Unofficial Apple Weblog"
Lien officiel Apple (apple.com)
Lien officiel Apple Belgique
Steve Jobs a présenté...
... le nouvel iPhone !

C'est l'iPhone 3G.
Comme son nom l'indique, il supporte la technologie 3G
Mais ce n'est pas tout:
- il supporte le GPS
- il ne coûte que $199 pour la version 8GB
- il supporte bien entendu ce que son prédecesseur supportait déja: EDGE/GPRS, le WiFi, Google Mail
(Mais c'est la théorie, en pratique, ce sera plus tard...)
Lien sur "The Unofficial Apple Weblog"
Lien officiel Apple (apple.com)
Lien officiel Apple Belgique
samedi 24 mai 2008
PartitionMagic 8.0 ... depuis 6 ans ?!
Il y a un certain nombre d'outils qui permettent de créer, agrandir, modifier, transférer des partitions et des systèmes de fichier.
Il existe des outils Open Source:
... qui sont en fait tous basés sur la librairie GNU parted
Il existe des outils commerciaux:
Je démarre par hasard sur une disquette bootable de Partition Magic 8.0, et je suis assez surpris de lire:
Eh bien ? Les gens utilisent Partition Magic 8.0 depuis 2002, et nous sommes en 2008. Cela fait six ans avec la même version. C'est assez étaonnant car dans le domaine des systèmes de fichiers, de nouveaux systèmes de fichiers apparaissent: ext3, ext4, ReiserFS, xfs, zfs, le futur WinFS. Il faut aussi dire qu'entretemps Symantec a racheté PowerQuest, développeur de Partition Magic.
Peut-être que, comme Partition Magic devient un produit Symantec, c'est moins bon :)
Aura-t-on un jour un PartitionMagic 9.0 ? Ou au moins un 8.5 ? Ou un petit 8.1 ?
Il existe des outils Open Source:
... qui sont en fait tous basés sur la librairie GNU parted
Il existe des outils commerciaux:
- le plus connu: PartitionMagic 8.0
- moins connu: Acronis Disk Director
Je démarre par hasard sur une disquette bootable de Partition Magic 8.0, et je suis assez surpris de lire:
PartitionMagic 8.04
Copyright 1994-2002, Powerquest Corporation
All rights reserved.
Eh bien ? Les gens utilisent Partition Magic 8.0 depuis 2002, et nous sommes en 2008. Cela fait six ans avec la même version. C'est assez étaonnant car dans le domaine des systèmes de fichiers, de nouveaux systèmes de fichiers apparaissent: ext3, ext4, ReiserFS, xfs, zfs, le futur WinFS. Il faut aussi dire qu'entretemps Symantec a racheté PowerQuest, développeur de Partition Magic.
Peut-être que, comme Partition Magic devient un produit Symantec, c'est moins bon :)
Aura-t-on un jour un PartitionMagic 9.0 ? Ou au moins un 8.5 ? Ou un petit 8.1 ?
jeudi 24 avril 2008
Microsoft va installer un centre d'innovation à Mons
Dans ce post précédent j'apprenais dans un article du Soir du 28 mars 2008 que pour équiper les 40.000 nouveaux ordinateurs des écoles, la Région Wallonne envisagait de choisir OpenOffice.org plutôt que Microsoft Office.
Moins d'un mois plus tard, j'apprends dans un article du Soir du 24 avril 2008 que Microsoft vai installer un centre d'innovation à Mons.
Faut il voir un lien entre ces deux événements ?
Moins d'un mois plus tard, j'apprends dans un article du Soir du 24 avril 2008 que Microsoft vai installer un centre d'innovation à Mons.
Faut il voir un lien entre ces deux événements ?
lundi 14 avril 2008
Créer un groupe sous Mac OS X
Après avoir vu dans un post précédent comment créer un utilisateur sous Mac OS X, voyons aujourd'hui comment créer un groupe.
Ceci ne fonctionne qu'à partir de Mac OS X Tiger, car les versions antérieures utilisaient NetInfo et pas dscl.
On utilise à nouveau la commande dscl:
sudo dscl . -create /Groups/mongroupe gid xxxx
sudo dscl . -create /Groups/mongroupe passwd 42ez7a
A la place de xxxx indiquez un gid valide.
(où xxxx est le GID, faites bien attention d'en choisir un qui n'existe pas déjà, pour voir la liste des groupes existants et leurs gid dans l'ordre croissant: dscl . list /Groups gid | sort -n -k 2)
Pour ajouter l'utilisateur toto au groupe mongroupe:
sudo dscl . -merge /Groups/mongroupe users toto
Je l'ai testé sur Mac OS X Tiger et Mac OS X Léopard
Ceci ne fonctionne qu'à partir de Mac OS X Tiger, car les versions antérieures utilisaient NetInfo et pas dscl.
On utilise à nouveau la commande dscl:
sudo dscl . -create /Groups/mongroupe gid xxxx
sudo dscl . -create /Groups/mongroupe passwd 42ez7a
A la place de xxxx indiquez un gid valide.
(où xxxx est le GID, faites bien attention d'en choisir un qui n'existe pas déjà, pour voir la liste des groupes existants et leurs gid dans l'ordre croissant: dscl . list /Groups gid | sort -n -k 2)
Pour ajouter l'utilisateur toto au groupe mongroupe:
sudo dscl . -merge /Groups/mongroupe users toto
Je l'ai testé sur Mac OS X Tiger et Mac OS X Léopard
Inscription à :
Articles (Atom)
