Czy system Windows nadal polega na systemie MS-DOS?

71

Właśnie zaczynam kurs systemu operacyjnego i jako użytkownik Apple nie znam zbyt dobrze szczegółów systemu operacyjnego Windows. Zastanawiałem się, czy MS DOS jest nadal używany z systemem Windows działającym na górze, czy TYLKO Windows jest używany teraz jako system operacyjny? Byłem trochę zdezorientowany, ponieważ gdzieś przeczytałem, że MS-DOS jest używany do uruchamiania, ale Windows ma wbudowane wszystkie inne funkcje systemu operacyjnego, a zatem jest używany do wszystkich innych operacji systemu operacyjnego ...

rrazd
źródło
Koniec tej dyskusji wygląda interesująco.
user2284570,
Nie. Ostatnim konsumenckim systemem operacyjnym opartym na MS-DOS był Windows Me. Wszystkie systemy Windows XP, Vista, 7 i nowsze są oparte na architekturze Windows NT.
bwDraco

Odpowiedzi:

140

Jeśli chodzi o system Microsoft Windows, istnieją dwie odrębne linie i nie pomaga to, gdy ludzie piszą o jednej linii, której nauczyli się o drugiej.

  • Linia DOS + Windows obejmuje DOS + Windows wszystkie wersje do wersji 3.11, DOS + Windows 95, DOS + Windows 98 i DOS + Windows Millennium Edition. Ma Windows z warstwami na DOS. Całe książki zostały napisane na temat tego warstwowania i jest to przedmiotem sporu, między innymi dlatego, że wiele osób przez uczciwy czas, od wczesnych do połowy lat 90., chciało, aby świat uwierzył, że DOS zniknął, a Windows był system operacyjny.

    Jest to proces ładowania systemu DOS + Windows.

  • Linia Windows NT obejmuje Windows NT 3.x, Windows NT 4.0, Windows NT 5.0 („Windows 2000”), Windows NT 5.1 („Windows XP”), Windows NT 5.2 (niektóre wersje Windows XP i „Windows Server 2003” ), Windows NT 6.0 („Windows Vista”) i Windows NT 6.1 („Windows 7”). Nie ma warstw na DOSie, działa w zupełnie inny sposób niż DOS i może uruchamiać aplikacje DOS dzięki NT Virtual DOS Machine (NTVDM), która jest maszyną wirtualną działającą na Windows NT, a nie na drugiej odwrotnie.

    Jest to proces ładowania systemu Windows NT 6.x.

Nie pomaga również to, że ludzie omyłkowo mówią o „podpowiedzi DOS” w systemie Windows NT, co zdarzyło się nawet w odpowiedziach tutaj. Oprócz tego, że to interpretery poleceń podpowiadają, a nie systemy operacyjne , łączy to „DOS” z „tekstowym interfejsem użytkownika” i „interpreterem poleceń”, które w rzeczywistości nie są synonimami DOS. DOS to rodzina systemów operacyjnych: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS i tak dalej.

Jeśli ktoś ma otwarte okno wiersza polecenia w systemie Windows NT, prawie zawsze działa CMD, który jest domyślnym interpreterem poleceń Microsoft dostarczonym w pudełku i który jest zwykłym tekstowym interfejsem użytkownika, programem Win32. Nie ma „DOS” ani NTVDM. Jest tylko program Win32 rozmawiający z obiektem konsoli Win32. W rzeczywistości w przypadku wielu programów TUI, które można uruchomić w systemie Windows NT, w tym wszystkich narzędzi w różnych zestawach zasobów Microsoftu, nadal nie ma nigdzie inwentarza DOS na obrazie, ponieważ są to wszystkie zwykłe programy Win32, które wykonują konsolę Win32 I / O też.

Jak na ironię, biorąc pod uwagę fakt, że Windows NT 3.1 został wydany w 1993 r., System Windows NT jest w rzeczywistości systemem opartym na systemie operacyjnym DOS Windows-is-system operacyjny, który wszyscy ludzie w połowie lat 90. starali się przekonać świat, którym był DOS + Windows 95.

I osiemnaście lat później nadal staramy się przekazać to niektórym ludziom, że Windows NT nie działa jak DOS i nigdy nie miał . ☺

Dalsza lektura

  • Jonathan de Boyne Pollard (2006). Lista książek dla programistów jądra systemu operacyjnego i autorów sterowników urządzeń . Często udzielane odpowiedzi.
  • Mark E. Russinovich, David A. Solomon, Alex Ionescu (2009). Windows Wewnętrzne (wydanie 5) . Microsoft Press. ISBN 9780735625303.
  • Walter Oney (1996). Programowanie systemów dla Windows 95 . Microsoft Press. ISBN 1 55615 949 8.
  • Matt Pietrek (listopad 1995). Tajniki programowania systemu Windows 95 . Książki IDG. ISBN 1-56884-318-6.
  • Andrew Schulman (1994). Nieautoryzowany system Windows 95 . Książki IDG na całym świecie. ISBN 9781568841694.
  • Matt Pietrek (1993). Elementy wewnętrzne systemu Windows: implementacja środowiska operacyjnego Windows . Addison-Wesley. ISBN 9780201622171.
  • Andrew Schulman, David Maxey, Matt Pietrek (1992). Nieudokumentowane Windows: Przewodnik programistów po zarezerwowanych funkcjach API Microsoft Windows . Addison-Wesley. ISBN 9780201608342.
JdeBP
źródło
11
To tylko staje się lepsze. Nadal uczę ludzi, że możesz Alt-Tab między aplikacjami. . .
surfasb
2
Czy nie jest prawdą, że w Windows 95+ DOS jest używany jako bootloader, a nie warstwa systemu operacyjnego. tzn. Windows 95+ nie wywołuje usług DOS, z wyjątkiem procesu uruchamiania.
Winston Ewert,
3
@Winston Ewert, według mojej wiedzy, programy Windows nadal polegały na dos INT 21h w Windows 95. Na przykład INT 21h funkcja 55h dla inicjalizacji i INT 21h funkcja 4Ch dla zakończenia. Nie mogę odpowiedzieć za 98 i ME. Ale 95 tak.
artifex,
6
Jednak nadal nie możesz używać zastrzeżonych nazw urządzeń DOS w Windows 7 w explorer.exe!
LawrenceC,
5
Ludzie! Wiesz, jak działa ta strona. Jeśli chcesz zadawać pytania na temat trybu DOS, znaczenia opcji msdos.sys i dlaczego nie można używać kilku nazw jako nazw plików w Win32, skorzystaj z hiperłącza Zadaj pytanie u góry tej strony . Zacznij ponadto od przeczytania pytań od osób, które już to zrobiły .
JdeBP,
23

Ponadto Windows 95 nie był całkowicie GUI na DOS. Przeczytaj więcej tutaj:

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

Strabbi
źródło
1
Pamiętam to, cały interfejs VxD i przełącznik VMM. To był ciekawy sposób, aby przejść nieco dalej w systemie operacyjnym i nadal mieć wiele kompatybilności wstecznej.
Rich Homolka
Windows 95 przyszedł jednak z MS-DOS 7, i można było użyć tylko części DOS, aby utworzyć dysk rozruchowy tylko dla DOS i mieć coś, co wyglądało jak nieco zepsuta edycja MS-DOS 6 (ale także z kilkoma nowymi dodatkowymi cechy).
Randolf Richardson,
4
Oto najbardziej poprawna odpowiedź: system Windows nie polegał na systemie DOS od systemu Windows 95. Ściśle mówiąc, system Windows 3.11 nie potrzebował systemu DOS po przejściu sterowników 32-bitowych. Ale 3.11 nie był wyposażony w moduł ładujący; więc potrzebował DOS, aby dostać się do punktu wyjścia.
Ian Boyd,
1
Ten blog jest całkiem niezły, dzięki za link
crasic
20

Nie. Wszystkie wersje systemu Windows wcześniejsze niż te z „jądrem NT” były bardziej jak GUI na DOSie. W przypadku systemu NT, który stał się szczególnie powszechny wraz z wprowadzeniem systemu Windows XP (zarówno Windows Vista, jak i Windows 7 używają również jądra NT), konieczność użycia DOS jako podstawowego systemu operacyjnego została wyeliminowana .

32-bitowe wersje systemu Windows nadal mają monit DOS, który można uruchomić, wchodząc command.comw oknie dialogowym uruchamiania, i może on uruchamiać większość starych programów DOS. Wszystkie wersje systemu Windows mają wiersz polecenia, którego można używać do uruchamiania plików wsadowych i poleceń podobnych do systemu DOS (które są zwykle rodzimymi aplikacjami systemu Windows zaprojektowanymi do współpracy z konsolą w stylu DOS). 64-bitowy system Windows nie może uruchamiać aplikacji DOS, ponieważ nie obsługuje procesów 16-bitowych.

Prawdopodobnie najlepiej byłoby wyświetlić wiersz polecenia jako bardziej specjalistyczną aplikację, której można używać do uruchamiania programów DOS i / lub uruchamiania programów Windows z wiersza poleceń.

Uwaga: Terminologia „monit DOS” była powszechnie używana do opisania „wiersza poleceń” przed wprowadzeniem jądra NT. Chociaż wiele osób wciąż używa dziś terminu „monit DOS” (ponieważ używa go do uruchamiania wielu takich samych poleceń, które pierwotnie były nazywane „poleceniami DOS”, które zazwyczaj są dostępne w środowisku DOS), termin „polecenie” podpowiedź ”jest technicznie poprawny w wariantach NT systemu Windows.

Randolf Richardson
źródło
13
Starsze (stare, 16-bitowe) aplikacje DOS są uruchamiane w NTVDM, który jest emulowany w podsystemie wiersza poleceń. NTVDM nie jest dostępny w 64-bitowych systemach Windows, więc potrzebujesz zewnętrznego emulatora do uruchamiania 16-bitowych aplikacji DOS, takich jak DOSBox lub VirtualBox.
afrazier
11
Powodem, dla którego NTVDM nie jest dostępny w 64-bitowym systemie Windows jest to, że jest to tylko cienkie opakowanie, które przełącza procesor do trybu 16-bitowego przed uruchomieniem kodu. W trybie 64-bitowym procesor może tymczasowo przełączyć się w tryb 32-bitowy, aby uruchomić kod 32-bitowy; nie może uruchomić 16-bitowego kodu bez zimnego restartu.
Witaj71,
2
Uwaga dla wszystkich: komentarze zostały usunięte z tego postu. Do osób zaangażowanych: prosimy o zachowanie uprzejmości i pamiętaj, że długie dyskusje powinny być przenoszone na czat, gdy tylko jest to możliwe - nadmierne komentarze do postu stają się bardzo głośne dla innych odwiedzających.
DMA57361,
Ponieważ ludzie nadal zaciekle kłócą się o ten post, na razie go zamykamy. Komentarze zostały ponownie usunięte.
nhinkle
@ Hello71 źle. Na przykład w Linuksie. W 64-bitowym systemie Linux możesz uruchamiać 16-bitowe aplikacje DOS i Win 3.1.
Anixx
5

Więcej jako odpowiedź na Randolfa, ale nie jest on jedynym, mylącym interfejsem wiersza poleceń i DOSem wielokrotnie.

Zauważ, że wiele tagów [DOS] i [MS-DOS] cierpi z powodu tego samego błędu: MS-DOS początkowo miał tylko tryb tekstowy, interfejs wiersza poleceń o nazwie command.com+ Norton Commander dla wielu z nas, a także własne okna trybu tekstowego z ramkami , narysowany za pomocą ansi.sys, ale można go kontrolować nie tylko za pomocą klawiatury, ale także myszy, ale także łatwiej za pomocą klawiszy strzałek i skrótów klawiszowych.

Następnie system Windows został zbudowany na DOS (2.0, 3.0, 3.1, 3.11), w którym ikona DOS-Box pojawiła się ponownie w systemie Windows, jako nazwa interfejsu poleceń w systemie Windows.

Ale w Windows-NT i Windows-95 lub -98 MS-DOS został porzucony, ale cmd.exenadal istniał interpreter poleceń (cmd32.exe) o tej samej lub prawie takiej samej składni i słowach kluczowych. Ale był to program działający w systemie Windows, podobnie jak inne interpretery poleceń w stylu tekstowym, takie jak BASIC, irb (Ruby), scala-repl, psql (Postgresql), sqlplus (oracle), bc, R, nosorożec i tak dalej, i tak dalej, działa na kilku platformach.

Nazywanie tego stylu MS-DOS jest mylące, ponieważ DOS lub MS-DOS nie jest tym, który pierwszy go wymyślił. Jest znacznie starszy.

Nawet w systemie Windows nie było ograniczone do uruchamiania poleceń DOS - powszechną praktyką zapisywania plików wsadowych było określenie niektórych parametrów przed uruchomieniem programu Windows. Na przykład ustawienie CLASSPATH, JAVA_HOME, parametrów java, takich jak -Xmx itd. Dla programu Java.

Wiele osób uważa interfejsy wiersza poleceń za relikt z dawnych czasów - nie znają mocy przetwarzania tysięcy plików za pomocą kilku naciśnięć klawiszy. Nie znają też wsh ani monady. Ale dla profesjonalistów interpreter poleceń jest w systemie Windows prawie tak samo użyteczny jak w systemach Unix lub Linux. Nie jest tak dobrze znany, ale jest niezbędny dla wielu administratorów.

Istnieje nawet port gnu-toolchain, z sh.exe i sed, awk, bc, tail, rev, cat i wszystko to jako natywne aplikacje win32.

Być może możesz uruchomić stare programy DOS pod cmd.exe, ale nie możesz uruchamiać programów Windows w trybie DOS, więc nie powtarzaj ludziom, że cmd.exe to DOS - tak nie jest. I nie jest podobny do DOS-a . Co masz na myśli, to interactive command-line program, a command-line interface.

  • Monit DOS
  • Pliki wsadowe DOS
  • Polecenia podobne do DOS
  • Konsola w stylu DOS
  • Aplikacje DOS

jest prawie zawsze mylącą terminologią . Może to być odpowiednie dla amatora, ale jeśli chcesz, aby twoja publiczność zrozumiała, o czym mówisz, powinieneś zadać sobie pytanie: czy jest ograniczony do specjalnego systemu operacyjnego, do DOS? Czy styl CLI najlepiej nazywa się „stylem DOS”? Czy to historycznie poprawne? Czy twoi odbiorcy w ogóle znają DOS? Czy to pomaga w zrozumieniu? Czy te programy naprawdę działają w systemie DOS?

Potrzebujesz odpowiednich wyrażeń, ostrych jak nóż chirurga, aby wyjaśnić skomplikowane rzeczy. Nieprawidłowe wyrażenia wywołują błędne wrażenia w mózgu odbiorców. Niechlujne wyrażenia są gorsze niż nic. Unikaj ich. Użyj, CLIjeśli interfejs wiersza poleceń ma być zbyt długi, aby pisać.

Popraw wprowadzające w błąd tagi na SU, SE i innych stronach.

nieznany użytkownik
źródło
Dobrze powiedziane. Wokół dużo złej terminologii.
Milind R
W systemach Win95 i Win98 nie było pliku cmd.exe.
Anixx
2

W rodzinie Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7) jest niezależny od DOS. Istnieją tylko emulatory DOS dla kompatybilności wstecznej.

Jednak nadal istnieją pewne ograniczenia, które są konsekwencjami zgodności z DOS we wczesnych dniach NT. Na przykład nie możesz utworzyć pliku lub katalogu o nazwie „CON” lub „PRN”, ponieważ są to zastrzeżone nazwy reprezentujące urządzenia w DOS.

Michał Šrajer
źródło
1

Właściwie teraz Windows już nie używa DOS-a. Monit do DOS (lub cmd) jest emulowany w systemie Windows XP, Vista lub Seven. System Windows uruchamia się z własnych zasobów.

Diogo
źródło
9
-1: źle. To nie jest to DOS (or cmd). Istnieje interpreter poleceń, cmd.exe, ale to nie jest DOS. DOS miał również interpreter poleceń, command.com, który jest bardzo podobny w składni, słowach kluczowych i użyciu, ale interfejs poleceń jest tylko częścią DOS; to nie jest DOS.
użytkownik nieznany
Tak consoleTyp w nagłówku PE jest częścią podsystemu Win32 / Win64. To wcale nie jest 16 bitów.
user2284570,