Le système Midori de Microsoft se rapproche de sa phase commerciale
Toujours sans savoir sous quelle forme il pourrait bien apparaître
Le 06 janvier 2014 à 17h18
5 min
Logiciel
Logiciel
Midori est un projet de système d’exploitation au sein de Microsoft sans aucun rapport avec Windows. Alors que l’actualité s’était faite discrète à son égard depuis un certain temps, plusieurs éléments récents laissent penser que son développement a nettement progressé et qu’il s’avance doucement vers une exploitation commerciale.
L'émergence après le calme
Midori est un nom de code abordé de nombreuses fois dans nos colonnes. Il prend sa source dans le projet Singularity d’un système d’exploitation basé sur un micronoyau et presque entièrement écrit en code managé. Durant des années, Singularity et Midori ont été abordés essentiellement comme des projets de recherche puis en phase d’incubation, cette dernière soulignant que ses concepteurs réfléchissaient déjà à une mise en pratique du travail accompli.
Il faut bien comprendre que si Midori devait sortir demain, il serait un produit très différent du Windows que nous connaissons. Il ne s’agit pas d’une question d’ergonomie et d’interface mais bien de base technique, sans aucun rapport avec les technologies actuelles ou encore le NT. On ne sait pas comment Microsoft pourrait commercialiser un tel produit et dans quelles directions, mais une arrivée sur les ordinateurs de tout un chacun ne semble pas en tête de liste.
Le projet a rejoint la division systèmes d'exploitation de Terry Myerson
Selon un article de Mary Jo Foley de ZDnet, Midori se rapproche cependant un peu plus d’un produit réel. Selon deux sources, c’est tout le projet qui est maintenant géré au sein de la nouvelle division systèmes d’exploitation de Microsoft, dirigée par Terry Myerson. Le même Myerson qui donnait ces derniers mois quelques bribes d’informations sur la convergence des systèmes chez le géant.
Cette information est complétée par une seconde sous la forme d’un billet de blog paru le 27 décembre et rédigé par Joe Duffy, l’un des développeurs de Midori. Il y explique un aspect important du développement du système sans jamais vraiment le nommer car il aborde le langage utilisé pour ce faire : M#. Il s’agit en fait d’un groupe d’extensions pour le C# pour composer un langage système hérité de l’ancien projet Sing#.
Ce langage de programmation système pourrait d’ailleurs devenir open source, ce qui laisse penser qu’il jouerait un grand rôle dans le futur de la firme. Ce projet est par ailleurs lié à Roslyn, un nouveau compilateur dont nous avons parlé le mois dernier, puisque l’équipe doit l’y implémenter. Mais les questions que l’on peut se poser devant les explications de Joe Duffy concernant à la fois l’utilité de M# et la manière dont tous ces projets pourraient s’intégrer dans l’informatique d’aujourd’hui.
De l'utilité et de l'intégration dans le paysage actuel
L’utilité de M# a justement été débattue dans les commentaires qui ont suivi. La décision de se baser sur C# est initialement expliquée dans le billet de Duffy : la réduction de la complexité, le nombre de développeurs sachant aujourd’hui l’utiliser et la nécessité de certaines notions telles que la sûreté de typage. Mais pourquoi ne pas utiliser des langages existants tels que D, Rust ou Go ? Selon Aleks Bromfield, qui a passé les quatre dernières années à développer ce langage mais qui travaille maintenant chez Google, M# reprend des éléments des uns et des autres : la sûreté et les performances de Rust, la simplicité de Go ainsi que la familiarité du D. Il explique par ailleurs que le M# peut être utilisé pour n’importe quelle application et qu’il devrait être le langage le plus bas niveau dont les développeurs pourraient avoir besoin.
Mais comment Midori et M# (la lettre M n’est certainement pas due au hasard) pourraient-ils s’intégrer aujourd’hui dans l’écosystème logiciel actuel puisque les bases techniques sont totalement différentes ? Il y a plusieurs aspects à la question, dont le premier concerne justement les applications existantes. Tout dépend en effet des API dont on parle : il est clair que les logiciels Win32 ne pourront pas fonctionner sur une telle nouvelle base à moins que Microsoft ne mette en place un mécanisme supplémentaire (Drawbridge ?), mais la situation est très différente dès que l’on aborde WinRT.
Des annonces sans doute à prévoir cette année
Cet environnement, apparu avec Windows 8 et constituant la base des nouvelles applications disponibles dans le Windows Store, apparaît comme relativement autonome. Lorsque nous l’avions abordé dans notre dossier Windows 8, nous avions souligné que WinRT reposait bien sur Win32 mais avec un nombre très limité d’attaches. Nous avions également suggéré qu’il était de fait possible d’imaginer que l’on pouvait « débrancher » WinRT pour le réinstaller sur une autre base. Une notion qui semble confirmée à demi-mots par Aleks Bromfield dans un tweet.
Dans tous les cas, l’élément important concerne bien l’inclusion du projet Midori au sein de la division de Terry Myerson. L’une des sources de Foley lui a indiqué à ce sujet que l’équipe devait décider quels éléments de Midori pouvaient être intégrés dans la stratégie en cours. L'année 2014 pourrait finalement voir plusieurs annonces concernant le système ainsi que le M#.
Le système Midori de Microsoft se rapproche de sa phase commerciale
-
L'émergence après le calme
-
Le projet a rejoint la division systèmes d'exploitation de Terry Myerson
-
De l'utilité et de l'intégration dans le paysage actuel
-
Des annonces sans doute à prévoir cette année
Commentaires (220)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 09/01/2014 à 07h43
Cela dit j’argumente avec toi mais je suis d’accord sur le fond : un tel projet n’est pas gratuit en termes de performances. Même s’il restera à mon avis acceptable et présentera aussi des gains.
Le 10/01/2014 à 07h30
…troll…
Le 10/01/2014 à 08h04
Le 10/01/2014 à 08h21
Le 10/01/2014 à 08h31
Le 10/01/2014 à 08h49
Le 10/01/2014 à 09h26
Le 10/01/2014 à 09h29
Le 10/01/2014 à 09h30
Le 10/01/2014 à 09h38
Le 10/01/2014 à 16h47
Le 11/01/2014 à 01h19
Le 12/01/2014 à 15h26
Le 06/01/2014 à 17h28
“The idea is that M# should be the lowest-level language that you’ll ever need. It sits at the very bottom of the stack. But it’s also safe and productive enough to be appropriate for writing higher-level systems, like Web services,”
Vivement " />
Le 06/01/2014 à 17h42
J’en avais parlé dans de précédents commentaires avec sr17 et harmattanblow.
Le M# est un langage derivé de c# qui est type et memory safe mais qui obtient les mêmes performances que le C++.
Joe duffy l’explique clairement. Les débats sur le sujet comparaient à l’implémentation actuelle du .NET. Mais ca ne marche pas du tout pareil. Joe duffy expose plusieurs points:
1)ce n’est pas de la compilation JIT mais un compilateur ahead of time. le codé est compilé directement en natif.
2)L’autre point débattu à l’époque c’était les mauvaises performances du garbage collector actuel. Visiblement ils ont travaillé dessus.
3)Le point majeur débattu: Avec des langages manages il y a une vérification des dépassement de tableaux par défaut pour éviter les buffer overflow. J’expliquais que ce serait largement compensé par de fortes optimisations avec le compilateur. C’est confirmé ici:
It is true that bounds checking is non-negotiable, and that we prefer overflow checking by default. It’s surprising what a good optimizing compiler can do here, versus JIT compiling.
Se renseigner aussi sur le tree shaking qui est une des optimisations importantes. Voir ici
De toute façon quand on voit le nombre de failles dans les navigateurs web par exemple ça prouve bien qu’on peut pas compter sur les développeurs pour éviter de pondre des failles.
Au final M# devrait bien obtenir les performances nécessaires pour la programmation système.
Je finirai sur le fait que joe duffy l’a annoncé clairement qu’il est arrivé au but. C’est fort probable que des milliers de développeurs vérifieront ses propos.
Le 06/01/2014 à 17h44
Le 06/01/2014 à 18h04
Le 06/01/2014 à 18h14
“Lucky Williams : Lucky Williams, Expert PAKRAM sur MOS 32 H-track en bibande PADIRAK.
Topper : Padirak ?
Lucky Williams : En circuit fermé Lieutenant.
Topper : Oui bien sûr.”
" />
Le 06/01/2014 à 18h20
Le 06/01/2014 à 18h21
Le 06/01/2014 à 18h23
Le 06/01/2014 à 18h24
Le 06/01/2014 à 18h24
Le 06/01/2014 à 18h26
Le 06/01/2014 à 18h26
" />
M# n’est pas un langage associé à Microsoft. M# n’est jamais mentionné dans le blog de Duffy !!
(uniquement dans les commentaires de mecs qui ont fait des associations de mots)
M# est développé par une société britannique et mis en œuvre pour la réalisation de sites web Wikipedia
Le 06/01/2014 à 18h28
Le 06/01/2014 à 18h32
Le 06/01/2014 à 18h32
Le 06/01/2014 à 18h32
Le 06/01/2014 à 18h33
Le 06/01/2014 à 18h35
Rien compris à l’article… Pas l’niveau… " />
Le 06/01/2014 à 18h37
Le 06/01/2014 à 18h41
Le 06/01/2014 à 18h41
Le 06/01/2014 à 18h41
Le 06/01/2014 à 18h43
Le 06/01/2014 à 18h45
Le 06/01/2014 à 18h47
Le 06/01/2014 à 18h48
Le 06/01/2014 à 18h50
Le 06/01/2014 à 18h53
En fait la news en parle,c’est que j’avais prédis à l’époque dans le dossier sur Windows 8. WinRT a été conçu pour tourner au dessus de Midori.
Pour Win32 il y a drawbridge.
Le 06/01/2014 à 19h02
Le 06/01/2014 à 19h04
Le 06/01/2014 à 19h13
Le 07/01/2014 à 14h04
Le 07/01/2014 à 14h16
Le 07/01/2014 à 14h18
Tout à fait : on vérifie en amont que tout le monde est honnête et du coup plus besoin de flics. Dit comme ça ça n’a pas l’air très sûr mais en fait ça l’est beaucoup plus que le système actuel.
Bien résumé c’est le principe de fonctionnement de singularity et Midori " />
Avec Windows on laisse faire et on tente de protéger les dégats avec plein de garde fous.
Avec Singularity/midori on établit les règles du départ. Du coup pas besoin de garde fous inutiles.
Le 07/01/2014 à 14h19
Le 07/01/2014 à 14h21
Le 07/01/2014 à 14h23
Le certificateur, pas le compilateur. Le certificateur vérifie le code en bout de chaîne alors que les compilateurs ne seront pas dans l’OS et pourront être indépendants
Ça me parait pas si évident.
Je pense qu’on peut facilement inventer un langage dans lequel tout programme peut-être certifié (c’est d’ailleurs ce qui a été fait si j’ai bien compris, et ça existait avant cela)
Par contre, certifer le résultat d’un programme, au pif, d’un compilateur, c’est une autre histoire… qui ne doit pas être très loin de la question de la terminaison d’un programme, qui est indémontrable.
Je conçois qu’un peut facilement certifier un compilateur, mais pas le résultat de ce qu’il compile, seulement en lisant le code du compilateur.
Et là où il y a une différence d’indépendance par rapport au système actuel (qui est loin d’être parfait, on est bien d’accord) c’est que tu n’as pas la possibilité d’écrire du code qui va monitorer/manager un autre programme, car il sera invalide et te sera refusé à la compilation (quid d’un débogeur tiens, comment cela marche sur un tel système ?)
Le 07/01/2014 à 14h32
Le 07/01/2014 à 14h36
Le 07/01/2014 à 14h41
Le 07/01/2014 à 15h14
Le 07/01/2014 à 15h19
Le 07/01/2014 à 15h21
Par contre le TAL m’inquiète un peu. Aujourd’hui le bytecode dotnet contraint tous les langages dotnet à se taper le même système rigide de types. Impossible de l’enrichir sans implémenter une infrastructure complète au-dessus de l’infrastructure, avec les performances que tu imagines (il suffit de voir F#). Je trouverais dommage que Midori nous enferme ainsi dans un système de typage trop cloisonné. Pour moi c’est le gros point noir.
Le 07/01/2014 à 15h48
Hum … Donc si j’ai bien compris la politique associée au langage concernant la mémoire, grosso modo on a un langage qui accepte l’allocation dynamique, on va recevoir les accès à ces zones par des références (au sens C++, pas des pointeur quoi), qui sont modifiables mais uniquement par affectation d’une référence valide (pas d’arithmétique des pointeurs, c’est pas pour me déplaire).
Sur un langage full-GC (même si j’aime pas les GC), je trouve ça ok effectivement.
Cela dit si on a du très bas niveau, on veut avoir une déalloc parfaitement déterministe. C’est quoi derrière ? Du comptage de référence ? Ce serait quand même plus correct d’être plus précis niveau responsabilité si on veut très efficace, non ? (comprendre shared_ptr/unique_ptr en C++11).
Grosse interrogation pour ma part également : quid des modèles mémoire faibles ? C’est oblitéré par des barrières fortes où l’on a toujours le choix de rester borderline ? Parce que dans ce contexte, faire de la certification même avec juste de l’allocation statique c’est déjà mission impossible alors avec du dynamisme … Waow !
Le 07/01/2014 à 15h48
Le 07/01/2014 à 15h56
Le 07/01/2014 à 16h06
Le 08/01/2014 à 08h37
Le 08/01/2014 à 08h50
Oui, je suis le premier à dire qu’il y aura une perte.
Cela dit :
* La valeur de ces micro-optimisations est souvent surévaluée, de moins en moins significative, surtout par à la parallélisation, et les humains font aujourd’hui rarement mieux que les compilateurs (la vectorisation automatique devient aujourd’hui monnaie courante).
* Il y aura des gains par ailleurs : la suppression de la mémoire virtuelle c’est un gros cadeau pour les performances.
Effectivement dans les précédents débats j’expliquais que les pertes pouvaient être compensées par d’autres points.
Joe duffy explique bien dans son post que le compilateur effectue tout un tas d’optimisations poussées.
It’s commonly claimed that with type-safety comes an inherent loss of performance. It is true that bounds checking is non-negotiable, and that we prefer overflow checking by default. It’s surprising what a good optimizing compiler can do here
Il y en a une sur la quelle j’ai débattu sur twitter qui semblerait être aussi utilisée dans project N. C’est letree shaking:
Microsoftil y aussi le fait que M# devrait être conçu pour la programmation many core.
Le 08/01/2014 à 09h18
Le travail sur Midori aurait peut être profité à RyuJIT ou peut être le contraire: RyuJIT
C’est quand même une bonne nouvelle qu’on puisse faire du bas niveau dans un langage proche du C#, ceci ouvre de nouvelle perspective pour nous.
Le 08/01/2014 à 09h26
A propos du tree shaking je voudrais relever un détail. Felix qui est une des sources actives de mary jo foley a analysé freshpaint sur Windows RT 8.1. Il a trouvé des réferences à project N. Il a aussi remarqué que tout le code est désormais dans un binaire. Ce serait une spécificité avec le tree shaking. Sur Singularity la notion de librairies ou de DLL changent déjà vu que les SIP sont isolées. Une DLL sur les systèmes actuels se chargent dans l’espace mémoire du processus et de façon dynamique pour certaines.Avec Singularity une dll devrait tourner dans son propre sip ou être fusionné au code du programme.
D’après les tweets de felix il semblerait qu’au niveau binaire le programme avec toutes ses librairies forment une seule entité. Ce qui permettrait normalement de rendre le tree shaking beaucoup plus efficace.
Twitter Twitter Twitter Twitter Twitter Twitter
Le 08/01/2014 à 11h06
Le 08/01/2014 à 11h43
Le 08/01/2014 à 12h26
Beaucoup de discussions passionnées chez les INpactiens (et tiennes). Je ramène ma fraise de vieux qui a appris l’assembleur sur 6502, 8085 et 8031. Pour moi, un CPU n’exécute QUE de l’assembleur. Alors, un code managé, compilé ou semi-compilé est d’abord traduit en assembleur. Donc, dans un driver écrit en mode managé, on mettra POKE 53281,0 pour le traduire en mov 0xd020, #0 après un décodage de l’adresse, de la donnée, et une vérification qu’on ne déborde pas dans le SIP d’à coté. Très bien, mais avec cet exemple trivial j’ai du mal à croire qu’on pourra écrire un OS 2 fois plus performant, d’autant que la loi de Moore arrive à son terme, la limite physique du nombre d’atomes dans une jonction silicium. Certes, les architectures sont de plus en plus performantes, mais où sont les CPU à 5GHz qu’Intel nous avait promis à la sortie des P4-Netburst ? Je demande à voir le prochain driver NVidia doubler les performances en étant écrit en M# au lieu de C ou ASM.
Ensuite le micro noyau. Sur le papier c’est très bien, plus sécurisé, etc, etc… Sauf que la communication inter processus écroule les performances de cette belle théorie et démontre que ce qui fonctionne le plus rapidement, c’est le noyau monolithique. C’est d’ailleurs le choix du marché, voir le TOP500 des machines les + performantes trusté par Linux, noyau monolithique. Donc, il faut choisir : performance ou sécurité.
Je continue sur la sécurité qui ne se passe pas qu’au niveau du noyau ou même au niveau du langage. La dernière fois que j’ai dû virer un vers d’une machine, c’était sur un poste Windows7, et le vers était dans C:\USERS\Prénom\APPDATA\ROAMING\ZZYYXX\VILAINVERS.EXE. Un EXE en Win32. L’UAC n’a rien fait vu que le vers n’était ni dans C:\PROGRA~1 ni dans C:\WINDOWS. Alors le plus beau langage avec le plus beau noyau ne servira à rien tant que le dossier utilisateur sera exécutable par défaut (je l’ai déjà dit et redit). Un simple NOEXEC en option de montage sur le /HOME suffit à repousser tous les vers, mais ce n’est pas du monde Windows…
Ou alors on développe tout en JAVASCRIPT sans fonction OPEN en écriture et sans appel système pour ne pas écrire de fichier, et les données restent dans le cloud.
Le 08/01/2014 à 12h28
Je relis mon poste et je me dis que le rêve, c’est l’OS en ROM, le dossier utilisateur en NOEXEC, et toutes les données et applicatifs dans le cloud avec abonnement.
Le 08/01/2014 à 13h09
Le 08/01/2014 à 13h26
Le 08/01/2014 à 13h31
Le 08/01/2014 à 13h39
Le 08/01/2014 à 13h41
Le 08/01/2014 à 13h46
Le 08/01/2014 à 13h54
CaptainDangeax tu te méprends sur le but de l’UAC. Microsoft a toujours dit que l’UAC n’était pas une barrière de sécurité contrairement à la sandbox des applications Windows Store.
Mark Russinovich l’avait clairement dit à l’époque de Vista. Le but de l’UAC était de forcer les développeurs à ne plus écrire d’applications qui demandent les droits administrateurs inutilement. L’UAC n’arrête pas les virus ou malwares. Par contre si les applications tournent avec des droits utilisateurs(stratégie réussie quand Windows 7 est sortie), ça diminue la portée des attaques en cas de faille, ce qui est déjà pas mal.
Le 08/01/2014 à 14h04
Le 08/01/2014 à 14h04
Le 08/01/2014 à 14h37
Le 08/01/2014 à 14h47
Le 08/01/2014 à 14h54
Actuellement Intel a une gamme de processeurs many core(TousLesDrivers fournit les drivers) en carte Pci Express je crois.
Je suis tombé sur cette news dernièrement où intel va bientôt sortir un vrai processeur manycore
A noter qu’intel a bossé en 2011 avec Microsoft sur le projet black cloud os. C’est un os dérivé de Singularity/Helios qui tourne sur leur gamme de processeurs many core.
Tout doucement on y arrive….
Le 08/01/2014 à 15h09
Le 08/01/2014 à 15h19
Managed code -> Bytecode dans une machine virtuelle. Ce n’est pas du langage machine, c’est donc de l’interprété. Donc perte de performances.
rien que ça prouve que tu n’as rien compris au sujet. le bytecode intermédiaire est compilé en natif à l’installation. Tu n’as pas de runtime. C’est même le titre d’une présentation de james larus sur singularity
C’est pas du troll, c’est l’approbation de la démonstration de l’INpactien ; c’est positif comme attitude, non ? Promettre des performances en hausse sans preuve, ça c’est du troll.
C’est moi que tu traites de troll. J’ai des sources internes qui m’en ont parlé comme quoi Midori serait globalement deux fois plus rapide que Windows. Ce sont des benchs internes effectués par l”équipe de développeurs Midori. Effectivement je ne peux pas le prouver. Libre à toi de me croire ou pas. mais j’en fous un peu de ton opinion.
Surtout que tu me traites de trolls alors que toi pendant une période tu étais le troll numero un sur PCI. Les personnes qui étaient là doivent s’en souvenir. Moi je n’ai pas oublié. " />
Le 08/01/2014 à 15h22
Le 08/01/2014 à 15h31
Le 08/01/2014 à 15h58
Je pense qu’il faut que je précise les choses sur mes propos sur les performances. Je sens que ça va être détourné et mal interprété.
Ce sont des propos d’une de mes sources sur un papier qu’il a trouvé avec des benchmarks sur Midori. Mais il m’a juste donné une information globale. Il aurait été intéressant de savoir ce qui a été testé exactement.
Une personne plus haut a repris mes propos en expliquant que j’avais dit que M# serait deux fois plus rapide que c++. je n’ai jamais parlé du langage mais de l’OS.
De plus le résultat final peut encore changer. tout dépend comment ça va s’intégrer à Windows.
Mon propos était juste à titre informatif. Libre aux gens de me croire ou pas , je ne mens pas, je ne fais que reporter des propos.
PS: ceci dit il existe déjà un papier sur le site du MSR sur certains points qui sont testés sur Singularity comme les appels systèmes et c’est plutôt bon. Ou des tests avec la protection de ring cpu désactivé/activé et le MMU activé ou pas.
Le 08/01/2014 à 16h07
Le 08/01/2014 à 16h15
Le 08/01/2014 à 16h17
Le 08/01/2014 à 16h21
Le 08/01/2014 à 18h04
Le 09/01/2014 à 07h10
Le 09/01/2014 à 07h19
En plus, ça n’est pas très compliqué : il suffit de combiner des structures nombreuses et disséminées et un accès aléatoire.
Tu peux toujours sortir quelques structures de données où l’on accède à un seul élément d’un tableau (ex : un dico dont l’index du tableau racine est donné par les premiers bits du hash code). Mais ça reste l’exception plutôt que la règle : en général quand on accède à un tableau c’est pour en lire de nombreux éléments et la taille reste en cache (rien à voir avec le prefetch).
Le 07/01/2014 à 09h33
Le 07/01/2014 à 09h38
Le 07/01/2014 à 10h16
Le 07/01/2014 à 10h20
Au début je pensais aussi la même chose qu’harmattanblow :que le c++ ne marcherait plus sur Midori. Mais j’ai pu lire des brevets et certaines lectures qui m’ont fait changé d’avis.
Microsoft mise toujours sur le c++
Le but de WinRT était de mettre au même niveau tous les langages. Avant si on codais en C++ ,on ne profitait pas des mêmes api qu’en codant en .NET
Avec WinRT le framework est uniforme pour tous les langages.
.
En effet Windows est un os first class c++ et Midori un os first class M# mais le C++ devrait subsister.
De nombreux projets sont écrits en C++. Ca reste plus simple de porter le projet sur WinRT (surtout pour les projets multi) que de complètement tout réécrire en M#
Au final seuls les développeurs systèmes devront coder en M#. mais vu les gains en terme de rapidité de développement et de fiabilité, je doute que ce soit un problème.
Le 07/01/2014 à 10h24
Le 07/01/2014 à 10h36
Le 07/01/2014 à 10h37
Le 07/01/2014 à 10h45
Il existe bien le c++ CLI, ça sera peut être la même chose sur Midori.
Le 07/01/2014 à 10h47
Le 07/01/2014 à 10h50
Le 07/01/2014 à 10h53
J’espère que Microsoft mènera a bien ce projet, et pourra sortir une version commerciale assez rapidement.
Pourquoi ?
Actuellement, il y a trois acteurs majeurs : Apple, Google et Microsoft.
Ce dernier serait le premier à sortir un OS “next-gen”.
Google et Apple travaillent aussi certainement sur ce type de projet, mais je pense qu’ils sont à un stade beaucoup moins avancé (Google part sur les réseaux sociaux, les robots, voitures etc.., Apple sur le prochain gadget révolutionnaire ?).
Vu les avantages supposés avec Midori, cela pourrait relancer Microsoft au premier plan avec :
Bref, à terme cela pourrait casser le WinDaube que tout le monde aime prononcer. Car à vrai dire, combien de personnes voient plus d’écrans bleus en comparaison du nombre de reboot/freeze de leurs téléphones/tablettes ?
Le 07/01/2014 à 10h53
Le 07/01/2014 à 10h55
Le 07/01/2014 à 10h58
Le 07/01/2014 à 11h02
Le 07/01/2014 à 11h08
Le 07/01/2014 à 12h59
Je pense que ce brevet de galen hunt devrait plus répondre à ta question:
http://www.freepatentsonline.com/7882317.pdf
Dans ce brevet Microsoft envisage d’utiliser les ring du cpu et donc l’isolation matérielle pour avoir la délimitation kernel/user mode. La différence par rapport à Windows est que les “process” qui tournent en kernel mode sont isolés logiciellement par des SIP.
C’est une sorte de compromis entre l’isolation matérielle et logicielle et ça devrait résoudre le problème que tu as mis en valeur plus haut.
Le 07/01/2014 à 13h12
Le 07/01/2014 à 13h18
Quand vous dites SIP c’est : Session Initiation Protocol O_o ?
Le 07/01/2014 à 13h19
Le 07/01/2014 à 13h21
Le 07/01/2014 à 13h28
Ces SIP sont cencés êtres plus performants que l’utilisation du ring 3 des processeurs c’est ça ?
Le 07/01/2014 à 13h30
Le 07/01/2014 à 13h34
question débiles en fait : a supprimer
Le 07/01/2014 à 13h34
L’isolation logicielle se fait au niveau du compilateur qui à la fin vérifie que le code généré soit bien vérifiable et qu’une adresse mémoire n’aille pas pointer sur un autre SIP.C’est une isolation par le langage. Harmattanblow a parlé plus haut de ce point.
Le 07/01/2014 à 13h36
Le 07/01/2014 à 13h37
Oui l’isolation matérielle est beaucoup plus coûteuse en performances.
hheeuuu ???? depuis quand ?
L’isolation logicielle se fait au niveau du compilateur qui à la fin vérifie que le code généré soit bien vérifiable et qu’une adresse mémoire n’aille pas pointer sur un autre SIP.C’est une isolation par le langage. Harmattanblow a parlé plus haut de ce point.
Ça a déjà beaucoup plus de sens ! Donc en clair, il n’y a PAS d’isolation.
Maintenant la question qui fache… qui maitrise le compilateur ?
Pärce que dans l’ère “je m’appelle nsa me faites pas chier”, ça veut dire “j’ai tour les droits, et tu n’as AUCUN moyen de controller ni vérifier quoi que ce soit, ni même de t’en proteger”
Moyen quand même comme concept…
Le 07/01/2014 à 13h40
Le 07/01/2014 à 13h42
Le 07/01/2014 à 13h43
Le 07/01/2014 à 13h47
Si il y en a une vu que tout ce qui tourne en kernel mode est du code vérifiable.
non il n’y en pas pas vu que la compote de pomme est trop sucrée et que les avions nagent à contre courant… -_-
Pour le compilateur il est dans la trusted base. Bartok avant de de générer du code natif génère du Typed Assembly language(TAL) , une sorte de pseudo code assembleur vérifiable. Le compilateur est compilé du TAL de mémoire.
je répète donc ma remarque, personne n’a de maitrise sur la chaine de compilation, et c’est à elle qu’il faut faire confiance pour la sécurité de l’os…
je vais le dire autrement…
“Ma maison est sure car les clés m’ont été données par l’ancien propriétaire et je n’ai aucun moyen de changer la serrure ni mettre d’alarme chez moi sans lui demander et qu’il l’installe lui même”
C’est une blague ???
Le 07/01/2014 à 13h48
N’en change pas c’est de la bonne !!!
C’est tout ce que tu as comme argumentation pour ta réponse ??
J’en conclue que tu es d’accord avec moi ?
Le 07/01/2014 à 16h28
Le 07/01/2014 à 16h30
Le 07/01/2014 à 16h36
Le 07/01/2014 à 16h38
Le 07/01/2014 à 16h43
Le 07/01/2014 à 16h44
Le 07/01/2014 à 17h04
Sinon pour le javascript il existe ce projet :
MicrosoftSPUR compile le code javascript en .net. Même si une partie utilise bartok c’est de la compilation JIT donc ça ne répond pas au problème posé avec midori.
Le 07/01/2014 à 18h54
Le 07/01/2014 à 19h04
Le 07/01/2014 à 19h17
Le 07/01/2014 à 19h49
Le 07/01/2014 à 20h00
Quelques objections qu’on ne peut pas malheureusement pas balayer d’un revers de main parce qu’un tel système restreindra de fait l’usage de certains optimisations :
-Les performances de certains logiciels reposent sur des morceaux de code assez courts, mais écrits directement en assembleur (Video, traitement d’image, chiffrement, etc). Même si ces optimisations concernent une portion marginale du code d’une minorité de programmes, l’impact final sur l’ensemble peut ne pas être négligeable.
-Une des optimisation très utilisée avec le C++ consiste à écrire des gestionnaires de mémoire spécialisés pour chaque tâche critique. Malheureusement, aucun “garbage collector” généraliste, aussi bon soit t’il ne peut rivaliser avec de telles stratégies spécifiques.
-Le système aura l’avantage d’éliminer les “context switch”, donc de permettre un gain de performance sur du code “managé”. Mais il y a un revers de la médaille : un simple accès à un élément d’un tableau peut se traduire par deux “cache miss” au lieu d’un à cause du bornage. Or, les accès mémoires sont l’un des facteurs limitant des processeurs modernes, bien plus que le coût des “context switch”. C’est particulièrement valable dans un environnement multicore.
Ma conclusion sur la question, c’est qu’on en saura plus sur l’opportunité de cette nouvelle architecture d’OS quand les éditeurs tiers porteront leurs logiciels dessus et que se dessineront les avantages et les défauts pratiques de l’idée.
Le 07/01/2014 à 20h40
C’est histoire de proposer un langage rapide avec un développement qui requiert moins de temps.
Donc une histoire de pognon et de manque d’expertise aussi.
Je bosse dans une boite une le chargé de recrutement m’avait lâché le morceau : “Aujourd’hui il est devenu très difficile voir miraculeux de trouver des experts en Assembleur +15.”.
Évidement le salaire s’en ressent " />
Le fait d’imaginer des idées de briscard pour diviser un temps de calcul par 10, n’est apparemment pas chose commune.
Cependant M# semble atteindre un bon compromis. Reste a voir ses domaines d’applications ;)
Le 08/01/2014 à 02h06
Le 08/01/2014 à 07h16
Le 08/01/2014 à 08h07
Le 06/01/2014 à 21h14
Le 06/01/2014 à 21h23
Le 06/01/2014 à 21h24
Le 06/01/2014 à 21h24
Le 06/01/2014 à 22h35
Le 06/01/2014 à 22h37
Le 06/01/2014 à 22h58
Le 06/01/2014 à 23h28
A vous lire, ça va vouloir dire changement de terminale de windows phone 8 à 9. " />
Le 06/01/2014 à 23h45
Le 06/01/2014 à 23h52
Le 07/01/2014 à 00h39
Midori open source ? Ce serait un très grand progrès " /> et en même temps une menace pour linux " />
Dommage je pourrais plus dire “le proprio c’est le mal” " /> comme j’aime bien le faire " />
Le 07/01/2014 à 00h41
Je pense que c’est ce qu’ils commencent à faire en rapprochant RT de Windows Phone faire une api unique qui sera capable de tourner sur tout leur système, même sur midori.
Donc c’est pour ça qu’ils ont obliger les utilisateur de PC traditionnel à avoir cette interface Metro pour pousser les devs à sortir des apps dessus et à terme avoir un gros paquet d’appli à la sortie de Midori comme on a actuellement sur Win32 (pour éviter de perdre de grosse part de marcher sur le desktop)..
Le 07/01/2014 à 01h52
Le 07/01/2014 à 07h18
Le 07/01/2014 à 07h39
Le 07/01/2014 à 07h45
Je ne vois pas trop ce que vient faire le DO178 et des exemples issus de l’avionique dans la conversation… On ne connait pas précisément la cible de Midori, mais on peut imaginer PC/tablettes/smartphones, pas les systèmes temps réel, et encore moins embarqués avioniques qui tombent sous le coup du DO " />
Le 06/01/2014 à 20h17
Le 06/01/2014 à 20h18
Le 06/01/2014 à 20h22
Voilà pourquoi j’aime pci ! Pas pour les les news Apple pu ça se tire dessus à coups de mauvaise foi bien puante mais pour les news techniques de de se genre.
Le 06/01/2014 à 20h28
Le 06/01/2014 à 20h31
Le 06/01/2014 à 20h33
Le 06/01/2014 à 20h39
Le 06/01/2014 à 20h40
Le 06/01/2014 à 20h46
Le 06/01/2014 à 20h48
Le 06/01/2014 à 20h50
Sinon GNU Hurd s’en est où ? " />
Le 06/01/2014 à 20h51
Le 06/01/2014 à 20h52
Le 06/01/2014 à 20h55
Le 06/01/2014 à 21h03
Le 06/01/2014 à 21h11
Le 07/01/2014 à 11h10
Le 07/01/2014 à 11h15
Le 07/01/2014 à 11h15
j’ai oublié de mentionner quelque chose il semble que harmattanblow n’a pas saisi ce point.
Quand on code en C++ sur WinRT ,le code qui appelle les api doit être en C++/CX qui est un safe langage. C’est ce que j’ai expliqué au dessus les appels aux api WinRT sont type et memory safe. Ce point et la sandbox sont suffisantes pour faire marcher une application C++ au dessus de Midori. pas besoin de VM.
Le 07/01/2014 à 11h18
Le 07/01/2014 à 11h26
Le 07/01/2014 à 11h34
Le 07/01/2014 à 11h39
Le 07/01/2014 à 11h41
Le 07/01/2014 à 11h46
Vu qu’harmattanblow a des soucis de mémoire. Voilà une vieille offre d’emploi Microsoft dont nous avons débattu à l’époque:
Microsoftou will write code in a language like C# that has the performance characteristics of C++
mais bien sur il a oublié " />
Le 07/01/2014 à 12h07
Ah ça oui, vous en avez débattu (et vous vous êtes battu " />) plein de fois tous les 2 de Midori " />
Le 07/01/2014 à 12h14
J’ai retrouvé ce lien interessant sur les types en c++/cx:
MicrosoftUIntPtr
(For internal use only.) An unsigned 64-bit value that is used as a pointer.
IntPtr
(For internal use only.) A signed 64-bit value that is used as a pointer.
Ca explique bien ce que je disais plus haut, les pointeurs peuvent être utilisés uniquement en interne dans l’application. pas dans des api sinon une exception est déclenchée.(voir le lien avant)
Le 07/01/2014 à 12h15
Le 07/01/2014 à 12h19
Le 07/01/2014 à 12h21
Le 07/01/2014 à 12h40
Les API, oui. C++ CX, non. Il n’est pas vérifiable. Il n’y a absolument aucune restriction sur les pointeurs ou les instructions utilisées, tu ne peux pas le faire tourner en ring0 car tu ne peux pas avoir la certitude que telle variable ne pointera pas vers une adresse du noyau au moment où elle sera écrite.
faudrait que je retrouve un vieux ppt mais ils ont incorporé plusieurs mot clés pour s’aligner sur les langages managés. mais disons que la tu es d’accord pour les api.
Pour ce que tu dis sur le ring0 je suis d’accord mais regarde ceci ça va répondre en partie à ta question je pense:
MicrosoftOur Kernel is a non-traditional design divided between a native C++ microKernel and additional managed C# operating system functionality which is injected into each independent hardware address space.
C’est ce que j’avais entendu parler il devrait y avoir un espace d’adressage mémoire indépendant pour le natif. Du coup il n’y aucun risque que l’appli native corrompt le système.
Mais j’ai pas toutes les informations en effet la dessus. Par contre tu ne penses pas que si Microsoft sort une nouvelle plateforme de dev alors que win32 a duré plus de 20 ans, il ne va pas la jeter 3 ou 5 ans après?
Mais arrête de m’insulter enfin !
Je me rappelle avoir discuté de nombreuses fois avec toi de ces sujets mais je ne me rappelle pas s’ils avaient été révélés par toi ni à quel moment par rapport aux autres, c’est aussi simple que ça et il n’est pas du tout étonnant que la chronologie exacte m’échappe des années plus tard.
Et j’ai été très surpris et choqué par tes réactions tout au long de ce sujet. Je suis venu pour une discussion technique sur un sujet qui m’intéresse et je me retrouve avec des approximations et un problème d’égo sorti de nulle part.
Ok tu as oublié pas de soucis désolé " />
Le 07/01/2014 à 12h53
Que viens faire Roslyn dans l’histoire ? Juste un projet annexe ou c’est lié ?
Le 06/01/2014 à 19h15
Le 06/01/2014 à 19h16
Le 06/01/2014 à 19h25
Le 06/01/2014 à 19h28
Le 06/01/2014 à 19h30
Le 06/01/2014 à 19h32
Le 06/01/2014 à 19h37
Le 06/01/2014 à 19h40
Le 06/01/2014 à 19h46
Le 06/01/2014 à 19h48
Le 06/01/2014 à 19h52
" />
Putain, c’est affolant de lire des conneries pareilles. Aucun de vous n’y connais strictement rien en programmation c’est bien là le problème, et c’est pas en justifiant des âneries que n’importe qu’elle expert utilisera à vos dépends …
1- Il y a encore des gens qui doutent de l’utilité de l’assembleur pour écrire un OS ? Ton Pipalo-Pentium tu le passes comment en mopde protégé ? " />
2-Y’a encore des crétins qui utilisent autre chose en C++ que des vecteurs ou des liste, pour aller se plaindre que les structures n’ont pas de bound checking ? Et puis quelque soit le langage à partir du moment ou le compilo fait ton travail à ta place faut pas venir se plaindre des perfs, que ce soit en managé, compilé, précompilé, etc
3- En C c’est plus complique il faut tout se taper à la main mais quand on en a fait 3-4 ans sérieusement on connait -> pour ça qu’on se met au C++
4- En 20 ans j’ai jamais vu un bon programmeur java faire mieux qu’un bon programmeur C++, alors pour le reste on a encore sincèrement de la marge.
5- Avant de vendres vous programmes dites moi, vous avez bien eu le temps de les TESTER " />? Je sais pas mais, comme ça, je me suis rarement fait avoir par un buffer overflow à près 3-4 débug " />, normal le cpu il fait tout pour toi… mais en assembleur
Le 06/01/2014 à 20h04
Le 06/01/2014 à 20h08
Le 06/01/2014 à 20h09
Le 06/01/2014 à 20h14
Le 06/01/2014 à 20h16
Les gens achètent (ou plutôt subissent l’obligation d’acheter) Windows pour deux raisons principales :
-1) L’environnement est familier, je sais le faire marcher.
-2) Je peux faire tourner ma 100aine de crapware que j’ai amassé au fil du temps.
On a bien vu avec RT ce que ça a donné !
1 et 2 ne sont plus réunis => rejet massif.
Même si l’environnement est indépendant d’un noyau, je doute donc d’un succès d’un autre kernel qui foutrait en l’air l’affirmation numéro 2.
… ou alors ils mettent Wine en plus sur Midori pour faire tourner les crapwares ! " />
Le 07/01/2014 à 08h18
Le 07/01/2014 à 08h22
Je me pose une question qui peut paraitre con, pourquoi creer un nouveau language au lieu de se focaliser sur un compilateur natif C# qui aura du-coup grosso modo les memes perfs ?
Le 07/01/2014 à 08h25
Le 07/01/2014 à 08h42
Le 07/01/2014 à 08h43
Le 07/01/2014 à 08h52
Le 07/01/2014 à 09h00
Ce n’est pas du blabla et c’est même une définition claire du domaine de ce langage. L’asm ne sera pas autorisé dans cet OS donc ce sera bien pour les dévs Windows le plus bas langage dont ils auront besoin, celui conçu pour écrire jusqu’aux pilotes de périphériques et pour écrire tous les pilotes. C’est la contrainte sur laquelle ils travaillent, par opposition à C# qui restera dédié à des applications de plus haut niveau.
Oui tout a fait, au niveau système le M# sera obligatoire pour éviter les bsod sur les pilotes entre autres et les failles de sécurités dans le système.
Par contre au niveau applicatif rien ne changera on devrait pouvoir toujours coder e C++ avec WinRT
Le 07/01/2014 à 09h02
Le 07/01/2014 à 09h03
Le 07/01/2014 à 09h06
Le 07/01/2014 à 09h10
Le 07/01/2014 à 09h17
Le 07/01/2014 à 09h20
Le 07/01/2014 à 09h23
Le 07/01/2014 à 09h26
Le 07/01/2014 à 09h29