[News] Le projet Tortola : vers une symbiose entre matériel et logiciel
Modérateur : Modérateurs
- Michel
- Messages : 19968
- Inscription : 14/07/2004 - 14:48:20
- Activité : Ingénieur
- Localisation : Cote d'Azur
[News] Le projet Tortola : vers une symbiose entre matériel et logiciel
Les ordinateurs sont toujours de plus en plus petits et de plus en plus rapides. Naturellement, la complexité du travail de leurs concepteurs s’en trouve sans cesse augmentée. Des informaticiens de l'université de Virginie viennent cependant de présenter un concept nouveau qui pourrait révolutionner la conception de ces machines. Les chercheurs ont développé Tortola, une interface virtuelle qui permet au matériel et au logiciel de communiquer et de résoudre conjointement d’éventuel...
ce que je comprend pas moi, c'est pourquoi on se base pas sur l'existant.
par exemple avec .NET il ya un systeme de securité quasi complet intégré et géré par .NET alors que cette sécurité devrait être à mon sens gérée par l'OS, au niveau global. exit les machines virtuelles qui ont tout les droits et dont les applications virtuelles peuvent beneficier a l'insu de l'utilisateur.
exemple: telle ou telle application a un droit d'acces a internet ou non, peut explorer autre chose que son propre répertoire "oui/non", etc... et pour pousser le tout, avoir la possibilité d'executer des applications dans des vraies machines virtuelles temporaires ou non.
pour le codage, toutes les compils devraient etre en assembleur hautement optimisé pour un systeme de base. et si machine virtuelle il devait y avoir, alors a sa charge de considerer l'opcode asm comme du code virtuel a executer par une machine virtuelle (un emulateur donc) la lib java n'est d'ailleurs rien d'autre qu'un emulateur qui s'emule elle meme grosso modo, cad de la daube en boite.
par ailleurs, conceptuellement, un langage digne de ce nom devrait permettre de se refaire lui meme sans degradation de perfs. exemple: si je construis un nouveau langage (toto basic) avec visual basic, mon nouveau langage toto basic devra me permettre de reecrire le langage toto basic sans perte de perf (et sans passer par un autre language intermediaire). et a mes yeux, ce n'est que par la qu'on peut estimer qu'un language merite vraiment le nom de language (comme une langue parlée). impossible en java de reprogrammer java ou une machine virtuelle sans degradation monstrueuse des perfs (je sais meme pas si c'est possible meme avec une perte de perfs ceci dit ce qui en dit long sur la capacité du language n'est ce pas) idem pour vb, etc...
donc moi aussi peut etre pas pour les meme raisons mais je suis resolument contre. je prefererais qu'on optimise l'existant. en plus au niveau securité c'est comme tenter de boucher des trous potentiels avec d'autres trous potentiels. la philosophie est la, si on est pas capable d'optimiser cela signifie qu'on ne s'occupe pas de l'existant (qu'il est mis de coté, qu'on ne le regarde pas) et qu'on se repose sur le a venir pour cacher des defauts avec des pseudos qualités.
par contre, pouvoir deleguer au processeur ou a un adjoint des taches complexes de calculs et de manipulations de données c'est forcement interessant.
par exemple avec .NET il ya un systeme de securité quasi complet intégré et géré par .NET alors que cette sécurité devrait être à mon sens gérée par l'OS, au niveau global. exit les machines virtuelles qui ont tout les droits et dont les applications virtuelles peuvent beneficier a l'insu de l'utilisateur.
exemple: telle ou telle application a un droit d'acces a internet ou non, peut explorer autre chose que son propre répertoire "oui/non", etc... et pour pousser le tout, avoir la possibilité d'executer des applications dans des vraies machines virtuelles temporaires ou non.
pour le codage, toutes les compils devraient etre en assembleur hautement optimisé pour un systeme de base. et si machine virtuelle il devait y avoir, alors a sa charge de considerer l'opcode asm comme du code virtuel a executer par une machine virtuelle (un emulateur donc) la lib java n'est d'ailleurs rien d'autre qu'un emulateur qui s'emule elle meme grosso modo, cad de la daube en boite.
par ailleurs, conceptuellement, un langage digne de ce nom devrait permettre de se refaire lui meme sans degradation de perfs. exemple: si je construis un nouveau langage (toto basic) avec visual basic, mon nouveau langage toto basic devra me permettre de reecrire le langage toto basic sans perte de perf (et sans passer par un autre language intermediaire). et a mes yeux, ce n'est que par la qu'on peut estimer qu'un language merite vraiment le nom de language (comme une langue parlée). impossible en java de reprogrammer java ou une machine virtuelle sans degradation monstrueuse des perfs (je sais meme pas si c'est possible meme avec une perte de perfs ceci dit ce qui en dit long sur la capacité du language n'est ce pas) idem pour vb, etc...
donc moi aussi peut etre pas pour les meme raisons mais je suis resolument contre. je prefererais qu'on optimise l'existant. en plus au niveau securité c'est comme tenter de boucher des trous potentiels avec d'autres trous potentiels. la philosophie est la, si on est pas capable d'optimiser cela signifie qu'on ne s'occupe pas de l'existant (qu'il est mis de coté, qu'on ne le regarde pas) et qu'on se repose sur le a venir pour cacher des defauts avec des pseudos qualités.
par contre, pouvoir deleguer au processeur ou a un adjoint des taches complexes de calculs et de manipulations de données c'est forcement interessant.
l'idée c'est peut etre aussi de rendre le logiciel moins dépendant du matériel.
m'enfin, j'y crois pas vraiment, et pour les cas ou c'est vraiment utile, genre modem, carte son, carte graphique, enfin les périf standard, sa se fait déjà alors...
combien de fois j'ai fait marcher une care son avec un driver qui n'était pas celui d'origine... c'est lié à la complexité du matos aussi mais bon.. même
m'enfin, j'y crois pas vraiment, et pour les cas ou c'est vraiment utile, genre modem, carte son, carte graphique, enfin les périf standard, sa se fait déjà alors...
combien de fois j'ai fait marcher une care son avec un driver qui n'était pas celui d'origine... c'est lié à la complexité du matos aussi mais bon.. même
En tout cas j'espère que cela va juste pour le sistème d'exploitation/machine virtuelle? Car une autre couche! Plus de complexité, donc ça ne sera pas plus de travail et plus de possibilités pour que quelque chose marche mal? Je suis sceptique. Et même qu'est qui arrive quand la plataforme cible n'a pas Tortola ... c'est optionnel?
ca sera optionnel si ils ouvrent les specs et jouent la transparence, ce qui m'etonnerait. un avantage de ce type d'archi, mais je connais pas tres bien pour en parler comme il faut, c'est de pouvoir mettre en place un coté "supervision" de l'OS, etc.
j'ai lu recemment qu'il ya de nouveaux virus en circulation qui agissent en tant que machine virtuelle au niveau hard. c'est a dire qu'il doit y a avoir une faille "normale" qui permet de transposer l'OS dans une machine virtuelle. le virus arrive a prendre le niveau max de privilege coté hardware et devient superviseur de l'OS. sans avoir besoin d'infecter le moindre fichier.
l'auteur de ce virus est une jeune chercheuse polonaise en securité dont on peut avoir des infos sur ce fameux virus ici http://theinvisiblethings.blogspot.com/
j'ai lu recemment qu'il ya de nouveaux virus en circulation qui agissent en tant que machine virtuelle au niveau hard. c'est a dire qu'il doit y a avoir une faille "normale" qui permet de transposer l'OS dans une machine virtuelle. le virus arrive a prendre le niveau max de privilege coté hardware et devient superviseur de l'OS. sans avoir besoin d'infecter le moindre fichier.
l'auteur de ce virus est une jeune chercheuse polonaise en securité dont on peut avoir des infos sur ce fameux virus ici http://theinvisiblethings.blogspot.com/
L'article est assez flou. Le site de Tortola donne plus de détails sur le fonctionnement du système, comme cet exemple beaucoup plus parlant:
Tortola serait donc, si j'ai bien compris, une machine virtuelle qui effectue de façon transparente des optimisations de code en temps réel sur des programmes en cours d'exécution, de façon à l'optimiser par rapport au matériel.
Ces optimisations dites dynamiques porteraient sur des exécutables en cours d'exécution (du code langage machine stocké en mémoire vive), donc par exemple pour le java (bien que le java soit un peu en dehors de la course à la performance
), c'est la machine virtuelle java qui serait optimisée et non le programme java lui-même !
L'efficacité réelle d'une telle application est peut-être discutable, et espérons que ça ne sera pas le prétexte à des constructeurs pour mettre sur le marché du matériel foireux, mais que celui qui n'a jamais été interrompu dans un jeu pour cause de surchauffe lui jette la première pierre
We have demonstrated the effectiveness of our approach on the well-known dI/dt problem. The dI/dt problem is a side-effect of modern techniques in low-power processor design. In order to reduce overall power consumption, idle portions of a processor are turned off. If one feature is repeatedly turned on and off, reliability problems can arise. While hardware solutions have been proposed to detect and react to these problematic current variations, they do so at a performance cost to the running application. By simply communicating that information to the virtual machine in real time, we were able to apply standard compiler optimizations (loop unrolling and software pipelining) to remedy future recurrences of the problem using binary code transformations. We were therefore able to provide the safety of the hardware-only technique with the performance improvements possible from a software-only technique.
Tortola serait donc, si j'ai bien compris, une machine virtuelle qui effectue de façon transparente des optimisations de code en temps réel sur des programmes en cours d'exécution, de façon à l'optimiser par rapport au matériel.
Ces optimisations dites dynamiques porteraient sur des exécutables en cours d'exécution (du code langage machine stocké en mémoire vive), donc par exemple pour le java (bien que le java soit un peu en dehors de la course à la performance

L'efficacité réelle d'une telle application est peut-être discutable, et espérons que ça ne sera pas le prétexte à des constructeurs pour mettre sur le marché du matériel foireux, mais que celui qui n'a jamais été interrompu dans un jeu pour cause de surchauffe lui jette la première pierre
