• # marrant...

    Posté par . En réponse au journal RaspberryPi, capteurs USB, dbus et systemd, utiliser des briques Linux "desktop" pour une architect. Évalué à 5.

    J'ai pris le même type de décision (juste pas les mêmes choix de technologie finale) il y a 2 ans, a quelques différences près:

    • le soft d'origine était loin d'être stable;
    • pas d'écran graphique, mais une carte pilotée en RS232;
    • diverses cartes sur divers bus RS485;
    • l'idée était de porter l'existant vers une interface graphique tout en maintenant l'ancien hard;
    • l'ajout d'une interface graphique à déclenché la migration vers une archi Intel, totalement overkill, mais mes prédécesseurs sont partis la-dessus pour jouer avec étron-js, qui bien sûr ne peut fonctionner sur un SoC arm avec «seulement» 512Mio de ram. Le nombre de galères que j'ai eues avec ça...;
    • un seul port USB, qui nous relie a un démultiplexeur. Tiens, on a aussi eu des merdes avec ça d'ailleurs, dans certains cas, il lâchait, mais grâce à runit, ça n'a pas posé plus de soucis que ça;
    • «mon» code historique utilisais des threads. C'est justement ça, ainsi qu'un générateur de code C++ codé maison et le départ de celui qui s'est tapé la maintenance peu de temps après mon arrivée (1 mois) m'ont forcé à déclencher la réécriture totale (du spaghetti en telles qualité et quantité que l'Italie en serait jalouse);

    Je te rejoins sur les bénéfices, mais tu es passé à côté d'autres:

    • multi-thread, ça encourage à utiliser du partage mémoire. C'est chiant à débugguer, et ça n'apporte aucun intérêt réel si tous les threads ont la même durée de vie (sous linux, il semble que la gestion des threads et celle des processus soient extrêmement proches). Enfin, rien d'autre que des emmerdes quoi.
    • possibilité de travailler à plusieurs chacun «dans son coin», fusionner les codes deviens un besoin anecdotique, puisque la plupart du code d'une appli n'a aucune relation avec les autres;
    • possibilité de relancer les daemon systèmes, chose que rc.d n'a jamais été capable de faire malgré plusieurs milliers de lignes de shell imbuvable. Ça m'a servi à mieux supporter certaines cartes SIM qu'un routeur, du fait que j'ai configuré pppd pour se fermer quand la connexion échoue: il est donc relancé, jusqu'a ce que la co prenne, chose dont les routeurs que nous utilisons sur certains systèmes sont incapables de faire... (le sentiment de satisfaction que j'ai éprouvé quand j'ai remarqué ça était très agréable :D).

    J'ai hâte de voir ton prochain épisode sur buildroot, j'aimerai aussi mettre ce genre de trucs en place, mais tant de trucs à faire avant...