Das Uxn-Ökosystem
(100r.co)- Uxn/Varvara ist ein persönlicher Computing-Stack, der sich um eine kleine virtuelle Maschine dreht und dieselbe Anwendung auf mehreren Systemen ausführen lässt
- Ausgangspunkt war der konkrete Bedarf, grafische Anwendungen zu hosten, es ist aber offen veröffentlicht, sodass es von jedem als Release-Ziel genutzt werden kann
- Programme werden in der eigenen Sprache Uxntal geschrieben, und die Verteilung ähnelt dem Teilen von Game-ROMs klassischer Konsolen-Emulatoren
- Für die Ausführung wird ein betriebssystemspezifischer Emulator benötigt; auf Basis der VM- und I/O-Spezifikationen kann man auch selbst einen Emulator implementieren
- Da dieselbe ROM auf Desktops, kleinen Elektronikgeräten, Handhelds und im Browser läuft, lassen sich kleine Programme lange pflegen und leicht in verschiedene Umgebungen übertragen
Der Computing-Stack, auf den Uxn/Varvara abzielt
- Das Uxn/Varvara-Ökosystem ist ein persönlicher Computing-Stack, der sich um eine kleine virtuelle Maschine dreht
- Das zentrale Ziel ist, dieselbe Anwendung auf mehreren Systemen lauffähig zu machen
- Das Design basiert auf einer Denkweise nach dem Prinzip Implementierung zuerst und ist auf den konkreten Bedarf des Hostings grafischer Anwendungen zugeschnitten
- Uxn wird in der eigenen Sprache Uxntal programmiert
- Die Verteilung von Uxn-Programmen ähnelt dem Teilen von Game-ROMs für klassische Konsolen-Emulatoren
- Weitere Hintergründe zum Design finden sich in den Notizen zu uxn design
Emulatoren und Ausführung von ROMs
- Um Uxn-Programme auszuführen, wird ein zum jeweiligen System passender Emulator benötigt
- Linux/BSD
- Mac/Plan9
- Windows
- Weitere Umgebungen sind in der awesome-uxn-Emulatorliste zusammengestellt
- Anhand der VM- und I/O-Spezifikationen kann man auch selbst einen Emulator implementieren
- Der plattformübergreifende Desktop-Emulator benötigt 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:
- Es gibt mehrere Möglichkeiten, ROMs auszuführen
- Ein Launcher-Programm verwenden
- Eine
.rom-Datei in das Emulatorfenster ziehen - Im Terminal
bin/uxnemu path/to/example.romausführen
- Die Standardsteuerung des Emulators erfolgt über Funktionstasten und Button-Mappings
F1: Zoom ein/ausF2: Debugger ein/ausF3: ScreenshotF4:launcher.romladenL-Ctrl: A,L-Alt: B,L-Shift: Select,Home: Start
Laufzeitumgebungen und Beispielprogramme
- Dieselbe Uxn-ROM kann auf Desktop-Computern, kleinen Elektronikgeräten, modernen Handhelds und im Browser verwendet werden
- Es gibt außerdem Ports für GBA, Nintendo DS, Playdate, DOS, PlayStation Vita, Raspberry Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC und weitere; einige davon sind noch unvollständig
- Die als Beispiele bereitgestellten Uxn-Programme umfassen Spielereien, Spiele und Werkzeuge
Lernmaterialien und Community
- Material für den Einstieg ist unter den folgenden Links verfügbar
- Wer Hilfe braucht, kann in #uxn auf
irc.libera.chatoder im Catlang Discord nachfragen
1 Kommentare
Hacker-News-Kommentare
Alles an dieser Gruppe ist faszinierend. Digitale Nomaden auf einem Boot, und jeder einzelne Text gibt einem einen Einblick in ein Leben, von dem ich nie gedacht hätte, dass es überhaupt möglich ist.
Jedes Mal, wenn ich die Website besuche, falle ich in einen Kaninchenbau. In einem anderen Leben hätte ich das vielleicht auch ausprobieren wollen.
https://100r.co/site/dry_toilet_installation.html
https://100r.co/site/solar_evacuated_tube_cooking.html
Cross-Compiling ist ebenfalls einfach, und wenn man Ballesteros’ Plan-9-Einführung liest, entwickelt man ganz nebenbei auch ein Gespür für Informatik.
Dort gibt es wirklich eine Menge großartiger Inhalte.
Erstaunlich ist auch, dass sie auf so vieler realer Hardware läuft. Ich habe viele Projekte für virtuelle Maschinen gesehen, aber die meisten wirkten irgendwie in einem anderen Computer eingeschlossen. Extreme Einschränkungen scheinen das Design in eine völlig andere Richtung zu drängen.
Natürlich ist der YouTube-Algorithmus der YouTube-Algorithmus und der Kapitalismus ist der Kapitalismus, deshalb besteht ein beträchtlicher Teil der Segelvideos auch aus Bikini-Content. Gleichzeitig nimmt aber auch das Leben rund um Reparatur, Umbau und Upgrades kleiner Yachten einen großen Raum ein. Von Glasfaserarbeiten über Solarenergie bis hin zur Entsalzung bekommt man einen wirklich faszinierenden Einblick in dieses Leben.
Ich habe großen Respekt vor diesem Team. Ebenfalls lesenswert ist ein großartiger Text darüber, wie man zu einem einfacheren Computing-Modell findet: https://100r.co/site/weathering_software_winter.html
100r erinnert mich an etwas, das uns heute am meisten fehlt: Mut.
Wir haben Angst davor, Chancen zu ergreifen, Ideen zu erkunden, den etwas schwierigeren Weg zu wählen und uns anspruchsvollen Herausforderungen zu stellen. Wir sind risikoscheu und wollen nichts Neues ausprobieren.
Wenn ich über ihre Reisen lese, über all die Arbeiten auf dem Boot, über ihre Haltung zu Code und besonders über die Idee, Software für nur eine Person zu schreiben, fühle ich mich wie ein Feigling. Es macht mir Lust, mutiger zu werden im Umgang mit Code, mit dem Leben und mit meiner Umgebung.
Danke für all die Arbeit von Rek und Devine. Es freut mich, euch dabei zuzusehen, wie ihr geschäftig nichts tut.
Das Mastodon-Konto des Autors (https://merveilles.town/@neauoire) ist eine wahre Schatzkammer kleiner Projekte und Screenshots aus Devines parallelem Computing-Universum.
Ich kann auch die gemeinsame Podcast-Folge bei Future of Coding sehr empfehlen: https://futureofcoding.org/episodes/044.html sowie die Fortsetzung über Orca, eine erstaunliche Live-Musik-Umgebung: https://futureofcoding.org/episodes/045.html
Durch diese Person und durch die langjährigen Lisp-Nutzer in diesem Forum denke ich schon lange über alternatives Computing und Nischen-Programmiersprachen nach. Uxn steht auf meiner Liste, aber im Moment bin ich mit Smalltalk-artigen Dingen beschäftigt, bevor ich mich in Forth und Uxn vertiefe :)
Ich freue mich immer, wenn sie auf der Startseite auftauchen. Die Software, die sie schreiben, ist interessant, aber noch beeindruckender sind die Arbeiten, die sie ausführen, um das Boot so weit wie möglich autark zu machen.
Gibt es hier Blame!-Fans? https://wiki.xxiivv.com/site/devine_lu_linvega.html https://blame.fandom.com/wiki/Davine_Lu_Linvega
https://100r.co/site/pino.html
Von ihren Seiten schaue ich tatsächlich am häufigsten auf der Rezeptseite vorbei: https://grimgrains.com/site/home.html
Da gibt es für Leute, die gern kochen, ziemlich viele interessante Dinge.
Maxine Chevalier-Boisvert, bekannt für die Arbeit an Basic Block Versioning JIT und jüngst yjit, beschäftigt sich in letzter Zeit ebenfalls mit ähnlichen Ideen.
https://pointersgonewild.com/2023/02/24/building-a-minimalistic-virtual-machine/
Als kleines und elegantes Design einer virtuellen Maschine dürfte das hier viele Leute interessant finden.
Es bleibt nicht bei einem Entwurf auf irgendeiner Webseite, sondern daraus entstehen Werkzeuge, Spiele und Kunst.
Ich habe das selbst gemacht; es ist etwas komplexer als ihr Befehlssatz, aber der Unterschied ist nicht groß. Da echte Compiler darauf zielen können, lässt sich im Prinzip fast jede Software ausführen. Die restliche VM-Umgebung, etwa für Ein-/Ausgabe, muss man aber trotzdem noch bereitstellen.
Ein Forth-basiertes Retro-Style-Spiel, niedrige Anforderungen und eine fast überall hin portierte virtuelle Maschine erinnern an die Z-Machine, nur stärker auf Pixel ausgerichtet.
Es wirkt gut geeignet für Spiele im GB-Stil, bei denen man nicht mit einem Z80-artigen Befehlssatz kämpfen muss und sich auch keine Sorgen machen muss, wegen seltsamer Cycle-Timing-Bugs bei der Sprite-Anzeige ein echtes LCD zu zerstören.