Est-ce que Windows s'appuie toujours sur MS-DOS?


71

Je suis sur le point de commencer un cours sur le système d'exploitation et, en tant qu'utilisateur Apple, je ne connais pas très bien les détails sous-jacents du système d'exploitation Windows. Je me demandais si MS-DOS était encore utilisé avec Windows s'exécutant par-dessus ou est-ce SEULEMENT Windows utilisé maintenant comme système d'exploitation? J'étais un peu confus parce que j'ai lu quelque part que MS-DOS est utilisé pour démarrer, mais que Windows intègre toutes les autres fonctionnalités du système d'exploitation et qu'il est donc utilisé pour toutes les autres opérations du système d'exploitation ...


La fin de cette discussion semble intéressante.
user2284570

Non. Le dernier système d'exploitation client reposant sur MS-DOS était Windows Me. Windows XP, Vista, 7 et versions ultérieures sont tous construits sur l'architecture Windows NT.
bwDraco

Réponses:


140

Il existe deux lignées distinctes en ce qui concerne Microsoft Windows et cela n’aide en rien que les gens écrivent des choses sur une lignée qu’ils ont apprises sur l’autre.

  • La lignée DOS + Windows comprend DOS + Windows toutes versions jusqu'à la version 3.11, DOS + Windows 95, DOS + Windows 98 et DOS + Windows Millennium Edition. Windows est superposé à DOS. Des livres entiers ont été écrits sur le sujet de cette superposition et font l’objet de controverses, notamment parce que, pendant un certain temps, de nombreuses personnes ont voulu que le monde croie que le DOS était parti et que Windows le système d'exploitation.

    C’est le processus d’amorçage DOS + Windows.

  • La lignée Windows NT comprend Windows NT 3.x, Windows NT 4.0, Windows NT 5.0 ("Windows 2000"), Windows NT 5.1 ("Windows XP"), Windows NT 5.2 (certaines éditions de Windows XP et "Windows Server 2003" ), Windows NT 6.0 ("Windows Vista") et Windows NT 6.1 ("Windows 7"). Il n’est pas superposé à DOS, fonctionne de manière complètement différente de DOS et peut exécuter des applications DOS à l’aide d’une machine NT DOS virtuelle (NTVDM) qui est une machine virtuelle fonctionnant sous Windows NT plutôt que l’autre. faire le tour.

    Ceci est le processus d'amorçage Windows NT 6.x.

Ce qui n’aide pas non plus, c’est que les gens parlent à tort d’une "invite DOS" dans Windows NT, comme cela est déjà arrivé dans les réponses. Mis à part le fait que ce sont les interprètes de commande qui l'utilisent, et non les systèmes d'exploitation , cela associe "DOS" à "interface utilisateur textuelle" et "interprète de commande", qui ne sont en réalité pas synonymes de DOS. DOS est une famille de systèmes d'exploitation: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS, etc.

Si une fenêtre d’invite de commande est ouverte sous Windows NT, elle est presque toujours en cours d’exécution CMD, l’interpréteur de commandes par défaut de Microsoft fourni dans la boîte et un programme Win32 d’interface utilisateur textuelle ordinaire. Il n'y a pas de "DOS", ni NTVDM. Il y a juste un programme Win32 qui parle à son objet console Win32. Et en fait, pour de nombreux programmes TUI pouvant être exécutés sous Windows NT, y compris tous les outils des différents kits de ressources de Microsoft, il n’existe toujours aucune bouffée de DOS dans l’image, car ce sont tous des programmes Win32 ordinaires exécutant la console Win32 I / O, aussi.

Ironiquement, étant donné que Windows NT 3.1 est sorti en 1993, la lignée Windows NT est en fait le système Windows-est-le-système d'exploitation non basé sur DOS que toutes les personnes au milieu des années 1990 essayaient de convaincre le monde que DOS + Windows 95 était.

Et, dix-huit ans plus tard, nous essayons toujours de faire comprendre à certaines personnes que Windows NT ne fonctionne pas comme DOS et ne l’a jamais fait . ☺

Lectures complémentaires

  • Jonathan de Boyne Pollard (2006). Une liste de livres pour les développeurs du système d'exploitation et les rédacteurs de pilotes de périphériques . Réponses fréquemment données.
  • Mark E. Russinovich, David A. Solomon et Alex Ionescu (2009). Windows Internals (5ème édition) . Microsoft Press. ISBN 9780735625303.
  • Walter Oney (1996). Programmation de systèmes pour Windows 95 . Microsoft Press. ISBN 1 55615 949 8.
  • Matt Pietrek (novembre 1995). Windows 95 Secrets de programmation système . Livres IDG. ISBN 1-56884-318-6.
  • Andrew Schulman (1994). Windows non autorisé 95 . IDG Books dans le monde. ISBN 9781568841694.
  • Matt Pietrek (1993). Windows internes: la mise en œuvre de l'environnement d'exploitation Windows . Addison-Wesley. ISBN 9780201622171.
  • Andrew Schulman, David Maxey et Matt Pietrek (1992). Non documenté Windows: Guide du programmeur sur les fonctions Microsoft Windows Api réservées . Addison-Wesley. ISBN 9780201608342.

11
Cela ne fait que s'améliorer. J'apprends toujours aux gens que vous pouvez Alt-Tab entre les applications. . .
surfasb

2
N'est-il pas vrai que pour Windows 95+, DOS est utilisé comme chargeur de démarrage plutôt que comme couche du système d'exploitation. C'est-à-dire que Windows 95+ n'invoque pas les services DOS sauf pendant le processus de démarrage.
Winston Ewert

3
@ Winston Ewert, à ma connaissance, les programmes Windows s'appuyaient toujours sur dos INT 21h dans Windows 95. Par exemple, INT 21h fonctionnait à 55h pour l'initialisation et INT 21h à fonction de 4Ch pour la terminaison. Je ne peux pas répondre pour 98 et ME. Mais 95 l'ont fait.
artifex

6
Cependant, vous ne pouvez toujours pas utiliser les noms de périphériques DOS réservés dans Windows 7 sous explorer.exe!
LawrenceC

5
Personnes! Vous savez comment fonctionne ce site. Si vous souhaitez poser des questions sur le mode DOS, la signification des options msdos.sys et la raison pour laquelle vous ne pouvez pas utiliser plusieurs noms en tant que noms de fichiers dans Win32, utilisez le lien hypertexte Poser une question en haut de cette page . Commencez par lire les questions des personnes qui en ont déjà .
JdeBP

23

De plus, Windows 95 n'était pas entièrement une interface graphique au-dessus de DOS. Lire la suite ici:

http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx


1
Je me souviens de cela, de l’ensemble de l’interface VxD et du commutateur VMM. C'était un moyen intéressant d'avancer quelque peu sur un système d'exploitation tout en conservant une compatibilité ascendante importante.
Rich Homolka

Cependant, Windows 95 est venu avec MS-DOS 7, et vous pouvez utiliser uniquement la partie DOS pour créer un disque d’amorçage pour DOS uniquement. traits).
Randolf Richardson

4
La réponse est la plus correcte: Windows ne s’appuie plus sur DOS depuis Windows 95. À proprement parler, Windows 3.11 n’avait plus besoin de DOS une fois que les pilotes 32 bits avaient pris le relais. Mais 3.11 n'est pas venu avec un chargeur de démarrage; il a donc fallu le DOS pour le ramener au point de départ.
Ian Boyd

1
Ce blog est une très bonne lecture, merci pour le lien
crasic

20

Non. Toutes les versions de Windows antérieures à celles dotées du "noyau NT" ressemblaient davantage à une interface graphique au-dessus de DOS. Avec NT, qui est devenu particulièrement banal avec l’introduction de Windows XP (et Windows Vista et Windows 7 utilisent également le noyau NT), la nécessité d’utiliser DOS comme système d’exploitation sous-jacent a été éliminée .

Les versions 32 bits de Windows ont toujours une invite DOS, qui peut être exécutée en entrant command.comdans la boîte de dialogue d'exécution, et il peut exécuter la plupart des anciens programmes DOS. Toutes les versions de Windows ont une invite de commande qui peut être utilisée pour exécuter des fichiers de commandes et des commandes de type DOS (qui sont généralement des applications Windows natives conçues pour interagir avec une console de style DOS). Windows 64 bits ne peut pas exécuter d'applications DOS car il ne prend pas en charge les processus 16 bits.

Vous feriez probablement mieux de considérer l'invite de commande comme une application spécialisée pouvant être utilisée pour exécuter des programmes DOS et / ou démarrer des programmes Windows à partir de la ligne de commande.

Remarque: La terminologie "invite DOS" était couramment utilisée pour décrire "l'invite de commande" avant l'introduction du noyau NT. Bien que de nombreuses personnes utilisent encore le terme "invite DOS" aujourd'hui (car ils l'utilisent pour exécuter plusieurs des mêmes commandes, appelées à l'origine "commandes DOS", généralement disponibles dans un environnement DOS), le terme "commande prompt "est techniquement correct dans les variantes NT de Windows.


13
Les applications DOS héritées (anciennes, 16 bits) sont exécutées dans le NTVDM, qui est émulé dans le sous-système d'invite de commande. Le NTVDM n'étant pas disponible sur les systèmes Windows 64 bits, vous avez donc besoin d'un émulateur tiers pour exécuter des applications DOS 16 bits, telles que DOSBox ou VirtualBox.
afrazier

11
La raison pour laquelle le NTVDM n'est pas disponible dans Windows 64 bits est qu'il s'agit simplement d'un wrapper fin qui fait passer le processeur en mode 16 bits avant d'exécuter le code. En mode 64 bits, la CPU ne peut que basculer temporairement en mode 32 bits pour exécuter du code 32 bits; il ne peut pas exécuter de code 16 bits sans un redémarrage à froid.
Bonjour71

2
Note à tous: Les commentaires ont été nettoyés de ce post. Aux personnes impliquées: restez prudent et rappelez-vous que les discussions prolongées doivent être déplacées pour discuter chaque fois que possible - les commentaires excessifs sur un message deviennent très bruyants pour les autres visiteurs.
DMA57361

Puisque les gens ont continué à se disputer avec véhémence au sujet de cet article, nous le verrons pour le moment. Les commentaires ont été supprimés, à nouveau.
nhinkle

@ Hello71 faux. Sous Linux par exemple, c'est possible. Et vous pouvez exécuter des applications DOS et Win 3.1 16 bits sous Linux 64 bits.
Anixx

5

Plus comme une réponse à Randolf, mais il n’est pas le seul, des interfaces de ligne de commande déroutantes et DOS à répétition.

Notez que de nombreuses balises [DOS] et [MS-DOS] souffrent de la même erreur: MS-DOS ne disposait initialement que d'un mode texte, d'une interface en ligne de commande appelée command.com+ norton commander pour beaucoup d'entre nous et de fenêtres en mode texte créées avec des cadres. , dessiné avec ansi.sys, mais contrôlable non seulement au clavier, mais également à la souris, mais plus facilement avec les touches fléchées et les touches de raccourci.

Ensuite, Windows a été construit au-dessus de DOS (2.0, 3.0, 3.1, 3.11), où une icône pour DOS-Box est réapparue à l'intérieur de Windows, en tant que nom de l'interface de commande à l'intérieur de Windows.

Mais dans Windows-NT et dans Windows 95 ou 98, MS-DOS a été abandonné, mais un interpréteur de commandes cmd.exe(cmd32.exe) existait toujours, avec la même syntaxe et les mêmes mots clés. Mais c’était un programme fonctionnant sous Windows, comme d’autres interpréteurs de commandes de style texte, tels que BASIC, irb (Ruby), scala-repl, psql (Postgresql), sqlplus (oracle), bc, R, rhino, etc. et ainsi de suite, fonctionnant sur plusieurs plates-formes.

Appeler ce style MS-DOS est trompeur, car DOS ou MS-DOS ne sont pas ceux qui l'ont créé pour la première fois. C'est beaucoup plus vieux.

Même sous Windows, l’exécution de commandes DOS n’était pas limitée . En général, l’ écriture de fichiers de commandes consistait à spécifier certains paramètres avant de lancer un programme Windows. Par exemple, définir un CLASSPATH, JAVA_HOME, des paramètres java tels que -Xmx et ainsi de suite pour un programme Java.

De nombreuses personnes pensent que les interfaces de ligne de commande sont un vestige des temps anciens - qui ne connaissent pas le pouvoir de traiter des milliers de fichiers en quelques touches. Ils ne connaissent pas non plus wsh et monad. Mais pour les professionnels, un interpréteur de commandes est sur les fenêtres presque aussi utile que sur Unix ou Linux. Ce n'est pas très connu, mais c'est essentiel pour de nombreux administrateurs.

Il existe même un portage de gnu-toolchain, avec sh.exe et sed, awk, bc, tail, rev, cat et tout cela en tant qu'applications Win32 natives.

Vous pouvez peut-être exécuter d'anciens programmes DOS sous cmd.exe, mais vous ne pouvez pas exécuter de programmes Windows en mode DOS. Ne continuez donc pas de dire aux gens que cmd.exe est un DOS - ce n'est pas le cas. Et ce n'est pas comme DOS . Ce que vous voulez dire, c'est un interactive command-line program, un command-line interface.

  • Invite DOS
  • Fichiers batch DOS
  • Commandes de type DOS
  • Console de style DOS
  • Applications DOS

est presque toujours une terminologie trompeuse . Cela pourrait convenir à un amateur, mais si vous voulez que votre public comprenne ce dont vous parlez, vous devez vous demander: est-ce limité à un système d'exploitation spécial, au DOS? Le style de la CLI est-il mieux nommé 'style DOS'? Est-ce historiquement correct? Est-ce que votre public connaît le DOS? Est-ce utile pour comprendre? Est-ce que ces programmes fonctionnent vraiment sous DOS?

Vous avez besoin des bonnes expressions, tranchantes comme un couteau de chirurgien, pour expliquer des choses compliquées. Les mauvaises expressions provoquent de mauvaises impressions dans le cerveau de votre public. Les expressions bâclées sont pires que rien. Évite-les. À utiliser CLIsi l’interface de ligne de commande doit être longue à taper.

Corrigez les étiquettes trompeuses sur le SU, le SE et les autres côtés.


Bien dit. Beaucoup de mauvaise terminologie autour.
Milind R

Dans Win95 et Win98, il n'y avait pas de cmd.exe.
Anixx

2

Dans la famille Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7), il est indépendant du DOS. Il n'y a que des émulateurs DOS pour la compatibilité ascendante.

Cependant, il existe encore certaines limitations résultant de la compatibilité avec DOS au début de la période NT. Par exemple, vous ne pouvez pas créer de fichier ou de répertoire nommé "CON" ou "PRN" car ce sont des noms réservés pour représenter les périphériques sous DOS.


1

En fait, maintenant, Windows n’utilise plus DOS. Invite à DOS (ou cmd) est émulée sur Windows XP, Vista ou Seven. Windows démarre à partir de ses propres ressources.


9
-1: Faux. Ce n'est pas to DOS (or cmd). Il existe un interpréteur de commandes, cmd.exe, mais ce n'est pas le DOS. DOS disposait également d’un interpréteur de commandes, command.com, dont la syntaxe, les mots-clés et l’utilisation étaient très similaires, mais l’interface de commande n’est qu’une partie de DOS; ce n'est pas DOS.
utilisateur inconnu

Yep Le consoletype dans l'en-tête PE fait partie du sous-système Win32 / Win64. Ce n'est pas du tout 16 bits.
user2284570
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.