Merecete

Werkzeuge für Elektrotechnik, Medien und ein Hobby-Betriebssystem

Diese Seite auf: English

Store — Programme für Violyx

Schlichte Links auf .vpk-Programme für Violyx, von einer Domain, die der Violyx-Browser ohne JavaScript erreichen kann.

Wie ein Programm auf den Rechner kommt

Katalog

Hier ist noch kein Programm veröffentlicht. Im Download-Ordner liegen keine .vpk-Dateien und die Katalogdatei ist leer. Die Dateien selbst entscheiden, was in der Liste unten steht, nicht diese Seite — deshalb kann ein Eintrag nicht von dem Programm abweichen, das er beschreibt.

Was ein Paket ist

Eine .vpk-Datei ist kein zip und kein tar: sie ist ein 256 Byte langer Kopf, direkt gefolgt vom Programm selbst, unbearbeitet und unkomprimiert. Der Kernel liesst den Kopf, bevor etwas läuft. Diese Felder und Grenzen akzeptiert er, entnommen aus kernel/prog.c und sdk/mkvpk.py in den Violyx-Quellen:

magic
die vier Bytes VPK1 am Anfang
elf
Länge des Programmteils; Kopf plus dieser Wert muss der Dateigröße entsprechen
cols/rows
Fenstergröße in Zeichenzellen: 20 bis 76 Spalten, 5 bis 20 Zeilen
name
bis zu 23 Zeichen aus a-z, 0-9, - und _; bestimmt den Ordner /programs/<name>
title
steht im Fensterrahmen, bis zu 23 Zeichen
version
bis zu 11 Zeichen, Pflicht
author
bis zu 31 Zeichen, freiwillig
icon
drei Zeilen mit je sechs Zeichen, Codepage 437, für die Programmübersicht

Ein Paket muss mindestens 320 Byte und höchstens 32 MiB groß sein. Das Programm darin muss eine 64-Bit-x86-ELF sein, die für den Programmbereich von Violyx gebaut ist. Ein Paket mit dem Namen eines Programms, das schon im System liegt (snake, bricks, novastrike, xzn, pong, invaders, chomp, mines, calc, clock, calendar, write, paint, files, commands, view, web, cc) lässt sich installieren, aber es startet das eingebaute mit diesem Namen.

Eigene veröffentlichen

Zwei Wege führen zum Paket. Auf einem anderen Rechner: das ELF mit der in der SDK beschriebenen Werkzeugkette bauen, dann sdk/mkvpk.py mit Name, Titel, Version, Autor, Fenstergröße und dem Symbol aus drei Zeilen (durch Pipe-Zeichen getrennt) aufrufen. Auf einem laufenden Violyx: Quellcode schreiben und cc DATEI.c aufrufen, dann liegt DATEI.vpk daneben; -o NAME.vpk wählt eine andere Ausgabedatei, -s 60x19 die Fenstergröße und -t TITEL den Fenstertitel.

Um ein Programm hier bereitzustellen, muss die .vpk-Datei in store/files/ beim Website-Projekt gelegt und die Seiten neu erzeugt werden. Die Liste auf dieser Seite, der Download-Ordner und /store/index.json entstehen allesamt aus den Dateien, die wirklich da sind.

Maschinenlesbarer Katalog

/store/index.json beschreibt dieselben Programme in JSON für Werkzeuge: Name, Titel, Version, Autor, Fenstergröße, die drei Symbolzeilen, der Downloadpfad, die Größe, die SHA-256-Prüfsumme und das Datum. Jeder Wert stammt aus der Datei selbst, eine kurze Beschreibung kann daneben gepflegt werden.

/store/index.json

Diese Datei ist eine Zugabe der Website, keine Violyx-Eigenschaft: In Violyx 0.3.0 liest sie nichts, und der Store in Violyx ist heute genau das, was ihr Handbuch sagt — eine Seite mit Links auf .vpk-Dateien. Behandle index.json als Katalog für Programme auf dem Rechner, für Spiegel und für den Tag, an dem eine künftige Violyx-Version so etwas lesen möchte.

Vor dem Installieren

Ein installiertes Programm ist nicht in seinen Ordner gesperrt: es kann die Dateien in /home lesen und ändern. Weder Browser noch Installierer prüfen eine Prüfsumme oder eine Signatur, und der Bestätigungsdialog zeigt nur den Titel und die Version, die das Paket über sich selbst behauptet. Installiere nur Programme, deren Quellcode du gesehen hast oder deren Autorin du vertraust.

Wo die Dateien liegen