Les applications Linux seront bientôt disponibles sur Chrome OS, à commencer par le Google Pixelbook, grâce à Project Crostini. Qu'est-ce que Crostini et pourquoi est-ce si important? Nous plongeons dans le plus grand changement apporté à Chrome OS depuis l'intégration de l'application Android.
Voici tout ce que vous devez savoir sur le développement secret par Google de la fonctionnalité d'application Linux dans Chrome OS, également connu sous le nom de Project Crostini.
En un mot, c'est un moyen d'exécuter des applications Linux régulières sur Chrome OS sans compromettre la sécurité ni activer le mode développeur. Le (pas encore disponible) états de réglage officiels qu'il s'agit "d'exécuter des outils, des éditeurs et des IDE Linux sur votre Chromebook".
Crostini est l'aboutissement de plusieurs années de développement qui ont permis à la fonctionnalité de fonctionner de manière suffisamment sécurisée pour répondre aux normes de haute sécurité de Chrome OS. Pour comprendre pourquoi il n'apparaît qu'à peine, il est préférable de regarder ce qui s'est passé avant.
Mettre Crostini en contexte - l'âge sombre de Chrome OS
Avant l'arrivée des applications Android sur la scène, il n'y avait pas beaucoup de fonctionnalités hors ligne, sans parler des applications de productivité utiles dans Chrome OS. Pourquoi une personne sensée achèterait-elle un Chromebook? "C'est juste un navigateur Web", était la remarque finale de chaque critique de Chromebook. Le Chrome Web Store était tout ce que vous obtiendriez, mais la sélection d'applications était assez médiocre et rarement mise à jour. Les aventuriers pourraient essayer d'exécuter des applications Android à l'aide d'un outil appelé Soudeuse à l'arc, mais c'était aléatoire et les performances étaient médiocres.
Pour contourner les limitations hors ligne, les utilisateurs frustrés ont soit effacé Chrome OS et installé Linux, soit utilisé l'outil open source Croûton pour configurer un environnement de bureau simultané [par exemple, Ubuntu Unity] fonctionnant au-dessus du noyau Chrome OS.
L'exécution d'une distribution GNU/Linux de remplacement ou de Crouton nécessitait un certain savoir-faire et était souvent truffée de bogues, et aucune des options n'était particulièrement conviviale ou sécurisée. Appuyez sur la mauvaise touche et vous effacerez votre appareil ou le briquerez, et si vous avez laissé votre environnement Crouton non crypté, tout utilisateur invité pourrait y accéder.
Intégration d'applications Android, créant un précédent
Les applications Android ont atterri sur Chrome OS en 2016 et ont représenté un énorme bond en avant dans la fonctionnalité hors ligne, mais l'activation de cette fonctionnalité n'était pas seulement plug-and-play. La seule façon dont cela pourrait fonctionner sur un système d'exploitation qui valorise la sécurité était s'il était effectivement mis en bac à sable.
La nouvelle solution choisie par les développeurs de Chrome OS était conteneurisation, un moyen de regrouper des applications dans des packages exécutables autonomes. À l'aide d'un conteneur et de quelques ajustements, ils ont réussi à obtenir l'environnement Android complet et tout ses dépendances pour s'exécuter dans un conteneur, séparé du reste de Chrome OS mais fonctionnant sur le même noyau.
Mais les applications Android ne sont généralement pas développées avec un facteur de forme de bureau/ordinateur portable à l'esprit. Ajoutez une mauvaise expérience tactile sur Chrome OS dans le mélange et vous avez une session de productivité frustrante si les applications fonctionnaient du tout.
Alors que les applications Android ont aidé à combler l'écart de productivité jusqu'à présent, il y avait toujours ce désir pour la bibliothèque massive d'applications de bureau complètes. Comme pour le problème initial d'Android, le simple fait d'ouvrir la possibilité d'exécuter des applications Linux augmenter la surface d'attaque de Chrome OS, car des applications malveillantes pourraient avoir accès à tout sur le système d'exploitation hôte. Donc, cette fois, les développeurs ont conçu des fonctionnalités d'application Linux aussi cloisonnées que possible, en plus de ce qu'ils avaient déjà appris avec Android.
Défense en profondeur
Comme son nom l'indique, Crostini est comme Crouton, mais au lieu d'avoir un espace utilisateur non sécurisé assis à côté de Chrome OS, il y a deux murs entre eux. Le premier mur est Termina VM, une implémentation Chrome OS KVM (Kernel-based Virtual Machine). Une fois que cette machine virtuelle démarre, elle met en place le deuxième mur - un conteneur - qui contient alors l'application que vous souhaitez réellement exécuter. Ainsi, lorsque vous souhaitez exécuter votre application de bureau Klondike à part entière, elle s'exécute dans un conteneur à l'intérieur d'une machine virtuelle.
Les développeurs n'ont pas rendu la documentation destinée au public particulièrement digeste d'un point de vue non technique, mais d'après ma lecture non officielle de profane, le logiciel l'architecture pour Chrome OS ressemble maintenant probablement à ceci blesse moi]:
En bref, le composant VM dispose d'un espace utilisateur et de périphériques virtuels distincts (vCPU, IP, MAC, etc.), et le conteneur est une application packagée qui utilise ces ressources. À ce stade, je dois ajouter une mise en garde sur le fait que le composant VM n'émule aucun matériel.
Les riches seulement… pour l'instant
Certains, comme la communauté de Reddit /r/Crostini, ont déjà commencé à bricoler avec Crostini sur leur Google Pixelbooks. Malheureusement, le Pixelbook est le seul appareil doté de la fonctionnalité Crostini jusqu'à présent, mais des signes indiquent que d'autres appareils, même ceux dotés d'un système sur puce ARM, seront pris en charge à l'avenir. Mais peut-être pas encore tout à fait pour les machines 32 bits. Il y a aussi des indices que certaines parties de la fonctionnalité VM sont nécessaires pour exécuter Crostini ne sera pas disponible pour les appareils avec des versions de noyau plus anciennes.
Si vous êtes arrivé jusqu'ici, vous vous demandez probablement: Que puis-je courir? Le succès a été limité. Les développeurs de Chrome ont laissé entendre qu'ils avaient Visual Studio en cours d'exécution. Les utilisateurs de Reddit ont fait fonctionner WINE et Android Studio, et ChromeUnboxed a fait un travail pratique démo vidéo. Mais nous ne connaîtrons probablement pas toutes les capacités - et les limites - avant que Google ne présente réellement quelque chose. Ce que nous savons, c'est que les applications sont persistantes, ce qui signifie que vous pouvez continuer là où vous vous êtes arrêté et que les développeurs travaillent à les rendre disponibles dans votre liste d'applications récentes.
Et ensuite? Quelques points à considérer
Si vous êtes dans le canal développeur sur un Chromebook autre qu'un Pixelbook, l'application Terminal est peut-être arrivée sur votre Chromebook. Vous pourriez voir une erreur "Échec du démarrage du concierge". C'est parce que la fonctionnalité VM n'a pas encore été activée sur des appareils autres que le Pixelbook.
Nous ne savons pas encore comment les ressources sont allouées et quel type de surcharge ces applications imbriquées produisent. L'idée de jouer sur des jeux Steam compatibles Linux est séduisante, mais si l'accélération GPU n'est pas disponible, alors, pour l'instant, c'est interdit.
Nous ne savons pas quelles limitations l'entrefer hôte/conteneur produira (le cas échéant). La communication entre le conteneur et Chrome OS est contrôlée, cela va-t-il introduire de la latence ou même désactiver certains périphériques ?
Nous avons beaucoup de questions sans réponse, et ce n'est qu'une question de temps avant que tout ne soit révélé. Beaucoup sont convaincus Google I/O 2018 dans quelques semaines sera la grande révélation - c'est logique car il s'agit d'une conférence de développeurs. En attendant, restez à l'écoute car nous suivons Crostini.
Sources:
Maksim Lin – Conteneurs Chrome OS
Chrome Git - Ensemble de conteneurs ARC, vm_tools, fin du projet, crosvm