Ne doit pas être confondu avecGraphical Environment Manager.
Pour les articles homonymes, voirGEM.
Graphics Execution Manager, ouGEM, est ungestionnaire de mémoire pourprocesseurs graphiques inclus dans lenoyau Linux. Il est conçu pour décharger lespilotes graphiques de cette tâche.
GEM a été développé initialement pour les architecturesIntel (qui ont la particularité d'avoir unemémoire partagée) par deux ingénieurs de la société :Keith Packard etEric Anholt[1]. Les pilotes des principales architectures graphiques (Intel, mais aussiAMD etNVIDIA) ont ensuite été adaptés pour en tirer profit.
Intégrer le gestionnaire de mémoire au noyau Linux était un prérequis à la gestion des modes d'affichage par le noyau (kernel-based mode-setting).
GEM est également conçu pour être compatible avec les noyauxBSD.
GEM a été présenté parIntel en comme une alternative au gestionnaire de mémoire graphiqueTranslation Table Maps (TTM) développé par la sociétéTungsten Graphics (rachetée parVMware en) et qui était alors pressenti par la plupart des développeurs deX.Org pour intégrer lenoyau Linux[2].
L’inclusion de GEM dans lenoyau Linux à partir de sa version 2.6.28 sortie en semble donner raison àIntel.
Comme résultat de cette hésitation première, les piloteslibres pour processeurs AMD et NVIDIA adoptent un fonctionnement mixte. Ces derniers utilisent en interne un gestionnaire graphique équivalent à TTM tout en s'appuyant sur l'interface de programmation de GEM pour communiquer avec le reste du système graphique[3].
La version 2.6.31 dunoyau Linux intègre les composantes nécessaires pour permettre aux cartesATI Radeon de bénéficier de ces avancées[4]. À partir de Linux 3.12, TTM accède à la mémoire par GEM, la solution devient commune.
Suivront les architecturesNVIDIA avec le projetNouveau, etVIA avec le projetOpenChrome emmené par la sociétéTungsten Graphics.