Sanos m'a carrément emballé par son concept minimaliste et original.
Pour ma part, j'ai pu utiliser des systèmes comme Linux, Solaris, Windows NT, 2K, XP, et Seven en béta... Je vous dis tout de suite, nous ne sommes pas dans la même cours, cependant vous en connaissez beaucoup vous des OS open source construit autour d'une couche Win32 ?
L'originalité ne s'arrête pas là: l'idée initiale de Sanos était d'étudier la faisabilité de faire fonctionner un serveur java sans un système d'exploitation traditionnel. C'est à dire en utilisant un simple noyau qui implémente un sous ensemble de fonctionnalités de base. Avec peu de ressource consommées et une taille/complexité maitrîsable, cet OS permet et ouvre de nombreuses perspectives comme:
- la création d'un réseau de machines virtuelles
- le prototypage rapide d'application java en cluster, ou collaborative, etc...
- un moyen de livrer une solution clé en main à un client (sans les problèmes et les délais d'installation d'environnement coûteux)
- un moyen simple de s'amuser à tester des technologies et des concepts nouveaux, en un mot d'apprendre.
Allez, un moment culture générale: Sanos est une abréviation qui veut dire : Server Appliance Network Operating System.
L'auteur principal est Michael Ringgaard, que vous pouvez retrouver sur ce site dédié : http://www.jbox.dk/
Un grand merci à ce Monsieur :-).
En quelques mots, je vous dirais ceci: Sanos est un système d'exploitation minimaliste 32-bit basé sur l'architecture x86. Son noyau implémente les services de base, tel que:
- le démarrage
- la gestion mémoire
- la couche TCP/IP
- le chargement et le linkage des DLL.
Ceci constitue la base pour implémenter une couche Win32 et permettre ainsi à une JVM Hotspot de fonctionner par exemple. Vous pourrez trouver d'autres applications tel qu'un serveur apache-tomcat, un serveur ftp, telnet...
Si vous voulez plus d'informations, je vous invite à lire cette présentation: http://www.jbox.dk/presentations/jbox-df.ppt
ou pour une vue beaucoup plus technique: http://www.jbox.dk/presentations/sanostech.ppt
et pour la liste des fonctionnalités: http://www.jbox.dk/sanos/features.htm
C'est avant tout un système qui essaie de rester simple en évitant d'implémenter des fonctionnalités non nécessaires pour enrailler l'inflation qui n'est jamais loin. De façon à être encore plus clair:Remember that there is no code faster than no code. -- Taligent's Guide to Designing Programs
Utilisation
Pour tester Sanos, vous allez avoir besoin d'une machine virtuelle tel que Microsoft Virtual PC 2007 SP1 (Disponible gratuitement ici). Ensuite il vous faut soit un disque dur virtuel tout prêt soit une ISO bootable de Sanos que vous allez installer vous même.
Si vous choisissez la méthode guerrière, d'installer vous même votre os, je dois vous prévenir, vous allez finir par vous retrouvez à compiler votre propre noyau... si si ... on en reparlera je vous le dis!
Pour ce faire, vous avez une procédure disponible sur le site jbox ici. Sinon pour résumer, en partant d'un disque dur vierge (virtuel ou non) démarrez depuis l'image du cdrom. Puis créez une partition ad hoc (attention à vos données...) en utilisant fdisk:
- créez un "master boot record", commande (m)br
- ajoutez une nouvelle partition 0 en utilisant la commande (a)dd
- rendez cette partition bootable avec la commande (b)oot
- commitez vos changements via la commande (c)ommit
- sortez via "exit"
Installez ensuite le système avec la commande setup. Retirez le cdrom, redémarrez , et hop hop cela fonctionne !
Faites donc, un "ifconfig" histoire de voir si vous avez obtenu une IP via DHCP. Si c'est le cas, faite un "jinit &" ce qui lancera tomcat, auquel vous pourrez accéder sur http://<<votre ip>>/.
RECOMPILATION
Si vous voulez construire cette OS, je vous invite à suivre ces quelques lignes...
Tout d'abord il nous faut installer les logiciels gratuits suivants (faites bien attention au différentes versions, c'est important) :
- Visual C++ 2005 Express
http://www.microsoft.com/express/2005/ - Microsoft Macro Assembler 8.0
http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en - Windows Server 2003 SP1 Platform SDK
http://www.microsoft.com/downloads/details.aspx?familyid=eba0128f-a770-45f1-86f3-7ab010b398a3&displaylang=en - mkisofs for Windows (Cygwin)
http://smithii.com/cdrtools sélectionnez cdrtools-latest
Ensuite, installer VC++, MASM et le SDK de façon "classique". Au final, sur ma machine, j'ai les répertoires d'installation suivants:
- Visual C++ 2005 Express
"C:\Program Files\Microsoft Visual Studio 8" - Windows Server 2003 SP1 Platform SDK:
"C:\Program Files\Microsoft Platform SDK"
Récupération des sources et Configuration de l'environnement
Il vous faut récupérez les sources de Sanos. De façon à obtenir les dernières fonctionnalités du système comme entre autre chose la gestion du clavier français, j'ai récupérer cette version "latest" sur le site officiel que j'ai ensuite modifié de façon à:
- faire fonctionner correctement le
makefile(gestion des variables d'environnement) et include C++ - intégrer directement une jvm et tomcat dans le build
Vous pouvez récupérer cette version ici, et la version Sanos originelle ici. L'ensemble de ces changements sont disponibles sour forme de patch ici. Les changements que j'ai opéré sont les suivants:
- ajout d'un fichier
setenv.batà la racine de façon à configurer automatiquement toutes les variables d'environnement lors de l'utilisation de la commandenmake. - Celle-ci est utilisée pour construire les iso bootable de cd entre autre chose.
- ajout d'un dossier extra qui contient le tandem jvm (1.4) et serveur apache tomcat (4.1)
- Une correction au niveau du
makefilede facon à ce que les outils compilent correctement (ajout d'un include vers le SDK via la variable d'environnementTOOLSINCLUDEDIRS) - ajout de la commande
xcopypour copier les dossier java/tomcat aux endroits ad hoc - ajout des différentes options et commentaires dans les fichiers
os.inietkernel.inide facon à avoir tout sous la main lors de la manipulation de Sanos.
Pour configurer votre environnement de travail, vous devez :
- configurer le fichier
setenv.bat - configurer l'espace de travail de Visual C++ 2005 Express
- copier les fichiers :
mkisofs.exeetcygwin1.dllde smithii.com dans le dossier "tools" du projets.
Le fichier setenv.bat. Dans ce fichier, vous devez configurer les variables suivantes:VSINSTALLDIR: Répertoire d'installation de Visual C++ 2005 Express:
exemple:@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8PLATEFORMSDK: Répertoire d'installation de Windows SDK for Windows Server 2003:
exemple:@SET PLATEFORMSDK=C:\Program Files\Microsoft Platform SDK
Vous devez configurer l'espace de travail de Visual C++ 2005 Express, en ajoutant quelques répertoires via l'outil "Tools->Options->Projects and Solutions->VC++ Directories":
- "
C:\Program Files\Microsoft Platform SDK\Bin" pour les éxécutables - "
C:\Program Files\Microsoft Platform SDK\Include" pour les includes - "
C:\Program Files\Microsoft Platform SDK\Lib" pour les librairies.
Compilation, make & make install...
A partir de ce point vous pouvez
- via VC++ construire la solution
sanos.sln(situé dans le dossier "build") - via une commande DOS, utilisez une commande
nmakeaprés avoir exécutésetenv.bat
Par exemple pour créer l'image sanos.iso dans le répertoire "img" :> setenv.bat
> nmake bootcd
A partir de ce moment je vous invite à lire les fichiers du projet:
- FILES qui liste les différents sous-projets Sanos ainsi que l'arborescence des fichiers de ce projet.
- README qui reprend un petite introduction bien utile pour commencer.
Et aussi:
- la liste des commandes et des utilitaires: http://www.jbox.dk/sanos/utils.htm
- la description de la configuration du fichier os.ini (Vous pourrez la retrouver dans les sources) http://www.jbox.dk/sanos/config.htm
- L'API Sanos : http://www.jbox.dk/sanos/api.htm
Liens Utiles
- Site Web Sanos
http://www.jbox.dk/ - Groupe google
http://groups.google.com/group/sanos - Visual C++ 2005 Express
http://www.microsoft.com/express/2005/ - Microsoft Macro Assembler 8.0
http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en - Windows Server 2003 SP1 Platform SDK
http://www.microsoft.com/downloads/details.aspx?familyid=eba0128f-a770-45f1-86f3-7ab010b398a3&displaylang=en - mkisofs for Windows (Cygwin)
http://smithii.com/cdrtools sélectionné cdrtools-latest
Prochaine étape
Voici quelques petites choses que j'aimerais vous proposer trés prochainement:
- un JDK 6 avec un serveur apache-tomcat 6
- la mise en place de driver vidéo (via VESA), de souris, d'usb
A bientôt donc




