jeudi 31 mars 2011

Virtualisation en français facile

Introduction
Comme promis, cet article, le premier d'une série d' articles sur la virtualisation, a pour but d'introduire mon intervention sur le salon irc où nous animons une série de présentation sur divers sujet recouvrant l'informatique du point de vue du logiciel libre et open source.

Définition
Le terme "virtuel" fait référence à quelque chose qui n'est pas réel, physique. En informatique, on appliquera la notion de virtualisation principalement au matériel. Ainsi, virtualiser un matériel donné signifie "simuler" ce matériel par des moyens logiciels. On parlera alors de "machine virtuelle" ou d'"environnement virtuel" (Virtual Environment) pour faire référence au résultat de cette simulation.

Intérêt ( source [1] )

Les raisons qui poussent à l'utilisation de la virtualisation sont nombreuses et relèvent des mobiles autant académiques qu' industriels :
  • utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),
  • installation, déploiement et migration facile des machines virtuelles d'une machine physique à une autre, notamment dans le contexte d'une mise en production à partir d'un environnement de qualification ou de pré-production, livraison facilitée,
  • économie sur le matériel par mutualisation (consommation électrique, entretien physique, surveillance, support, compatibilité matérielle, etc.)
  • installation, tests, développements, cassage et possibilité de recommencer sans casser le système d'exploitation hôte
  • sécurisation et/ou isolation d'un réseau (cassage des systèmes d'exploitation virtuels, mais pas des systèmes d'exploitation hôtes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et réseau)
  • isolation des différents utilisateurs simultanés d'une même machine (utilisation de type site central)
  • allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
  • diminution des risques liés au dimensionnement des serveurs lors de la définition de l'architecture d'une application, l'ajout de puissance (nouveau serveur etc) étant alors transparent.
Principe
Sur un ordinateur normal, on retrouve toujours trois grandes parties:
  • le matériel qui consiste en des éléments électroniques et mécaniques et qui constitue la partie visible de l'ordinateur,
  • le système d'exploitation qui permet de piloter le matériel, d'optimiser, de gérer et d'assurer (dans le sens fiabilité et sécurité) l'accès au matériel (disques durs, lecteurs CD/disquettes, etc) par la troisième couche,
  • une troisième couche qui concerne l'ensemble des applications installées dans ce système d'exploitation et qui sont les principaux points d'interaction avec l'utilisateur. Cette couche est aussi désigné par l'expression "espace utilisateur" en opposition à l'"espace noyau" (qui concerne principalement l'OS).

Grâce à cette organisation, les applications métiers n'ont pas directement accès au matériel, mais plutôt y accèdent via une interface logicielle bien définie (on parle d'API pour Application Programming Interface) proposée par le noyau du système d'exploitation. Cela présente de nombreux avantages comme la simplification de l'écriture des applications métiers ou une meilleure utilisation/protection/répartition des ressources matérielles entre autres choses.

Mais en y réfléchissant de plus près, on pourrait constater qu' en utilisant les différentes interfaces proposée par cette répartition des couches fonctionnelles, on pourrait ainsi tromper les couches supérieures:
  • en mettant un logiciel (hyperviseur) entre le matériel et l'OS, on pourrait présenter à celui-ci, un matériel ayant des caractéristiques différentes des caractéristiques réelles, à charge à ce logiciel d'assurer la conversion. On parle ici d'hyperviseur de type 1.
  • en mettant un logiciel (hyperviseur) entre l'OS et les applications, on pourrait présenter à un autre OS un matériel différent du matériel réel et installer dans ce dernier OS différentes applications. L'ensemble OS + applications + hyperviseur étant vu par l'OS de base comme de simples applications. On parle dans ce cas d'hyperviseur de type 2,
  • toujours en restant entre le système d'exploitation et la couche applicative, on pourrait éviter le niveau supplémentaire d'abstraction proposé par la solution précédente et simplement faire croire aux applications qu'elles tournent dans un OS différent de l'OS réel. On parle d'émulateurs dans ce cas;
  • il existe une troisième catégorie qui est en quelque sorte une variante de la catégorie des machines virtuelles que nous avons appelée "émulateurs". Ce type de machines virtuelles est courant principalement dans les systèmes unix et linux. Il s'agit d'environnement chrooté ou de conteneurs. En effet, dans les systèmes Linux et Unix, tout est fichier, de sorte que même les différentes ressources matérielles ( interfaces réseaux, disques durs, mémoire RAM, etc) sont utilisées suivant cette abstraction. Il est alors possible de rediriger un certain nombre de ressources comme celles-ci vers une application (au sens unix/linux du terme) donnée.
Dans les articles suivants, on verra chaque catégorie plus en détails.

[1] Virtualisation sur wikipedia

mercredi 30 mars 2011

GCC 4.6 disponible!

Le célèbre compilateur GCC (Gnu C Compiler) vient d'être publié dans sa version 4.6. Cette nouvelle mouture du mastodonte (qui supporte de nombreux langages de programmation tels que C bien sûr, C++, Fortran, Ada, Objective-C, Objective-C++ et bien d'autres) apporte son lot d'améliorations et de nouveautés.
Parmi les nouveautés, on notera en particulier:
  • l'introduction du langage Go de Google (qui fonctionnera sur le plateforme linux et RTEMS pour le moment),
  • l'introduction du support de la nouvelle norme C++0x (renommé il y a peu C++ 2011 par le comité de normalisation réuni à Madrid pour la rédaction du prochain standard C++ qui devrait être validé sous peu à Genève),
  • l'amélioration des possibilités de cross-compiling (notamment via l'ajout de nouvelles architectures),
  • le support de la bibliothèque bionic (librairie C d' Android)
  • amélioration de la vitesse de compilation et de l'usage de la mémoire,
  • diverses optimisations et modifications de quelques options à problème
ainsi que bien d'autres améliorations. Le détail des modifications et nouveautés apportées dans cette version est disponible sur le site officiel du projet.
Je suis impatient de voir intégrer cette version dans ma distribution Linux préférée: ubuntu.

[1] http://gcc.gnu.org/gcc-4.6/changes.html

Et si nous contribuons à notre manière à la diffusion des logiciels libres?

Chers tous,
je voudrais vous inviter à assister à la prochaine séance de tutoriel en ligne dans le salon irc de la communauté ubuntu-cm à 17h GMT samedi prochain (02/04/11).
Le sujet de cette séance sera l'utilisation du logiciel de virtualisation Virtualbox d'Oracle.
De plus, tout au long de la semaine, vous trouverez sur mon blog des articles consacrés à la virtualisation en général et à la présentation de la mise en oeuvre des solutions de virtualisation open sources en particulier.

Qu'est ce qu'il faut préparer?
Pour la séance de Samedi, il est nécessaire de disposer:
- d'un ordinateur sur lequel vous avez le droit d'installer un logiciel, équipé de Linux (Ubuntu conseillé). Les détenteurs de machines sous Windows ou Mac sont aussi acceptés, mais souffriront de ne pas pouvoir profiter de l'ensemble des techniques présentées.
- une bonne connexion Internet (permettant notamment l'installation à vitesse raisonnable de logiciels à partir d' Internet) ou à défaut, disposer d'un dépôt ubuntu local
- une image de CD ou de DVD d'ubuntu

Le projet
Cette initiative commune aux communautés linux-cm et ubuntu-cm a pour but de:
- favoriser la diffusion des logiciels libres, linux et ubuntu (en particulier),
- d'aider les étudiants et les professionnels amenés à utiliser les logiciels libres en leur proposant une aide pas à pas sur des sujets choisis soit à la suite d'une demande spécifique, soit par choix personnel d'un intervenant
- d'informer sur les nouvelles techniques de l'informatique, autant qu'elles restent ouvertes et non restrictives (ne comptez pas sur nous pour proposer des ateliers sur des techniques propriétaires ou obligeant à violer les principes des logiciels libres)
- créer un incubateur de projets technologiques communautaire, ouvert à tous ceux qui le souhaitent et en particulier aux étudiants qui trouveront là l'occasion de réaliser une idée qui leur tient à coeur ou tout simplement pour se faire la main et apprendre
- créer un espace de discussion et d'échange d'idée et de compétences
- ...
Votre contribution/participation est la bienvenue, de même que vos suggestions, commentaires, encouragements, etc.


[1] Programme des classrooms

jeudi 24 mars 2011

Paper.li votre journal sur Internet

Hi all,
@grayswandir via un de ses tweets viens juste de me faire découvrir un nouveau service sur internet: paper.li. Voici la description proposée sur la page d'acceuil de ce service:

paper.li agrège les contenus partagés sur Twitter et Facebook de manière à en faciliter la lecture.
Une manière efficace de découvrir des contenus intéressants, sans avoir à être connecté 24/7...


Vu la quantité d'informations qu'on essaye de digérer chaque jour, il me semble que ce service aiderait à y faire bon menage. Bon trêve de commentaires, je cours regarder tout ca de plus prêt ... tout en configurant un nouveau serveur - faut bien mériter son salaire non? ;-)

A bientôt avec des commentaires tout frais sur paper.li.

[1] Addresse du service http://paper.li.
[2] Retrouvez moi à http://paper.li/nacerix

mercredi 23 mars 2011

formations gratuites en ligne

Cher(e)s tous,
à l'initiative des communautés linux-cm et ubuntu-cm, une série de petites formations est désormais ouverte et librement accessible sur le salon irc de la communauté ubuntu-cm dès ce vendredi 18h tapante (heure du Cameroun, c'est à dire GMT+1).
Vous êtes cordialement invités.
Je profite aussi de l'occasion pour dire que vous pouvez aussi suggérer des thèmes de formation qui vous intéressent et nous verrons, dans la mesure du possible, comment les réaliser pour vous.
Petite précision cependant: tous ces ateliers sont uniquement tournés vers des technologies qui n'impliquent pas la promotion de formats ou logiciels qui ne sont pas ouverts et libres(au sens liberté d'expression et non gratuité).
Retrouvez toutes ces informations sur le wiki d'ubuntu-cm ou sur mon blog.
Restez informés en vous inscrivant aux listes
linux-cm@diffusion.francophonie.org ou ubuntu-cm.

[1] Le mail d'annonce du lancement du projet:
https://lists.ubuntu.com/archives/ubuntu-cm/2011-March/001712.html

--
Nacer
Blog: http://nacerix.blogspot.com
Twitter: nacerix
Identi.ca: nacerix

lundi 21 mars 2011

Concours ISoc

Cher(e)s internautes,
j'aimerais signer mon retour dans la blogosphère mondiale par ce petit billet au sujet du concours lancé récemment par l'Internet Society.
Vous connaissez certainement l'Internet Society Association (ISoc), cette association de droit américain à vocation internationale créée en 1992 par les pionniers de l'Internet dans le but de promouvoir et coordonner le développement des réseaux informatiques dans le monde (souce Wikipédia).
Récemment, ISoc a lancé un challenge s'adressant à la fois aux individus membres de l'ISoc ou aux chapitres (sorte d'associations locales/nationales démembrement de l'ISoc). L'idée c'est de faire de chacun des participant un recruteur en puissance. De nombreux lots intéressants sont disponibles, allant de lecteurs DVD portables aux tablettes électronique.
Retrouvez l'information intégrale à la page correspondant à votre langue:


Si vous désirez rejoindre l'ISoc et contribuer au développement d'Internet en Afrique ou dans votre région, n'hésitez surtout pas, allez sur le site de l'organisation http://www.InternetSociety.org ou bien faites le via mon lien personnalisé: https://portal.isoc.org/EBusiness/NewMemberStepOne.aspx?refid=xd1286178hf