Bonjour à tous.
n lisant cet article ( http://fr.news.yahoo.com/16/20081229/ttc-futur-de-microsoft-(...) ), j'ai eu l'impression que Microsoft utilisait le principe du micro-noyau et avait our but de réécrire Hurd (ou un truc vachement similaire). Quelqu'un a-t-il plus d'info sur ce sujet ( notamment PasBill PasGates s'il traine par ici ) ?
Je n'ai pas lu de spécification techniques précises cependant ce qui m'inquiète, c'est que Microsoft a déposé un brevet dessus .... A voir donc.
# hurd ?
Posté par M . Évalué à 4.
# Bof
Posté par dyno partouzeur de drouate . Évalué à 10.
Moi j'attends toujours que Microsoft se décide à enfin jeter le legacy code et à écrire un vrai OS en C et assembleur, natif, et si au passage on pouvait se passer du BIOS qui se doit de tourner en mode réel 8086comem au temps des dinosaures, on aurait peut-être un temps de démarrage de Windows qui passe sous les 3 minutes. Ah, et que ça tourne sur un peu plus d'archis, genre Power PC, ARM, Mips, x86_64 et tout. Linux le fait bien, lui.
Je parie qu'il y a encore des bouts de CP/M, de PC-DOS, d'EMM386 et de WIN.COM qui trainent dans Windows Seven...
Encore un coup monté avec les constructeurs pour pousser les pauvres utilisateurs à acheter des cpu à 42 GHz et de la RAM au kilo.
[^] # Re: Bof
Posté par David Carlier . Évalué à 10.
[^] # Re: Bof
Posté par Vlobulle . Évalué à 10.
Enfin, on est pas vendredi.
[^] # Re: Bof
Posté par Elfir3 . Évalué à 5.
[^] # Re: Bof
Posté par Obsidian . Évalué à 6.
[^] # Re: Bof
Posté par ndesmoul . Évalué à 4.
[^] # Re: Bof
Posté par cosmocat . Évalué à 4.
Linux dans les première version contenait pas mal de code en assembleur et un travail important a été de virer ce code pour l'ecrire en C de façon à ce que la maintenance (et le portage) d'une architecture soit la plus faible possible.
[^] # Re: Bof
Posté par Obsidian . Évalué à 10.
Il est évident que l'assembleur n'est pas portable, par contre le C a été conçu pour cela, à la base. D'autre part, on utilise majoritairement le C sous Unix parce que c'est historiquement une histoire d'amour (conçu par les mêmes personnes au même moment), mais rien n'empêche un usage beaucoup plus massif de l'assembleur au sein d'un projet, quoique les gens en pensent : d'abord parce que que les différentes architectures ciblées ne sont pas si nombreuses, et ensuite parce que les morceaux de code en assembleur peuvent quand même fonctionner sur toutes les machines utilisant le même microprocesseur si l'interface du code en question est écrite suffisamment proprement, indépendemment du système d'exploitation qu'il y a autour.
GIMP, par exemple, gagnerait beaucoup à exploiter les extensions des différents processeurs pour faire son traitement d'image, quite à ne développer dans un premier temps que des modules accélérateurs pour les microprocesseurs les plus répandus, et retomber vers un code en C par défaut. Un filtre applicable sur un champ de bits développé pour x86 serait par exemple capable de fonctionner indépendamment sous Windows, sous Linux et sous tous les O.S. fonctionnant sur PC, ou sur une autre architecture utilisant le même CPU. C'est suffisant pour que ça devienne rentable.
[^] # Re: Bof
Posté par TImaniac (site web personnel) . Évalué à 1.
http://tirania.org/blog/archive/2008/Nov-03.html
[^] # Re: Bof
Posté par Obsidian . Évalué à 2.
[^] # Re: Bof
Posté par Krunch (site web personnel) . Évalué à 2.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: Bof
Posté par lasher . Évalué à 8.
Dès qu'on parle de programmation bas-niveau (telle que celle d'un OS), il ne faut pas voir le C comme autre chose qu'un « assembleur de haut niveau ».
Concernant les bouts de code à « spécialiser » en fonction des architectures, je suis assez d'accord. Cela dit, ça fait quand même un grand nombre d'optimisations spécifiques. Alors si par exemple sur x86, on peut utiliser les intrinsics, le problème est que sur une autre plate-forme, le nom et la sémantique des instructions diffèrent, ce qui force à tout réécrire, et qui est tout de même assez pénible.
Par exemple, sur PowerPC 32 bits, il existe 32 registres adressables, alors que sur archi amd64/intel64, on n'a que 16 registres (sans parler des x86 32 bits et de leurs 8 registres). Bref, dans le cas du ppc, on a plein de registres à disposition (RISC oblige), avec des instructions qui peuvent en tirer parti -- par exemple, il existe une instruction qui affecte les valeurs situées à partir d'une certaine adresse dans tous les registres, e.g. :
r1 <- @tab[0]
r2 <- @tab[1]
...
r32 <- @tab[30]
... alors que sur x86, à cause de l'héritage CISC, on doit faire un peu différemment (en « vrai », il y a évidemment plein de registres sur un processeur x86, mais ils sont cachés, et on est obligé de faire confiance au matériel pour renommer les registres en interne de façon intelligente).
Ce genre d'instruction n'existe pas pour le SSE d'Intel/AMD. En revanche, on y trouve des pxor (parallel XOR, qui permet d'effectuer des XOR sur 128 bits d'un coup), et autres choses plutôt sympa pour la crypto, par exemple.
Sauf que voilà, du coup, l'algo sous-jacent à une certaine fonction (filtre pour traiter des images, ...) risque de différer pas mal d'une archi à l'autre. On se retrouve donc finalement avec une fonction qui a la même interface, indépendante de l'architecture (MIPS, PowerPC, x86, x86_64, ia64, etc), mais un fonctionnement interne très différent, avec des perfs elles aussi très différentes. Et surtout, il faut trouver des gens pour maintenir ce genre de code (un par archi, voire un par génération d'une même archi ...).
Maintenir (et mettre à jour !) correctement ce genre de code est très délicat, car le moindre bug risque non-seulement de faire planter l'appli (cas « idéal »), mais surtout de donner un résultat erroné (et là, c'est déjà plus coton).
Enfin, même si j'aime bien l'assembleur, je suis pour son éradication sauf cas exceptionnel. On a vraiment très rarement besoin d'accéder aux instructions assembleur. Déjà, en insérant de l'assembleur en-ligne dans un code C, on coupe toute velléité d'optimisation au compilateur (qui se « houla, il tripatouille autre chose que du c/c++/java/pascal/whatever, qu'il se débrouille puisqu'il est si malin »). Donc déjà, ça signifie faire une fonction à part, compilée dans un fichier objet. Ensuite, il faudrait déjà qu'il n'existe pas déjà une interface « C » (intrinsics pour SSE, instructions vectorielles pour profiter d'AltiVec sur ppc, etc) pour utiliser ces instructions SIMD. Généralement de toute manière, le nom des instructions est très proche de l'instruction assembleur correspondante. Par contre, au programmeur de vérifier l'alignement des données [2], sinon ça va planter grave, à lui de vérifier que l'opération qu'il veut effectuer est légale dans le cadre d'instructions vectorielles, etc.
Il existe cependant quelques rares cas où il n'existe pas d'équivalent « C » à ce qu'on peut faire en assembleur. Par exemple, un de mes collègues, expert en cryptographie, râlait il n'y a pas si longtemps sur le fait qu'on ne pouvait pas récupérer des infos concernant les retenues ou les overflows (qu'on a dans le registre d'état, mais qui est totalement masqué dans les langages de 3è génération et plus).
[1] Enfin si je ne me trompe pas, avec C99, ce genre de type rentre dans la norme du langage.
[2] Tiens, encore un truc qui fait que le C n'est pas trop portable dans ce cas.
[^] # Re: Bof
Posté par Guillaume Knispel . Évalué à 3.
Sans compter que tous les backends ne se permettent pas forcement de s'émanciper de l'ABI lorsqu'elle n'est pas absolument nécessaire.
Enfin je suis parfois obligé de me retenir (sans trop de mal, j'ai bien conscience que l'optimisation prématurée est la source de tous^W beaucoup de maux ;) pour éviter de pondre 5 lignes d'ASM qui résolveraient le problème d'une manière franche et efficace sur la cible, et où finalement je fais un truc moins bien en "C" (pour être plus précis j'appelle, avec une syntaxe C, une abstraction préexistante qui est typiquement codée en ASM et dont la sémantique est connue) histoire de faciliter la maintenance. Ex : bitops atomiques en kernel space où on peut sur certaines archi travailler sur plusieurs bits simultanément, chose qui n'est pas prévue dans l'abstraction haut niveau de linux.
[^] # Re: Bof
Posté par lasher . Évalué à 4.
Pour les OS, évidemment, l'asm est nécessaire, mais si on peut l'éviter, il faut (ça semble « évident » dit comme ça, mais j'ai l'impression que beaucoup de gens préfèrent l'aspect bidouille à l'aspect « quand je reviens dessus plus tard, je sais ce que ça fait »).
[^] # Re: Bof
Posté par Guillaume Knispel . Évalué à 4.
D'autre part je crois que stmw est transformé en de multiples opérations lors du décodage (on gagne certes en BP mémoire due au code mais bon on peut citer d'autres instrus sur d'autres archis qui font le café -- au final je ne crois pas que les binaires Power soient les plus denses).
(j'ai survolé le e500 software optimisation guide il y a quelques jours :p )
[^] # Re: Bof
Posté par ndesmoul . Évalué à 2.
Ce qui est souvent fait pour ces routines (exemple, les bibliothèques libGMP et OpenSSL) :
- une implémentation C (lente mais qui marche partout)
- des routines assembleur spécifiques
À la compilation si du code assembleur adapté est présent il est utilisé. Sinon on se rabat sur la version C.
Résultat: une exponentiation modulaire (en autres) 3 à 4 fois plus rapide qu'en pure C (sur un PC 8086, j'ai pas testé sur d'autres architectures).
[^] # Re: Bof
Posté par claudex . Évalué à 7.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Bof
Posté par Nitchevo (site web personnel) . Évalué à 10.
[^] # Re: Bof
Posté par claudex . Évalué à 5.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Bof
Posté par syj . Évalué à 9.
[^] # Re: Bof
Posté par GeneralZod . Évalué à 10.
1. Le kernel NT a été réécrit from scratch, donc Windows NT et ses successeurs (Windows 2k, XP, Vista, Seven) n'ont pas de code provenant des antiquités cités précédemment.
Le legacy code, tu le trouves essentiellement dans des couches de compatibilité indépendantes de l'OS comme l'API Win32, les personnalités OS/2, Posix etc ...
C'est un concept repris des travaux sur les micro-noyaux comme Mach et qui permet une certaine compatibilité avec des OS Legacy voire concurrent. Tu retrouves quasiment le même système sous OS X (Cocoa, Carbon, Classic, BSD, IOKit), dans le libre avec le micro-noyau temps-réel Xenomai et les personnalités (VxWorks, Posix, pSOS+, UiTron etc ...).
C'est loin d'être con, et ça permet une transition en douceur à la fois pour les développeurs et les utilisateurs.
2. Le kernel NT est écrit en C et C++ avec des vrais bouts d'assembleurs. Idem pour WinCE.
Même aujourd'hui, on peut difficilement écrire un OS tournant sur du vrai matériel sans taper dans l'assembleur.
3. Le kernel NT a été développé sur une plateforme non-x86 avant d'être porté sur x86 afin d'assurer sa portabilité. Windows NT a existé commercialement sur x86, MIPS, PowerPC, Alpha (Windows 2k a même été porté sur Alpha), Windows XP supportait encore l'Itanium, sans compter les ports qui n'ont jamais été commercialisés (SPARC, voire même les 68000 d'après certains).
Windows NT (et ses successeurs) a été conçu pour être portable, même si les ports ont été abandonnés faute de succès commercials, il est très possible que Microsoft soit encore capable de les ressusciter comme l'a récemment fait Apple avec OS X.
Je n'aime pas plus que toi Windows et Microsoft, mais pour être crédible, il faut un minimum d'honnêté dans une critique.
[^] # Re: Bof
Posté par paipai62 . Évalué à 2.
Ensuite, c'est vrais que faire un système, sans virtualisation, etc...
On va changer de CPU, pour que sa tourne on va passer a du QPU(Quantum Processing Unit)...
# Impossible
Posté par 2PetitsVerres . Évalué à 10.
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
# Microsoft réécrit Hurd ?
Posté par Snarky . Évalué à 10.
[^] # Re: Microsoft réécrit Hurd ?
Posté par B16F4RV4RD1N . Évalué à 3.
pas encore sorti, qu'il y a déjà des brevets microsoft qui arrivent avant lui...
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# Et les liens ?
Posté par Clément David (site web personnel) . Évalué à 10.
yahoo -> zdnet -> sdtimes.com
Et pour les vrais informations il suffit de remonter tous simplement à la source :
Singularity: Rethinking the Software Stack [http://research.microsoft.com/pubs/69431/osr2007_rethinkings(...)]
SDTimes [http://www.sdtimes.com/MICROSOFT_S_PLANS_FOR_POST_WINDOWS_OS(...)]
Pour l'instant rien de neuf à l'horizon, sous Linux/Unix des sockets locales ou distants dans des programmes distribués ça se fait depuis un certains temps. Je pense que ce qui peut être nouveau c'est l'aspect montée en charge de l'application style Erlang.
Cependant MS va encore ré-inventer ce qui existe mais va gagner avec leur pression commerciale. A voir notamment le papier (web) du SDTimes et ce que fait déjà Erlang.
Pete Thinks [Way Too Much] [http://mikepetry.blogspot.com/2007/12/erlang-scalability-nex(...)]
Erlang Concurrent Programming [http://erlang.org/course/concurrent_programming.html]
[^] # Re: Et les liens ?
Posté par fcartegnie . Évalué à 1.
~> solaris containers, linux kernel namespaces & openvz
Ou comment microsoft recupère aussi l'expression "On a rien sans rien"
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 1.
Tu connais un autre OS qui utilises déjà une technique similaire aux SIPs de Singularity ?
[^] # Re: Et les liens ?
Posté par Clément David (site web personnel) . Évalué à 2.
Pour plus d'informations lit le pdf certes en anglais mais très intéressant pour qui s'intéresse aux mécanisme de protection et d'abstraction du matériel.
le pdf : [http://research.microsoft.com/pubs/69431/osr2007_rethinkings(...)]
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 3.
[^] # Re: Et les liens ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 2.
Plus d'info par là : http://channel9.msdn.com/shows/Going+Deep/Singularity-III-Re(...)
[^] # Re: Et les liens ?
Posté par Clément David (site web personnel) . Évalué à 1.
Wikipedia : [http://en.wikipedia.org/wiki/Singularity_(operating_system)#(...)]
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 0.
[^] # Re: Et les liens ?
Posté par suJeSelS . Évalué à 2.
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 3.
"The SIP functionality that Singularity integrates is really one of the exciting parts of a managed operating system. Although we do not have code for processes yet (as we are still flushing out the AOT compiler, runtime, and corlib), we intend to use SIP (software isolated processes) as the first-class citizen process in SharpOS."
[^] # Re: Et les liens ?
Posté par suJeSelS . Évalué à 1.
[^] # Re: Et les liens ?
Posté par Achille Fouilleul (site web personnel) . Évalué à 2.
http://www.codeplex.com/singularity
Dans ces conditions, je crois que nous n'avons pas la même définition de vaporware.
[^] # Re: Et les liens ?
Posté par alexissoft . Évalué à 3.
[^] # Re: Et les liens ?
Posté par TImaniac (site web personnel) . Évalué à 2.
Un vaporware, c'est des annonces fumeuses sur un soft qui ne sort jamais.
[^] # Re: Et les liens ?
Posté par pasBill pasGates . Évalué à 1.
# Etrange
Posté par GTof . Évalué à 2.
Soit dit en passant Singularity est un excellent projet tres novateur, j'imagine qu'il doit être tres intéressant pour l'embarqué mais les auteurs disent bien qu'il n'a pas vocation a devenir le futur de windows.
Quant à midori, en lisant l'article je me suis dit que ce qu'ils entendaient c'est par exemple de pouvoir passer de GNOME a KDE (remplacer par ce que vous voulez dans l'ordre que vous voullez). Je suis super impressionné, bravo Microsoft! Apres le shell vous inventer les interfaces graphiques intépendantes de l'OS.
[^] # Re: Etrange
Posté par claudex . Évalué à 2.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Etrange
Posté par liatogo . Évalué à 6.
Le prochain windows sera Hurd et utilisera Wine pour faire tourner les programmes ?
??????????
[^] # Re: Etrange
Posté par claudex . Évalué à 2.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
# Midori ?
Posté par Epy . Évalué à 2.
(ptin ils ne se sont pas foulés pour le titre ^_^ [ni pour l'image :O])
le noyau deviendrait "Midori" .. ça ne serait pas le nom d'un navigateur libre ça ?
[^] # Re: Midori ?
Posté par Elfir3 . Évalué à 3.
[^] # Re: Midori ?
Posté par GG (site web personnel) . Évalué à 9.
Midori est un prénom féminin japonais.
A bientôt
Grégoire
Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html
[^] # Re: Midori ?
Posté par 4strO . Évalué à 2.
http://www.rue89.com/mon-oeil/2008/11/26/quattend-on-pour-li(...)
[^] # Re: Midori ?
Posté par Hippie Geek (site web personnel) . Évalué à 0.
[^] # Re: Midori ?
Posté par Fabimaru (site web personnel) . Évalué à 3.
# Une distribution Linux ?
Posté par Fabien DUPONT . Évalué à 4.
En fait, Singularity serait le noyau avec un petit système de base, (genre µCLinux, basé sur busybox...) et qui ferait tourner des services. Pour l'interface, il suffit de lancer X et un gestionnaire de fenêtre, pour l'hyperviseur il suffit de lancer libvirt (avec du Xen ou du KVM derrière). Bref, on définit ce qui doit démarrer via un système de type RunLevel et on définit qui accède à quoi via SELinux...
Quand on parle de rupture de compatibilité, il suffit de voir KDE 3 et 4 pour se dire que ce n'est pas spécifique à Windows (ok on n'est pas vendredi) ... Et si on veut du C#, on peut toujours coder avec Mono...
Franchement, pour l'instant, la description du bouzin est trop légère pour en tirer des conclusions et imaginer un brevet basé sur l'innovation...
Enfin ce que j'en dit...
[^] # Re: Une distribution Linux ?
Posté par totof2000 . Évalué à 2.
Sinon pour les mavaises langues : dire que Hurd n'est pas sorti es assez faux : il existe un noyau Hurd qui tourne et permet déjà de faire beaucoup de choses .... Après effectivement, il est juste de dire qu'il n'est pas sorti en version stable.
Cordialement.
[^] # Re: Une distribution Linux ?
Posté par Fabien DUPONT . Évalué à 3.
[^] # Re: Une distribution Linux ?
Posté par pasBill pasGates . Évalué à 2.
Sinon pour Midori, disons que c'est parti de Singularity, et que j'ai probablement pas le droit d'en dire bcp plus :+)
# Si seulement ...
Posté par David Carlier . Évalué à 2.
# brevet de merde
Posté par Guillaume Knispel . Évalué à 10.
Le pire c'est qu'on voudrait pouvoir le montrer aux décidorz pour illustrer à quel point les brevets sont devenus n'importe quoi et néfastes. Malheureusement ils risquent d'être aveuglement bluffés par la complexité à outrance (et crétine) de la rédaction qui peut laisser croire à quelqu'un qui ne l'étudie pas en détail ou qui n'est pas informaticien qu'il y a des choses intelligentes dedans.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.