Choisir un système d’exploitation hôte pour le développement embarqué
Windows est peut-être l’environnement par défaut pour le développement embarqué, mais est-ce le meilleur ?
Lorsque j’ai commencé à écrire des logiciels embarqués, les environnements que j’ai trouvés les plus efficaces et les plus faciles à utiliser n’étaient disponibles que sur Microsoft Windows. En fait, il n’était pas rare que les fournisseurs de microcontrôleurs ne fournissent leurs outils de développement que pour Windows. Les développeurs intéressés par l’utilisation de Linux ou d’un Mac n’ont pas eu de chance, ont dû émuler Windows ou ont consacré beaucoup de temps à mélanger des chaînes d’outils pour créer leur propre environnement. Aujourd’hui, la plupart des outils sont désormais disponibles sur plusieurs plateformes, mais il peut toujours y avoir des avantages et des inconvénients à chacun. Dans l’article d’aujourd’hui, nous examinerons chaque système d’exploitation hôte et examinerons les avantages et les inconvénients de l’utilisation de chacun pour développer des logiciels embarqués.
Développement de logiciels embarqués sur Windows
Tout d’abord, pour les développeurs d’applications de microcontrôleurs, Windows est toujours le système d’exploitation hôte le plus répandu que les développeurs utilisent aujourd’hui. Il y a plusieurs raisons pour lesquelles Windows est le plus utilisé. Premièrement, pour les chaînes d’outils et les outils de développement populaires et majeurs, des exécutables d’installation sont fournis, ce qui rend les installations rien de plus qu’un double clic. Deuxièmement, de nombreuses entreprises utilisent toujours Windows comme machines professionnelles par défaut, qui sont fortement prises en charge par leur service informatique. Troisièmement, les outils de développement sur Windows ont tendance à être plus intégrés que sur d’autres plates-formes. Enfin, de nombreuses entreprises publieront d’abord de nouveaux outils et mises à jour pour Windows, puis d’autres plates-formes viendront plus tard. Cela donne aux développeurs travaillant sur Windows l’avantage de disposer des outils les plus récents et les plus performants ainsi que des corrections de bogues avant les développeurs sur d’autres plates-formes.
Les choses ne sont pas toujours roses quand on travaille sur Windows. Par exemple, les développeurs qui utilisent de nombreux outils ou compilateurs open source peuvent trouver que la configuration de l’environnement sur Windows peut être très difficile, surtout si les outils ont été écrits pour Linux en premier. Dans ces cas, les développeurs travaillant sur Windows peuvent avoir besoin d’installer Cygwin ou d’autres outils en plus de franchir quelques étapes pour configurer leur environnement de développement. Il y a aussi le problème que les applications Windows sont généralement si intégrées qu’elles ne fournissent parfois pas aux développeurs les options de ligne de commande ou l’accès à des outils de niveau expert qui permettent à un développeur de vraiment personnaliser la chaîne d’outils.
Développement de logiciels embarqués sur Linux
Linux est l’un de ces environnements hôtes que j’aime et que je déteste à la fois. Pour les développeurs, Linux fournit un environnement très configurable qui permet aux développeurs d’affiner leur environnement et d’avoir un contrôle total sur tout ce qui s’y passe. Travailler sous Linux ne fait souvent pas abstraction des détails, ce qui permet aux développeurs de mieux comprendre ce qui se passe dans les coulisses de leur environnement de développement et de leurs chaînes d’outils. Linux est gratuit et des logiciels open source sont souvent écrits pour cela, ce qui facilite parfois la construction et l’utilisation de certains composants logiciels.
Linux propose également des défis intéressants aux développeurs. Tout d’abord, le développeur doit être à l’aise de travailler dans un terminal, ce qui ressemble souvent à une progression en arrière compte tenu des efforts déployés dans les outils d’interface graphique et les environnements de développement intégrés de manière transparente. Ensuite, Linux est tellement configurable que j’ai trouvé que cela peut être un cauchemar à configurer. Tant de changements, si rapides, que l’installation réussie d’une chaîne d’outils récemment mise à jour peut parfois prendre des heures ou plus si vous ne travaillez pas sous Linux jour après jour. Enfin, les développeurs sur Linux ont tendance à faire des hypothèses sur la configuration de l’environnement, ce qui rend la duplication des environnements et la configuration des outils encore plus cauchemardesques, car ils sautent des étapes et supposent que le prochain développeur sait comment retrouver les dix étapes qu’ils ont sautées dans leur écriture.
Développement de logiciels embarqués sur Mac
L’un de mes environnements hôtes préférés pour développer des logiciels embarqués est le Mac, car il offre le meilleur des environnements Windows et Linux. Aujourd’hui, de nombreux fournisseurs et fournisseurs d’outils proposent un moyen simple d’installer leur environnement sur un Mac. L’interface utilisateur fournie rend le développement facile et efficace et est généralement très proche de la version Windows. Lorsqu’une chaîne d’outils nécessite un terminal et des chaînes d’outils Linux, les développeurs peuvent simplement accéder au terminal Mac et bénéficier des avantages de l’exécution d’une machine Linux.
J’ai trouvé que travailler sur mon Mac semble offrir le meilleur des deux mondes avec seulement quelques inconvénients pour les développeurs. Tout d’abord, les Mac sont un peu plus chers qu’une machine Windows ou Linux, même si j’ai trouvé que l’investissement en vaut la peine (pour moi en tout cas). Ensuite, les environnements Mac n’offrent souvent pas l’ensemble des fonctionnalités complètes des outils disponibles sur Windows. Les outils sont proches, mais si vous regardez attentivement, les interfaces Mac ont tendance à traîner les outils Windows jusqu’à six mois. Cela peut ou non être un problème, mais c’est quelque chose à garder à l’esprit.
Conclusion
Le système d’exploitation hôte qui est choisi pour développer des logiciels embarqués est devenu presque un point discutable. L’utilisation d’un système d’exploitation par rapport à un autre présente encore certains avantages, même si ces différences s’estompent rapidement. Au cours des prochaines années, ces différences mineures continueront sans aucun doute à se réduire au point que le système d’exploitation hôte utilisé ne fera aucune différence d’une manière ou d’une autre. La seule différence restante sera l’effort de mise en place et de maintenance des chaînes d’outils.
En fait, de nombreux développeurs peuvent avoir besoin d’utiliser plus d’un environnement hôte. Pour la plupart des développements, j’utilise Windows au bureau avec une machine Linux pour des projets où Linux a plus de sens. En dehors du bureau, j’utilise mon Mac avec une machine virtuelle Windows pour des outils qui ne sont pas disponibles nativement. En fin de compte, il est beaucoup plus facile aujourd’hui de passer d’un système d’exploitation hôte à un autre, et à l’avenir, cela deviendra presque transparent.