zOS (Z-Systeme d'Exploitation)

English

zOS

zOS est un derivé de l'application de test ZPUTA qui a ete creee pour verifier les operations du ZPU Evo et du SoC. ZPUTA a evolue a mesure que differents FPGAs etaient inclus dans le perimetre du ZPU Evo, et il est devenu clair qu'il devait etre plus avance en raison des ressources limitees. Une fois que ZPUTA avait atteint un niveau de sophistication semblable a un systeme d'exploitation, il a ete divise et zOS est ne.

A l'origine, les developpements ZPUTA/zOS ne ciblaient que l'architecture ZPU et ils avaient deux methodes d'execution principales:
  • en tant qu’application demarree par IOCP,
  • en mode autonome en tant que firmware de demarrage du ZPU Evo.
Le mode de demarrage est choisi dans la configuration et la fonctionnalite est identique. Plus recemment, zOS a ete porte sur l'architecture ARM Cortex-M4 pour une utilisation avec le Freescale K64F dans le projet tranZPUterSW.

Dans zOS, toutes les fonctionnalites non-OS sont stockees en tant qu'applications sur une carte SD. Pour fonctionner, zOS necessite une connexion serie avec de preference un emulateur de terminal ANSI/VT100.

Un developpement materiel recent, le tranZPUter SW-700 v1.3, voit zOS operer en tant qu'OS hote ou le clavier et l'ecran sont sous son controle direct. Un emulateur de terminal ANSI a ete developpe et integre.

Utilisation du systeme d'exploitation

L'interface du systeme d'exploitation a ete ecrite en gardant a l'esprit que seul un terminal textuel serie est disponible. L'interaction se fait au clavier et par texte, sans interfaces graphiques.

Ligne de commande

La premiere introduction au systeme d’exploitation est un message de connexion qui affiche la CPU, la version, etc. et emet une invite pour la saisie de commandes:

zOS Startup Screen

L'interaction avec le systeme d'exploitation n'est pas differente de MSDOS: vous entrez une commande et obtenez une reponse. La ligne de commande zOS inclut une fonctionnalite readline reduite avec historique.

Les raccourcis clavier readline et les commandes internes sont identiques a la version anglaise.

Applications

Les applications actuellement fournies par zOS resident sur une carte SD. La liste complete des commandes (Disk IO, Disk Buffer, Filesystem, Memoire, Materiel, Tests de performance, Execution de programmes, Commandes diverses, Applications, Commandes tranZPUter) est identique a la version anglaise.

autoexec.bat

Comme sous MSDOS, si un fichier nomme 'AUTOEXEC.BAT' est cree dans le repertoire racine du systeme de fichiers SD, son contenu sera execute par zOS au demarrage/reinitialisation.

Detail technique

Organisation de la memoire

Les cartes memoire IOCP et zOS sont identiques a la version anglaise.

IOCP Memory Map

zOS Memory Map for ZPU

zOS Memory Map for K64F

Interface applicative

Comme la plupart des systemes d’exploitation, zOS fournit une API qu’une application correctement compilee peut utiliser pour reduire sa taille et sa complexite et reutiliser les fonctionnalites du systeme d’exploitation. La table vectorielle API complete (93 vecteurs) est identique a la version anglaise.

Le prototype de l’application est:

 uint32_t app(uint32_t param1, uint32_t param2)

Installation et build automatises (recommande)

La methode recommandee pour compiler zOS est le script d'installation automatise pour votre plateforme. Il verifie et installe les prerequis, installe la chaine de compilation ZPU, clone le depot (si vous n'etes pas deja dans une copie de travail) et propose de lancer le premier build — avec des valeurs par defaut raisonnables que vous pouvez accepter en appuyant sur Entree. Chaque script est autonome : copiez simplement le fichier unique pour votre plateforme et executez-le. Les etapes manuelles plus bas sont destinees aux utilisateurs avances, aux recompilations partielles et a la CI.
Le build est pilote par build.sh, qui assemble/compile IOCP, zOS et les applications pour un CPU choisi en une seule passe. Deux chaines de compilation sont impliquees et les scripts d'installation les fournissent toutes les deux :
Chaine de compilation CPU cible Source
ZPU zpu-elf-gcc 3.4.2 Small Medium Flex Evo EvoMin (ZPU) installee dans /opt/zpu (depuis ZPU_TOOLCHAIN_URL)
ARM arm-none-eabi K64F (Kinetis / Teensy 3.5) fournie dans le depot sous tools/arm (aucune installation)

Comme les deux chaines de compilation sont des binaires Linux / croises, le build s’execute en natif sous Linux, dans Docker sous macOS (image zos-build:latest) et via WSL1 sous Windows :

Script Plateforme Notes
setup_zOS.sh Linux (natif) / macOS (Docker) Installe les outils de build de base + la chaine de compilation ZPU ; sous macOS, il compile dans l’image Docker zos-build:latest.
setup_zOS_windows.cmd Windows 10 / 11 Lanceur a double-clic qui appelle le script PowerShell ci-dessous.
setup_zOS_windows_native.ps1 Windows 10 / 11 (WSL1) Configure WSL1 et y execute l’installation Linux.
setup_zOS_wsl1.sh dans WSL1 L’etape d’installation Linux invoquee automatiquement dans la distribution WSL1.

Linux / macOS — setup_zOS.sh

chmod +x setup_zOS.sh
./setup_zOS.sh

Windows 10 / 11 — setup_zOS_windows_native.ps1 — double-cliquez sur setup_zOS_windows.cmd, ou depuis une invite PowerShell :

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_zOS_windows_native.ps1

L’installation clone ZOS_REPO_URL (par defaut https://git.eaw.app/eaw/zOS.git) dans ~/zOS. Une fois terminee, compilez zOS avec (build.sh selectionne automatiquement natif / Docker / WSL1 selon l’hote) :

./build.sh -C Evo  -O zos        # zOS for the Evo ZPU
./build.sh -C K64F -O zos        # zOS for the K64F (ARM Cortex-M4)
./build.sh -h                    # all options (-C CPU, -I IOCP, -O os, -o os ver, addresses, sizes ...)
Les sorties se trouvent sous build/ et build/SD/ — la ROM d'amorcage (BOOT.ROM / BOOTTINY.ROM), le chargeur d'amorcage IOCP_<func>_<addr>.bin et le .bin de zOS, plus les binaires d'applications bin/ prets a copier sur une carte SD formatee en FAT.

Substitutions d’environnement utiles :

Variable Role
ZOS_REPO_URL Depot a cloner (par defaut https://git.eaw.app/eaw/zOS.git).
ZOS_DIR Compiler dans une copie de travail existante au lieu de cloner.
ZPU_TOOLCHAIN_URL Emplacement de l’archive de la chaine de compilation zpu-elf-gcc 3.4.2 installee dans /opt/zpu.
ZOS_BUILD_IMAGE Image Docker utilisee pour le build macOS (par defaut zos-build:latest).
ZOS_ASSUME_YES=1 Accepte toutes les invites de maniere non interactive (installations sans surveillance / CI).
Si vous preferez compiler a la main ou scriptez un pipeline CI, le build manuel — les chemins, la liste des outils, l'arborescence du build et la matrice complete des indicateurs de build.sh — est documente dans la section Build logiciel juste en dessous.


Build logiciel

La documentation complete du build (chemins, outils, arborescence du build, parametres build.sh) est identique a la version anglaise.