# [How-to] Wmii et Plan9

## fb99

traduction de ce howto italien de lavish [HOW-TO] wmii e Plan9

Déroulement

Introduction

Installation

wmii ( obligatoire )

9base ( obligatoire )

Plan9Port (facultatif )

Configuration

Conclusion

Introduction

Qu'est-ce que plan9 ?

Plan9 est un système d'exploitation Open Source né dans les laboratoires Bell à la fin des années 80' et encore développé à ce jour.

En pratique, il se présente comme étant similaire à un système Unix, mais en réalité il est profondément différent. En fait Plan9 se voulait être un OS focalisé sur le networking à la différence d'un système typique Unix dans lequel  il est considérer, de norme, comme un ajout.

Beaucoup d'outils disponibles pour Unix sont présents, mais ils ont été complètement réécrits et améliorés pour la plupart.

Plan9 e été développé autour du principe que tous les objets du système (fichier, processus, périphériques, mécanisme de communication,...) sont couplés (i.e tout réseau) dans un name space dans le système de fichier autour duquel les manipulations des objets se font d'une manière cohérente.

voir aussi info sur wikipedia http://fr.wikipedia.org/wiki/Plan_9 + liens externes 

Voici une liste de features trouvé sur le site officiel: -->http://www.cs.bell-labs.com/plan9dist/

```
    * The dump file system makes a daily "snapshot" of the filestore available to users 

    * Unicode character set support throughout the system 

    * Advanced kernel synchronization facilities for parallel processing 

    * ANSI/POSIX environment emulator (APE) 

    * Plumbing, a language driven way for applications to communicate 

    * Acme - an editor, shell and window system for programmers 

    * Sam - a screen editor with structural regular expressions 

    * Support for MIME mail messages and IMAP4 

    * Security - there is no super-user or root, and passwords are never sent over the network 

    * Venti - archival storage 

    * Fossil - Unix-like file system built on top of Venti 
```

Plan9 est disponible pour un grand nombre d'architecture: Intel x86, Sparc, Alpha, Power PC, and Arm.

Il peut entre autre être utiliser in User Space à l'intérieur d'autres OS Unix et Unix-like :Linux (x86, PowerPC, and ARM), FreeBSD (x86), Mac OS X (Power PC), NetBSD (x86 and PowerPC), OpenBSD (x86 and PowerPC), SunOS (Sparc). 

Qu'est-ce que wmii ?

Sur le site officiel du projet on peut lire «  wmii is a dynamic window manager for X11 ». En réalité cette définition est trop générique et il serait mieux de dire che wmii est un window manager avec des layouts dynamiques pour X11. Il est extémement configurable et très riche en features. Il supporte divers type d'organisation de fenêtre sur le bureau, parmi lesquels:

```
* Floating Layout (disposition conventionelle) 

    * Tiled Layout (disposition horizontale avec un frame principal) 

    * Vertical Layout (disposition verticale) 

    * Grid Layout (disposition à damier)
```

Les architecture supportées sont aussi nombreuses: Linux, *BSD, Mac OS X, Solaris.

PLan9 et wmii

Quel est le lien entre ces 2 projets ?

Wmii implémente une interface de communication entre les processus conforme au protocol 9P2000[/ur] introduit par Plan9.

En outre, wmii utilise comme language de code pour la configuration [url=http://www.star.le.ac.uk/~tjg/rc/misc/td]rc le shell originale de Plan9.

Installation

Elle comprend obligatoirement 2 paquets: wmii et 9base.

Wmii est le window manager à proprement parler, alors que 9base est un apport  des outils suivant de Plan9 sur Unix :

```
# awk 

# basename 

# bc 

# cat 

# cleanname 

# date 

# echo 

# grep 

# rc 

# sed 

# seq 

# sleep 

# sort 

# tee 

# test 

# touch 

# tr 

# uniq 
```

Comme je l'avais déjà dit précédemment, ses outils sont indispensable puisque wmii  utilise pour la configuration ( de la version 3 encore en développement) la language de code de rc, le shell original de Plan9.

Je présenterai aussi, facultativement l'installation de Plan9 en User Space.

Wmii --> obligatoire

La dernière release stable du wm est la 2 ( présente dans portage  :Wink: ).

Pour ma part, je vais m'atteler à l'installation du plus récent

 snapshot de développement ( à ce jour 18/11/2005), considéré comme une minor stable release par le développeur. La raison de ce choix, réside dans le fait que dans wmii-2, sh était encore utilisé comme shell de scripting et de ce fait la configuration est complètement différente de celle de la version 3 et suivante.

Préparation d'un répertoire ou  et compiler les sources:

```
$ mkdir -p ~/sources/wmii 

$ cd ~/sources/wmii 

$ wget http://wmii.de/snaps/wmii-20051114.tar.gz 

$ tar -xzf wmii-20051114.tar.gz 

$ cd wmii-20051114 
```

À ce point, éditez le fichier config.mk si vous désirez changer quelques options. Si cela vous convient tel quel, wmii sera installé dans /usr/local.

La compilation est très facile :

```
$ su 

<passwd> 

# make clean install 
```

wmii installé  :Wink: .

Avant de pouvoir le tester, il est nécessaire d'installer 9base, sinon vous ne serez pas en mesure de démarrer le wm.

9base --> obligatoire

En ce qui le concerne, nous allons aussi installer le dernier snapshot disponible :

```
$ cd ~/sources 

$ mkdir 9base 

$ cd 9base 

$ wget http://wmii.de/snaps/9base-20051114.tar.gz 

$ tar -xzf 9base-20051114.tar.gz 

$ cd 9base-20051114 
```

Maintenant il s'agit de compiler d'installer les outils avec la même procédure adopter pour wmii.

Toutefois soyez attentifs à ne pas remplacer vos outils par ceux de Plan9  !!! Afin d'éviter ce désagrément , je vous conseil de laissé intact le config.mk pour cette fois. Pas touche ok   :Twisted Evil:  . L'installation se fera donc par défaut dans /usr/local.

```
$ su 

<passwd> 

# make clean install 
```

Dès à présent, vous pouvez  accéder à wmii !! Si vous êtes aussi intéressés à l'installation du port de Plan9 sur Unix, lisez le paragraphe suivant, sinon passez directement à la section configuration.

Plan9Port --> facultatif

Je vous déjà présenté un brève aperçu de Plan9. Si vous voulez approfondire le port sur Unix et les différents programmes disponibles, je vous renvoie à la page officiel

Nous allons donc exécuter un checkout du cvs et compiler le sw:

```
$cd ~/sources 

$ cvs -d :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs checkout plan9 

$ cd plan9 

$ ./INSTALL 
```

à la fin de la compilation, seront affichées les différentes valeurs suggérées pour la variable $PLAN9 et $PATH

Configuration

Premier lancement

Pour démarrer wmii, vous devrez modifier ( ou créer si vous ne l'avez pas déjà), il fichier ~/.xinitrc, en insérant:

```
exec wmii 
```

A ce point tout est  prêt pour tester votre nouveau wm.  :Wink: 

Comme d'habitude, après le chargement, apparaîtra le README, LISEZ-LE, sinon vous ne saurez pas comment vous déplacer, je vous le dit clair et net.  :Wink: 

Vous pouvez aussi lire l'introduction aux commandes principales avant d'aller plus loin. --> http://wmii.de/repos/wmii-2/doc/welcome.txt

elle se réfère encore à wmii-2 mais pour l'instant celà devrait suffir.

Fichier de configuration 

Ces derniers lors d'une installation par défaut se trouve dans /usr/local/etc/wmii-3/

```
$ ls /usr/local/etc/wmii-3/ 

extern  quit    welcome 

kmode   status  wmirc
```

copier le wmirc et status dans votre $HOME afin de pouvoir le personnaliser :

```
$ cp /usr/local/etc/wmii-3/status ~/.wmii-3/ 

$ cp /usr/local/etc/wmii-3/wmirc ~/.wmii-3/ 
```

wmirc définit les couleurs, les raccourcis, le wallpaper et les choses de ces genres, alors que status est le script rc qui nous pouvons modifier pour personnaliser les autres aspects du wm, par exemple la barre des tâches.

Voilà mes deux fichiers de conf. avec explication des ajouts:

wmirc

J'ai changé le thème:

```
SELECTED_BG_COLOR='#4f5153' 

SELECTED_FG_COLOR='#ffffff' 

SELECTED_BORDER_COLOR='#4f5153' 

NORMAL_BG_COLOR='#353535' 

NORMAL_FG_COLOR='#e0e0e0' 

NORMAL_BORDER_COLOR='#353535' 

TEXT_FONT='-artwiz-snap-normal-*-*-*-*-*-*-*-*-*-*-*' 
```

J'ai changé le MODKEY de alt au bouton WIN.

```
MODKEY=WIN
```

ensuite j'en ai changé son action

```
kbind normal $MODKEY-t 'extern aterm' 
```

de façon à associer à MODKEY+t  le changement de aterm à la place de xterm.

J'ai édité cette ligne 

```
wmir write /wm/default/page/tile-width 80 
```

pour mettre à 80 % la dimension de la frame principale dans le tiled layout

j'ai personnalisé le fond d'écran avec un wallpaper:

```
fbsetbg /home/lavish/fade.png 
```

Et voilà la fichier dans son intégrité:

```
#!/usr/local/9/bin/rc 

# configure wmii 

TAB_HEIGHT=16 

BAR_HEIGHT=16 

BORDER_WIDTH=3 

SELECTED_BG_COLOR='#4f5153' 

SELECTED_FG_COLOR='#ffffff' 

SELECTED_BORDER_COLOR='#4f5153' 

NORMAL_BG_COLOR='#353535' 

NORMAL_FG_COLOR='#e0e0e0' 

NORMAL_BORDER_COLOR='#353535' 

TEXT_FONT='-artwiz-snap-normal-*-*-*-*-*-*-*-*-*-*-*' 

MODKEY=WIN 

NORTHKEY=k 

SOUTHKEY=j 

WESTKEY=h 

EASTKEY=l 

nl=' 

' 

fn kbind { 

    wmir create /keys/mode/$1/$2 $3 

} 

fn selstyle { 

    wmir write $1/text-font $TEXT_FONT 

    wmir write $1/text-color $SELECTED_FG_COLOR 

    wmir write $1/bg-color $SELECTED_BG_COLOR 

    wmir write $1/border-color $SELECTED_BORDER_COLOR 

} 

fn normstyle { 

    wmir write $1/text-font $TEXT_FONT 

    wmir write $1/text-color $NORMAL_FG_COLOR 

    wmir write $1/bg-color $NORMAL_BG_COLOR 

    wmir write $1/border-color $NORMAL_BORDER_COLOR 

} 

fn items { 

    ifs=:$nl { dirs=`{echo $2} } 

    { 

        for(dir in $dirs) { 

            for(file in $dir/*) { 

                if(! ~ $file $dir^'/*' && ! test -d $file && test -x $file) { 

                    file=`{basename $file} 

                    echo create /menu/items/$1/$"file $"file 

                } 

            } 

        } 

    } | sort | wmir -f & 

} 

fn frameconf { 

    wmir write $1/event/b3press 'wmir write /wm/page/sel/ctl toggle' 

    wmir write $1/event/b2press 'wmir write /wm/ctl close' 

    normstyle $1/norm-style 

    selstyle $1/sel-style 

    wmir write $1/tab-height $TAB_HEIGHT 

    if(~ $2 refresh) 

        wmir write $1/size +0,+0,+0,+0  # causes refresh 

} 

fn framesconf { 

    for(frame in `{wmir read $1 | grep '^[0-9]'}) 

        frameconf $1/$frame $2 

} 

# WMIBAR CONFIGURATION 

fn barsucks { 

    wmir write /bar/$1/b1press 'wmir write /wm/ctl ''select prev''' 

    wmir write /bar/$1/b3press 'wmir write /wm/ctl ''select next''' 

    wmir write /bar/$1/b4press 'wmir write /wm/ctl ''select prev''' 

    wmir write /bar/$1/b5press 'wmir write /wm/ctl ''select next''' 

} 

wmir write /bar/ctl reset 

wmir write /bar/font $TEXT_FONT 

wmir write /bar/fgcolor $NORMAL_FG_COLOR 

wmir write /bar/bgcolor $NORMAL_BG_COLOR 

wmir write /bar/bordercolor $NORMAL_BORDER_COLOR 

plab=`{wmir read /bar/new} 

wmir write /bar/$plab/b1press 'wmir write /wm/ctl pager' 

clab=`{wmir read /bar/new} 

wmir write /bar/$clab/fgcolor $SELECTED_FG_COLOR 

wmir write /bar/$clab/bgcolor $SELECTED_BG_COLOR 

wmir write /bar/$clab/bordercolor $SELECTED_BG_COLOR 

barsucks $clab 

wmir write /bar/expandable 2 

wmir write /bar/geometry 0,south,east,$BAR_HEIGHT 

wmir write /bar/ctl 'display 1' 

# WMIIWM CONFIGURATION 

# default layout (tiled, max, grid or vsplit): 

wmir write /wm/default/page/layout tiled 

# width of the left frame in tiled layout in percent: 

wmir write /wm/default/page/tile-width 80 

wmir write /wm/default/core/trans-color $SELECTED_BG_COLOR 

wmir write /wm/default/frame/handle-inc 1 

# some broken WIMP apps: 

wmir create /wm/default/client/'xmms:*'/manage 0 

wmir create /wm/default/client/'Gimp:*'/manage 0 

wmir write /wm/default/frame/border-width $BORDER_WIDTH 

wmir write /wm/default/page/size '0,0,east,south-'^$BAR_HEIGHT 

wmir write /wm/event/client-update \ 

'text=`{wmir read /wm/page/sel/mode/sel/client/sel/name} \ 

wmir write /bar/'^$clab^'/data $"text' 

wmir write /wm/event/page-update \ 

'text=`{wmir read /wm/page/sel/name} ^ \ 

`{wmir read /wm/page/sel/mode/name|awk ''{print substr($0,0,1)}''} ^ \ 

`{wmir read /keys/lookup|awk ''{print substr($0,7,1)}''} \ 

wmir write /bar/'^$plab^'/data $"text' 

for(page in `{wmir read /wm/page | grep '^[0-9]'}) { 

    framesconf /wm/page/$page/floating refresh 

    framesconf /wm/page/$page/managed refresh 

} 

frameconf /wm/default/frame norefresh 

for(i in norm-style norm-style/client) 

    normstyle /wm/default/core/pager/$i 

for(i in sel-style sel-style/client) 

    selstyle /wm/default/core/pager/$i 

wmir write /wm/page/sel/managed/size 0,0,east,south-$BAR_HEIGHT >[2]/dev/null 

# WMIKEYS CONFIGURATION 

kbind bare $MODKEY-Escape 'kmode normal' 

kbind move Escape 'kmode normal' 

kbind move $MODKEY-C-r 'kmode resize' 

kbind move $NORTHKEY 'wmir write /wm/page/sel/mode/sel/size -0,-30,-0,-0' 

kbind move $SOUTHKEY 'wmir write /wm/page/sel/mode/sel/size +0,+30,+0,+0' 

kbind move $WESTKEY 'wmir write /wm/page/sel/mode/sel/size -40,-0,-0,-0' 

kbind move $EASTKEY 'wmir write /wm/page/sel/mode/sel/size +40,+0,+0,+0' 

kbind move S-$NORTHKEY 'wmir write /wm/page/sel/mode/sel/size -0,north,-0,-0' 

kbind move S-$SOUTHKEY 'wmir write /wm/page/sel/mode/sel/size +0,south-'^$BAR_HEIGHT^',+0,+0' 

kbind move S-$WESTKEY 'wmir write /wm/page/sel/mode/sel/size west,-0,-0,-0' 

kbind move S-$EASTKEY 'wmir write /wm/page/sel/mode/sel/size east,+0,+0,+0' 

kbind resize Escape 'kmode normal' 

kbind resize $MODKEY-C-m 'kmode move' 

kbind resize $NORTHKEY 'wmir write /wm/page/sel/mode/sel/size +0,+0,+0,-30' 

kbind resize $SOUTHKEY 'wmir write /wm/page/sel/mode/sel/size +0,+0,+0,+30' 

kbind resize $WESTKEY 'wmir write /wm/page/sel/mode/sel/size +0,+0,-40,+0' 

kbind resize $EASTKEY 'wmir write /wm/page/sel/mode/sel/size +0,+0,+40,+0' 

kbind normal $MODKEY-C-b 'kmode bare' 

kbind normal $MODKEY-C-m 'kmode move' 

kbind normal $MODKEY-C-r 'kmode resize' 

kbind normal $MODKEY-C-a 'wmir write /menu/precmd ''''; wmir write /menu/lookup /items/actions; wmir write /menu/ctl ''display 1''' 

kbind normal $MODKEY-C-p 'wmir write /menu/precmd extern; wmir write /menu/lookup /items/programs; wmir write /menu/ctl ''display 1''' 

kbind normal $MODKEY-C-c 'wmir write /wm/ctl close' 

kbind normal $MODKEY-C-q,y quit 

kbind normal $MODKEY-C-w,y wmirc 

kbind normal $MODKEY-t 'extern aterm' 

kbind normal $MODKEY-d 'wmir write /wm/ctl detach' 

kbind normal $MODKEY-a 'wmir write /wm/ctl attach' 

kbind normal $MODKEY-S-a 'wmir write /wm/ctl icons' 

kbind normal $MODKEY-S-space 'wmir write /wm/page/sel/ctl toggle' 

kbind normal $MODKEY-Return 'wmir write /wm/page/sel/ctl ''select zoomed''' 

kbind normal $MODKEY-C-y 'wmir write /wm/ctl new' 

kbind normal $MODKEY-u 'wmir write /wm/page/sel/mode/sel/locked 0' 

kbind normal $MODKEY-S-u 'wmir write /wm/page/sel/mode/sel/locked 1' 

kbind normal $MODKEY-m 'wmir write /wm/ctl togglemax' 

kbind normal $MODKEY-S-t 'wmir write /wm/page/sel/managed/name tiled' 

kbind normal $MODKEY-S-g 'wmir write /wm/page/sel/managed/name grid' 

kbind normal $MODKEY-S-v 'wmir write /wm/page/sel/managed/name vsplit' 

kbind normal $MODKEY-S-f 'wmir write /wm/page/sel/managed/name float' 

kbind normal $MODKEY-S-m 'wmir write /wm/page/sel/managed/name max' 

kbind normal $MODKEY-$WESTKEY 'wmir write /wm/ctl ''select prev''' 

kbind normal $MODKEY-$EASTKEY 'wmir write /wm/ctl ''select next''' 

kbind normal $MODKEY-Tab 'wmir write /wm/page/sel/ctl ''select next''' 

kbind normal $MODKEY-$SOUTHKEY 'wmir write /wm/page/sel/ctl ''select next''' 

kbind normal $MODKEY-$NORTHKEY 'wmir write /wm/page/sel/ctl ''select prev''' 

kbind normal $MODKEY-S-Tab 'wmir write /wm/page/sel/mode/sel/ctl ''select next''' 

kbind normal $MODKEY-S-$SOUTHKEY 'wmir write /wm/page/sel/mode/sel/ctl ''select next''' 

kbind normal $MODKEY-S-$NORTHKEY 'wmir write /wm/page/sel/mode/sel/ctl ''select prev''' 

kbind normal $MODKEY-space 'wmir write /wm/page/sel/ctl ''select toggled''' 

kbind normal $MODKEY-S-p 'wmir write /wm/ctl pager' 

kbind normal $MODKEY-S-0 'wmir write /wm/ctl ''select 10''' 

for(i in 1 2 3 4 5 6 7 8 9) { 

    kbind normal $MODKEY-S-$i 'wmir write /wm/ctl ''select '^$i^'''' 

} 

wmir write /keys/size center,center,100,$BAR_HEIGHT 

selstyle /keys/box/style 

kmode normal 

# WMIMENU CONFIGURATION 

items actions $WMII_CONFDIR:$HOME/.wmii-3 

wmir create /menu/items/actions/rmpage 'wmir write /wm/ctl destroy' 

items programs $OLD_PATH 

wmir write /menu/size 0,south,east,$BAR_HEIGHT 

normstyle /menu/style >[2]/dev/null 

normstyle /menu/norm-style >[2]/dev/null 

selstyle /menu/sel-style >[2]/dev/null 

# MISC 

fbsetbg /home/lavish/fade.png 

status & 
```

status

pour comprendre la synthaxe de ce script, il vous faut impérativement lire le manuel de rc, le shell de Plan9 puisque beaucoup de constructionsson totalement différentes de bash ou de sh.

te script ci-dessous est celui nécessaire pour obtenir les indications sur la wmiibar:[url]

http://lavish.homelinux.org/ftp/public/images/screenshots/wmii-3-171105.png [/url]

Je ne le mets pas pour que vous l'utilisiez tel quel, mais pour qu'il vous serve d'indications pour créer votre propre script selon vos préférence. En fait j'ai utiliser les avantages de wmii pour créer les meters (la barre en bas du screenshot), les colorier, les déplacer, créer des labels et les remplir, utiliser des scripts externs.

Vous pouvez aussi trouvez de la documentation là:[url]http://wmii.de/index.php/WMII/FAQ [/url]

```
#!/usr/local/9/bin/rc 

# periodically print date and load average to the bar 

PIDFILE=/tmp/.ixp-$USER/statuspid-$WMII_IDENT 

if(test -r $PIDFILE) { 

    kill -2 `{cat $PIDFILE} >[2]/dev/null 

} 

echo $pid >$PIDFILE 

# LABELS 

systemp=`{wmir read /bar/new} 

weather=`{wmir read /bar/new} 

label=`{wmir read /bar/new} 

    wmir write /bar/$label/b1press 'wmir write /wm/ctl ''select prev''' 

    wmir write /bar/$label/b3press 'wmir write /wm/ctl ''select next''' 

    wmir write /bar/$label/b4press 'wmir write /wm/ctl ''select prev''' 

    wmir write /bar/$label/b5press 'wmir write /wm/ctl ''select next''' 

# METERS 

meter0=`{wmir read /bar/new} 

meter1=`{wmir read /bar/new} 

meter2=`{wmir read /bar/new} 

# install signal handler for artificial sigexit: 

fn sigint { 

    if(test -f $PIDFILE && ~ `{cat $PIDFILE} $pid) 

        rm -f $PIDFILE 

    wmir write /bar/ctl 'destroy '^$label 

    wmir write /bar/ctl 'destroy '^$systemp 

    wmir write /bar/ctl 'destroy '^$weather 

    wmir write /bar/ctl 'destroy '^$meter0 

    wmir write /bar/ctl 'destroy '^$meter1 

    wmir write /bar/ctl 'destroy '^$meter2 

    exit 

} 

# extra settings 

wmir write /bar/$meter2/data '%m:100' 

text=loading 

while(wmir write /bar/$label/data $"text >[2]/dev/null) { 

    

    # LABELS 

        # cpu temperature 

        stext=(CPU: `{expr `{cat /sys/bus/i2c/devices/9191-0290/temp2_input} / 1000}  MB: `{expr `{cat /sys/bus/i2c/devices/9191-0290/temp1_input} / 1000}) 

            wmir write /bar/$systemp/data $"stext 

        # weather conditions -- infos provided by an external script 

        wtext=(`{cat /tmp/.stormy-current-weather}) 

            wmir write /bar/$weather/data $"wtext 

        # date 

        text=(`{/bin/date '+%x %H:%M'}) 

    # METERS 

        # xmms current position 

        m0_text=(`{if ( test -e /tmp/xmms-info ) expr `{cat /tmp/xmms-info |awk '/uSecPosition/ {print $2}'} '*' 100 / `{cat /tmp/xmms-info |awk '/uSecTime/ {print $2}'}; if not echo 0}) 

        m0_text=(`{if ( test $m0_text -gt 100 ) echo 100; if ( test $m0_text -lt 0 ) echo 0; if not echo $m0_text}) 

            wmir write /bar/$meter0/data '%m:'^$m0_text 

        # memory cached 

        m1_text=(`{free | awk '/Mem/ { print 100 * $7 / $2 }' | awk -F. '{ print $1 }'}) 

            wmir write /bar/$meter1/data '%m:'^$m1_text 

        # cpu freq -- change meter colour 

        curr_freq=`{cat /proc/cpuinfo | awk '/MHz/ { gsub(/\./,""); print $4 }'} 

            if(test $curr_freq -lt 900000) cpucol='#66a8db' 

            if(test $curr_freq -gt 900000 && test $curr_freq -lt 1900000) cpucol='#FFA500' 

            if(test $curr_freq -gt 1900000) cpucol='#FF3030' 

                wmir write /bar/$meter2/fgcolor $cpucol 

                wmir write /bar/$meter2/data '%m:100' 

    sleep 1 

} 
```

Conclusion

Plan9 est aussi tout nouveau pour moi, donc il est possible qu'il y ait des imprécisions ou que j'aie exposer des concepts erronés. Entre autre j'ai du écrire ce doc assez précipitamment, il se peut donc qu'il y ait des erreurs grammaticales et/ou de syntaxique. Si vous êtes en mesures de l'améliorer ou de le compléter n'hésité à poster vous réaction .....

autres ressources

http://wmii.de/

[url]http://swtch.com/plan9port/ [/url]

[NB]: je vous ai fait la traduction en vitesse pour Noël, je l'améliorerai ( tournure de phrases, orthographes, ...) quand je reviens.

Bon Noël à tous et bonne année  :Wink: 

----------

## boozo

merci bcp   :Cool: 

je me lance dès que j'aurai qqes giga à y consacrer (après janvier je pense... noël a laissé des traces dans mes finances   :Laughing:  ) et je ne manquerai pas de te donner mon avis et des précisions si j'en ai   :Wink: 

----------

## marvin rouge

Yay !  :Very Happy: 

merci beaucoup.

Comme boozo, je me lance, dès que j'ai un peu de temps ...

+

----------

