Pays:
France
Langue:

Partner Portal

OS Malevich — comment nous avons créé un système qui incarne le concept de la simplicité absolue

OS Malevich — comment nous avons créé un système qui incarne le concept de la simplicité absolue

Il y a un an, nous nous sommes lancés dans une tâche difficile. Nous voulions préserver les meilleurs éléments du système d’exploitation Ajax Hub (2G) existant tout en éliminant les faiblesses et nous voulions jeter des bases solides qui nous permettront de développer davantage le système de sécurité Ajax. Après tout, le hub est comme un brain trust. Il doit être le maillon le plus exceptionnel et le plus fiable de la chaîne. Des milliers d’heures d’ingénierie, des centaines d’itérations et plusieurs solutions logicielles élégantes nous ont conduits à OS Malevich. Il ne s’agit pas simplement d’une nouvelle mise à jour. C’est un système d’exploitation du hub complètement nouveau.

Une fois que vous êtes dans une impasse, n’ayez pas peur de faire demi-tour

Il y a 3 ans, nous avons décidé de créer un centre de gestion de la sécurité intelligent : Ajax Hub (2G). Nous avons rédigé le cahier des charges et avons commencé à réfléchir à sa mise en application. 3 options se sont présentées : utiliser C, un système d’exploitation en temps réel ou Linux.

new_os_15

Un programme traditionnel en C qui assurerait le contrôle absolu en tant que système d’exploitation puisque nous aurions écrit nous-mêmes chaque composant du système. En contrepartie le projet aurait été long à développer, difficile à faire évoluer et aurait nécessité beaucoup de débogage.

Linux offrait beaucoup de solutions toutes faites, ainsi que la possibilité d’un développement parallèle, et donc rapide. Il permettrait d’appliquer des langages de haut niveau, d’utiliser des abstractions et de créer une application plus complexe. Dans le même temps notre application serait vulnérable, nous n’aurions pas de limites opérationnelles et nous n’aurions souvent pas les meilleurs pilotes. Ce serait inacceptable – nous vendons de la sécurité et de la fiabilité.

Nous avons donc choisi d’utiliser un système d’exploitation en temps réel (RTOS). Cela nous a permis de créer une application à la fois multifonctionnelle et fiable. Les systèmes d’exploitation en temps réel sont utilisés pour les ascenseurs, les freins de voiture et les missiles balistiques. Leur fiabilité est maximale, car si un mécanisme ne fonctionne pas dans les délais impartis, l’événement n’a plus de sens et une catastrophe s’en suit. C’est une différence essentielle entre un RTOS et Linux, où les opérations sont exécutées selon leur emplacement dans la file d’attente d’exécution. C’est l’une des raisons pour lesquelles Linux n’est pas utilisé pour le développement de systèmes de sécurité professionnels.

Le développement a duré un an et demi. Nous avons créé un système d’exploitation prenant en charge des protocoles de communication cloud avancés sur plusieurs canaux. Il gère un réseau de centaines d’appareils radio. Il peut simultanément envoyer des messages d’alarme via des canaux IP, composer des numéros de téléphone et envoyer des SMS. Il possède toutes les capacités nécessaires d’un système de sécurité professionnel et protège des attaques. Nous avons donc pu atteindre notre objectif initial. Nous avons fourni de nombreuses fonctionnalités tout en garantissant une grande fiabilité.

new_os_02 (2)


Mais dès que le Hub (2G) a été lancé, une vague de demandes pour de nouvelles fonctionnalités ont été formulées. Les entreprises de sécurité ont demandé une connexion directe au hub, contournant notre cloud. Nos partenaires norvégiens souhaitaient qu’un détecteur d’incendie puisse déclencher tous les détecteurs d’incendie d’un système lorsqu’il détectait un incendie, et ils voulaient que cela se produise à la vitesse des alarmes incendie filaires. Le marché allemand a exigé que le produit respecte les normes européennes de catégorie 2 et qu’il prenne en charge un clavier de système de sécurité. En Malaisie et au Danemark, les utilisateurs souhaitaient disposer de capacités de domotique étendues. En Italie, un rôle distinct pour les installateurs était très important.

L’architecture existante ne nous permettait pas d’étendre les fonctionnalités rapidement. Nous pouvions ajouter rapidement des fonctionnalités aux applications mobiles, car elles disposaient d’environnements de développement de haut niveau, mais l’écriture d’un logiciel hub nécessitait plus de temps. Les modifications étaient difficiles à tester et leur mise en œuvre nécessitait trop de ressources. Pour construire une logique complexe, nous avions besoin d’un nouveau niveau d’abstraction, d’une séparation entre matériel et logiciel.

Nous devions décider comment faire avancer le développement du système. Devions-nous passer sur Linux ? Affiner progressivement notre système d’exploitation ? Nous devions maintenir la fiabilité et la stabilité du système d’exploitation en temps réel, mais en même temps, nous avions besoin de l’évolutivité d’un système d’exploitation de haut niveau tel que Linux. Une fois de plus, les solutions toutes faites ne fonctionnaient pas pour nous, nous avons donc dû proposer nos propres solutions.

La simplicité n’a de valeur que si elle est ancrée dans la complexité

La base de notre nouveau système d’exploitation était le concept de simplification. Nous nous sommes fixés des conditions : l’ajout de fonctionnalités ne devait pas compliquer le système ni réduire la vitesse de développement. Pour ne pas s’écarter du but, le projet a pris le nom de code « Malevich », en l’honneur du célèbre artiste né à Kyiv, Kazimir Malevich. Son «Carré noir sur fond blanc» est un exemple frappant d’une idée brillante basée sur une simplicité infinie.

new_os_12


Pour créer OS Malevich, nous devions tout changer — l’architecture, l’approche de programmation, les normes de codage et de conception, l’organisation du travail, l’environnement de développement. Bien que le système d’exploitation continuait de se concentrer sur le temps d’exécution des processus, il commençait à acquérir des fonctionnalités de Linux. Nous avons mis en place un mécanisme similaire d’allocation de temps CPU. Par conséquent, le processeur du hub utilise un maximum de 20 %, même lorsqu’il effectue des tâches gourmandes en ressources. Le système est également devenu modulaire ; des API standard sont utilisées pour permettre une interaction entre les éléments. Il est facile de travailler avec des modules, les erreurs peuvent être rapidement identifiées et éliminées, et il est simple d’élargir les fonctionnalités et d’expérimenter pour atteindre une efficacité optimale.

Nous définissons des produits Ajax égaux en termes de vitesse de développement. Nous pouvons implémenter de nouvelles fonctionnalités pour le hub, le serveur et l’app, de manière rapide. Aucune limite technique ne freine nos idées.


Processus de mise à jour du Hub


À ce jour, un programme informatique n’est généralement pas considéré comme un objet d’art. Sa beauté n’est pas comprise par la société. Mais nous sommes confiants que, dans le futur, les idées que nous avons mises en œuvre deviendront des classiques dans l’Internet des objets.

En savoir plus: