Salut à tous! Ca faisait un petit moment que j’avais pas tapé quelque chose à propos d’un projet, alors voici de quoi vous réjouir (ou pas, hahah.) Cette fois, on va retrouver un peu le monde particulier de la programmation sur calculatrices et le monde de la programmation système.

FiXOS est un projet initié par Kristaba de kernel (hautement expérimental en ce moment) POSIX (coucou la famille des *nix) qui aurait pour but final d’offrir une plateforme de développement bien plus stable que, disons, l’OS de Casio. Comme dit précédemment, il est encore très expérimental, n’espérez pas vous lancer déjà à la conquête des GUI ou d’autres trucs de ce genre, c’est à peine si j’arrive à forker1 à initialiser les trucs principaux comme stdin/out/err correctement… :-/

Donc, je me suis impliqué dans le projet ne connaissant quasiment aucune notion en développement d’OS mais j’essaye de m’en sortir pour allégrer Kris de ce poids monumental. Dark Storm est aussi sur le coup, à tenter de créer un driver pour utiliser le port série de la calto (le port jack 2.5), ça pourra servir comme outil de debug (pouvoir envoyer des données sur un ordi hôte en cas de crash nous permettra d’en voir beaucoup plus que le peu de lignes présente dans la console de la calto) ou bien pour de la communication, encore faut-il créer les sockets!

Pour le moment, j’ai implémenté sur ma version la lecture des codes d’échappement VT100, qui permettent à un programme console de déplacer le curseur, changer la couleur, effacer l’écran, etc… Et ça marche (en tout cas, oubliez la couleur, on est en monochrome :p). Mon nouvel objectif est de commencer un mini-shell afin de pouvoir interagir de manière limitée sur la calto mais au moins de pouvoir lancer un programme et reprendre la main une fois ledit programme terminé. J’ai déjà de quoi lire une ligne de commande et séparer chacun des termes de cette ligne sur un PC, le tout uniquement avec des syscalls de bas niveau pour la compatibilité avec FiXOS. C’est déjà pas mal pour un début et ça n’attend plus qu’à être porté! :p

 

Voilà pour les nouvelles du reste du monde. Pour le petit mot d ela fin j’ai un article que je suis en train de préparer aussi mais on verra ça plus tard! Allez, à plus!


  1. Forker signifie créer une copie du processus actuel. Bien entendu, la fonction fork() offre de quoi savoir si on est dans le processus fils (celui qui a été crée lors du fork) ou dans le père. ↩︎