LinuxCNC est souple et modulaire. Ces attributs l’ont fait apparaître à certains comme un brouillon de petits morceaux confus, ils se sont demandé pourquoi il en était ainsi. Cette page tentent de répondre à cette question avant que vous lecteurs, ne plongiez dedans pour vous faire votre propre idée.

EMC a débuté à l’institut national des standards et des technologies des Etats Unis, le NIST. Il a mûri comme un logiciel fonctionnant sur le système d’exploitation Unix. Unix le rendait différent. Très tôt des développeurs Unix ont apporté une série d’idées concernant l'écriture du code, c’est devenu une écriture selon «la tradition d’Unix». Les premiers auteurs de LinuxCNC ont suivi cette voie.

Eric S. Raymond, dans son livre The Art of Unix Programming, résume la philosophie Unix par la philosophie largement utilisée en ingéniérie, le principe KISS Keep it Simple, Stupid Reste Simple, Crétin ou Sois Simple et Concis. Puis il décrit sa vision selon laquelle cette philosophie globale s’applique en tant que norme culturelle Unix, bien qu’on trouve sans surprise de graves entorses à la plupart des règles Unix suivantes:

  • Règle de modularité: Ecrire des éléments simples reliés par de bonnes interfaces.

  • Règle de clarté: La Clarté vaut mieux que l’ingéniosité.

  • Règle de composition: Concevoir des programmes qui peuvent être reliés à d’autres programmes.

  • Règle de séparation: Séparer les règles du fonctionnement; Séparer les interfaces du mécanisme.
    [Trouvé sur http://fr.wikipedia.org/wiki/Philosophie_d%27Unix, 09/09/2008]

Monsieur Raymond offre d’autres règles mais ces quatre là décrivent les caractéristiques essentielles du système de contrôle de mouvement LinuxCNC.

La règle de Modularité est critique. Tout au long de ces manuels, vous trouverez des discussions à propos de l’interpréteur ou à propos des planificateurs de tâche ou de mouvement ou encore à propos de HAL. Chacun d’eux est un module ou un ensemble de modules. Cette modularité vous permettra de ne connecter entre elles que les parties dont vous avez besoin pour le bon fonctionnement de votre machine.

La règle de clarté est essentielle. LinuxCNC est en perpétuelle évolution, il n’est pas terminé et ne le sera jamais. Il est assez complet pour piloter toutes les machines que nous avons voulu qu’il pilote. Une bonne partie de cette évolution est atteinte parce que les utilisateurs et les développeurs peuvent voir le travail des autres et construire sur ce qui est déjà fait.

La règle de composition nous permet de concevoir et de construire un contrôleur à partir des nombreux modules existants, en les rendant connectables entre eux. Nous obtenons cette connectivité en appliquant une interface standard à tous les modules et en suivant ce standard.

La règle de séparation exige que chaque petite chose soit faite par une partie distincte. En séparant les fonctions, le dépannage est rendu plus aisé, le remplacement de modules par d’autres peut être fait à l’intérieur du système et la comparaison s’effectuer facilement.

Qu’apporte la fameuse «tradition d’Unix» à vous, utilisateurs de LinuxCNC. Elle signifie que vous pourrez faire des choix sur la façon d’utiliser le système. Beaucoup de ces choix affecteront les parties intégrées à la machine, mais beaucoup également affecteront la manière dont vous utiliserez votre machine. Au cours de votre lecture, vous trouverez différents endroits où vous pourrez faire des comparaisons. Finalement vous pourrez dire «J’utiliserai cette interface plutôt que telle autre» ou, «J'écrirai cette nouvelle partie de telle manière plutôt que de telle autre.» Tout au long de ces manuels nous décrirons l'étendue des possibilités de LinuxCNC actuellement disponibles.

Puisque vous commencez votre voyage dans l’utilisation de LinuxCNC nous vous proposons ces deux citations de précaution.

  • Pour paraphraser les paroles de Doug Gwyn sur UNIX: "LinuxCNC n’a pas été conçu pour empêcher ses utilisateurs de commettre des actes stupides, car cela les empêcherait aussi de réaliser des actes ingénieux."

  • De même les paroles de Steven King: "LinuxCNC est convivial. Cependant Unix ne précise pas vraiment avec qui."