Circuits programmables / VHDL / Z80 :
14,59 € TTC
p. 04 Alimentation de laboratoire ALIENTEK DP100 : petite, mais costaud
p. 18 Un oscilloscope à pédale
p. 34 Concevoir, mettre en place et bidouiller un environnement basé sur le protocole industriel Modbus
p. 54 Mon premier projet FPGA : un ordinateur 8 bits complet en VHDL
p. 88 Pimp my LED counter, les performances de l’addition
p. 112 Asterisk, RTC, PPP, CPC 464... Surfons comme en 1989 !
Quelque chose est sur le point de changer dans l’embarqué... et pas seulement.
La sécurité des systèmes est plus que jamais sur le devant de la scène. L’industrie entière s’est enfin rendu compte des répercussions potentiellement catastrophiques de failles de sécurité au plus bas niveau et redouble d’efforts pour « régler » le problème. Mais on a beau tenter de « sécuriser » les systèmes, les applications, les services et même les langages, si une faiblesse existe, héritée de plusieurs dizaines d’années d’histoire de l’informatique moderne, elle sera forcément exploitée. Cette faiblesse est la manière dont l’accès à la mémoire est géré par les processeurs et la corruption de cette mémoire, d’une façon ou d’une autre, représente statistiquement la principale cause des failles de sécurité.
Pour régler le problème, un nouveau paradigme a vu le jour et est sur le point de se généraliser, en particulier dans l’embarqué (dans un premier temps) : les capabilities et plus exactement l’adressage mémoire basée sur les capabilities. Le concept n’est pas nouveau, puisqu’il s’agit simplement d’associer une métadonnée à un objet (au sens large du terme), pour conférer ou non une « capacité » (d’où le nom) à manipuler cet objet. Ce qui est (presque) nouveau, en revanche, c’est d’intégrer ce mécanisme dans le processeur lui-même sous la forme d’une gestion mémoire étendue et d’instructions spécifiques. « Presque », parce que le System/38 d’IBM (1978) utilisait cette technologie, mais depuis, le mécanisme de pagination mémoire a été universellement adopté.
Le projet vers lequel convergent les recherches depuis quelque temps est celui de l’université de Cambridge : CHERI (pour Capability Hardware Enhanced Risc Instructions). Les constructeurs (ARM en tête avec son projet Morello, mais RISC-V n’est pas en reste), les éditeurs de logiciels, ainsi que les projets open source (Morello Linux, CheriBSD, LLVM, FreeRTOS, etc.) forcent la marche pour nous rapprocher d’un premier produit fini.
Difficile de prédire quand cette révolution aura lieu, et débarquera dans nos smartphones et nos SBC, mais elle est en route, et ça changera énormément de choses...
Denis Bodor
Né en 2014, Hackable est un bimestriel destiné aux professionnels et particuliers souhaitant découvrir et progresser dans les domaines de l’électronique numérique et de l’embarqué. Il fournit un contenu riche orienté vers une audience désireuse de bénéficier d'une veille technologique différente et résolument pratique. Le contenu du magazine est conçu de manière à permettre une mise en pratique directe des connaissances acquises et apprendre tout en faisant.

Soyons clairs, je ne suis pas fan de Lua en tant que langage de programmation. Le simple fait que les tableaux débutent à l'indice 1 me perturbe totalement et constitue pour moi une véritable aberration. Mais, d'un autre côté, Lua est aussi le langage par excellence lorsqu'il s'agit d'embarquer des fonctionnalités de scripting au sein d'une application ou d'un outil. Du moins, c'est ce que tend à montrer sa popularité dans ce domaine et, si l'on n’a jamais tenté l'expérience, on peut se demander pourquoi. La réponse est évidente après quelques lignes de code et on se surprend soi-même à dire, à haute voix qui plus est, « Ah ! Mais c'est excellent, en fait ! ».
Si vous croyez que le format ASCIIZ (aussi appelé « chaîne de caractères à terminateur nul » à la base du langage C et d’UNIX) est le pire péché originel de l’informatique, accrochez-vous. Il est amplifié par un autre péché bien plus grave, commis au nom du minimalisme, excusé au nom de la compatibilité et perpétué par l’oubli des alternatives. Si vous avez lu l’article de mars 2023 [1] jusqu’au bout, vous avez probablement compris que la plupart des langages de programmation actuels n’utilisent qu’une seule pile. C’est la source de nombreux problèmes (de sûreté, de sécurité, de complexité et bien d’autres) aux origines de failles variées (représentant peut-être un cinquième des CVE) que nous sommes habitués à mitiger, sans les résoudre vraiment. Dans cette première partie lovecraftienne, nous irons jusqu’au fond de l’impasse pour démontrer l’absurdité, les difficultés et les dangers imposés par ce système.
PHP, c'est bien connu, est un langage de script dédié aux traitements d'un serveur web. Mais n'est-ce bien que cela ? Avec NativePHP, la donne change, car il est maintenant possible de développer des applications pour GNU/Linux, Windows et macOS.