Salut à tous! Ca fait déjà dix jours depuis la dernière mise à jour du site? Désolé de ce petit creux, j’ai eu pas mal d’ennuis personnels cette dernière semaine, donc je me remets peu à peu de cette agitation et du stress qu’il en est apparu.

Je suis toujours sur la programmation du shell pour FiXos. La base est relativement saine et modulable, je n’ai pas de soucis pour rajouter des commandes intégrées et du coup, j’essaye de créer un équivalent de coreutils ou du moins ce qu’on peut faire pour le moment (on n’a pas d’accès en lecture de fichiers sans kernel panic, curieusement). J’ai notamment rajouté le support des sessions et signaux afin de permettre le transfert des signaux au processus de FXSH et ses fils. Ainsi un programme exécuté pourra être tué par un bon ^C (la touche [EXIT]) ou ce dernier pourra mettre en place des handlers pour détecter ces signaux et intéragir autrement, comme les ignorer ou faire une tout autre chose.

D’autres commandes ont été rajoutées dans le shell lui-même, voici la liste des commandes utilisables, la syntaxe des arguments est tirée des pages man1:

  • cat # cassé pour le moment, on doit vérifier la libc.

  • cd [chemin]

  • clear

  • kill -SIGNAL pid1 [pid2 ...] # kill --help pour de l'aide 2

  • ls [chemin]

  • pwd

  • uname

L’exemple de programme semblable à top de Kristaba fonctionnant de lui-même, je ne l’ai pas encore implementé car il me sert de test d’exécution de programme externe. AU pire, ça fera partie d’un véritabme pack d’exécutables une fois qu’on la possibilité d’externaliser le code de la libc en librarie dynamique et par la même occasion réduire le code des exécutables d’à peu près 20Ko, ce qui est non négligeable quand on est limité en mémoire (1 Mo, c’est pas grand chose finalement).

Un autre point que j’aimerais envisager dans les prochaines semaines serait la question de la licence. Por le moment, le manque de licence revient à utiliser une licence par défaut, tous droits réservés, avec une exception pour le fork si GitLab adopte une politique de licence semblable à GitHub. Je pencherais pour une classique GPL3 ou une licence pour le domaine public.

Voilà voilà. Je devrais me remettre à programmer dans la libc, il y a tellement de choses à y corriger que les laisser est assez criminel. Et puis, ça pourrait aider le projet d’origine, ils ont l’air d’avoir fait un sacré boulot déjà que les ignorer ne serait pas réglo. Y’a aussi mes envies de gamedev qui me lancent. J’ai envie de programmer deux trois petites bricoles pour me détendre. Ca me manque même si programmer me frustre parfois dans certains moments (notamment quand je refais des choses que j’ai déjà vu 100 fois ou quand je bloque sur des problèmes à long terme). Allez, je vous laisse, à plus!


  1. argument est un argument obligatoire, [argument] est un argument optionnel ↩︎

  2. Je ne sais pas si kill fonctionne vu que je n’ai pas assez de terminaux pour le moment. ↩︎