Plop les bovinautes !!!
Je vous parlais hier de la volonté qu’avaient les développeurs de la team Gnome de fournir à l’avenir un système de sandbox (bac à sable), permettant de lancer des applications de manière isolée du reste du système.
L’article worldofgnome n’a pas tardé et on en sait désormais un peu plus sur le cahier des charges de cette future fonctionnalité
Les principaux objectifs sont les suivants :
Maintenir l’intégrité du système.
Les demandes ne doivent pas être en mesure de miner le système.
Ils ne doivent pas être en mesure de l’amener à ne pas fonctionner, ou fonctionner de manière non-optimale.
Il est impératif de veiller à ce que les ressources du système soient toujours disponibles pour les utilisateurs.
Les tâches de fond ne doivent jamais faire obstacle à l’interaction utilisateur.
L’application ciblée devrait toujours avoir les ressources nécessaires pour se comporter d’une manière efficace.
Il faut garantir la conformité du comportement des applications.
Si vous quittez une application, il faut toujours quitter de manière définitive.
Il doit toujours être possible de désinstaller une application.
Il faut limiter le maximum de points d’intégration entre l’application et le système.
Les requêtes ne doivent pas être en mesure de concocter leurs propres formes d’intégration au système.
L’utilisateur doit avoir le contrôle sur l’accès des applications aux données et aux services particuliers, cela comprend :
Les comptes en ligne.
Les fichiers locaux de l’utilisateur.
Les services de données comme les contacts et le calendrier …
Les services de localisation.
S’assurer de la mise hors de portée pour ces applications, de certains éléments du système comme par exemple :
La déconnexion forcée.
L’arrêt et le redémarrage du système
Comme vous pouvez le constater la liste est longue et le travail s’annonce des plus ardu.
Quand à savoir comment ils vont parvenir à obtenir une solution techniquement acceptable, l’idée de créer des packets d’applications contenant toutes leur dépendances et fonctionnant de manière autonome, fait son petit bonhomme de chemin.
Elle pourrait voir le jour sous la forme d’une application nommée Gclick2. Vous pouvez voir un prototype de cette applicaton sur cette petite vidéo datant de Septembre 2011 :
Sympa non ?!!
Si vous voulez en savoir encore plus et que l’anglais ne vous fait pas peur, je vous conseille la lecture du billet suivant.
Amusez-vous bien.
Moo !!!
Te sent chonchon sur ce coup là, tu l’as pris en grippe ce truc de bac à sable :D !!!
Pour le gpu je le sais bien. Cela dit rien n’empêche de faire en sorte que l’application s’en serve sil il est dispo. On peut imaginer une détection des périph avant la mise en branle du bouzin.
Avec l’avènement des SSD, on peut supposer que les capacités de stockage vont (un peu) se réduire sur les machines mobiles, laissant les disques durs externes et autres NAS se taper le gros du stockage. Là, l’argument de l’espace disque et du swap devient plus délicat…
(où ça, de la mauvaise foi ?!)
Et le GPU, je vois pas ce qu’il vient faire là dedans… Un Ramdisk sur la RAM de la carte graphique ? Y a que les cartes haut de gamme qui ont de la RAM dédiée, sur les portables grand-public c’est plutôt rare =/
Bonne question je ne sais pas comment il veulent procéder de ce côté là mais il faut bien avouer quand même, que les machines récentes et même des 5 ou 6 dernières années ont pour la plus part un minimum de 5 gigas de ram et un espace disque énorme (dont le swap peut servir).
J’ai une machine qui a bientôt 6 ans et je n’ai jamais eu recours au swap, ni même saturé ma ram (hors plantage).
Alors bien sûr il y a encore pas mal de vieilles machines et les netbooks, donc ça ne règle pas le problème si ce n’est peut être par l’instauration d’une config minimale.
Si on compte la mémoire vive, le swap et le GPU il y a de quoi faire.
Sinon il y a une autre solution, externaliser ça au sein d’un service tiers via le net. Mais la ça pose une foule d’autres problème et de questions de sécurité.
À vrai dire je suis comme toi, je ne sais pas comment ils comptent procéder.
[Par contre le coup des applications livrées avec leur bibliothèques spécifiques me paraît bancale de ce coté là.]
Très juste, et ça risque de foutre un boxon monstre si chaque appli doit être livrée avec ses libs spécifiques ! C’est justement une force de GNU/Linux : tu installes des librairies communes et tout le monde se base dessus (exit les 17 versions de VisualC++ de Windows…). Sans oublier le fait que ça multiplie le travail de maintenance pour chaque programmeur ! Autant faire un chroot alors… (mais non pas une choucroute, ‘spèce d’alsacien va !)
[Après on peut penser que si tu veux lancer une application c’est qu’elle est installé et que tu as les ressources nécessaires. Dans le cas contraire tu ne l’utiliserais pas.]
Ce qui m’inquiète c’est plutôt les bugs et/ou les applications lancées simultanément… Tu lances Google Earth (avec des ressources suffisantes) puis tu fais glisser une fenêtre avec des effets de transparence-fondu-oscillations-flammes-explosion, l’accélération graphique tu l’attribues à quel processus en priorité ? =) Et si t’as un bug dans l’application sandboxée (sandboxifiée ? sandboxificationnée ?) qui réclame plein de ressources, comment tu différencies ça d’un usage « normal pour être efficace » ?
C’est clair que ça doit pas être facile à mettre en place.
Pour ta seconde remarque c’est très juste en effet, j’y ai pensé aussi.
Après on peut penser que si tu veux lancer une application c’est qu’elle est installé et que tu as les ressources nécessaires. Dans le cas contraire tu ne l’utiliserais pas.
Par contre le coup des applications livrées avec leur bibliothèques spécifiques me paraît bancale de ce coté là. Je verrais plus deux modes un simple et un sécurisé.
Mouais, ‘pas convaincu… Une bonne politique de droits devrait pouvoir remplacer ça dans la majorité des cas (même si c’est un peu pénible à mettre en place). SELinux et AppArmor servent à ça aussi normalement…
De plus, systrace existe déjà de façon plus globale et je pense qu’une sandbox ne devrait pas être liée à un environnement de bureau (quid des programmes non-Gnome ? des programmes KDE ?). J’ai peur que ça ne pose plus de problèmes et de difficultés de debug que d’avantages :-/
En plus, y a que moi qui tique quand je lis ça ?
– Il est impératif de veiller à ce que les ressources du système soient toujours disponibles pour les utilisateurs.
[…]
– L’application ciblée devrait toujours avoir les ressources nécessaires pour se comporter d’une manière efficace.
Ca m’a l’air de s’opposer non ? Où est-ce qu’on met la limite entre les deux ? =)