Bonjour,
Je suis professeur d'électronique et d'informatique qui à codé IoToS
Alors, OS ou pas OS, telle est la question ?
Je l'ai appelé « micro-OS » pour cette raison : mes élèves ont du mal à comprendre ce qu'est un OS, et c'est entre autres pour cela que je l'ai écrit — le chaînon manquant entre l'automate (setup et loop) et un véritable OS.
Normalement, un OS c'est :
- la gestion du clavier, de la souris, de l'écran (les périphériques)
- un shell (ligne de commande CLI, CMD...)
- une gestion de fichiers
- la capacité de lancer (exécuter) un programme.
Et là, bingo : ce n'est pas tout à fait un OS.
C'est presque un OS... un micro-OS... un système « on service »... un framework applicatif
Il ne permet pas d'exécuter un « programme » à proprement parler, puisque celui-ci est intégré au micro-OS lui-même.
Une prise connectée ou une caméra IP ont un certain câblage fixe — il serait donc inutile de lancer un « programme caméra IP » ou « prise IP », puisque le câble ne serait pas le bon. Autrement dit, il n'exécute pas de « programme » séparé, car le « programme métier » est embarqué dans le même firmware que l'IoToS !
C'est là où mes élèves réfléchissent : ce n'est pas tout à fait un OS, c'est plutôt un système « on service », un micro-OS.
C'est pour cela que j'ai particulièrement apprécié vos remarques — c'est bien vu !
Oui, j'ai commencé de zéro — enfin, par Fichier > Nouveau... le sketch de base : void setup() et void loop().
J'ai évidemment utilisé l'IDE Arduino et j'ai cherché partout des bibliothèques que j'ai essayé de faire fonctionner ensemble (Ethernet.h, LittleFS.h, NTP.h...).
(Et bravo à tous ces auteurs que je cite dans le code, avec les liens vers leurs bibliothèques.)
Oui, j'ai utilisé ce qui existait — je cherchais des bibliothèques, et c'est là où Korben a vu juste :
souvent, elles ne fonctionnaient pas ensemble, l'une faisait bugger l'autre. Ça a été long avant qu'elles réussissent à cohabiter, et c'est ce qui m'a pris le plus de temps.
Puis j'ai trouvé une bibliothèque cmdLine que j'ai entièrement réécrite depuis, pour y ajouter l'autocomplétion et l'historique.
Pour l'AJAX : c'est en fait du XML que le petit serveur web envoie au navigateur pour afficher des données dynamiquement.
Je pense que la prochaine évolution de l'IoToS passera par là.
Comme amélioration future, peut-être un jour un RTOS — car dans le loop, si une opération prend trop de temps, le serveur FTP... plouf.
Pour moi, Arduino, c'est trois professeurs italiens qui ont conçu une carte pour leurs élèves et qui l'ont donnée au monde.
J'ai voulu faire la même chose en code pour les miens — et je l'ai désormais publié pour tout le monde aussi.
Et pour que des jeunes puissent s'amuser avec et créer des projets.
BAC PRO et BTS CIEL - Institution Saint-Jean à Colmar.
[^] # Re: Pas un OS
Posté par Jean-Marc_Biechy . En réponse au lien IoToS - Le prof qui a codé un OS de zéro pour ses élèves. Évalué à 10 (+13/-0).
Bonjour,
Je suis professeur d'électronique et d'informatique qui à codé IoToS
Alors, OS ou pas OS, telle est la question ?
Je l'ai appelé « micro-OS » pour cette raison : mes élèves ont du mal à comprendre ce qu'est un OS, et c'est entre autres pour cela que je l'ai écrit — le chaînon manquant entre l'automate (setup et loop) et un véritable OS.
Normalement, un OS c'est :
- la gestion du clavier, de la souris, de l'écran (les périphériques)
- un shell (ligne de commande CLI, CMD...)
- une gestion de fichiers
- la capacité de lancer (exécuter) un programme.
Et là, bingo : ce n'est pas tout à fait un OS.
C'est presque un OS... un micro-OS... un système « on service »... un framework applicatif
Il ne permet pas d'exécuter un « programme » à proprement parler, puisque celui-ci est intégré au micro-OS lui-même.
Une prise connectée ou une caméra IP ont un certain câblage fixe — il serait donc inutile de lancer un « programme caméra IP » ou « prise IP », puisque le câble ne serait pas le bon. Autrement dit, il n'exécute pas de « programme » séparé, car le « programme métier » est embarqué dans le même firmware que l'IoToS !
C'est là où mes élèves réfléchissent : ce n'est pas tout à fait un OS, c'est plutôt un système « on service », un micro-OS.
C'est pour cela que j'ai particulièrement apprécié vos remarques — c'est bien vu !
Oui, j'ai commencé de zéro — enfin, par Fichier > Nouveau... le sketch de base : void setup() et void loop().
J'ai évidemment utilisé l'IDE Arduino et j'ai cherché partout des bibliothèques que j'ai essayé de faire fonctionner ensemble (Ethernet.h, LittleFS.h, NTP.h...).
(Et bravo à tous ces auteurs que je cite dans le code, avec les liens vers leurs bibliothèques.)
Oui, j'ai utilisé ce qui existait — je cherchais des bibliothèques, et c'est là où Korben a vu juste :
souvent, elles ne fonctionnaient pas ensemble, l'une faisait bugger l'autre. Ça a été long avant qu'elles réussissent à cohabiter, et c'est ce qui m'a pris le plus de temps.
Puis j'ai trouvé une bibliothèque cmdLine que j'ai entièrement réécrite depuis, pour y ajouter l'autocomplétion et l'historique.
Pour l'AJAX : c'est en fait du XML que le petit serveur web envoie au navigateur pour afficher des données dynamiquement.
Je pense que la prochaine évolution de l'IoToS passera par là.
Comme amélioration future, peut-être un jour un RTOS — car dans le loop, si une opération prend trop de temps, le serveur FTP... plouf.
Pour moi, Arduino, c'est trois professeurs italiens qui ont conçu une carte pour leurs élèves et qui l'ont donnée au monde.
J'ai voulu faire la même chose en code pour les miens — et je l'ai désormais publié pour tout le monde aussi.
Et pour que des jeunes puissent s'amuser avec et créer des projets.
BAC PRO et BTS CIEL - Institution Saint-Jean à Colmar.