Перейти к содержимому

Windows все еще полагается на MS-DOS?

71

Я только начинаю курс по ОС, и как пользователь Apple, я не очень хорошо знаком с основными деталями ОС Windows. Мне было интересно, MS DOS все еще используется с Windows, работающей поверх или только Windows теперь используется в качестве ОС? Я был немного смущен, потому что где-то читал, что MS-DOS используется для загрузки, но в Windows встроены все остальные возможности ОС и, следовательно, он используется для всех других операций ОС ...

36 313 просмотров
rrazd спросил 15 лет назад
R 476

6 ответов

139
Принятый ответ

Когда дело доходит до Microsoft Windows, есть две разные линии, и это не помогает, когда люди пишут вещи об одной линии, которую они узнали о другой.

  • Линия DOS + Windows включает DOS + Windows всех версий до версии 3.11, DOS + Windows 95, DOS + Windows 98 и DOS + Windows Millennium Edition. Это Windows слоистых поверх DOS. Целые книги были написаны на тему этого слоя, и это является предметом некоторого спора, не в последнюю очередь потому, что многие люди за справедливость, в то время как в начале и середине 1990-х годов мир хотел верить, что DOS ушел, а Windows была операционная система.

    Это процесс начальной загрузки DOS + Windows.

  • Линия Windows NT включает Windows NT 3.x, Windows NT 4.0, Windows NT 5.0 («Windows 2000»), Windows NT 5.1 («Windows XP»), Windows NT 5.2 (некоторые выпуски Windows XP и «Windows Server 2003»). ), Windows NT 6.0 («Windows Vista») и Windows NT 6.1 («Windows 7»). Он не наслоен поверх DOS, работает совершенно иначе, чем DOS, и может запускать приложения DOS посредством виртуальной машины NT NT (NTVDM), которая представляет собой виртуальную машину, работающую поверх Windows NT, а не другую. наоборот.

    Это процесс начальной загрузки Windows NT 6.x.

Что также не помогает, так это когда люди по ошибке говорят о «подсказке DOS» в Windows NT, как это уже было в ответах. Помимо того, что командные интерпретаторы запрашивают, а не операционные системы, это связывает «DOS» с «текстовым пользовательским интерфейсом» и «командным интерпретатором», ни один из которых в действительности не является синонимом DOS. DOS - это семейство операционных систем: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS и так далее.

Если в Windows NT открыто окно командной строки, то оно почти всегда работает CMD, это стандартный интерпретатор команд Microsoft, входящий в комплект поставки, и обычный текстовый пользовательский интерфейс, программа Win32. Там нет ни "ДОС", ни НТВДМ. Есть только программа Win32, говорящая с ее консольным объектом Win32. И на самом деле для многих программ TUI, которые можно запускать в Windows NT, включая все инструменты в различных ресурсных наборах Microsoft, по- прежнему нет места для DOS, потому что это все обычные программы Win32, которые выполняют консоль Win32 I / O тоже.

По иронии судьбы, учитывая, что Windows NT 3.1 была выпущена в 1993 году, линия Windows NT на самом деле является системой «не на операционной системе DOS», которую все люди в середине 1990-х пытались убедить. Мир, которым был DOS + Windows 95.

И восемнадцать лет спустя мы все еще пытаемся донести до некоторых людей, что Windows NT не работает как DOS и никогда не работает . ☺

дальнейшее чтение

Это только становится лучше. Я до сих пор учу людей, что вы можете Alt-Tab между приложениями. , ,

surfasb · 15 лет назад · 11

Не правда ли, что для Windows 95+ DOS используется как загрузчик, а не как слой операционной системы. то есть Windows 95+ не вызывает службы DOS кроме как во время процесса загрузки.

Winston Ewert · 15 лет назад · 2

@Winston Ewert, насколько мне известно, программы Windows по-прежнему полагались на DOS INT 21h в Windows 95. Например, INT 21h функция 55h для инициализации и INT 21h функция 4Ch для завершения. Я не могу ответить за 98 и ME. Но 95 сделал.

artifex · 15 лет назад · 3

Это просто соглашение о вызовах. Эти вызовы могут заканчиваться 32-битными драйверами дисков.

MSalters · 15 лет назад · 2

@Winston Ewert DOS - все еще то, во что ты загружаешься ... с Win9X, я думаю, что он загрузился довольно полностью в него, но с Win9X ты не заметил, потому что он не запускал исполняемый файл для запуска Windows. Вы заметили, что если вы отредактируете boot.ini и установите bootscan = 0, графический интерфейс будет мигать секунду, и вы окажетесь в DOS. и так или иначе это все еще управляло autoexec.bat .., и я не уверен, но возможно управлял config.sys также.

barlop · 15 лет назад · 0

В 9X также было что-то забавное, называемое режимом DOS, которое он мог делать после входа в Windows, что могло бы не совпадать с DOS, в которое он мог бы перейти, если бы вы установили bootscan = 0 и просто позволили загрузиться в приглашении DOS. Я вспоминаю autoexec.win и config.win (в отличие от .nt), хотя не уверен, для чего они были ..

barlop · 15 лет назад · 1

@barlop: In Windows 9x, MS-DOS 7 boots first (at this point the user can press F8 to get options to use DOS without starting Windows), and after processing CONFIG.SYS and AUTOEXEC.BAT completes, a file called "win.com" is automatically loaded -- this is where Windows 9x starts to load. The pretty graphical image (with the sliding colours across the bottom) that appears during the MS-DOS 7 startup process is a new feature in MS-DOS 7 that makes the boot process appear less technical to the user.

Randolf Richardson · 15 лет назад · 0

Was editing msdos.sys bootgui=0 logo=0 bootwin=0 , i think bootsafe and bootscan were related to scandisk running. What was DOS mode though, had that exited Windows? and what were config.win and autoexec.win ? autoexec.dos and config.dos ?

barlop · 15 лет назад · 0

@JdeBP: Перейти FidoNet!

Ƭᴇcʜιᴇ007 · 15 лет назад · 2

Для заинтересованных: Роль DOS в Windows 95.

Kyte · 15 лет назад · 2

Однако вы * все еще * не можете использовать зарезервированные имена устройств DOS в Windows 7 под explorer.exe!

LawrenceC · 15 лет назад · 6

@ultrasawblade: Correct (+1). Do you mean device names like "con:" and "nul:" (which may also be used by some native MS-Windows applications), or was there something in particular that caught your interest?

Randolf Richardson · 15 лет назад · 0

People! You know how this site works. If you want to ask questions about DOS mode, meanings of msdos.sys options, and why one cannot use several names as filenames in Win32, then use the Ask Question hyperlink at the top of this page. Start, moreover, by reading the questions from people who already have.

JdeBP · 15 лет назад · 5

Также проверьте * Внутри Windows 95 * и * Внутри Windows NT *, чтобы вернуться и увидеть архитектуры тогда (зачем смотреть на текущую Windows).

Synetech · 15 лет назад · 1

Как ни крути, XP, Vista и 7 по-прежнему имеют много унаследованных функций от DOS, которые заставляют людей думать, что Windows находится поверх DOS, например, разделение хранилища на диск C :, D: и множество одинаковых команд CMD. Windows была бы лучше, если бы она приняла файловую систему UNIX, ядро ​​и функциональность.

Frank R. · 14 лет назад · 0

Как отключить все эти зарезервированные псевдонимы устройств DOS, такие как CON, COM1, AUX, NUL в Windows NT?

Anixx · 9 лет назад · 0

@Frank R Файловая система UNIX - это дерьмо и ядро. И имена дисков вообще не связаны с ядром NT.

Anixx · 9 лет назад · 0

Похоже, что ваши ссылки на ntworld.com могут быть повреждены. Я перенаправлен на http://www.virginmedia.com/.

Bacon Bits · 9 лет назад · 0
JdeBP ответил 15 лет назад
J 22 361
22

Кроме того, Windows 95 не была полностью GUI поверх DOS. Узнайте больше здесь:

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

Я помню это, весь интерфейс VxD и коммутатор VMM. Это был интересный способ продвинуться немного вперед в ОС и при этом иметь большую обратную совместимость.

Rich Homolka · 15 лет назад · 1

Однако Windows 95 поставлялась с MS-DOS 7, и можно было использовать только часть DOS, чтобы сделать загрузочный диск только для DOS, и получить что-то вроде слегка сломанной версии MS-DOS 6 (но также и с несколькими новыми дополнительными функции).

Randolf Richardson · 15 лет назад · 0

Самый правильный ответ: Windows не полагалась на DOS начиная с Windows 95. И, строго говоря, Windows 3.11 не нуждалась в DOS после того, как 32-разрядные драйверы вступили во владение. Но 3.11 не поставляется с загрузчиком; так что нужно DOS, чтобы добраться до отправной точки.

Ian Boyd · 15 лет назад · 4

Этот блог очень хорошо читается, спасибо за ссылку

crasic · 15 лет назад · 1
Strabbi ответил 15 лет назад
S 321
20

Нет. Все версии Windows, предшествующие версиям с «ядром NT», были больше похожи на графический интерфейс поверх DOS. С NT, который стал особенно распространенным с введением Windows XP (и Windows Vista, и Windows 7, оба используют ядро ​​NT также), необходимость использовать DOS в качестве основной ОС была устранена .

32-разрядные версии Windows по-прежнему имеют приглашение DOS, которое можно запустить, введя command.comв диалоговом окне запуска, и оно может запускать большинство старых программ DOS. Все версии Windows имеют командную строку, которая может использоваться для запуска командных файлов и DOS-подобных команд (которые обычно являются родными приложениями Windows, предназначенными для взаимодействия с консолью в стиле DOS). 64-битная Windows не может запускать приложения DOS, потому что она не поддерживает 16-битные процессы.

Вероятно, лучше всего рассматривать командную строку как специализированное приложение, которое можно использовать для запуска программ DOS и / или запуска программ Windows из командной строки.

Примечание. Термин «приглашение DOS» обычно использовался для описания «командной строки» до появления ядра NT. Хотя многие люди до сих пор используют термин «приглашение DOS» сегодня (поскольку они используют его для запуска многих из тех же команд, которые первоначально назывались «командами DOS», которые обычно доступны в среде DOS), термин «команда» подскажите "технически правильно в NT вариантах Windows.

Legacy (ancient, 16-bit) DOS applications are run in the NTVDM, which is emulated inside the command prompt subsystem. The NTVDM is not available in 64-bit Windows systems, so you need a 3rd party emulator to run 16-bit DOS apps, such as DOSBox or VirtualBox.

afrazier · 15 лет назад · 13

Причина, по которой NTVDM недоступен в 64-битной Windows, заключается в том, что это просто тонкая оболочка, которая переключает ЦП в 16-битный режим перед запуском кода. В 64-битном режиме процессор может временно переключаться в 32-битный режим только для запуска 32-битного кода; он не может запустить 16-битный код без холодной перезагрузки.

Hello71 · 15 лет назад · 11

Примечание для всех: комментарии были удалены из этого поста. Для тех, кто вовлечен: Пожалуйста, держите это в тайне и помните, что расширенные обсуждения должны быть перенесены в chat, когда это возможно - чрезмерные комментарии к посту становятся очень шумными для других посетителей.

DMA57361 · 15 лет назад · 2

Поскольку люди продолжали неистово спорить об этом посте, мы сейчас его закрываем. Комментарии были удалены, снова.

nhinkle · 15 лет назад · 0

@ Hello71 неправильно. Например, в Linux это возможно. И вы можете запускать 16-битные приложения для DOS и Win 3.1 в 64-битном Linux.

Anixx · 9 лет назад · 0
Randolf Richardson ответил 15 лет назад
R 13 389
5

Это скорее ответ Рэндольфа, но он не единственный, кто постоянно путает интерфейсы командной строки и DOS .

Обратите внимание, что многие из тегов [DOS] и [MS-DOS] страдают от одной и той же ошибки: изначально в MS-DOS был только текстовый режим, интерфейс командной строки command.com+ norton commander для многих из нас и доморощенные окна текстового режима с фреймами., нарисованный с помощью ansi.sys, но управляемый не только клавиатурой, но и мышью, но также легче с помощью клавиш со стрелками и горячих клавиш.

Затем Windows была построена поверх DOS (2.0, 3.0, 3.1, 3.11), где значок для DOS-Box снова появился внутри окон в качестве имени командного интерфейса внутри окон.

Но в Windows-NT и в Windows-95 или -98 MS-DOS была заброшена, но интерпретатор cmd.exeкоманд (cmd32.exe) все еще существовал с тем же или почти таким же синтаксисом и ключевыми словами. Но это была программа, работающая внутри Windows, как и другие текстовые интерпретаторы команд, такие как BASIC, irb (Ruby), scala-repl, psql (Postgresql), sqlplus (oracle), bc, R, rhino и т. Д., и так далее, работает на нескольких платформах.

Называть этот стиль MS-DOS вводящим в заблуждение, поскольку DOS или MS-DOS не были теми, кто впервые придумал его. Это намного старше.

Даже в Windows нельзя было запускать DOS-команды - обычная практика записи пакетных файлов заключалась в том, чтобы задавать некоторые параметры перед запуском программы Windows. Например, установка Java-программы CLASSPATH, JAVA_HOME, java-параметров, таких как -Xmx и т. Д.

Многие люди думают, что интерфейсы командной строки - это пережиток прошлого - кто не знает, как обрабатывать тысячи файлов несколькими нажатиями клавиш. Они не знают ни о wsh, ни о монаде. Но для профессионалов командный интерпретатор в Windows почти так же полезен, как в Unix или Linux. Это не так хорошо известно, но это важно для многих администраторов.

Есть даже порт gnu-toolchain с sh.exe и sed, awk, bc, tail, rev, cat и всем этим как родные приложения win32.

Возможно, вы можете запускать старые DOS-программы под cmd.exe, но вы не можете запускать программы Windows в режиме DOS, так что не говорите людям, что cmd.exe - это DOS - это не так. И это не похоже на DOS . Что вы имеете в виду, это interactive command-line program, а command-line interface.

  • DOS подскажите
  • Пакетные файлы DOS
  • DOS-подобные команды
  • Консоль в стиле DOS
  • DOS-приложения

почти всегда вводит в заблуждение терминологию . Это может быть уместно для любителя, но если вы хотите, чтобы ваша аудитория поняла, о чем вы говорите, вы должны спросить себя: ограничено ли это специальной ОС, DOS? Стиль CLI лучше всего назвать «стиль DOS»? Это исторически правильно? Ваша аудитория знает DOS вообще? Это полезно для понимания? Эти программы действительно работают на DOS?

Вам нужны правильные выражения, острые, как нож хирурга, чтобы объяснить сложные вещи. Неправильные выражения вызывают неправильные впечатления в мозгу вашей аудитории. Небрежные выражения хуже, чем ничего. Избежать их. Используйте, CLIесли интерфейс командной строки слишком длинный, чтобы вы печатали.

Исправьте вводящие в заблуждение метки на SU, SE и других сторонах.

Хорошо сказано. Вокруг много плохой терминологии.

Milind R · 12 лет назад · 0

В Win95 и Win98 не было cmd.exe.

Anixx · 9 лет назад · 0
user unknown ответил 15 лет назад
U 1 449
2

В семействе Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7) он не зависит от DOS. Есть только эмуляторы DOS для обратной совместимости.

Однако есть некоторые ограничения, которые являются следствием совместимости с DOS в первые дни NT. Например, вы не можете создать файл или каталог с именем «CON» или «PRN», потому что это зарезервированные имена для представления устройств в DOS.

Michał Šrajer ответил 15 лет назад
M 2 089
1

На самом деле, теперь Windows больше не использует DOS. Запрос в DOS (или cmd) эмулируется через Windows XP, Vista или Seven. Windows загружается из собственных ресурсов.

-1: неправильно. Это не to DOS (или cmd). Есть интерпретатор команд, cmd.exe, но это не DOS. В DOS также был интерпретатор команд, command.com, который очень похож по синтаксису, ключевым словам и использованию, но интерфейс команды является лишь частью DOS; это не ДОС.

user unknown · 15 лет назад · 9

Да Тип console в заголовке PE является частью подсистемы Win32 / Win64. Это совсем не 16 бит.

user2284570 · 12 лет назад · 0
Diogo ответил 15 лет назад
D 21 834