L’écosystème Uxn
(100r.co)- Uxn/Varvara est une petite machine virtuelle au cœur d’une pile de calcul personnel permettant d’exécuter la même application sur plusieurs systèmes
- Le projet est né d’un besoin concret d’hébergement d’applications graphiques, mais il est publié de façon à pouvoir être adopté par tous comme cible de publication
- Les programmes sont écrits dans son propre langage, Uxntal, et leur distribution ressemble au partage de ROM de jeux pour émulateurs de consoles classiques
- L’exécution nécessite un émulateur adapté à chaque système d’exploitation, et il est aussi possible d’implémenter soi-même un émulateur à partir des spécifications de la VM et des E/S
- Comme la même ROM peut tourner sur un desktop, de petits appareils électroniques, des consoles portables et dans le navigateur, il est plus facile de maintenir longtemps de petits logiciels et de les porter vers divers environnements
La pile de calcul visée par Uxn/Varvara
- L’écosystème Uxn/Varvara est une pile de calcul personnel centrée sur une petite machine virtuelle
- Son objectif principal est de permettre à la même application de s’exécuter sur plusieurs systèmes
- Sa conception repose sur une approche implementation-first et est adaptée à un besoin concret d’hébergement d’applications graphiques
- Uxn se programme dans son propre langage, Uxntal
- La distribution des programmes Uxn est comparable au partage de ROM de jeu pour émulateurs de consoles classiques
- Pour plus de détails sur les choix de conception, voir la note uxn design
Émulateurs et exécution des ROM
- Pour exécuter un programme Uxn, il faut un émulateur adapté au système
- Linux/BSD
- Mac/Plan9
- Windows
- D’autres environnements sont listés dans awesome-uxn emulators
- Il est aussi possible d’implémenter soi-même un émulateur à partir des spécifications de la VM et des E/S
- L’émulateur desktop cross-platform nécessite SDL2
- Arch:
sudo pacman -S sdl2 - Ubuntu:
sudo apt install libsdl2-dev - Void Linux:
sudo xbps-install SDL2-devel - OSX:
brew install sdl2 - openBSD:
doas pkg_add sdl2
- Arch:
- Il existe plusieurs façons de lancer une ROM
- utiliser un programme lanceur
- glisser un fichier
.romdans la fenêtre de l’émulateur - exécuter
bin/uxnemu path/to/example.romdans le terminal
- Les commandes de base de l’émulateur reposent sur des touches de fonction et un mapping de boutons
F1: activer/désactiver le zoomF2: activer/désactiver le débogueurF3: capture d’écranF4: chargerlauncher.romL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
Environnements d’exécution et programmes d’exemple
- La même ROM Uxn peut être utilisée sur des ordinateurs desktop, de petits appareils électroniques, des consoles portables modernes et dans le navigateur
- Il existe aussi des ports pour GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC, même si certains ne sont pas finalisés
- Les programmes Uxn fournis en exemple incluent des jouets, des jeux et des outils
Ressources d’apprentissage et communauté
- Des ressources pour démarrer sont disponibles via les liens suivants
- En cas de besoin, il est possible de poser des questions sur #uxn sur
irc.libera.chatou sur le Discord Catlang
1 commentaires
Avis Hacker News
Tous les aspects de ce groupe sont fascinants. Ce sont des nomades numériques sur un bateau, et chaque texte donne un aperçu d’une vie que je n’aurais même jamais imaginée possible
À chaque fois que j’entre sur leur site, je tombe dans un terrier de lapin. Dans une autre vie, j’aurais peut-être voulu essayer ça
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
La compilation croisée est facile, et en lisant l’introduction à Plan 9 de Ballesteros, on développe presque naturellement une intuition pour l’informatique
Il y a énormément de contenu génial
Le fait que ça tourne sur plein de matériels réels différents est également remarquable. J’ai vu beaucoup de projets de machines virtuelles, mais ils donnent en général l’impression d’être isolés dans un autre ordinateur. Des contraintes extrêmes semblent pousser la conception dans une direction complètement différente
Bien sûr, l’algorithme de YouTube reste l’algorithme de YouTube, et le capitalisme reste le capitalisme, donc une bonne partie des vidéos de navigation sont aussi du contenu en bikini. Mais il y a aussi tout un pan de vie consacré à réparer, modifier et améliorer de petits voiliers. De la fibre de verre au solaire en passant par le dessalement, ça donne un aperçu vraiment fascinant d’une autre façon de vivre
J’ai énormément de respect pour cette équipe. Il vaut aussi la peine de lire leur excellent texte sur la recherche d’un modèle informatique plus simple : https://100r.co/site/weathering_software_winter.html
100r me rappelle ce qui nous manque peut-être le plus aujourd’hui : le courage
Nous avons peur de saisir des occasions, d’explorer des idées, de choisir une voie un peu plus difficile et de nous lancer dans des défis exigeants. Nous sommes réfractaires au risque et peu enclins à essayer des choses nouvelles
Quand je lis leur voyage, tout le travail qu’ils font sur leur bateau, leur attitude envers le code, et surtout l’idée de créer des logiciels pour une seule personne, je me sens presque lâche. Ça me donne envie d’être plus courageux dans ma façon d’aborder le code, la vie et mon environnement
Merci à Rek et Devine pour tout leur travail. Ça fait plaisir de les voir ne rien faire avec tant d’activité
Le compte de l’auteur sur Mastodon (https://merveilles.town/@neauoire) est un trésor de petits projets et de captures d’écran venus de l’univers parallèle du computing qu’est l’ordinateur de Devine
Je recommande aussi vivement l’épisode de podcast réalisé avec Future of Coding : https://futureofcoding.org/episodes/044.html ainsi que sa suite consacrée à Orca, ce remarquable environnement de musique live : https://futureofcoding.org/episodes/045.html
Cette personne, ainsi que les anciens utilisateurs de Lisp de ce forum, m’ont longtemps fait réfléchir à l’informatique alternative et aux langages de programmation de niche. Uxn est sur ma liste, mais en ce moment je suis occupé avec la famille Smalltalk avant de me plonger dans Forth et Uxn :)
Je suis toujours content quand ils arrivent en première page. Leur logiciel est intéressant, mais tout le travail qu’ils font pour rendre leur bateau aussi autonome que possible est vraiment impressionnant
Des fans de Blame! ici ? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
Parmi leurs sites, celui que je consulte réellement le plus souvent est leur site de recettes : https://grimgrains.com/site/home.html
Il y a pas mal de choses intéressantes pour les gens qui aiment cuisiner
Maxine Chevalier-Boisvert, connue pour son travail sur le JIT de Basic Block Versioning et plus récemment sur yjit, explore aussi des idées similaires en ce moment
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
C’est une conception de machine virtuelle petite et élégante, qui devrait intéresser beaucoup de monde ici
Ce n’est pas juste un design posé sur la page web de quelqu’un : ils en font des outils, des jeux et de l’art
Je l’ai fait moi-même, et c’est un peu plus complexe que leur jeu d’instructions, mais pas de beaucoup. Comme de vrais compilateurs peuvent le cibler, on peut en pratique exécuter à peu près n’importe quel logiciel. Il faut néanmoins toujours fournir le reste de l’environnement de la machine virtuelle, notamment pour les entrées/sorties
Avec ses jeux rétro basés sur Forth, ses faibles exigences matérielles et sa machine virtuelle portée presque partout, cela ressemble au Z-Machine, mais davantage pour le pixel art
Ça a l’air parfait pour des jeux dans l’esprit Game Boy, sans avoir à se battre avec un jeu d’instructions type Z80 ni à craindre de griller un vrai écran LCD à cause d’un bug bizarre de timing de cycles pendant l’affichage des sprites