<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucas.Chaloyard</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucas.Chaloyard"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Lucas.Chaloyard"/>
	<updated>2026-05-30T05:00:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51500</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51500"/>
		<updated>2021-11-28T20:38:25Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* B. Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une grande efficacité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute.&amp;lt;/br&amp;gt;&lt;br /&gt;
Un mécanisme aussi intéressant pour les performances et le modèle d&#039;ownership intégré à Rust, on rediscutera de celui-ci dans la partie sécurité et fiabilité, mais d&#039;un point de vue compilation, il permet un meilleur suivi de la &amp;quot;vie&amp;quot; des variables, et donc les passes d&#039;optimisations du compilateur étudiant ce critére seront capable de produire un code encore plus performant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On en a parlé précédemment, le modèle d&#039;ownership en plus de permettre d&#039;augmenter les performances du code produit, il permet aussi d&#039;éviter des failles dû à un partage d&#039;ownership involontaire entre plusieurs parties du code, ou plusieurs composants d&#039;une application.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces failles, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
Néanmois, cela reste intéressant d&#039;un point de vue performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci est de créer une infrastructure capable de supporter tâches cloud modernes.&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pourquoi choisir KVM ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Plusieurs raisons font que KVM est aujourd&#039;hui un choix très intéressant :&lt;br /&gt;
* En terme de performance, KVM permet d&#039;atteindre une vitesse quasiment native, ce qui est clairement de très bonne performance.&lt;br /&gt;
* KVM étant un projet open-source, son coût est nul (aucun coût de licence). Aussi, il vient souvent accompagner et préparé à être utilisé pour virtualiser des systèmes d&#039;exploitation aussi open source.&lt;br /&gt;
* KVM fait maintenant partie de l&#039;écosystème Linux, ce qui permet d&#039;assurer une maintenance et évolution importante.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51499</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51499"/>
		<updated>2021-11-28T20:25:27Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* Langage Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une grande efficacité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute.&amp;lt;/br&amp;gt;&lt;br /&gt;
Un mécanisme aussi intéressant pour les performances et le modèle d&#039;ownership intégré à Rust, on rediscutera de celui-ci dans la partie sécurité et fiabilité, mais d&#039;un point de vue compilation, il permet un meilleur suivi de la &amp;quot;vie&amp;quot; des variables, et donc les passes d&#039;optimisations du compilateur étudiant ce critére seront capable de produire un code encore plus performant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On en a parlé précédemment, le modèle d&#039;ownership en plus de permettre d&#039;augmenter les performances du code produit, il permet aussi d&#039;éviter des failles dû à un partage d&#039;ownership involontaire entre plusieurs composants parties du code, ou plusieurs composants d&#039;une application.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces failles, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
Néanmois, cela reste intéressant d&#039;un point de vue performance.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci est de créer une infrastructure capable de supporter tâches cloud modernes.&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pourquoi choisir KVM ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Plusieurs raisons font que KVM est aujourd&#039;hui un choix très intéressant :&lt;br /&gt;
* En terme de performance, KVM permet d&#039;atteindre une vitesse quasiment native, ce qui est clairement de très bonne performance.&lt;br /&gt;
* KVM étant un projet open-source, son coût est nul (aucun coût de licence). Aussi, il vient souvent accompagner et préparé à être utilisé pour virtualiser des systèmes d&#039;exploitation aussi open source.&lt;br /&gt;
* KVM fait maintenant partie de l&#039;écosystème Linux, ce qui permet d&#039;assurer une maintenance et évolution importante.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021&amp;diff=51498</id>
		<title>VT2021</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021&amp;diff=51498"/>
		<updated>2021-11-28T20:16:02Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* Séance 3 : 29/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2020|&amp;lt;&amp;lt; Etudes 2020]] [[VT|Sommaire]] [[VT2022|Etudes 2022 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en 1FO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]] ou avec [[remarkjs]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 15/11 ==&lt;br /&gt;
exceptionnellement en distanciel [https://univ-grenoble-alpes-fr.zoom.us/j/98434116324?pwd=NmJHVFZvQm9LQWtYclF3U09QVjZVQT09]&lt;br /&gt;
Enseignants :[[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 22/11 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Bio-inspired algoritms, BAUDEUR Bertrand, TONDEUX Emilie, [[File:VT2021_BioInspiredAlgo_presentation.pdf|présentation]], [[VT2021_BioInspiredAlgo_fiche|fiche]], [[VT2021_BioInspiredAlgo_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Le langage Zig, PARA	Yaël, MALOD	Victor, [[File:VT2021_Zig_presentation.pdf|présentation]], [[VT2021_Zig_fiche|fiche]], [[VT2021_Zig_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GitHub Copilot, BLANQUET	Antoine, PRAT CAPILLA	Hugo, [[File:VT2021_GitHubCopilot_presentation.pdf|présentation]], [[VT2021_GitHubCopilot_fiche|fiche]], [[VT2021_GitHubCopilot_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 29/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Cloud Hypervisor, CHALOYARD	Lucas, EL YANDOUZI	Elias, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_Cloud-Hypervisor_Fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Kind, GITTON	Antoine, MINIER MANCINI	Titouan, [[File:VT2021_Kind_presentation.pdf|présentation]], [[VT2021_Kind_fiche|fiche]], [[VT2021_Kind_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Apache Workflow, JULIENNE	Malone, CAMBUS	Quentin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 6/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Content Delivery Networks (CDN), REGOUIN	Roman, ANDRIEUX	Liam, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Netflix Cosmos, HERQUE	Eric, VACHERIAS	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Web Browser Fingerprinting, LANQUETIN	Alexis, GONZALEZ	Jules, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Vie privée et objets connectés, Mertens	Gilles, Soulard	Alexandre, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 13/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Fintech et OpenBanking, LAMBERT	Paul, ELHADJI TCHIAMBOU, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast] (port de la cravate exigée)&lt;br /&gt;
* Merkle trees, HUMBERT	Corentin, YUNG	Kevin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Blockchain Elrond, BARET	Dorian, GEITNER	Teva, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Text to Speech, Granger Oscar, Cosotti Kevin [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 3/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Psychométrie, LAMBERT	Daphné, DREZET	Lucas, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GPT, AGUIAR 	Mathilde, HAJJI	Oumaima, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* TinyML, Buisine 	Julien, Mallen	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 10/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* CMS, SARRE	Margaux, NOERIE	Sophie, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Underwater Wireless Communications, MUTEL	Mathis, SIDIBE	Rose, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* ROS2, MALECOT	Ethan, CIRSTEA	Paul, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : Asynchrone ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Web Browser Fingerprinting]]&lt;br /&gt;
# [[Fintech]] &amp;amp; [[Open banking]] (système bancaire ouvert)&lt;br /&gt;
# [[Géolocalisation Ultra Wideband]] : fonctionnement, applications (Apple AirTags, Galaxy SmartTag+) ...&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[GitHub Copilot]]&lt;br /&gt;
# [[GPT-J, GPT-3, GPT-2]]&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# Le langage de programmation [[Zig]]&lt;br /&gt;
# [[Text-to-Speech]] : technologies et services et [[SSML]]: démonstration de l&#039;intégration des service TTS Wavenet de GCP et Amazon Polly dans eCOM (pour un binome).&lt;br /&gt;
# [[ROS2]] : Robot Operating System version 2&lt;br /&gt;
# [[TinyML]] : démonstration avec une carte STM32F7 (à récupérer au fablab).&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]] avec une gateway LoRa&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Kind]] : Goodbye minikube&lt;br /&gt;
# [[Netflix Cosmos]]&lt;br /&gt;
# [[Rudder]]&lt;br /&gt;
# [[Thread]] : démonstration avec le kit [[STM32WB55]]&lt;br /&gt;
# [[Remote sensing]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[Log Structured Merge Trees]]&lt;br /&gt;
# [[Merkle Trees]]&lt;br /&gt;
# [[Riak]] Database System&lt;br /&gt;
# [[Flux]] (#fluxlang) new data scripting language to make querying and analyzing time series&lt;br /&gt;
# [[NATS]]: PubSub broker (démonstration avec CampusIoT)&lt;br /&gt;
# In-memory Distributed Data Grid : démonstration de eCom avec [[Apache Ignite]].&lt;br /&gt;
# [[jQAssistant]] : application à eCOM&lt;br /&gt;
# [[IoT Dataflow Mashup]] (démo avec [[Eclipse Kura Wires]])&lt;br /&gt;
# [[Géo-réplication]] : Démo avec [[Apache Kafka MirrorMaker]]&lt;br /&gt;
# [[Pulsar]]&lt;br /&gt;
# [[RSocket]]&lt;br /&gt;
# [[Nacos]] : open source project by Alibaba for service discovery and service configuration.&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[Microclimate]]&lt;br /&gt;
# [[AdTech]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[ESB]] : démonstration de [[Mule ESB]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[Psychométrie]]&lt;br /&gt;
# [[Apache Beam]]&lt;br /&gt;
# [[Hazelcast]] : Démo avec Spring Boot ([https://dzone.com/storage/assets/6459742-dzone-rc247-gettingstartedwithspringbootandmicrose.pdf lien]) dans un projet [[JHipster]]&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Insport Video&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[Performance Monitoring]]&lt;br /&gt;
# [[Access Network Query Protocol (ANQP)]]&lt;br /&gt;
# [[JCache]] : démonstration avec [[Apache Ignity]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[Apache Stratos]]&lt;br /&gt;
# [[gceasy]] : Universal garbage collection log Analyser&lt;br /&gt;
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]&lt;br /&gt;
# [[Content Delivery Network]]s : Démonstration de [[Amazon S3]], Azure, Akamaï ... sur votre projet [[ECOM-RICM|eCOM]]&lt;br /&gt;
# [[CMS]] : Demo avec [[Crafter CMS]]&lt;br /&gt;
# [[DMS]] (GED) : Demo avec la version Community Edition d&#039;[[Alfresco]] et de son API REST avec [[Swagger]]  ANNULé&lt;br /&gt;
# [[SIG]] : Démonstration de [[QGIS]]&lt;br /&gt;
# [[Apache Airflow]]&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Normes et systèmes de signature électronique]]&lt;br /&gt;
# Database as a Microservice : [[HarperDB]]&lt;br /&gt;
# [[Underwater Wireless Communications]]&lt;br /&gt;
# [[TiDB]]&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021&amp;diff=51497</id>
		<title>VT2021</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021&amp;diff=51497"/>
		<updated>2021-11-28T20:15:53Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* Séance 3 : 29/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2020|&amp;lt;&amp;lt; Etudes 2020]] [[VT|Sommaire]] [[VT2022|Etudes 2022 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en 1FO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]] ou avec [[remarkjs]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 15/11 ==&lt;br /&gt;
exceptionnellement en distanciel [https://univ-grenoble-alpes-fr.zoom.us/j/98434116324?pwd=NmJHVFZvQm9LQWtYclF3U09QVjZVQT09]&lt;br /&gt;
Enseignants :[[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 22/11 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Bio-inspired algoritms, BAUDEUR Bertrand, TONDEUX Emilie, [[File:VT2021_BioInspiredAlgo_presentation.pdf|présentation]], [[VT2021_BioInspiredAlgo_fiche|fiche]], [[VT2021_BioInspiredAlgo_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Le langage Zig, PARA	Yaël, MALOD	Victor, [[File:VT2021_Zig_presentation.pdf|présentation]], [[VT2021_Zig_fiche|fiche]], [[VT2021_Zig_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GitHub Copilot, BLANQUET	Antoine, PRAT CAPILLA	Hugo, [[File:VT2021_GitHubCopilot_presentation.pdf|présentation]], [[VT2021_GitHubCopilot_fiche|fiche]], [[VT2021_GitHubCopilot_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 29/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Cloud Hypervisor, CHALOYARD	Lucas, EL YANDOUZI	Elias, [[File:VT2021_XXXX_presentation.pdf|présentation]], [VT2021_Cloud-Hypervisor_Fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Kind, GITTON	Antoine, MINIER MANCINI	Titouan, [[File:VT2021_Kind_presentation.pdf|présentation]], [[VT2021_Kind_fiche|fiche]], [[VT2021_Kind_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Apache Workflow, JULIENNE	Malone, CAMBUS	Quentin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 6/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Content Delivery Networks (CDN), REGOUIN	Roman, ANDRIEUX	Liam, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Netflix Cosmos, HERQUE	Eric, VACHERIAS	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Web Browser Fingerprinting, LANQUETIN	Alexis, GONZALEZ	Jules, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Vie privée et objets connectés, Mertens	Gilles, Soulard	Alexandre, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 13/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Fintech et OpenBanking, LAMBERT	Paul, ELHADJI TCHIAMBOU, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast] (port de la cravate exigée)&lt;br /&gt;
* Merkle trees, HUMBERT	Corentin, YUNG	Kevin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Blockchain Elrond, BARET	Dorian, GEITNER	Teva, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Text to Speech, Granger Oscar, Cosotti Kevin [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 3/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Psychométrie, LAMBERT	Daphné, DREZET	Lucas, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GPT, AGUIAR 	Mathilde, HAJJI	Oumaima, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* TinyML, Buisine 	Julien, Mallen	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 10/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* CMS, SARRE	Margaux, NOERIE	Sophie, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Underwater Wireless Communications, MUTEL	Mathis, SIDIBE	Rose, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* ROS2, MALECOT	Ethan, CIRSTEA	Paul, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : Asynchrone ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Web Browser Fingerprinting]]&lt;br /&gt;
# [[Fintech]] &amp;amp; [[Open banking]] (système bancaire ouvert)&lt;br /&gt;
# [[Géolocalisation Ultra Wideband]] : fonctionnement, applications (Apple AirTags, Galaxy SmartTag+) ...&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[GitHub Copilot]]&lt;br /&gt;
# [[GPT-J, GPT-3, GPT-2]]&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# Le langage de programmation [[Zig]]&lt;br /&gt;
# [[Text-to-Speech]] : technologies et services et [[SSML]]: démonstration de l&#039;intégration des service TTS Wavenet de GCP et Amazon Polly dans eCOM (pour un binome).&lt;br /&gt;
# [[ROS2]] : Robot Operating System version 2&lt;br /&gt;
# [[TinyML]] : démonstration avec une carte STM32F7 (à récupérer au fablab).&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]] avec une gateway LoRa&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Kind]] : Goodbye minikube&lt;br /&gt;
# [[Netflix Cosmos]]&lt;br /&gt;
# [[Rudder]]&lt;br /&gt;
# [[Thread]] : démonstration avec le kit [[STM32WB55]]&lt;br /&gt;
# [[Remote sensing]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[Log Structured Merge Trees]]&lt;br /&gt;
# [[Merkle Trees]]&lt;br /&gt;
# [[Riak]] Database System&lt;br /&gt;
# [[Flux]] (#fluxlang) new data scripting language to make querying and analyzing time series&lt;br /&gt;
# [[NATS]]: PubSub broker (démonstration avec CampusIoT)&lt;br /&gt;
# In-memory Distributed Data Grid : démonstration de eCom avec [[Apache Ignite]].&lt;br /&gt;
# [[jQAssistant]] : application à eCOM&lt;br /&gt;
# [[IoT Dataflow Mashup]] (démo avec [[Eclipse Kura Wires]])&lt;br /&gt;
# [[Géo-réplication]] : Démo avec [[Apache Kafka MirrorMaker]]&lt;br /&gt;
# [[Pulsar]]&lt;br /&gt;
# [[RSocket]]&lt;br /&gt;
# [[Nacos]] : open source project by Alibaba for service discovery and service configuration.&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[Microclimate]]&lt;br /&gt;
# [[AdTech]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[ESB]] : démonstration de [[Mule ESB]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[Psychométrie]]&lt;br /&gt;
# [[Apache Beam]]&lt;br /&gt;
# [[Hazelcast]] : Démo avec Spring Boot ([https://dzone.com/storage/assets/6459742-dzone-rc247-gettingstartedwithspringbootandmicrose.pdf lien]) dans un projet [[JHipster]]&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Insport Video&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[Performance Monitoring]]&lt;br /&gt;
# [[Access Network Query Protocol (ANQP)]]&lt;br /&gt;
# [[JCache]] : démonstration avec [[Apache Ignity]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[Apache Stratos]]&lt;br /&gt;
# [[gceasy]] : Universal garbage collection log Analyser&lt;br /&gt;
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]&lt;br /&gt;
# [[Content Delivery Network]]s : Démonstration de [[Amazon S3]], Azure, Akamaï ... sur votre projet [[ECOM-RICM|eCOM]]&lt;br /&gt;
# [[CMS]] : Demo avec [[Crafter CMS]]&lt;br /&gt;
# [[DMS]] (GED) : Demo avec la version Community Edition d&#039;[[Alfresco]] et de son API REST avec [[Swagger]]  ANNULé&lt;br /&gt;
# [[SIG]] : Démonstration de [[QGIS]]&lt;br /&gt;
# [[Apache Airflow]]&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Normes et systèmes de signature électronique]]&lt;br /&gt;
# Database as a Microservice : [[HarperDB]]&lt;br /&gt;
# [[Underwater Wireless Communications]]&lt;br /&gt;
# [[TiDB]]&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021&amp;diff=51496</id>
		<title>VT2021</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021&amp;diff=51496"/>
		<updated>2021-11-28T20:15:27Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* Séance 3 : 29/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2020|&amp;lt;&amp;lt; Etudes 2020]] [[VT|Sommaire]] [[VT2022|Etudes 2022 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en 1FO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]] ou avec [[remarkjs]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 15/11 ==&lt;br /&gt;
exceptionnellement en distanciel [https://univ-grenoble-alpes-fr.zoom.us/j/98434116324?pwd=NmJHVFZvQm9LQWtYclF3U09QVjZVQT09]&lt;br /&gt;
Enseignants :[[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 22/11 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Bio-inspired algoritms, BAUDEUR Bertrand, TONDEUX Emilie, [[File:VT2021_BioInspiredAlgo_presentation.pdf|présentation]], [[VT2021_BioInspiredAlgo_fiche|fiche]], [[VT2021_BioInspiredAlgo_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Le langage Zig, PARA	Yaël, MALOD	Victor, [[File:VT2021_Zig_presentation.pdf|présentation]], [[VT2021_Zig_fiche|fiche]], [[VT2021_Zig_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GitHub Copilot, BLANQUET	Antoine, PRAT CAPILLA	Hugo, [[File:VT2021_GitHubCopilot_presentation.pdf|présentation]], [[VT2021_GitHubCopilot_fiche|fiche]], [[VT2021_GitHubCopilot_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 29/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Cloud Hypervisor, CHALOYARD	Lucas, EL YANDOUZI	Elias, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[fiche|https://air.imag.fr/index.php/VT2021_Cloud-Hypervisor_Fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Kind, GITTON	Antoine, MINIER MANCINI	Titouan, [[File:VT2021_Kind_presentation.pdf|présentation]], [[VT2021_Kind_fiche|fiche]], [[VT2021_Kind_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Apache Workflow, JULIENNE	Malone, CAMBUS	Quentin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 6/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Content Delivery Networks (CDN), REGOUIN	Roman, ANDRIEUX	Liam, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Netflix Cosmos, HERQUE	Eric, VACHERIAS	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Web Browser Fingerprinting, LANQUETIN	Alexis, GONZALEZ	Jules, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Vie privée et objets connectés, Mertens	Gilles, Soulard	Alexandre, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 13/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Fintech et OpenBanking, LAMBERT	Paul, ELHADJI TCHIAMBOU, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast] (port de la cravate exigée)&lt;br /&gt;
* Merkle trees, HUMBERT	Corentin, YUNG	Kevin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Blockchain Elrond, BARET	Dorian, GEITNER	Teva, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Text to Speech, Granger Oscar, Cosotti Kevin [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 3/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Psychométrie, LAMBERT	Daphné, DREZET	Lucas, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GPT, AGUIAR 	Mathilde, HAJJI	Oumaima, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* TinyML, Buisine 	Julien, Mallen	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 10/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* CMS, SARRE	Margaux, NOERIE	Sophie, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Underwater Wireless Communications, MUTEL	Mathis, SIDIBE	Rose, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* ROS2, MALECOT	Ethan, CIRSTEA	Paul, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : Asynchrone ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Web Browser Fingerprinting]]&lt;br /&gt;
# [[Fintech]] &amp;amp; [[Open banking]] (système bancaire ouvert)&lt;br /&gt;
# [[Géolocalisation Ultra Wideband]] : fonctionnement, applications (Apple AirTags, Galaxy SmartTag+) ...&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[GitHub Copilot]]&lt;br /&gt;
# [[GPT-J, GPT-3, GPT-2]]&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# Le langage de programmation [[Zig]]&lt;br /&gt;
# [[Text-to-Speech]] : technologies et services et [[SSML]]: démonstration de l&#039;intégration des service TTS Wavenet de GCP et Amazon Polly dans eCOM (pour un binome).&lt;br /&gt;
# [[ROS2]] : Robot Operating System version 2&lt;br /&gt;
# [[TinyML]] : démonstration avec une carte STM32F7 (à récupérer au fablab).&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]] avec une gateway LoRa&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Kind]] : Goodbye minikube&lt;br /&gt;
# [[Netflix Cosmos]]&lt;br /&gt;
# [[Rudder]]&lt;br /&gt;
# [[Thread]] : démonstration avec le kit [[STM32WB55]]&lt;br /&gt;
# [[Remote sensing]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[Log Structured Merge Trees]]&lt;br /&gt;
# [[Merkle Trees]]&lt;br /&gt;
# [[Riak]] Database System&lt;br /&gt;
# [[Flux]] (#fluxlang) new data scripting language to make querying and analyzing time series&lt;br /&gt;
# [[NATS]]: PubSub broker (démonstration avec CampusIoT)&lt;br /&gt;
# In-memory Distributed Data Grid : démonstration de eCom avec [[Apache Ignite]].&lt;br /&gt;
# [[jQAssistant]] : application à eCOM&lt;br /&gt;
# [[IoT Dataflow Mashup]] (démo avec [[Eclipse Kura Wires]])&lt;br /&gt;
# [[Géo-réplication]] : Démo avec [[Apache Kafka MirrorMaker]]&lt;br /&gt;
# [[Pulsar]]&lt;br /&gt;
# [[RSocket]]&lt;br /&gt;
# [[Nacos]] : open source project by Alibaba for service discovery and service configuration.&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[Microclimate]]&lt;br /&gt;
# [[AdTech]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[ESB]] : démonstration de [[Mule ESB]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[Psychométrie]]&lt;br /&gt;
# [[Apache Beam]]&lt;br /&gt;
# [[Hazelcast]] : Démo avec Spring Boot ([https://dzone.com/storage/assets/6459742-dzone-rc247-gettingstartedwithspringbootandmicrose.pdf lien]) dans un projet [[JHipster]]&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Insport Video&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[Performance Monitoring]]&lt;br /&gt;
# [[Access Network Query Protocol (ANQP)]]&lt;br /&gt;
# [[JCache]] : démonstration avec [[Apache Ignity]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[Apache Stratos]]&lt;br /&gt;
# [[gceasy]] : Universal garbage collection log Analyser&lt;br /&gt;
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]&lt;br /&gt;
# [[Content Delivery Network]]s : Démonstration de [[Amazon S3]], Azure, Akamaï ... sur votre projet [[ECOM-RICM|eCOM]]&lt;br /&gt;
# [[CMS]] : Demo avec [[Crafter CMS]]&lt;br /&gt;
# [[DMS]] (GED) : Demo avec la version Community Edition d&#039;[[Alfresco]] et de son API REST avec [[Swagger]]  ANNULé&lt;br /&gt;
# [[SIG]] : Démonstration de [[QGIS]]&lt;br /&gt;
# [[Apache Airflow]]&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Normes et systèmes de signature électronique]]&lt;br /&gt;
# Database as a Microservice : [[HarperDB]]&lt;br /&gt;
# [[Underwater Wireless Communications]]&lt;br /&gt;
# [[TiDB]]&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021&amp;diff=51495</id>
		<title>VT2021</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021&amp;diff=51495"/>
		<updated>2021-11-28T20:14:49Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* Séance 3 : 29/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[VT2020|&amp;lt;&amp;lt; Etudes 2020]] [[VT|Sommaire]] [[VT2022|Etudes 2022 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Veille Technologique et Stratégique=&lt;br /&gt;
* Enseignants: [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en 1FO5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera notée et commentée par tous vos camarades via un sondage (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
Remarque: Le [https://fr.wikipedia.org/wiki/Plagiat plagiat] est incompatible avec l&#039;éthique de l&#039;ingénieur. Le directeur d&#039;école peut demander votre traduction devant la commission disciplinaire de l&#039;université. La sanction peut aller jusqu’à une interdiction d&#039;inscription dans les établissements de l&#039;enseignement supérieur français pendant plusieurs années : Le jeu en vaut-il la chandelle ?&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]] ou avec [[remarkjs]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-VT-INFO5-2122.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
== Séance 1 : 15/11 ==&lt;br /&gt;
exceptionnellement en distanciel [https://univ-grenoble-alpes-fr.zoom.us/j/98434116324?pwd=NmJHVFZvQm9LQWtYclF3U09QVjZVQT09]&lt;br /&gt;
Enseignants :[[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
Présentation et organisation.&lt;br /&gt;
&lt;br /&gt;
== Séance 2 : 22/11 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Bio-inspired algoritms, BAUDEUR Bertrand, TONDEUX Emilie, [[File:VT2021_BioInspiredAlgo_presentation.pdf|présentation]], [[VT2021_BioInspiredAlgo_fiche|fiche]], [[VT2021_BioInspiredAlgo_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Le langage Zig, PARA	Yaël, MALOD	Victor, [[File:VT2021_Zig_presentation.pdf|présentation]], [[VT2021_Zig_fiche|fiche]], [[VT2021_Zig_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GitHub Copilot, BLANQUET	Antoine, PRAT CAPILLA	Hugo, [[File:VT2021_GitHubCopilot_presentation.pdf|présentation]], [[VT2021_GitHubCopilot_fiche|fiche]], [[VT2021_GitHubCopilot_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 3 : 29/11 ==&lt;br /&gt;
Enseignants : [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Cloud Hypervisor, CHALOYARD	Lucas, EL YANDOUZI	Elias, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[https://air.imag.fr/index.php/VT2021_Cloud-Hypervisor_Fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Kind, GITTON	Antoine, MINIER MANCINI	Titouan, [[File:VT2021_Kind_presentation.pdf|présentation]], [[VT2021_Kind_fiche|fiche]], [[VT2021_Kind_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Apache Workflow, JULIENNE	Malone, CAMBUS	Quentin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 4 : 6/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Content Delivery Networks (CDN), REGOUIN	Roman, ANDRIEUX	Liam, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Netflix Cosmos, HERQUE	Eric, VACHERIAS	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Web Browser Fingerprinting, LANQUETIN	Alexis, GONZALEZ	Jules, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Vie privée et objets connectés, Mertens	Gilles, Soulard	Alexandre, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 5 : 13/12 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Fintech et OpenBanking, LAMBERT	Paul, ELHADJI TCHIAMBOU, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast] (port de la cravate exigée)&lt;br /&gt;
* Merkle trees, HUMBERT	Corentin, YUNG	Kevin, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Blockchain Elrond, BARET	Dorian, GEITNER	Teva, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Text to Speech, Granger Oscar, Cosotti Kevin [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 6 : 3/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* Psychométrie, LAMBERT	Daphné, DREZET	Lucas, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* GPT, AGUIAR 	Mathilde, HAJJI	Oumaima, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* TinyML, Buisine 	Julien, Mallen	Guillaume, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 7 : 10/1 ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
* CMS, SARRE	Margaux, NOERIE	Sophie, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* Underwater Wireless Communications, MUTEL	Mathis, SIDIBE	Rose, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
* ROS2, MALECOT	Ethan, CIRSTEA	Paul, [[File:VT2021_XXXX_presentation.pdf|présentation]], [[VT2021_XXX_fiche|fiche]], [[VT2021_XXX_demo|demo]], [https://montube.com/AZERTYUIO screencast]&lt;br /&gt;
&lt;br /&gt;
== Séance 8 : Asynchrone ==&lt;br /&gt;
Enseignants : [[User:Gpbonneau|Georges-Pierre Bonneau]], [[User:Donsez|Didier Donsez]]&lt;br /&gt;
&lt;br /&gt;
=Sujets=&lt;br /&gt;
# [[Web Browser Fingerprinting]]&lt;br /&gt;
# [[Fintech]] &amp;amp; [[Open banking]] (système bancaire ouvert)&lt;br /&gt;
# [[Géolocalisation Ultra Wideband]] : fonctionnement, applications (Apple AirTags, Galaxy SmartTag+) ...&lt;br /&gt;
# [[Application Performance Monitoring]] : démonstration de [[Apache Skywalking]]&lt;br /&gt;
# [[GitHub Copilot]]&lt;br /&gt;
# [[GPT-J, GPT-3, GPT-2]]&lt;br /&gt;
# [[WebRTC]] : Web Real-Time Communication&lt;br /&gt;
# [[Low Code Development]]&lt;br /&gt;
# Le langage de programmation [[Zig]]&lt;br /&gt;
# [[Text-to-Speech]] : technologies et services et [[SSML]]: démonstration de l&#039;intégration des service TTS Wavenet de GCP et Amazon Polly dans eCOM (pour un binome).&lt;br /&gt;
# [[ROS2]] : Robot Operating System version 2&lt;br /&gt;
# [[TinyML]] : démonstration avec une carte STM32F7 (à récupérer au fablab).&lt;br /&gt;
# [[Multi-Region Database Deployments: Patterns and Anti-Patterns]] : démonstration avec [[Cockroack]]&lt;br /&gt;
# [[Proof of Coverage Blockchain]] : démonstration d&#039;[[Helium]] avec une gateway LoRa&lt;br /&gt;
# [[IPFS (InterPlanetary File System)]]&lt;br /&gt;
# [[Géolocalisation Wifi : principles et services de géolocalisation Wifi et cellulaire]]&lt;br /&gt;
# [[Kind]] : Goodbye minikube&lt;br /&gt;
# [[Netflix Cosmos]]&lt;br /&gt;
# [[Rudder]]&lt;br /&gt;
# [[Thread]] : démonstration avec le kit [[STM32WB55]]&lt;br /&gt;
# [[Remote sensing]]&lt;br /&gt;
# [[Caches distribués]]: démonstration avec [[Redis]]&lt;br /&gt;
# [[Log Structured Merge Trees]]&lt;br /&gt;
# [[Merkle Trees]]&lt;br /&gt;
# [[Riak]] Database System&lt;br /&gt;
# [[Flux]] (#fluxlang) new data scripting language to make querying and analyzing time series&lt;br /&gt;
# [[NATS]]: PubSub broker (démonstration avec CampusIoT)&lt;br /&gt;
# In-memory Distributed Data Grid : démonstration de eCom avec [[Apache Ignite]].&lt;br /&gt;
# [[jQAssistant]] : application à eCOM&lt;br /&gt;
# [[IoT Dataflow Mashup]] (démo avec [[Eclipse Kura Wires]])&lt;br /&gt;
# [[Géo-réplication]] : Démo avec [[Apache Kafka MirrorMaker]]&lt;br /&gt;
# [[Pulsar]]&lt;br /&gt;
# [[RSocket]]&lt;br /&gt;
# [[Nacos]] : open source project by Alibaba for service discovery and service configuration.&lt;br /&gt;
# [[NEMU]] : open source hypervisor specifically built and designed to run modern cloud workloads on modern 64-bit Intel and ARM CPUs.&lt;br /&gt;
# [[Fission]] : open-source serverless function framework for [[Kubernetes]] with a focus on developer productivity and high performance.&lt;br /&gt;
# [[Microclimate]]&lt;br /&gt;
# [[AdTech]]&lt;br /&gt;
# [[Conflict-free replicated data type]] (CRDT)&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[ESB]] : démonstration de [[Mule ESB]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[ Voice-First Development]] : Designing, Developing, and Deploying Conversational Interfaces&lt;br /&gt;
# [[Psychométrie]]&lt;br /&gt;
# [[Apache Beam]]&lt;br /&gt;
# [[Hazelcast]] : Démo avec Spring Boot ([https://dzone.com/storage/assets/6459742-dzone-rc247-gettingstartedwithspringbootandmicrose.pdf lien]) dans un projet [[JHipster]]&lt;br /&gt;
# [[In-Memory Data Grids]] : Démonstration de [[Gigaspaces]] et [[XAP]] Open Source&lt;br /&gt;
# Insport Video&lt;br /&gt;
# Gestionnaires de contenu : démonstration de  [[Apache Jackrabbit]] dans le projet [[eCOM]]&lt;br /&gt;
# [[Memory-centric virtual distributed storage system]]&lt;br /&gt;
# [[Performance Monitoring]]&lt;br /&gt;
# [[Access Network Query Protocol (ANQP)]]&lt;br /&gt;
# [[JCache]] : démonstration avec [[Apache Ignity]]&lt;br /&gt;
# [[MemCached]]&lt;br /&gt;
# [[Apache Stratos]]&lt;br /&gt;
# [[gceasy]] : Universal garbage collection log Analyser&lt;br /&gt;
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]&lt;br /&gt;
# [[Content Delivery Network]]s : Démonstration de [[Amazon S3]], Azure, Akamaï ... sur votre projet [[ECOM-RICM|eCOM]]&lt;br /&gt;
# [[CMS]] : Demo avec [[Crafter CMS]]&lt;br /&gt;
# [[DMS]] (GED) : Demo avec la version Community Edition d&#039;[[Alfresco]] et de son API REST avec [[Swagger]]  ANNULé&lt;br /&gt;
# [[SIG]] : Démonstration de [[QGIS]]&lt;br /&gt;
# [[Apache Airflow]]&lt;br /&gt;
# [[AzureRTOS]] : système d&#039;exploitation pour l&#039;Internet des Objets. démonstration sur [https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html B-L475] à récupérer au fablab.&lt;br /&gt;
# Algorithmes et systèmes de vote électronique : vices et vertus.&lt;br /&gt;
# [[Normes et systèmes de signature électronique]]&lt;br /&gt;
# Database as a Microservice : [[HarperDB]]&lt;br /&gt;
# [[Underwater Wireless Communications]]&lt;br /&gt;
# [[TiDB]]&lt;br /&gt;
# [[Pantavisor Linux]]: A Framework for Building Containerized IoT Systems&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51494</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51494"/>
		<updated>2021-11-28T20:13:24Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* B. Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci est de créer une infrastructure capable de supporter tâches cloud modernes.&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pourquoi choisir KVM ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Plusieurs raisons font que KVM est aujourd&#039;hui un choix très intéressant :&lt;br /&gt;
* En terme de performance, KVM permet d&#039;atteindre une vitesse quasiment native, ce qui est clairement de très bonne performance.&lt;br /&gt;
* KVM étant un projet open-source, son coût est nul (aucun coût de licence). Aussi, il vient souvent accompagner et préparé à être utilisé pour virtualiser des systèmes d&#039;exploitation aussi open source.&lt;br /&gt;
* KVM fait maintenant partie de l&#039;écosystème Linux, ce qui permet d&#039;assurer une maintenance et évolution importante.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51493</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51493"/>
		<updated>2021-11-28T20:10:27Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* C. KVM et Qemu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pourquoi choisir KVM ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Plusieurs raisons font que KVM est aujourd&#039;hui un choix très intéressant :&lt;br /&gt;
* En terme de performance, KVM permet d&#039;atteindre une vitesse quasiment native, ce qui est clairement de très bonne performance.&lt;br /&gt;
* KVM étant un projet open-source, son coût est nul (aucun coût de licence). Aussi, il vient souvent accompagner et préparé à être utilisé pour virtualiser des systèmes d&#039;exploitation aussi open source.&lt;br /&gt;
* KVM fait maintenant partie de l&#039;écosystème Linux, ce qui permet d&#039;assurer une maintenance et évolution importante.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51492</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51492"/>
		<updated>2021-11-28T20:09:01Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* C. KVM et Qemu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pourquoi choisir KVM ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Plusieurs raisons font que KVM est aujourd&#039;hui un choix très intéréssant :&lt;br /&gt;
* En terme de performance, KVM permet d&#039;atteindre une vitesse quasiment native, ce qui est clairement de très bonne performance.&lt;br /&gt;
* KVM étant un projet open-source, son coût est nul (aucun coût de licence). Aussi il vient souvent accompagné et préparé à être utiliser pour virtualiser des systèmes d&#039;exploitation aussi open source.&lt;br /&gt;
* KVM fait maintenant partie de l&#039;écosystème Linux, ce qui permet d&#039;assurer une maintenance et évolution importante.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51491</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51491"/>
		<updated>2021-11-28T19:58:52Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* C. KVM et Qemu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|200px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51490</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51490"/>
		<updated>2021-11-28T19:58:43Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51489</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51489"/>
		<updated>2021-11-28T19:57:09Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* B. Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&amp;lt;/br&amp;gt;&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51488</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51488"/>
		<updated>2021-11-28T19:54:35Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&amp;lt;/br&amp;gt;&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&amp;lt;/br&amp;gt;&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&amp;lt;/br&amp;gt;&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
* https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
* https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
* https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51487</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51487"/>
		<updated>2021-11-28T19:54:07Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
* Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) &lt;br /&gt;
* Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
On pensera à :&lt;br /&gt;
* cargo (gestionnaire de crate)&lt;br /&gt;
* clippy (linter)&lt;br /&gt;
* rustfmt (formatteur)&lt;br /&gt;
* plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
* vm-virtio : VirtIO (Virtual I/O).&lt;br /&gt;
* vm-device : Modélisation des devices que l&#039;on souhaite ajouter à une machine virtuelle.&lt;br /&gt;
* vm-memory : Création/conception de la mémoire virtuelle d&#039;une machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51486</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51486"/>
		<updated>2021-11-28T19:52:34Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: /* B. Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
On pensera à :&lt;br /&gt;
- cargo (gestionnaire de crate)&lt;br /&gt;
- clippy (linter)&lt;br /&gt;
- rustfmt (formatteur)&lt;br /&gt;
- plugins vs-code, emacs, vim, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=air:VT2021_Cloud-Hypervisor_Fiche&amp;diff=51485</id>
		<title>air:VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=air:VT2021_Cloud-Hypervisor_Fiche&amp;diff=51485"/>
		<updated>2021-11-28T19:50:16Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Lucas.Chaloyard moved page air:VT2021 Cloud-Hypervisor Fiche to VT2021 Cloud-Hypervisor Fiche&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[VT2021 Cloud-Hypervisor Fiche]]&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51484</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51484"/>
		<updated>2021-11-28T19:50:16Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Lucas.Chaloyard moved page air:VT2021 Cloud-Hypervisor Fiche to VT2021 Cloud-Hypervisor Fiche&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=air:Deny_anonymous&amp;diff=51483</id>
		<title>air:Deny anonymous</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=air:Deny_anonymous&amp;diff=51483"/>
		<updated>2021-11-28T19:50:03Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Lucas.Chaloyard moved page air:Deny anonymous to air:VT2021 Cloud-Hypervisor Fiche&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[air:VT2021 Cloud-Hypervisor Fiche]]&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51482</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51482"/>
		<updated>2021-11-28T19:50:03Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Lucas.Chaloyard moved page air:Deny anonymous to air:VT2021 Cloud-Hypervisor Fiche&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51481</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51481"/>
		<updated>2021-11-28T19:46:03Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est développé en Rust, langage qui fournit non seulement des performances intéréssantes, mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typiques d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capacité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important concernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en fait forcer le développeur à éviter de produire certaines failles de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable, car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagner d&#039;une panoplie d&#039;outils extrêmement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce sont ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et développer des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous-projets, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond en fait à un framework ou une application).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un problème de compter sur autant de composants publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaires à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégrée au noyau Linux et peut être chargée dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traitées comme des processus standards du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévue pour une utilisation couplée à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51480</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51480"/>
		<updated>2021-11-28T19:41:18Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&amp;lt;/br&amp;gt;&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&amp;lt;/br&amp;gt;&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conclusion&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&amp;lt;/br&amp;gt;&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&amp;lt;/br&amp;gt;&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement).&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&amp;lt;/br&amp;gt;&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor.&amp;lt;/br&amp;gt;&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&amp;lt;/br&amp;gt;&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&amp;lt;/br&amp;gt;&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51479</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51479"/>
		<updated>2021-11-28T19:39:50Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
[[File:VirtBasic.png|none|frame]]&lt;br /&gt;
[[File:HypervisorLevels.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
[[File:VirtIO.png|none|frame]]&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VirtIO.png&amp;diff=51478</id>
		<title>File:VirtIO.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VirtIO.png&amp;diff=51478"/>
		<updated>2021-11-28T19:38:45Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:HypervisorLevels.png&amp;diff=51477</id>
		<title>File:HypervisorLevels.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:HypervisorLevels.png&amp;diff=51477"/>
		<updated>2021-11-28T19:38:25Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:VirtBasic.png&amp;diff=51476</id>
		<title>File:VirtBasic.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:VirtBasic.png&amp;diff=51476"/>
		<updated>2021-11-28T19:38:11Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51475</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51475"/>
		<updated>2021-11-28T19:37:56Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas dans un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51474</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51474"/>
		<updated>2021-11-28T19:32:01Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;A. VMM&#039;&#039;&#039; ==&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas sur un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
===Qemu===&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;D. VirtIO&#039;&#039;&#039;==&lt;br /&gt;
*TO DO : Partie Elias&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51473</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51473"/>
		<updated>2021-11-28T19:29:42Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Synthèse&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;B. Rust&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===Langage Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas sur un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;&#039;C. KVM et Qemu&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
===KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
==Qemu==&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51472</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51472"/>
		<updated>2021-11-28T19:27:37Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Synthèse&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===A. jsp===&lt;br /&gt;
&lt;br /&gt;
===B. Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas sur un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===C. rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
===D. KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51471</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51471"/>
		<updated>2021-11-28T19:27:25Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Synthèse&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===A. jsp===&lt;br /&gt;
&lt;br /&gt;
===B. Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas sur un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===C. rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
===D. KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:KVM_diagram.png|none|frame|300x400px|Schéma KVM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:KVM_diagram.png&amp;diff=51470</id>
		<title>File:KVM diagram.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:KVM_diagram.png&amp;diff=51470"/>
		<updated>2021-11-28T19:20:42Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51469</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51469"/>
		<updated>2021-11-28T19:19:27Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Cloud Hypervisor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; =&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]) - Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Résumé&#039;&#039;&#039; ==&lt;br /&gt;
Mots clés : Cloud, VMM, Hyperviseur, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
Le projet &amp;quot;Cloud Hypervisor&amp;quot; est une VMM open source qui s&#039;exécute au-dessus de KVM.&lt;br /&gt;
Ce projet est dévéloppé en Rust, langage qui fournit non seulement des performances intéréssantes mais aussi une sécurité et fiabilité très grande. Il est basé sur les crates rust-vmm dont on parlera.&lt;br /&gt;
Il est destiné à exécuter des tâches typique d&#039;application Cloud moderne.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Abstract&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Keywords : Cloud, VMM, Hypervisor, Rust, KVM, Qemu&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Cloud Hypervisor&amp;quot; project is an open source VMM that runs on top of KVM.&lt;br /&gt;
This project is developed in Rust, a language that provides not only good performance but also great security and reliability. It is based on the rust-vmm crates that we will talk about.&lt;br /&gt;
It is intended to perform typical tasks of modern cloud applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Synthèse&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
===A. jsp===&lt;br /&gt;
&lt;br /&gt;
===B. Rust===&lt;br /&gt;
&#039;&#039;&#039;Performance&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust est dépourvu de garbage collector et ne s&#039;exécute pas sur un environnement virtuel.&lt;br /&gt;
L&#039;explicité du langage (typage dynamique) permet au compilateur de produire un code Assembleur d&#039;une efficacité folle.&lt;br /&gt;
Lors de sa compilation, Rust passera à travers le compilateur LLVM qui est l&#039;un des compilateurs les plus utilisés (avec GCC) et dont la capcité à produire du code efficace n&#039;est plus remise en doute. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Securité et fiabilité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le point le plus important conçernant Rust, et celui dont on parle le plus est sa capacité en terme de sécurité et fiabilité.&lt;br /&gt;
Le compilateur Rust va en faite forcer le développeur à éviter de produire certaines faille de sécurité.&lt;br /&gt;
Son système de typage puissant et son modèle d&#039;ownership permet de contraindre le developpeur à garantir une certaine sécurité mémoire.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, ce point peut-être discutable car ce n&#039;est qu&#039;au final qu&#039;une assistance au développeur lui permettant d&#039;éviter ces bugs, mais un développeur ne devrait-il pas être capable par lui même d&#039;éviter de créer ce genre de faille ?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Productivité&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Aussi, Rust vient accompagné d&#039;une panoplie d&#039;outil extremement bien développé et très utile, permettant à n&#039;importe quel développeur une grande productivité.&lt;br /&gt;
&lt;br /&gt;
C&#039;est ces caractéristiques qui font que Rust a été choisi pour ce projet dédié au Cloud, un milieu où on recherche à la fois performance, sécurité et fiabilité.&lt;br /&gt;
&lt;br /&gt;
===C. rust-vmm===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qu&#039;est-ce que Rust-Vmm ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Rust-Vmm est un projet open source destiné à encourager la communauté Rust à construire et developper des Virtual Machine Monitors (VMMs) et des hyperviseurs (ainsi que les outils qui les entourent).&lt;br /&gt;
Ce projet est donc un ensemble de sous projet, pouvant servir de composant dans la création d&#039;une VMM par exemple.&lt;br /&gt;
Dans le jargon de Rust, on parlera de crates (ce qui correspond enfaite à un framework ou une application simplement)&lt;br /&gt;
&lt;br /&gt;
On citera quelqu&#039;un de ces composants tel que :&lt;br /&gt;
- vm-virtio : VirtIO (Virtual I/O) &lt;br /&gt;
- vm-device : Model d&#039;une Virtual Machine&lt;br /&gt;
- vm-memory : Utilisation à la création/conception de la virtual memory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Est-ce un problème ?&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Le projet Cloud-Hypervisor repose sur le projet rust-vmm.&lt;br /&gt;
On peut alors se demander si ce n&#039;est pas un probléme de compter sur autant de composant publique, dont la maintenance n&#039;est assuré que par la communauté Open Source Rust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inspiration&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
Une grande partie du code du Cloud-Hypervisor est basé sur soit le projet Firecrack d&#039;Amazon ou sur les projets CrosVM de Google.&lt;br /&gt;
&lt;br /&gt;
Ces 2 projets sont aussi des projets de VMM écrit en Rust, dont certains objectifs se veulent similaire à ceux du Cloud-Hypervisor&lt;br /&gt;
Néamoins, le projet Cloud-Hypervisor possède un but final différent, celui-ci à créer une (infrastructure?) capable de supporter des images ? (partie à revoir)&lt;br /&gt;
&lt;br /&gt;
Grâce à ces projets, rust-vmm est bien maintenu, et se trouve fournit de code de qualité, surtout pour les parties orienté wrapping de l&#039;API KVM et la gestion mémoire du Guest OS.&lt;br /&gt;
&lt;br /&gt;
===D. KVM===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outil de virtualisation&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM correspond à une technologie de virtualisation open source. &amp;lt;/br&amp;gt;&lt;br /&gt;
Cette technologie est directement intégré au noyau Linux et peut être chargé dans le noyau en tant que module en fonction du bon vouloir de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
KVM permet de convertir votre système Linux en un hyperviseur de type 1.&lt;br /&gt;
Les machines virtuelles qu&#039;on lancera à l&#039;aide de KVM seront traités comme des processus standard du système. Cela permet de laisser la gestion de l&#039;ordonnancement des machines virtuelles à l&#039;ordonnanceur des processus du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KQemu&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
KVM est accompagné d&#039;une version modifiée de Qemu (dont on parlera plus tard), appelé KQemu.&lt;br /&gt;
Cette version de Qemu est prévu pour une utilisation couplé à KVM, ce qui permettra des optimisations accélérant l&#039;émulation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Références&#039;&#039;&#039; ==&lt;br /&gt;
- https://github.com/cloud-hypervisor/cloud-hypervisor - Repo git du projet Cloud Hypervisor&lt;br /&gt;
- https://www.linux-kvm.org/page/Main_Page - Information sur KVM&lt;br /&gt;
- https://www.cl.cam.ac.uk/research/security/seminars/archive/slides/2019-05-07-b.pdf - Discussion sur rust-vmm&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51468</id>
		<title>VT2021 Cloud-Hypervisor Fiche</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2021_Cloud-Hypervisor_Fiche&amp;diff=51468"/>
		<updated>2021-11-28T18:44:42Z</updated>

		<summary type="html">&lt;p&gt;Lucas.Chaloyard: Created page with &amp;quot;== &amp;#039;&amp;#039;&amp;#039;Cloud Hypervisor&amp;#039;&amp;#039;&amp;#039; == Lucas Chaloyard (lucas.chaloyard@etu.univ-grenoble-alpes.fr), Elias El Yandouzi (elias.el@outlook.fr)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;Cloud Hypervisor&#039;&#039;&#039; ==&lt;br /&gt;
Lucas Chaloyard ([[lucas.chaloyard@etu.univ-grenoble-alpes.fr]]), Elias El Yandouzi ([[elias.el@outlook.fr]])&lt;/div&gt;</summary>
		<author><name>Lucas.Chaloyard</name></author>
	</entry>
</feed>