Open architecture vs machine fermée

Étant un très grand fan de la série Halt and Catch Fire, que je vous conseille d’urgence si vous ne connaissez pas, j’ai revu il y a quelques jours les premiers épisodes de la saison 1. Un des postulats de départ de l’histoire est un article (fictif) de Gordon Clark dans le magazine Byte, sur l’open architecture. Mais on est repensant, cette idée a été largement utilisée par les constructeurs des années 80 et 90. Et il ne faut pas oublier que nous sommes en 1983 au début de la série : IBM à son PC, mais ne voit pas d’un bon oeil les compatibles (qui commencent à arriver), Apple a son Apple II et s’apprête à dévoiler le LISA. 

Quand on se replonge dans ces machines, on constate un principe intangible : créer des machines « simples », rapides à concevoir et à construire, en utilisant des composants les plus standards possible quand on peut. On me dira : le choix était beaucoup moins large aujourd’hui et on ne disposait pas des mêmes puces dédiées. Oui effectivement. Mais les grandes machines de ces années partagent tout de même un grand nombre de composants et notamment les processeurs : Zilog, MOS, Motorola, Intel. Les OS étaient parfois communs : le vieux CP/M, MS-DOS et ces « clones ». 

Ces machines étaient d’une architecture simple. Quand on regarde un Commodore 64, c’est impressionnant de simplicité, aussi bien le montage que la partie électrique, idem pour un CPC. L’Apple IIe est facile à ouvrir, il dispose de nombreux ports d’extension. Bref, il est ouvert. Les bidouilleurs pouvaient réellement s’amuser, parfois le réparer, changer des composants. Même avec des machines plus complexes comme l’Atari ST ou l’Amiga, on pouvait encore s’amuser, même si parfois, on grillait purement et simplement la machine. 

Par architecture ouverte, on peut comprendre plusieurs choses :

- avoir une architecture matérielle de référence et ouverte (dans le sens open source) : le PC le fait d’une certaine manière non pas par la volonté d’IBM, mais par le truchement du MS DOS qui pouvait être utilisé sur d’autres machines que l’IBM PC et la plupart des composants de base étaient accessibles et par l’utiliser du processeur Intel et l’apparition des composants standards utilisés par les PC

- par une couche logicielle ouverte et partagée

- l’utilisateur a accès à tout et peut modifier le matériel, rajouter des éléments et le logiciel suit tout naturellement

Aujourd’hui, il y a clairement une tendance à fermer le matériel, particulièrement grand public. Regarder les machines tout-en-un. Hormis quelques composants qui peuvent être changés, le reste est soudé ou inaccessible. On peut encore les monter, mais tout le monde ne peut pas le faire : il faut une zone de travail, les bons outils et pas mal de patience. Ne croyez pas que cette tendance est récente. Une partie de la communauté Apple, les fans de la marque qui s’y connaissent un minimum, peste contre les derniers iMac et le vieux Mac Mini : composants soudés, pas de possibilité de changer quoi que se soit par soi-même (ou si peu). Mais il ne faut pas oublier le postulat de départ du Macintosh, quand le projet a été initié en 1979 : faire un ordinateur tout intégré, le plus simple possible à utiliser par tout le monde, avec un minimum de câble ! Bref, la machine était tout sauf ouverte et modulaire…

Les ordinateurs portables suivent depuis longtemps cette même tendance : on ferme tout. Bref, nous sommes bien loin de notre idée de départ, l’open architecture. 

Depuis quelques années, nous retrouvons cette idée avec l’Open hardware. L’idée est simple : le matériel est open source, enfin disons le design matériel comme les circuits électroniques, tous les éléments sont documentés, le montage, chaque broche, etc. L’Arduino illustre parfaitement l’open hardware : les schémas sont ouverts (open source donc) et c’est pour cela que l’on voit apparaître des multitudes de cartes compatibles Arduino. Et surtout, les schémas de base utilisent des composants 100 % standards et peu chers. Chez soi, on peut construire sa propre carte Arduino, même avec un PCB rudimentaire. Et ce, pour un coût très bas : -10 €, voire à peine 5-6 € en cherchant un peu !

On me dira : on peut faire pareil avec un PC. Effectivement on peut construire son PC en kit. Ce n’est pas nouveau, mais finalement peu de choses sont open hardware. On parle souvent du Raspberry Pi. Mais n’oublions pas que cette carte est peu ouverte. Seules les premières versions ont les schémas accessibles et encore, des éléments logiciels (boot, firmware) ne sont pas open source. D’où l’absence de véritables clones, ce que je trouve particulièrement dommage. Il existe des alternatives, excellentes, avec une compatibilité plus ou moins bonne sur les GPIO. Mais est-ce réellement grave si la Pi n’est pas open hardware, chacun fera son opinion. 

L’autre initiative, très intéressante, est l’Open Compute Project. Cette initiative est très intéressante : elle fournit les architectures de références pour définir des bases communes. L’OCP concerne les serveurs, les datacenters. Facebook a été l’initiateur de cette démarche pour définir et construire son propre design serveur. L’idée derrière était de pouvoir créer son modèle serveur au plus proche de son besoin réel. Cela permet à un éditeur de ne pas dépendre d’un constructeur serveur. L’OCP a bouleversé le marché serveur en obligeant les constructeurs à adopter cette démarche. 

Dans la téléphonie, quelques projets étaient prometteurs : le projet Ara que Google n’a su mener au bout et le FairePhone. Ara était un téléphone entièrement modulaire. Mais les équipes n’arrivèrent pas à stabiliser le matériel et le système de gestion à chaud (d’une grande complexité). Sur la partie matérielle, un des points cruciaux était le mécanisme de fixation sur la planche de base et le comportement des éléments en cas de chute et comment la connexion entre les éléments se faisait (dans la stabilité bien entendu). FairPhone est un projet moins ambitieux, mais à qui à l’avantage de fonctionner. Mais pour nous, son prix élevé, et les tarifs des modules, freine le concept et diffusion, ainsi que le manque de modules disponibles. 

On peut noter que le smartphone est à l’inverse de la notion d’open architecture. Et ne me dites pas que c’est la faute à Apple, car tous les grands constructeurs de smartphones sont dans la même tendance même si la Pomme a tendance à aller très loin, avec une bonne grosse couche de colle. On ferme, on soude.

Je ne dis pas non plus que c’était mieux avant. C’était une autre époque de l’informatique. Mais nous pouvons apprendre et réfléchir sur comment on en est arrivé là et à cette tendance de tout fermer.