IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un ingénieur Microsoft retrace les grandes lignes de l'évolution de la ligne de commande Windows
Et donne plus de détails sur la Console Windows

Le , par Stéphane le calme

772PARTAGES

16  0 
Rich Turner, de Microsoft, s’est amusé à proposer une série de billets de blog retraçant l’évolution de la ligne de commande, allant de ses origines pour parvenir à ce que Microsoft propose à l’heure actuelle. Il se peut que vous ne voyiez jamais ou rarement des scripts batch ou de ligne de commande en cours d'exécution, car beaucoup sont exécutés en arrière-plan, par exemple lors de la connexion à un PC de travail. Mais des centaines de milliards de scripts et de commandes en ligne de commande sont exécutés tous les jours sous Windows uniquement.

La ligne de commande et le shell

La ligne de commande ou CLI (Command Line Interface / Interpreter) décrit le mécanisme le plus fondamental par lequel un humain exploite un ordinateur: Une CLI accepte l'entrée tapée par l'opérateur et exécute les commandes demandées.

Par exemple, echo Hello écrit le texte "Hello" sur le périphérique de sortie (qui peut être un écran). dir (Cmd) ou ls (PowerShell / * NIX) répertorie le contenu du répertoire en cours, etc.

Dans les ordinateurs précédents, les commandes disponibles à l'opérateur étaient souvent relativement simples, mais les opérateurs exigeaient rapidement de plus en plus de sophistication, et la possibilité d'écrire des scripts pour automatiser des tâches banales, répétitives ou complexes. Ainsi, les processeurs de ligne de commande ont gagné en sophistication et ont évolué vers ce que l'on appelle communément les « shell » de ligne de commande.

Sous UNIX / Linux, le shell original UNIX (sh) a inspiré une pléthore de shell, dont le shell Korn (ksh), le shell C (csh) et le Bourne Shell (sh), qui a engendré le Bourne Again Shell (bash), etc.


Dans le monde de Microsoft :

  • Le MS-DOS d'origine (command.com) était un shell de ligne de commande relativement simple (sinon étrange) ;
  • L'invite de commande de Windows NT (cmd.exe) a été conçue pour être compatible avec les scripts command.com/batch MS-DOS hérités et a ajouté plusieurs commandes supplémentaires pour le nouveau système d'exploitation, plus puissant
  • En 2006, Microsoft a publié Windows PowerShell
    • PowerShell est un shell de ligne de commande basé sur un objet moderne inspiré des fonctionnalités des autres shells. Il a été construit sur et intègre la puissance du .NET CLR & .NET Framework ;
    • Grâce à PowerShell, les utilisateurs Windows peuvent contrôler, scripter et automatiser pratiquement tous les aspects d'une machine Windows, d'un groupe de machines Windows, d'un réseau, de systèmes de stockage, de bases de données, etc.
    • En 2017, Microsoft publie PowerShell en open-source et lui permet de fonctionner sur macOS et de nombreuses versions de Linux et BSD!

  • En 2016, Microsoft a présenté Windows Subsystem for Linux (WSL)
    • Celui ci active les véritables binaires Linux non modifiés pour qu'ils s'exécutent directement sous Windows 10 ;
    • Les utilisateurs ont la possibilité d’installer une ou plusieurs distributions Linux depuis le Windows Store
    • Les utilisateurs peuvent exécuter une ou plusieurs instances de distribution les unes à côté des autres et des applications et outils Windows existants
    • WSL permet aux utilisateurs Windows d'exécuter côte à côte tous leurs outils Windows préférés et leurs outils de ligne de commande Linux sans double amorçage ou utilisation de machines virtuelles gourmandes en ressources (VM)



Évolutions de la ligne de commande

MS-DOS

Dans les premières années de l'industrie du PC, la plupart des ordinateurs fonctionnaient entièrement en tapant des commandes dans la ligne de commande, qu’il soit question de machines basées sur Unix, CP / M, DR-DOS, ou d'autres. En fin de compte, MS-DOS a pris de l'importance en tant que système d'exploitation standard de facto pour les PC IBM compatibles, en particulier dans les entreprises :


MS-DOS a été très rapidement adopté par les entreprises, grandes et petites, qui, combinées, ont créé plusieurs millions de scripts batch, dont certains sont encore utilisés aujourd'hui! Les scripts batch sont utilisés pour automatiser la configuration des machines des utilisateurs, définir / modifier les paramètres de sécurité, mettre à jour le logiciel, le code de build, etc.

Tandis que la ligne de commande est un outil puissant entre les mains de ceux qui ont la patience et la ténacité d'apprendre à tirer le meilleur parti des commandes et des outils disponibles, la plupart des utilisateurs non techniques ont eu du mal à utiliser efficacement leurs ordinateurs. La plupart n'aimait pas devoir apprendre et se souvenir de nombreuses commandes apparemment arcanes / abrégées pour que leurs ordinateurs fassent quelque chose d'utile.

Aussi, une expérience utilisateur plus conviviale et axée sur la productivité était requise.

L'interface graphique devient mainstream

Vient alors l'interface utilisateur graphique (GUI), inspiré par le travail de Xerox 'Alto.

De nombreuses interfaces graphiques concurrentes sont apparues rapidement dans Apple Lisa et Macintosh, Commodore Amiga (Workbench), Atari ST (GRI de DRI), Acorn Archimedes (Arthur / RISC OS), Sun Workstation, X11 / X Windows et bien d'autres, y compris Microsoft Windows:

Windows 1.0 est arrivé en 1985, et était fondamentalement une application MS-DOS qui fournissait un simple environnement GUI à fenêtre en mosaïque, permettant aux utilisateurs d'exécuter plusieurs applications côte à côte:


Windows 1.01 en cours d'exécution sur MS-DOS

Cependant, Microsoft a réalisé qu’il pourrait uniquement étendre l'architecture et les capacités de MS-DOS et Windows et qu’il avait donc besoin d'un nouveau système d'exploitation sur lequel il devait se baser pour construire son avenir.

Microsoft s’essaye sur Unix et devient même un leader

Lors du développement de MS-DOS, Microsoft était également occupé à fournir Xenix - le port Unix de Microsoft version 7 - à une variété d'architectures de processeurs et de machines, y compris les Z8000, 8086/80286 et 68000.

En 1984, Xenix de Microsoft était devenu la variante Unix la plus populaire au monde !

Cependant, l'éclatement de Bell Labs - le siège d'Unix par le gouvernement américain - a donné naissance à AT&T qui a commencé à vendre Unix System V aux fabricants d'ordinateurs et aux utilisateurs finaux.

Microsoft a estimé que sans leur propre système d'exploitation, leur capacité à atteindre leurs objectifs futurs serait compromise. Cela a conduit à la décision de quitter Xenix: en 1987, Microsoft a transféré la propriété de Xenix à son partenaire The Santa Cruz Operation (SCO) avec lequel Microsoft avait travaillé sur plusieurs projets de portage et d'amélioration de Xenix sur diverses plateformes.

Microsoft et IBM sur OS/2

En 1985, Microsoft a commencé à travailler avec IBM sur un nouveau système d'exploitation appelé OS / 2. OS / 2 a été conçu à l'origine pour être « un DOS plus performant » et a été conçu pour tirer parti de certains des processeurs 32 bits modernes et d'autres technologies émergeant rapidement des OEM, y compris IBM.

Cependant, l'histoire d'OS / 2 était au mieux tumultueuse. En 1990, Microsoft et IBM ont mis fin à leur collaboration. Cela a été dû à un certain nombre de facteurs, y compris les différences culturelles importantes entre les développeurs IBM et Microsoft, les défis de planification, et le succès explosif et la croissance de l'adoption de Windows 3.1. IBM a continué le développement et le support d'OS / 2 jusqu'à la fin de 2006.

En 1988, Microsoft était convaincu que son succès futur exigeait une approche plus vaste, plus audacieuse et plus ambitieuse. Une telle approche nécessiterait un nouveau système d'exploitation moderne qui soutiendrait les objectifs ambitieux de l'entreprise.


Microsoft se lance sur Windows NT

En 1988, Microsoft a embauché Dave Cutler, créateur du système d'exploitation VAX / VMS populaire et très respecté de DEC. L'objectif de Cutler est de créer un nouveau système d'exploitation moderne et indépendant de la plateforme, que Microsoft posséderait, contrôlerait et qui fonderait la plus grande partie de son avenir.

Ce nouveau système d'exploitation est devenu Windows NT - la base qui a évolué vers Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 et Windows 10, ainsi que toutes les versions de Windows Server, Windows Phone 7+, Xbox et HoloLens !

Windows NT a été conçu dès le début pour être indépendant de la plateforme, ayant été initialement conçu pour supporter l'i860 d'Intel, puis le MIPS R3000, Intel 80386+, DEC Alpha et PowerPC. Depuis lors, la famille Windows NT OS a été portée pour prendre en charge les architectures de processeur IA64 "Itanium", x64 et ARM / ARM64, entre autres.

Windows NT a fourni une interface de ligne de commande via son application de terminal "Windows Console" et le shell "Command Prompt" (cmd.exe). Cmd a été conçu pour être aussi compatible que possible avec les scripts batch MS-DOS, pour faciliter l'adoption de la nouvelle plateforme par l'entreprise.

La puissance de PowerShell

Bien que Cmd est toujours dans Windows jusqu’à ce jour, étant donné que son but principal est de rester aussi rétrocompatible que possible, Cmd est rarement amélioré. Même "corriger les bogues" est parfois difficile si ces "bogues" existaient dans MS-DOS ou des versions antérieures de Windows !

Au début des années 2000, le shell Cmd était déjà à bout de souffle et Microsoft et ses clients avaient un besoin urgent d'une expérience de ligne de commande plus puissante et plus flexible. Ce besoin a alimenté la création de PowerShell (qui provient du "Manifeste de la Monade" de Jeffrey Snover).


PowerShell est un shell orienté objet, contrairement aux shell basés sur les fichiers / flux généralement présents dans le monde * NIX: plutôt que de gérer des flux de texte, PowerShell traite les flux d'objets, permettant aux scripteurs PowerShell d'accéder directement aux objets et de manipuler leurs propriétés, plutôt que d'avoir à écrire et maintenir beaucoup de script pour analyser et manipuler le texte (par exemple via sed / grep / awk / lex / etc.)

PowerShell a été adopté par de nombreuses plateformes Microsoft et des partenaires, notamment Windows, Exchange Server, SQL Server, Azure et bien d'autres, et fournit des commandes pour administrer et contrôler pratiquement tous les aspects d'une machine Windows et / ou de l'environnement de façon très consistante.

PowerShell Core est disponible pour Windows et différentes versions de Linux, BSD et macOS!

Windows 10, une nouvelle ère pour la ligne de commande Windows!

Au début du développement de Windows 10, Microsoft a demandé à la communauté Windows quelles fonctionnalités elle voulait dans différentes zones du système d'exploitation. La communauté des développeurs s’est montrée particulièrement claire dans ses demandes et a souhaité que Microsoft :
  • apporter des améliorations majeures à la console Windows
  • donner aux utilisateurs la possibilité d'exécuter des outils Linux sous Windows.

Sur la base de ces commentaires, Microsoft a formé deux nouvelles équipes:

L'équipe de la console Windows et de la ligne de commande, chargée de prendre en charge et de réorganiser l'infrastructure de la console Windows et de la ligne de commande
Une équipe chargée d'activer les binaires Linux authentiques et non modifiés pour Windows 10 - le sous-système Windows pour Linux (WSL)

Que fait la console ?

Elle s’occupe de gérer les entrées de l'utilisateur :
  • elle accepte la saisie à partir de périphériques tels que le clavier, la souris, le toucher, le touchpen, etc.
  • elle traduit l'entrée en caractères pertinents et / ou en séquences ANSI / VT
  • elle envoie des caractères à l'application / outil / shell connecté


Elle gère les sorties de l'application :
  • elle accepter la sortie de texte à partir d'une application / outil Command-Line connecté
  • elle met à jour l'affichage selon les besoins, en fonction de la sortie de l'application reçue (par exemple, le texte de sortie, déplacez le curseur, définissez la couleur du texte, etc.)


Elle gère les interactions du système :
  • elle se lance lorsqu’elle est invoquée
  • elle gère les ressources
  • elle permet de redimensionner / agrandir / réduire, etc.
  • elle se termine si nécessaire, ou lorsque le canal de communication est fermé / terminé


Cependant, la console Windows fait les choses un peu différemment:

Dans la console Windows

Avant Windows 7, les instances de la console Windows étaient hébergées dans CSRSS (Client Server Runtime Subsystem). Dans Windows 7, toutefois, la console a été extraite de CSRSS pour des raisons de sécurité et de fiabilité, et un nouvel hôte a été ajoutée aux binaires suivants:
  • conhost.exe - le mode utilisateur Windows Console UX et plomberie de ligne de commande
  • condrv.sys - un pilote de noyau Windows fournissant une infrastructure de communication entre conhost et un ou plusieurs shell / outils / applications de ligne de commande


Les principaux composants de la console sont les suivants (du bas vers le haut):

  • ConDrv.sys - pilote en mode noyau
    • Fournit un canal de communication haute performance entre la console et les applications de ligne de commande connectées
    • Messages de contrôle d'E / S (IOCTL) entre les applications de ligne de commande et la console à laquelle ils sont "attachés"
    • Les messages IOCTL de la console contiennent
      • des données représentant des demandes d'exécution d'appels d'API sur l'instance de la console
      • du texte envoyé de la console à l'application de ligne de commande


  • ConHost.exe - Application graphique Win32:
    • ConHost Core - les internes et la plomberie de la console
      • Serveur API: convertit les messages IOCTL reçus des applications de ligne de commande en appels API et envoie des enregistrements de texte de la console à l'application de ligne de commande
      • API: implémente l'API et la logique de la console Win32 derrière toutes les opérations que la console peut être appelée à exécuter
      • Input Buffer: stocke les enregistrements d'événements du clavier et de la souris générés par l'entrée de l'utilisateur
      • VT Parser: Si cette option est activée, analyse les séquences VT à partir du texte, extrait celles trouvées du texte et génère des appels d'API équivalents à la place.
      • Output Buffer: stocke le texte affiché sur l'affichage de la console. Essentiellement un tableau 2D de structures CHAR_INFO qui contient les données et les attributs de chaque cellule (plus sur le tampon ci-dessous)
      • Autre: Non inclus dans le diagramme ci-dessus comprennent l'infrastructure des paramètres de stockage / récupération des valeurs du registre et / ou des fichiers de raccourci, etc.

    • Console UX App Services - la couche Console UX & UI
      • Gère la disposition, la taille, la position, etc. de la fenêtre de la console à l'écran
      • Affiche et gère les paramètres de l'interface utilisateur, etc.
      • Gère la file d'attente des messages Windows, traite les messages Windows et traduit les entrées utilisateur dans les enregistrements d'événements de la clé et de la souris, en les stockant dans le tampon d'entrée.



Source : Microsoft

Et vous ?

Que pensez-vous des évolutions de la ligne de commande dans Windows ?

Voir aussi :

Build 2018 : retour sur les annonces sur le sous-système Windows pour Linux (WSL), lors de la conférence de Microsoft dédiée aux développeurs
Windows 10 : plus d'outils ligne de commande via la Redstone 4 avec l'arrivée de distributions Linux additionnelles sur le Store
Microsoft ajoute le support de Curl et Tar dans Windows 10, accessibles directement depuis la ligne de commande
Microsoft ajoute le support d'un client OpenSSH dans Windows 10 accessible directement depuis la ligne de commande
Microsoft parle des évolutions du sous-système Linux WSL, qui vont accompagner la MàJ Creators Fall Update attendue le 17 octobre

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 23/07/2018 à 11:30
Citation Envoyé par redcurve Voir le message
Ce qui me fait délirer avec les libristes c'est que tu as l'impression qu'ils passent leur journée à lire le code source de leur OS. Genre pour faire un copier/coller il faut dépiauter tout le système quoi. Au final source dispo ou pas tu fais juste un copier/coller et tu fais confiance aux types qui ont conçu le système point barre.

Comment si j'avais besoin des sources de Windows pour savoir comment fonctionne le gestionnaire de thread du système ou comment créer une fibre, ou pourquoi NT est plus rapide que Linux sur certains points et inversement sur d'autres.
Je reprendrai ton argument pour te dire que ce qui me fait délirer c'est la confiance que les non libristres ont envers toutes ces entreprises qui peuvent faire ce qu'elles veulent de vos informations personnelles et même de vos programmes. Du jour au lendemain, Microsoft peut tout changer dans son OS, enlever n'importe quel programme (déjà vécu même si on peut le réinstaller), faire n'importe quoi en fait vu que votre ordinateur et son contenu leur appartiennent. Je t'invite à t'amuser à lire toutes les conditions d'utilisation de Windows 10, ça a de quoi faire peur quand on s'y intéresse de près.

Ps : Avoir les sources permet de modifier l'OS comme nous le souhaitons, en enlevant beaucoup d'éléments inutiles et lourds ou encore le tracking justement
2  0 
Avatar de Jiji66
Membre éprouvé https://www.developpez.com
Le 24/07/2018 à 15:25
J'ai malheureusement l'age qui me permet d'avoir développé toutes sortes d'applications sous DOS Windows(NT/95 etc.. ), OS/2 ... et il faut bien avouer que la puissance de persuasion commerciale de Microsoft a toujours été leur meilleur atout pour faire croire que leurs produits étaient supérieurs à tout ce que pouvait faire les autres (quels qu'ils soient).

Pour en revenir à OS/2, même si il y a avait un partenariat entre IBM et Microsoft, OS/2 était sous contrôle d'IBM pour son développement; c'est comme ça !
A cette époque, en 1990-95, de nombreux PC étaient avec des 386 et même si ce dernier existait depuis 1985, il n'y avait pas de système d'exploitation qui pouvaient réellement les utiliser pour ce qu'ils étaient c.a.d des processeurs 32 bits. Microsoft avait son Windows 3.0 puis 3.1 puis 3.11 qui a la base était un système purement 16bits avec un ajout d'une extension 32 bits avec la fameuse dll win32s. A cette époque, développer des applications sous Windows était problématique car chaque fois qu'une application plantait il fallait obligatoirement tout redémarrer .... C'était le prix à payer classique de la part d'un système à la mémoire partagée et au multitâche coopératif; en effet si une application écrivait dans un espace mémoire qui n’était pas le sien, et bien elle pouvait le faire et par la même planter tout le système; de même si une application oubliait qu'elle devait coopérer avec les autres et bien le système était gelé et la seule solution était : reboot physique ...

Microsoft était bien conscient de tout cela et savait aussi qu'il n'avait pas les ressources pour développer en interne un OS 32 bits. Par contre IBM développait depuis toujours des OS pour ses 'mainframes' et avait aussi un Unix (AIX) pour ses machines sous power PC et même pour son PS/2 a base de 386. Pour rappel AIX était déja 32 bits, SMP, avec un package graphique en option et le système de fichier journalisé HPFS ... tout ça en 1987 ....

L'alliance entre Microsoft et IBM autour du projet "OS/2" a de façon certaine été très profitable pour Microsoft et en particulier pour le développement de son NT qui a un lien de parenté direct avec OS/2. Le premier Microsoft NT est sortis en 1993 ! et qui dans ses premières versions fonctionnait sur architecture PowerPC, DEC-Alpha, Itanium, ... En résumé tout ce que IBM faisait déjà depuis belle lurettes avec son AIX ...

IBM c'est tout de même aperçut que sa coopération avec Microsoft n'était pas si profitable qu'initialement espéré et après avoir rompu en 1992 l'alliance, il a tenté de concurrencer directement Microsoft sur son marché de l'informatique personnelle avec son OS/2et en pensant que sa notoriété serait suffisante pour écraser le petit Microsoft sur son marché réservé de la petite informatique personnelle.

IBM a sorti OS/2 v2 en 1992, c'était alors un OS full 32 bits, qui était SMP, bien évidement multithread avec gestion dynamique des priorités. L'interface utilisateur était graphique, entièrement orienté object.

C'est a cette époque que j'ai commencé à faire mes premières applications sous OS/2 en utilisant VisualAge C++, quel changement par rapport aux solutions de chez Microsoft et de son Visual C qui était surnommé le "générateur de bugs".

Toujours est-il qu'en voyant arriver le danger, Microsoft contre attaque en 1995 avec la sortie de Windows95 et sa belle interface utilisateur (Windows NT n'était pas encore prêt, en particulier pour le support des applications 16 bits). L'API de Windows 95 se voulait résolument 32 bits bien qu'elle ne faisait que simuler du multithreading et était incapable de gérer un système de fichier journalisé.

En face toujours en 1995 il y avait IBM avec son OS/2 v3 (warp) qui avait toutes les qualités d'un vrai OS multitâche 32 bits avec un vrai système de fichier journalisé (HPFS) et qui pouvait alors même faire fonctionner un Windows 3.11 dans ce que j'appellerais l’ancêtre de la "virtual box".

La suite nous la connaissons tous, la politique tarifaire dissuasive d'IBM, le fait que les fabricants de périphérique avaient leurs drivers 16 bits qui fonctionnaient sous 95 et pas sous OS/2 car ce dernier étant un vrai full 32bits il lui fallait aussi des drivers 32 bits, ce que les fabricants n'avaient pas encore développés, etc ...

Donc oui, je persiste en disant que Microsoft a bien et savamment piraté IBM.

Étrangement OS/2 survit encore et est présenté comme une solution du 21eme siècle stable et sécurisée.
https://www.arcanoae.com/

PS: Personnellement je penses qu'OS/2 appartient au passé, n'est plus une solution du 21em siècle mais qu'il fut un acteur majeur de la saga Windows et de sa réussite.
2  0 
Avatar de Jiji66
Membre éprouvé https://www.developpez.com
Le 26/07/2018 à 11:31
Citation Envoyé par Aurelien.Regat-Barrel Voir le message
Ah si ! MS les avait les ressources ! Bill Gates a souvent eu du flair pour recruter les bonnes personnes au bon moment.

Cutler a dirigé pendant +10 ans chez DEC le développement de leurs OS (VMS, Mica) pour leurs processeurs Alpha + nouvelle génération (tiens tiens tiens... New technology...). Il a rejoins MS en 1988 (accompagné de ses 20 meilleurs développeurs) pour commencer immédiatement à bosser sur ce qui deviendra au final WinNT. On peut même voir la spec technique en photo, datée de 1989 :
http://americanhistory.si.edu/collec...ct/nmah_742559
A vous lire on en arrive à se demander pourquoi Microsoft a fait un partenariat avec IBM pour le développement d'un nouvel OS !

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Donc réalisée à 100% par l'équipe de Cutler, sans aucune collaboration avec IBM là dedans. On y retrouve une forte influence de VMS (normal), mais certainement pas d'OS/2 (sorti 3 ans plus tard...). C'est bien mal connaitre Cutler que d'insinuer qu'il a pompé OS/2 ou pire encore AIX (sorti en 1990 au passage et non pas 1987) : Cutler est célèbre pour casser du sucre sur le dos d'UNIX, et à vrai dire c'est sa forte personnalité qui est parvenue à imposer de créer un nouvel OS from scratch au sein de MS. Et il a plutôt mené la vie dure aux équipes OS/2 de chez MS, jusqu'à parvenir à les faire liquider...
Juste quelques dates chronologiques pour remettre un peu de cohérence :

AIX Initial release : 1986
AIX PS/2 (also known as AIX/386) : 1987
AIX 3.1, (General Availability) : 1990
https://en.wikipedia.org/wiki/IBM_AIX

OS/2 Initial release : 1987
OS/2 v3 (Warp) : 1994
https://en.wikipedia.org/wiki/OS/2

NT Initial release (3.1) : 1994
https://en.wikipedia.org/wiki/Windows_NT

Win95 Initial release : 1995
https://en.wikipedia.org/wiki/Windows_95

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

En effet l'équipe en charge d'OS/2 chez MS était distincte de celle de Curler, plus ancienne, et dirigée par Gordon Letwin qui a est d'ailleurs l'auteur de livre "Inside OS/2" (!):
https://www.amazon.com/Inside-OS-2-G.../dp/1556151179
Je vous laisse lire les commentaires sur Amazon sur le rôle d'IBM dans l'échec d'OS/2...
J'ai l'impression que votre lecture et la mienne des commentaires sont différentes :
Les commentaires pointent les qualités de OS/2 et son influence sur Win NT.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Et chose géniale, on a le lead architect de chez IBM qui raconte lui aussi sa version de l'aventure OS/2 dans un livre consultable en ligne:
https://archive.org/details/DesignOfOS2

Il explique les détails de la collaboration avec MS à partir du chapitre "1.1.4 IBM-Microsoft Joint Development". On est très loin de "Microsoft a tenté de pirater OS/2 ce en quoi IBM ne c'est pas laissé faire" : il vante l'efficacité des petites équipes MS face à la lourdeur d'IBM, et explique en détails comment et pourquoi tout ce petit monde travaillait sur l'OS. On peut lire (chapitre "1.7 OS/2" que vers la fin "IBM became solely responsible for the development of 16-bit and 32-bit OS/2, while Microsoft continued work on advanced OS/2 kernel technology and the Windows system".
J'aurais aimé le lire mais il faut s'enregistrer pour pouvoir le télécharger. Permettez moi juste de douter de vos interprétations.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

A la base c'est quand même Apple/Macintosh l’obsession de MS. Et pour info, Win95 faisait du multitâche préemptif et implémentait lui aussi le mécanisme des VDM tout comme NT ou OS/2 tout simplement parce que c'est ainsi que Intel avait désigné ses processeurs. NT quant à lui disposait de NTFS qui était une version supérieur de HPFS. Mais oui le support des applis Win16 dans OS/2 était supérieur mais c'était supporter le passé tandis que Microsoft préparait l'avenir avec Win32 qui offrait une bonne compatibilité du source code depuis Win16, et donc la promesse de recompiler facilement son parc logiciel vers le 32 bits.
Libre à vous de croire que Win95 était capable de faire ce que vous décrivez, pour avoir développé avec, je sais que votre description relève de la science fiction.
Ce n'est qu'avec NT4.0 que j'ai commencé à pouvoir gérer les priorité entre threads dans une même application. C'était cependant bien loin de ce qu'offrait OS/2 comme libertés et stratégies de gestions dans les priorités entre applications et threads.

En ce qui concerne le "VDM" avec Win95, on ne peut pas dire que ça ait laissé un grand souvenir dans les mémoires de développeurs tellement c'était dangereux de passer dans ce mode dont le retour n'était jamais assuré ....

HPFS et NTFS ou bonnet blanc blanc bonnet ... C'était quasiment la même chose puisque ça faisait partie d'un des points du développement commun entre Microsoft et IBM sur OS/2.
OS/2 et NT3.1 en ont bénéficié au même moment en 1994.

Effectivement comme vous le dites les applications 16bits Windows fonctionnaient mieux sous OS/2 que sous Windows; ce qui était un peu le monde à l'envers ....

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Peut-être avez-vous une idée de comment IBM comptait gérer cette situation qui me parait perdue d'avance : offrir une très bonne compatibilité avec les applis legacy mais quasiment aucune avec les versions récentes ?
Excusez moi mais je n'ai rien compris.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Tout ça m'incite à penser que OS/2, c'était un peu Windows 16 bits implémenté correctement. Comme vous l'avez rappelé, les gens possédaient depuis des années un 386 finalement limité à exécuter des applis utilisateurs 16 bits, et ce indépendamment de l'OS ! Avec le recul il est clair que la clé était de proposer une API 32 bits aux développeurs, et qu'à partir du moment où Win16 avait conquis le marché (sur ses concurrents tels que DESQview, VisiOn, GEM, ...), les développeurs seraient plus enclins à recompiler leur code existant de Win16 vers Win32 plutôt que tout réécrire vers une nouvelle API, aussi bien fichue soit-elle. Est-ce que IBM fournissait un SDK de migration / compatibilité pour les applis Win16 vers OS/2 32 bits?
Pour rappel en 1994 OS/2 était un OS full 32 bits avec support SMP jusqu'à 16 cpu depuis la version 2.1 là ou son concurrent direct Win95 passait son temps à essayer de rester "vivant" en commutant en permanence entre le mode 16 et 32 bits du 386, en monoprocesseur bien sur !

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Yep. C'est aussi la raison de l'échec de NT auprès des particuliers, et in fine la raison d'être de la lignée Win9.x. Ajoutons que beaucoup de jeux (Doom en 1993...) tournaient via des DOS extenders (DOS/4GW...) qui leur donnaient un accès direct au hardware, en particulier les registres et à la mémoire de la carte graphique, pour coder des drivers maison... C'est typiquement le genre de chose qu'il est bien difficile à émuler correctement depuis une VDM (et avec de bonnes performances). D'ailleurs, cela me fait tomber sur cet article:
https://www.stardock.com/stardock/art_os2past.html
qui explique qu'en substance IBM s'est retrouvé un peu dérouté de devoir assurer le support de jeux vidéos pour des particuliers alors qu'il étaient plutôt habitués à gérer des entreprises :
OS/2 n'avait pas comme finalité de permettre de jouer à Doom, c'était beaucoup mieux de le faire sur DOS.
Quant à ce qui concerne le supposé échec de NT, je vous rappelle que NT4.0 Win2000, XP, Seven, Win 8.x et enfin Win 10 ont tous en commun la base "NT". Je n'appellerais pas cela un échec !
La lignée Win95 a elle finie aux oubliettes et je crois que c’est pour le bien de tous.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

j'ai quand même un doute sur le fait que MS touchait autant de royalties sur cette version d'OS/2 là, alors qu'ils n'y ont quasiment pas participé.
Je n'ai aucuns doutes puisque OS/2 était livré en 2 versions différentes, une avec OS/2 seul (boite rouge) et une avec OS/2 et un Windows (boite bleue). Les royalties concernaient la boite bleue.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

BeOS aussi survit à sa façon: https://www.haiku-os.org/
Idem pour AmigaOS: http://www.amigaos.net/

On est d'accord qu'il faut savoir tourner la page
Sur ce point nous convergeons.

Citation Envoyé par Aurelien.Regat-Barrel Voir le message

Un très bon article récapitulatif: http://www.os2museum.com/wp/nt-and-os2/
Je ne partage pas votre avis sur la qualité de cet article et vu les commentaires je ne suis pas le seul.

Il semble que vous ayez une grande admiration pour l’entreprise Microsoft et sa lignée de produit, je partage cette admiration pour la réussite commerciale de l’entreprise Microsoft mais vraiment pas pour la qualité de ses produits que par ailleurs j’utilise le moins possible, si c’est possible ...
2  0 
Avatar de
https://www.developpez.com
Le 23/07/2018 à 9:24
Citation Envoyé par redcurve Voir le message
Perso s'est mon os de prédilection, je touche de temps en temps à macos et linux aussi mais je déteste vraiment macos tout est tellement fermé c'est juste hallucinant
C'est vrai que Windows est tellement ouvert
2  1 
Avatar de micka132
Expert confirmé https://www.developpez.com
Le 23/07/2018 à 12:11
Citation Envoyé par slowsaz Voir le message
les non libristres
En vrai s'il y a beaucoup de "libristes" il y a très peu de "non libristes".

Citation Envoyé par slowsaz Voir le message
Ps : Avoir les sources permet de modifier l'OS comme nous le souhaitons, en enlevant beaucoup d'éléments inutiles et lourds ou encore le tracking justement
Ca c'est la théorie, en pratique très peu de personne savent ou prennent le temps de faire quoi que soit sur les sources. C'est d'ailleurs ce qui en fait une arme bien plus dangereuse que de ne pas avoir les sources. D'un coté tu te méfies, de l'autre non. Les exemples commencent à sortir, et je prédis que dans quelques années ça sera une hécatombe. Des dizaines et des dizaines de logiciels les plus utilisés seront "infestés" par des bouts de code libre.
1  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 25/07/2018 à 19:46
Citation Envoyé par Jiji66 Voir le message
Microsoft était bien conscient de tout cela et savait aussi qu'il n'avait pas les ressources pour développer en interne un OS 32 bits.
Ah si ! MS les avait les ressources ! Bill Gates a souvent eu du flair pour recruter les bonnes personnes au bon moment.

Cutler a dirigé pendant +10 ans chez DEC le développement de leurs OS (VMS, Mica) pour leurs processeurs Alpha + nouvelle génération (tiens tiens tiens... New technology...). Il a rejoins MS en 1988 (accompagné de ses 20 meilleurs développeurs) pour commencer immédiatement à bosser sur ce qui deviendra au final WinNT. On peut même voir la spec technique en photo, datée de 1989 :
http://americanhistory.si.edu/collec...ct/nmah_742559

Donc réalisée à 100% par l'équipe de Cutler, sans aucune collaboration avec IBM là dedans. On y retrouve une forte influence de VMS (normal), mais certainement pas d'OS/2 (sorti 3 ans plus tard...). C'est bien mal connaitre Cutler que d'insinuer qu'il a pompé OS/2 ou pire encore AIX (sorti en 1990 au passage et non pas 1987) : Cutler est célèbre pour casser du sucre sur le dos d'UNIX, et à vrai dire c'est sa forte personnalité qui est parvenue à imposer de créer un nouvel OS from scratch au sein de MS. Et il a plutôt mené la vie dure aux équipes OS/2 de chez MS, jusqu'à parvenir à les faire liquider...

En effet l'équipe en charge d'OS/2 chez MS était distincte de celle de Curler, plus ancienne, et dirigée par Gordon Letwin qui a est d'ailleurs l'auteur de livre "Inside OS/2" (!):
https://www.amazon.com/Inside-OS-2-G.../dp/1556151179
Je vous laisse lire les commentaires sur Amazon sur le rôle d'IBM dans l'échec d'OS/2...

Et chose géniale, on a le lead architect de chez IBM qui raconte lui aussi sa version de l'aventure OS/2 dans un livre consultable en ligne:
https://archive.org/details/DesignOfOS2

Il explique les détails de la collaboration avec MS à partir du chapitre "1.1.4 IBM-Microsoft Joint Development". On est très loin de "Microsoft a tenté de pirater OS/2 ce en quoi IBM ne c'est pas laissé faire" : il vante l'efficacité des petites équipes MS face à la lourdeur d'IBM, et explique en détails comment et pourquoi tout ce petit monde travaillait sur l'OS. On peut lire (chapitre "1.7 OS/2" que vers la fin "IBM became solely responsible for the development of 16-bit and 32-bit OS/2, while Microsoft continued work on advanced OS/2 kernel technology and the Windows system".

Citation Envoyé par Jiji66 Voir le message
Toujours est-il qu'en voyant arriver le danger, Microsoft contre attaque en 1995 avec la sortie de Windows95 et sa belle interface utilisateur (Windows NT n'était pas encore prêt, en particulier pour le support des applications 16 bits). L'API de Windows 95 se voulait résolument 32 bits bien qu'elle ne faisait que simuler du multithreading et était incapable de gérer un système de fichier journalisé.

En face toujours en 1995 il y avait IBM avec son OS/2 v3 (warp) qui avait toutes les qualités d'un vrai OS multitâche 32 bits avec un vrai système de fichier journalisé (HPFS) et qui pouvait alors même faire fonctionner un Windows 3.11 dans ce que j'appellerais l’ancêtre de la "virtual box".
A la base c'est quand même Apple/Macintosh l’obsession de MS. Et pour info, Win95 faisait du multitâche préemptif et implémentait lui aussi le mécanisme des VDM tout comme NT ou OS/2 tout simplement parce que c'est ainsi que Intel avait désigné ses processeurs. NT quant à lui disposait de NTFS qui était une version supérieur de HPFS. Mais oui le support des applis Win16 dans OS/2 était supérieur mais c'était supporter le passé tandis que Microsoft préparait l'avenir avec Win32 qui offrait une bonne compatibilité du source code depuis Win16, et donc la promesse de recompiler facilement son parc logiciel vers le 32 bits.

Peut-être avez-vous une idée de comment IBM comptait gérer cette situation qui me parait perdue d'avance : offrir une très bonne compatibilité avec les applis legacy mais quasiment aucune avec les versions récentes ?

Tout ça m'incite à penser que OS/2, c'était un peu Windows 16 bits implémenté correctement. Comme vous l'avez rappelé, les gens possédaient depuis des années un 386 finalement limité à exécuter des applis utilisateurs 16 bits, et ce indépendamment de l'OS ! Avec le recul il est clair que la clé était de proposer une API 32 bits aux développeurs, et qu'à partir du moment où Win16 avait conquis le marché (sur ses concurrents tels que DESQview, VisiOn, GEM, ...), les développeurs seraient plus enclins à recompiler leur code existant de Win16 vers Win32 plutôt que tout réécrire vers une nouvelle API, aussi bien fichue soit-elle. Est-ce que IBM fournissait un SDK de migration / compatibilité pour les applis Win16 vers OS/2 32 bits?

Citation Envoyé par Jiji66 Voir le message
La suite nous la connaissons tous, la politique tarifaire dissuasive d'IBM, le fait que les fabricants de périphérique avaient leurs drivers 16 bits qui fonctionnaient sous 95 et pas sous OS/2 car ce dernier étant un vrai full 32bits il lui fallait aussi des drivers 32 bits, ce que les fabricants n'avaient pas encore développés, etc ...
Yep. C'est aussi la raison de l'échec de NT auprès des particuliers, et in fine la raison d'être de la lignée Win9.x. Ajoutons que beaucoup de jeux (Doom en 1993...) tournaient via des DOS extenders (DOS/4GW...) qui leur donnaient un accès direct au hardware, en particulier les registres et à la mémoire de la carte graphique, pour coder des drivers maison... C'est typiquement le genre de chose qu'il est bien difficile à émuler correctement depuis une VDM (et avec de bonnes performances). D'ailleurs, cela me fait tomber sur cet article:
https://www.stardock.com/stardock/art_os2past.html
qui explique qu'en substance IBM s'est retrouvé un peu dérouté de devoir assurer le support de jeux vidéos pour des particuliers alors qu'il étaient plutôt habitués à gérer des entreprises :
So IBM ends up having tens of thousands of phone calls pouring in over trivial issues while the product sells at the local CompUSA for $89.95 with a good $30 of it going to third parties (mostly Microsoft) in royalties and another $10 in manufacturing costs.
j'ai quand même un doute sur le fait que MS touchait autant de royalties sur cette version d'OS/2 là, alors qu'ils n'y ont quasiment pas participé.

Citation Envoyé par Jiji66 Voir le message
Étrangement OS/2 survit encore et est présenté comme une solution du 21eme siècle stable et sécurisée.
https://www.arcanoae.com/
BeOS aussi survit à sa façon: https://www.haiku-os.org/
Idem pour AmigaOS: http://www.amigaos.net/

On est d'accord qu'il faut savoir tourner la page

---

Un très bon article récapitulatif: http://www.os2museum.com/wp/nt-and-os2/

In the end, Windows NT survived and OS/2 did not, although OS/2’s demise had arguably more to do with Windows 3.1 and Windows 95 than NT.
1  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 30/07/2018 à 21:39
J'ai ressorti de ma bibliothèque un bouquin sur l'histoire de MS / Bill Gates et en fait, le sort d'OS/2 s'est jouée bien avant Win95. Déjà le PDG d'IBM de l'époque (Lowe, qui était quand même le père du PC) a posé des bases bancales en le cloisonnant aux piètres 286 afin de ne pas menacer le business des mini-ordinateurs d'IBM... Mais il s'est ensuite entêté à refuser que Windows devienne la GUI d'OS/2 alors que Gates était encore disposé à se voir comme un petit associé du géant IBM et que Windows 2.0 montrait des signes très prometteurs sans encore être une ras de marrée. Au final, quand le nouveau PDG d'IBM a compris qu'il fallait revoir la copie, il était trop tard pour IBM : Windows 3.0 engrangeait déjà des milliards et Gates se sentait de taille à entrer en compétition frontale. Et pour cause il avait de son côté la majorité des éditeurs logiciels de l'époque. Et comme cela a été mentionné, Gates a très bien perçu l'importance que le multimédia aurait dans les années 90, alors qu'IBM...

Citation Envoyé par ShigruM Voir le message
Bill a piller DOS a un pauvre geek de sa ville génie dans le code mais aucune vision business.
Tim Paterson n'est pas vraiment à plaindre : il a travaillé avec plaisir pour MS tout le long des années 80, d'abord en tant que simple salarié, puis pour sa propre petite entreprise qu'il a sur faire prospérer. Accessoirement, c'est lui a été accusé plus tard d'avoir pillé le travail de Kildall, le vrai perdant de l'histoire. Mais en même temps, il a snobé IBM quand ils sont venus le voir pour lui demander de porter son OS sur ce qui allait devenir le PC...

Citation Envoyé par Jiji66 Voir le message
Libre à vous de croire que Win95 était capable de faire ce que vous décrivez, pour avoir développé avec, je sais que votre description relève de la science fiction.
https://blogs.msdn.microsoft.com/old...24-00/?p=24063

(en fait j'ai fini par comprendre que vous confondez Win32s avec Win32 !)
1  0 
Avatar de redcurve
Inactif https://www.developpez.com
Le 23/07/2018 à 0:17
Il y a une méga update de la console qui arrive
0  0 
Avatar de redcurve
Inactif https://www.developpez.com
Le 23/07/2018 à 9:53
Citation Envoyé par slowsaz Voir le message
C'est vrai que Windows est tellement ouvert
Bien mais alors bien plus que macos, il n'y a pas besoin d'avoir les sources pour que ce soit ouvert, windows ne m’empêche pas de faire ce que je veux ne vas pas me dire tu ne peux installer ce soft de virtualisation etc. etc. Il me fout une paix royale
1  1 
Avatar de
https://www.developpez.com
Le 23/07/2018 à 10:14
Plus que macOs c'est certain et encore heureux.
0  0