Windows fa ancora affidamento su MS-DOS?


71

Sto per iniziare un corso sul sistema operativo e come utente Apple non ho molta familiarità con i dettagli sottostanti del sistema operativo Windows. Mi chiedevo, MS DOS è ancora usato con Windows in esecuzione in alto o SOLO Windows viene utilizzato ora come sistema operativo? Ero un po 'confuso perché ho letto da qualche parte che MS-DOS è utilizzato per l'avvio, ma Windows ha tutte le altre funzionalità del sistema operativo integrate e quindi viene utilizzato per tutte le altre operazioni del sistema operativo ...


La fine di questa discussione sembra interessante.
user2284570

No non lo fa. L'ultimo SO consumer che si basava su MS-DOS era Windows Me. Windows XP, Vista, 7 e versioni successive sono tutti basati sull'architettura Windows NT.
bwDraco,

Risposte:


140

Ci sono due distinti lignaggi quando si tratta di Microsoft Windows, e non aiuta le cose quando le persone scrivono cose su un lignaggio che hanno imparato sull'altro.

  • Il lignaggio DOS + Windows comprende DOS + Windows tutte le versioni fino alla versione 3.11, DOS + Windows 95, DOS + Windows 98 e DOS + Windows Millennium Edition. Windows ha sovrapposto DOS. Sono stati scritti interi libri sull'argomento di questa stratificazione, ed è oggetto di alcune contese, anche perché molte persone per una fiera mentre all'inizio e alla metà degli anni '90 volevano che il mondo credesse che il DOS fosse sparito e Windows lo fosse il sistema operativo.

    Questo è il processo di bootstrap DOS + Windows.

  • Il Windows NT lignaggio comprende Windows NT 3.x, Windows NT 4.0, Windows NT 5.0 ( "Windows 2000"), Windows NT 5.1 ( "Windows XP"), Windows NT 5.2 (alcune edizioni di Windows XP e "Windows Server 2003" ), Windows NT 6.0 ("Windows Vista") e Windows NT 6.1 ("Windows 7"). Non è sovrapposto a DOS, funziona in modo completamente diverso da DOS e può eseguire applicazioni DOS tramite una macchina virtuale virtuale NT (NTVDM) che è una macchina virtuale che gira su Windows NT piuttosto che sull'altra in giro.

    Questo è il processo bootstrap di Windows NT 6.x.

Ciò che inoltre non aiuta è quando le persone parlano erroneamente di un "prompt di DOS" in Windows NT, come è già successo nelle risposte qui. A parte il fatto che sono gli interpreti di comando a richiedere, non i sistemi operativi , questo unisce "DOS" con "interfaccia utente testuale" e "interprete di comandi", nessuno dei quali è in realtà sinonimo di DOS. DOS è una famiglia di sistemi operativi: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS, eccetera.

Se uno ha una finestra del prompt dei comandi aperta su Windows NT, allora è quasi sempre in esecuzione CMD, che è l'interprete dei comandi predefinito di Microsoft fornito nella confezione e che è un'interfaccia utente testuale normale, programma Win32. Non c'è "DOS", né NTVDM. C'è solo un programma Win32 che parla al suo oggetto console Win32. E in effetti per molti programmi TUI che è possibile eseguire su Windows NT, inclusi tutti gli strumenti nei vari kit di risorse di Microsoft, non c'è ancora nessun soffio di DOS ovunque nell'immagine, perché questi sono tutti i normali programmi Win32 che eseguono la console Win32 I / O, anche.

Ironia della sorte, dato che Windows NT 3.1 è stato rilasciato nel 1993, il lignaggio di Windows NT è in realtà il sistema di sistema operativo basato su DOS non basato su DOS che tutte le persone a metà degli anni '90 stavano cercando di convincere mondo che DOS + Windows 95 era.

E, diciotto anni dopo, stiamo ancora cercando di far capire ad alcune persone che Windows NT non funziona come DOS e che non ha mai fatto . ☺

Ulteriori letture

  • Jonathan de Boyne Pollard (2006). Un elenco di libri per sviluppatori del kernel del sistema operativo e scrittori di driver di dispositivo . Risposte frequentemente fornite.
  • Mark E. Russinovich, David A. Solomon, Alex Ionescu (2009). Interni di Windows (5a edizione) . Microsoft Press. ISBN 9780735625303.
  • Walter Oney (1996). Programmazione di sistemi per Windows 95 . Microsoft Press. ISBN 1 55615 949 8.
  • Matt Pietrek (novembre 1995). Segreti di programmazione del sistema Windows 95 . Libri IDG. ISBN 1-56884-318-6.
  • Andrew Schulman (1994). Windows 95 non autorizzato . Libri IDG in tutto il mondo. ISBN 9781568841694.
  • Matt Pietrek (1993). Interni di Windows: l'implementazione dell'ambiente operativo Windows . Addison-Wesley. ISBN 9780201622171.
  • Andrew Schulman, David Maxey, Matt Pietrek (1992). Windows non documentato: una guida per programmatori alle funzioni API di Microsoft Windows riservate . Addison-Wesley. ISBN 9780201608342.

11
Va solo meglio. Sto ancora insegnando alla gente che puoi Alt-Tab tra le applicazioni. . .
surfasb,

2
Non è vero che per Windows 95+, DOS viene utilizzato come bootloader anziché come livello del sistema operativo. vale a dire che Windows 95+ non invoca i servizi DOS tranne durante il processo di avvio.
Winston Ewert,

3
@Winston Ewert, per quanto ne so, i programmi Windows si basavano ancora sul DOS INT 21h in Windows 95. Ad esempio, la funzione INT 21h 55h per l'inizializzazione e la funzione INT 21h 4Ch per la terminazione. Non posso rispondere per 98 e ME. Ma 95 lo hanno fatto.
Artifex,

6
Tuttavia non è ancora possibile utilizzare i nomi dei dispositivi DOS riservati in Windows 7 in explorer.exe!
LawrenceC,

5
Persone! Sai come funziona questo sito. Se si desidera porre domande sulla modalità DOS, sul significato delle opzioni msdos.sys e sul motivo per cui non è possibile utilizzare più nomi come nomi di file in Win32, utilizzare il collegamento ipertestuale Poni domanda nella parte superiore di questa pagina . Inizia, inoltre, leggendo le domande delle persone che hanno già .
JdeBP,

23

Inoltre Windows 95 non era interamente una GUI su DOS. Leggi di più qui:

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


1
Ricordo questo, l'intera interfaccia VxD e switcher VMM. È stato un modo interessante per avanzare un po 'su un sistema operativo e avere ancora molta compatibilità con le versioni precedenti.
Rich Homolka,

Windows 95 è arrivato con MS-DOS 7, e si potrebbe usare solo la parte DOS per creare un disco di avvio solo DOS e avere qualcosa che sembrava un'edizione leggermente rotta di MS-DOS 6 (ma anche con qualche nuovo aggiuntivo Caratteristiche).
Randolf Richardson,

4
È la risposta più corretta: Windows non fa affidamento su DOS da Windows 95. E a rigor di termini Windows 3.11 non ha avuto bisogno di DOS una volta che i driver a 32 bit hanno preso il controllo. Ma 3.11 non ha un bootloader; quindi aveva bisogno di DOS per arrivare al punto di partenza.
Ian Boyd il

1
Quel blog è una buona lettura, grazie per il link
crasic

20

No. Tutte le versioni di Windows precedenti a quelle con il "kernel NT" erano più simili a una GUI su DOS. Con NT, che è diventato particolarmente comune con l'introduzione di Windows XP (e Windows Vista e Windows 7 utilizzano entrambi anche il kernel NT), è stata eliminata la necessità di utilizzare DOS come sistema operativo sottostante .

Le versioni a 32 bit di Windows hanno ancora un prompt DOS, che può essere eseguito accedendo command.comalla finestra di dialogo Esegui e può eseguire la maggior parte dei vecchi programmi DOS. Tutte le versioni di Windows hanno un prompt dei comandi che può essere utilizzato per eseguire file batch e comandi simili a DOS (che sono in genere applicazioni Windows native progettate per interagire con la console in stile DOS). Windows a 64 bit non può eseguire applicazioni DOS perché non supporta i processi a 16 bit.

Probabilmente sarebbe meglio visualizzare il prompt dei comandi come più simile a un'applicazione specializzata che può essere utilizzata per eseguire programmi DOS e / o avviare programmi Windows dalla riga di comando.

Nota: la terminologia "prompt di DOS" era comunemente usata per descrivere il "prompt dei comandi" prima dell'introduzione del kernel NT. Sebbene molte persone usino ancora oggi il termine "prompt DOS" (perché lo usano per eseguire molti degli stessi comandi, che in origine erano denominati "comandi DOS", che sono generalmente disponibili in un ambiente DOS), il termine "comando prompt "è tecnicamente corretto nelle varianti NT di Windows.


13
Le applicazioni DOS legacy (antiche, a 16 bit) vengono eseguite in NTVDM, che viene emulato nel sottosistema del prompt dei comandi. NTVDM non è disponibile nei sistemi Windows a 64 bit, quindi è necessario un emulatore di terze parti per eseguire app DOS a 16 bit, come DOSBox o VirtualBox.
Afrazier

11
Il motivo per cui NTVDM non è disponibile in Windows a 64 bit è perché è semplicemente un wrapper sottile che passa la CPU in modalità 16 bit prima di eseguire il codice. Nella modalità a 64 bit, la CPU può passare temporaneamente alla modalità a 32 bit solo per eseguire il codice a 32 bit; non può eseguire il codice a 16 bit senza un riavvio a freddo.
Hello71,

2
Nota a tutti: i commenti sono stati ripuliti da questo post. Per le persone coinvolte: tienilo civile e ricorda che le discussioni estese dovrebbero essere spostate per chattare quando possibile - commenti eccessivi su un post diventano molto rumorosi per altri visitatori.
DMA57361,

Poiché le persone hanno continuato a discutere con veemenza su questo post, per ora lo stiamo bloccando. I commenti sono stati rimossi, di nuovo.
nhinkle

@ Hello71 sbagliato. In Linux, ad esempio, può. E puoi eseguire applicazioni DOS a 16 bit e Win 3.1 in Linux a 64 bit.
Anixx,

5

Più come risposta a Randolf, ma non è l'unico, confonde ripetutamente le interfacce della riga di comando e il DOS .

Nota che molti dei tag [DOS] e [MS-DOS] soffrono dello stesso errore: MS-DOS inizialmente aveva solo una modalità di testo, un'interfaccia a riga di comando chiamata command.com+ norton commander per molti di noi e finestre di modalità di testo nostrane con frame , disegnato con ansi.sys, ma controllabile non solo dalla tastiera, ma dal mouse, ma più facilmente anche con i tasti freccia e i tasti di scelta rapida.

Quindi Windows è stato creato sopra DOS (2.0, 3.0, 3.1, 3.11), dove un'icona per DOS-Box è riapparsa all'interno di Windows, come un nome per l'interfaccia di comando all'interno di Windows.

Ma in Windows-NT e in Windows-95 o -98 MS-DOS è stato abbandonato, ma cmd.exeesisteva ancora un interprete di comandi (cmd32.exe), con la stessa o quasi la stessa sintassi e parole chiave. Ma questo era un programma, in esecuzione all'interno di Windows, come altri interpreti di comandi in stile testuale, come BASIC, irb (Ruby), scala-repl, psql (Postgresql), sqlplus (oracle), bc, R, rhino e così via, e così via, in esecuzione su più piattaforme.

Chiamare questo stile MS-DOS è fuorviante, poiché DOS o MS-DOS non sono quelli che l'hanno inventato per primo. È molto più vecchio.

Anche su Windows non era limitato eseguire comandi DOS - una pratica comune di scrittura di file batch era, per specificare alcuni parametri, prima di avviare un programma Windows. Ad esempio, impostando un CLASSPATH, JAVA_HOME, parametri java come -Xmx e così via per un programma Java.

Molte persone pensano che le interfacce da riga di comando siano un relitto dei tempi passati , che non conoscono la potenza di elaborazione di migliaia di file con pochi tasti. Non sanno nemmeno di wsh e monade. Ma per i professionisti, un interprete di comandi è utile su Windows quasi quanto su Unix o Linux. Non è così noto, ma è essenziale per molti amministratori.

Esiste persino una porta per gnu-toolchain, con sh.exe e sed, awk, bc, tail, rev, cat e tutto il resto come app native per win32.

Forse puoi eseguire vecchi programmi DOS sotto cmd.exe, ma non puoi eseguire programmi Windows in modalità DOS, quindi non continuare a dire alla gente che cmd.exe è DOS - non lo è. E non è simile a DOS . Quello che vuoi dire è un interactive command-line program, a command-line interface.

  • Prompt di DOS
  • File batch DOS
  • Comandi simili a DOS
  • Console in stile DOS
  • Applicazioni DOS

è quasi sempre fuorviante terminologia . Potrebbe essere appropriato per un dilettante, ma se vuoi che il tuo pubblico capisca, di cosa stai parlando, dovresti chiederti: è limitato a un sistema operativo speciale, a DOS? Lo stile CLI è meglio chiamato "stile DOS"? È storicamente corretto? Il tuo pubblico conosce il DOS? È utile per capire? Questi programmi funzionano davvero su DOS?

Hai bisogno delle espressioni giuste, affilate come il coltello di un chirurgo, per spiegare cose complicate. Le espressioni sbagliate provocano impressioni sbagliate nel cervello del tuo pubblico. Le espressioni sciatte sono peggio di niente. Evitali. Utilizzare CLIse l'interfaccia della riga di comando richiede troppo tempo per la digitazione.

Correggere tag fuorvianti su SU, SE e altri lati.


Ben detto. Molta cattiva terminologia in giro.
Milind R

In Win95 e Win98 non c'erano cmd.exe.
Anixx,

2

Nella famiglia Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7) è indipendente da DOS. Esistono solo emulatori DOS per la compatibilità con le versioni precedenti.

Tuttavia ci sono ancora alcune limitazioni che sono conseguenze della compatibilità con DOS nei primi giorni di NT. Ad esempio, non è possibile creare file o directory denominati "CON" o "PRN" perché si tratta di nomi riservati per rappresentare i dispositivi in ​​DOS.


1

In realtà, ora Windows non utilizza più DOS. Il prompt per DOS (o cmd) viene emulato su Windows XP, Vista o Seven. Windows si avvia dalle proprie risorse.


9
-1: sbagliato. Non lo è to DOS (or cmd). C'è un interprete di comandi, cmd.exe, ma non è DOS. DOS aveva anche un interprete di comandi, command.com, che è molto simile in termini di sintassi, parole chiave e utilizzo, ma l'interfaccia dei comandi è solo una parte di DOS; non è DOS.
utente sconosciuto

Sì Il consoletipo nell'intestazione PE fa parte del sottosistema Win32 / Win64. Non è affatto a 16 bit.
user2284570
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.