-
-
-
-
-
-
-
HomeSite map
SoC/Jobs offers/Internships/2014-2015/ALSOC/Exécution de plusieurs systèmes d'exploitation sur une puce manycore CC-Numa sécurisée Print page

Exécution de plusieurs systèmes d'exploitation sur une puce manycore CC-Numa sécurisée

Durée :

6 mois

Financement :

Projet ANR Tsunamy

Équipe d'accueil :

Laboratoire LIP6, Département SoC, équipe Alsoc

Contexte

Le projet ANR TSUNAMY adresse la problématique de la manipulation sécurisée des données personnelles et privées au sein d'architectures manycore. Il vise entre autres à proposer une solution de confiance par construction permettant d'exécuter plusieurs piles logicielles indépendantes en parallèle -- en en garantissant le cloisonnement mutuel -- sur une architecture manycore CC Numa. Pour cela, plusieurs contributions sont proposées dans le cadre de ce projet :

  • Le développement d'une architecture manycore sécurisée intégrant des clusters hétérogènes cryptographiques, c'est-à-dire comprenant un crypto-processeur (co-processeur permettant de faire du chiffrement en matériel)
  • Le développement de mécanismes d'isolation logique (au niveau logiciel) et physique (au niveau matériel) afin de garantir une exécution cloisonnée des piles logicielles ; 
  • Le développement conjoint des couches logicielle bas niveau (pilote, API...) et matérielle afin d'offrir une chaine de confiance globale ; 
  • Le développement de stratégies permettant de répartir dynamiquement les applications sur l'architecture manycore.

Le point qui nous intéresse principalement dans ce stage est le second. Les piles logicielles sont, dans le cadre de ce stage, des systèmes d'exploitation (SE) complets.

L'environnement de travail utilisera la bibliothèque de composants soclib, la  modélisation SystemC de l'architecture Tsar, ainsi que le système d'exploitation ALMOS.

Le but du stage est la réalisation d'un environnement logiciel et matériel permettant de lancer deux SE indépendants sur la même plateforme. Par rapport à la version finale attendue dans le projet, cette réalisation comportera beaucoup d'hypothèses simplificatrices. Elle sera nommée "V0".

Motivations

Le lancement dynamique de SE indépendants est un point central de Tsunamy. Cela nécessite un support à la fois logiciel et matériel.  L'approche adoptée dans le projet est d'ajouter un troisième espace d'adressage en plus des espaces physique et virtuel. Cet espace est celui vu par un système d'exploitation, et les adresses physiques correspondantes doivent ensuite être traduites en adresses machine.

Cette traduction ne s'effectue pas à l'aide d'une MMU standard, couteuse en matériel et en temps, mais à l'aide d'un composant matériel appelé Hardware Address Translator (HAT). Ce mécanisme, plus rigide et plus simple, permet de faire des correspondances par numéro de cluster. Ces HAT sont configurées avant le lancement du SE par un hyperviseur. C'est ce même hyperviseur qui est en charge d'initialiser la mémoire du SE avec son code et ses données.

Objectifs

La réalisation comporte un certain nombre de tâches, qu'il convient de réaliser de manière incrémentale :

  • Adaptation d'une plateforme TSAR à 4 clusters pour la rendre compatible avec les besoins du projet (intégration des HAT, modification du routage des interruptions, adaptation du nombre de canaux des périphériques...)
  • Définition d'un mécanisme de boot de l'hyperviseur et des processeurs non actifs
  • Ecriture de la partie "VMLoader" (Virtual Machine Loader) de l'hyperviseur, en charge d'initialiser la mémoire du kernel, de configurer les HAT et de réveiller les processeurs
  • Réalisation du monitoring des différents systèmes lancés via un multiplexage de leur terminaux

Objectifs secondaires (facultatifs, suivant l'avancement du stage et del'autre stage Tsunamy en parallèle) :

  • Gestion des interruptions via un PIC (Programmable Interrupt Controler)
  • Chiffrement du code kernel des SE avant leur lancement (vie du système avec disque en clair)
  • Chiffrement à la volée des données sur le disque par les SE
  • Réalisation d'un shell hyperviseur, permettant de commander le lancement d'une nouvelle instance d'Almos
  • Arrêt des SE qui fonctionnent, par eux-mêmes ou sur demande de l'hyperviseur

Réalisation

  • Le stage comportera entre autres les étapes suivantes :
  • Etude et compréhension de l'architecture TSAR 
  • Prise en main du prototype virtuel SystemC de l'architecture
  • Etude du système d'exploitation ALMOS utilisé
  • Réalisation des différents objectifs
  • Validation fonctionnelle systématique des objectifs, par l'écriture de tests appropriés
  • Validation finale, par l'exécution de deux SE Almos exécutant chacun des applications logicielles

Compétences souhaitées

  • Architecture des machines : hiérarchie mémoire, caches, mécanismes de traduction d'adresse
  • Systèmes d'exploitation : fonctionnement d'un driver, d'un loader
  • Protocoles de cohérence
  • Langages : C++, python

Références

[1] TSUNAMY. Project Home Page. web: www-asim.lip6.fr/trac/tsunamy

[2] Tera Scale ARchitecture. Project Home Page. web: tmp-soc.lip6.fr/trac/tsar

[3] Soclib. Project Home Page. web: www.soclib.fr

[4] G. Almaless : “Conception d’un système d’exploitation pour une architecture many-cores à mémoire partagée cohérente de type cc-NUMA”, these, defense 02/27/2014, supervision Greiner, Alain, co-supervision WAJSBÜRT Franck (2014)

Encadrant :

Quentin Meunier

LIP6 LIP6-SoC LIP6 CNRS UPMC