Édition française
En continu
---Advertisement---

Technologie et science

Programmation d’un jeu spatial pour X86 en assemblage sans système d’exploitation

Publié le 16 mai 2024. Un développeur a réussi à créer et à exécuter un jeu vidéo directement sur le matériel informatique, sans recourir à un système d'exploitation, en exploitant les capacités de l'interface UEFI. L'UEFI (Unified Extensible…

Programmation d’un jeu spatial pour X86 en assemblage sans système d’exploitation

Publié le 16 mai 2024. Un développeur a réussi à créer et à exécuter un jeu vidéo directement sur le matériel informatique, sans recourir à un système d’exploitation, en exploitant les capacités de l’interface UEFI.

  • L’UEFI (Unified Extensible Firmware Interface) est une interface logicielle qui remplace progressivement le BIOS traditionnel et permet de démarrer un ordinateur.
  • Le développeur a écrit le code du jeu en langage assembleur et l’a déployé sur un processeur AMD Ryzen AI 9 HX 370 équipé de 32 Go de mémoire RAM DDR5.
  • La vidéo démontre comment manipuler les services de démarrage et d’exécution de l’UEFI pour charger et exécuter une application personnalisée, dans ce cas, un jeu spatial simple.

Dans une vidéo récemment publiée, le développeur, connu sous le pseudonyme d'[Inkbox], dévoile un exploit technique fascinant : la création d’un jeu informatique fonctionnant directement sur le matériel, sans l’intermédiaire d’un système d’exploitation. Cette prouesse est rendue possible grâce à l’UEFI (Unified Extensible Firmware Interface), une interface logicielle moderne qui succède au BIOS (Basic Input/Output System) dans la gestion du démarrage d’un ordinateur.

[Inkbox] commence par expliquer brièvement le rôle du BIOS et la manière dont l’UEFI l’a supplanté. L’UEFI, initialement développé par Intel à la fin des années 1990, est devenu un projet open source repris et développé par la communauté TianoCore, qui propose notamment l’environnement de développement Tianocore edkII.

L’UEFI fournit des services essentiels, divisés en services de démarrage (chargement de la mémoire, exécution d’applications UEFI) et services d’exécution (accès à l’horloge système, réinitialisation du système). De nombreux protocoles UEFI supplémentaires sont également disponibles pour les développeurs.

Le processus de démarrage d’un processeur x64 commence à l’adresse mémoire 0xfffffff0, où résident les instructions d’initialisation. Ces instructions permettent de passer en mode protégé, de vérifier le micrologiciel, d’initialiser la mémoire, de charger les pilotes de stockage et graphiques, puis d’exécuter le gestionnaire de démarrage UEFI. Ce dernier charge ensuite l’application EFI appropriée, qu’il s’agisse des paramètres du micrologiciel, du gestionnaire de démarrage Windows ou de GRUB. Dans cette démonstration, [Inkbox] a créé sa propre application EFI, capable d’être chargée et exécutée par le gestionnaire de démarrage UEFI.

Le système utilisé pour le développement et les tests est équipé d’un processeur AMD Ryzen AI 9 HX 370 et de 32 Go de mémoire RAM DDR5.

Après avoir exposé les principes de base, [Inkbox] détaille le processus d’écriture et de déploiement du programme en langage assembleur. Il montre comment lire et écrire sur la console, et précise avoir effectué ses tests sur QEMU avec une image stockée sur une clé USB externe. Il explique également comment utiliser les fonctions d’heure et de date du système pour obtenir le mois en cours. La lecture des nanosecondes de l’horloge système l’a conduit à consulter la Spécification UEFI, version 2.10 (la version 2.11 étant la plus récente à ce jour).

La vidéo se poursuit avec des calculs de synchronisation, l’utilisation de LocateProtocol pour charger le fournisseur de sortie graphique, la configuration d’un mode vidéo approprié, l’écriture sur l’écran à l’aide des opérations BLT et l’exécution du programme sur les 24 cœurs du processeur. Finalement, grâce à une programmation graphique simple et une saisie à la souris, [Inkbox] parvient à faire fonctionner un jeu spatial rudimentaire pour x86.

Pour ceux qui souhaitent approfondir leurs connaissances sur l’UEFI, un article de référence est disponible ici.

Join WhatsApp

Join Now

Join Telegram

Join Now

Laisser un commentaire

À propos de l’auteur: Thomas Caron

Thomas Caron couvre les technologies, les sciences, l’intelligence artificielle et l’innovation. Il explique les nouveautés sans jargon inutile et distingue les annonces spectaculaires des avancées réellement établies.