Чи Windows все ще покладається на MS-DOS?


71

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


Кінець цієї дискусії виглядає цікавим.
користувач2284570

Ні, це не є. Останнім ОС Windows, що покладався на MS-DOS, був Windows Me. Windows XP, Vista, 7 та новіші версії побудовані на архітектурі Windows NT.
bwDraco

Відповіді:


140

Що стосується 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 за допомогою мастила віртуальної машини DT 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. Ні "DOS", ні NTVDM. Там просто програма Win32 розмовляє з її консольним об'єктом Win32. Але ж для багатьох програм TUI , які можна запускати на Windows NT, включаючи всі інструменти в різних наборах ресурсів Microsoft, не існує до цих пір НЕ запахне DOS в будь-якій точці зображення, тому що це все звичайні програми Win32 , які виконують Win32 консольную I / О теж.

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

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

Подальше читання

  • Джонатан де Бойне Поллард (2006). Список книг для розробників ядер операційної системи та авторів драйверів пристроїв . Часто відповіді.
  • Марк Е. Русинович, Давид А. Соломон, Алекс Іонеску (2009). Windows Internals (5-е видання) . Microsoft Press. ISBN 9780735625303.
  • Вальтер Оней (1996). Програмування систем для Windows 95 . Microsoft Press. ISBN 1 55615 949 8.
  • Метт П'єтрек (листопад 1995 р.). Секрети системного програмування Windows 95 . Книги ІДГ. ISBN 1-56884-318-6.
  • Ендрю Шульман (1994). Несанкціонована Windows 95 . Книги IDG по всьому світу. ISBN 9781568841694.
  • Метт П'єтрек (1993). Внутрішня система Windows: реалізація операційного середовища Windows . Аддісон-Веслі. ISBN 9780201622171.
  • Ендрю Шульман, Девід Максей, Мет П'єтрек (1992). Незадокументовані Windows: Посібник для програмістів із збереженими функціями Microsoft Windows Api . Аддісон-Веслі. ISBN 9780201608342.

11
Це тільки стає кращим. Я все ще навчаю людей, що ви можете Alt-Tab між додатками. . .
surfasb

2
Чи не правда, що для Windows 95+ DOS використовується як завантажувач, а не рівень операційної системи. тобто Windows 95+ не викликає послуги DOS, за винятком під час завантаження.
Вінстон Еверт

3
@Winston Ewert, наскільки мені відомо, програми Windows все ще покладаються на dos INT 21h у Windows 95. Наприклад, INT 21h функція 55h для ініціалізації та INT 21h функція 4Ch для припинення. Я не можу відповісти за 98 та МЕН. Але 95 зробили.
artifex

6
Однак ви все ще не можете використовувати зарезервовані назви пристроїв DOS в Windows 7 під назвою explorer.exe!
LawrenceC

5
Люди! Ви знаєте, як працює цей сайт. Якщо ви хочете задати питання про режим DOS, значення параметрів msdos.sys та чому не можна використовувати кілька імен як імена файлів у програмі Win32, то використовуйте гіперпосилання Задавати питання у верхній частині цієї сторінки . Почніть з того, читаючи запитання від людей, які вже є .
JdeBP

23

Крім того, Windows 95 не був повністю графічним інтерфейсом інтерфейсу поверх DOS. Детальніше читайте тут:

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


1
Я пам’ятаю це, весь інтерфейс VxD та комутатор VMM. Це був цікавий спосіб трохи рухатися вперед на ОС і все ще мати багато сумісності назад.
Багата Гомолка

Windows 95 прийшов разом з MS-DOS 7, і можна було використовувати лише DOS-частину для створення завантажувального диска, доступного лише для DOS, і мати щось таке, що було схоже на дещо зламану версію MS-DOS 6 (але також з кількома новими додатковими особливості).
Рандольф Річардсон

4
Найправильніша відповідь: Windows не покладалася на DOS з Windows 95. І строго кажучи, Windows 3.11 не потребував DOS, як тільки 32-розрядні драйвери перебрали на себе. Але 3.11 не постачався із завантажувачем; тож знадобився DOS, щоб повернути його до початкової точки.
Ян Бойд

1
Цей блог досить добре прочитаний, дякую за посилання
катастрофічно

20

Ні. Усі версії Windows до тих, що мають "ядро NT", були схожі на GUI поверх 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.


13
Спадкові (стародавні, 16-бітні) програми DOS запускаються в NTVDM, який емулюється всередині підсистеми командного рядка. NTVDM недоступний у 64-розрядних системах Windows, тому для запуску 16-розрядних програм DOS, таких як DOSBox або VirtualBox, потрібен сторонній емулятор.
afrazier

11
Причина, по якій NTVDM недоступна в 64-розрядної Windows, полягає в тому, що це лише тонка обгортка, яка перемикає процесор у 16-бітний режим перед запуском коду. У 64-бітному режимі процесор може лише тимчасово перейти в 32-бітний режим для запуску 32-бітного коду; він не може запустити 16-бітний код без холодного перезавантаження.
Привіт71

2
Примітка до всіх: коментарі видалено з цієї публікації. Для тих, хто бере участь: Будь ласка, будьте уважні і пам’ятайте, що розширені дискусії слід переносити до чату, коли це можливо - надмірні коментарі до допису стають дуже галасливими для інших відвідувачів.
DMA57361

Оскільки люди продовжували бурхливо сперечатися з приводу цієї публікації, ми її поки що блокуємо. Коментарі знову видалено.
nhinkle

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

5

Більше як передвідник до Рандольфа, але він не єдиний, неодноразово плутаючи інтерфейси командного рядка та DOS .

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

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

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

Викликання цього стилю MS-DOS вводить в оману, оскільки DOS або MS-DOS не мають тих, хто вперше придумав це. Це набагато старше.

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

Багато людей вважають, що інтерфейси командного рядка є реліктом колишніх часів - хто не знає потужності обробки тисяч файлів за допомогою декількох натискань клавіш. Вони також не знають про wsh та monad. Але для професіоналів командний інтерпретатор у Windows майже такий же корисний, як і в Unix або Linux. Це не так добре відомо, але це важливо для багатьох адміністраторів.

Є навіть порт gnu-toolchain з sh.exe та sed, awk, bc, хвостом, 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-style"? Це історично правильно? Чи ваша публіка взагалі знає DOS? Чи корисно це для розуміння? Чи справді ці програми працюють на DOS?

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

Виправте оманливі теги на SU, SE та інших сторонах.


Добре сказано. Багато поганої термінології навколо.
Milind R

У Win95 та Win98 не було cmd.exe.
Anixx

2

У сім'ї Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7) DOS не залежить. Існують лише DOS-емулятори для зворотної сумісності.

Однак є деякі обмеження, які є наслідками сумісності з DOS на початку NT днів. Наприклад, ви не в змозі створити файл або каталог з назвою "CON" або "PRN", оскільки це зарезервовані імена для представлення пристроїв у DOS.


1

Насправді тепер Windows більше не використовує DOS. Підказка до DOS (або cmd) емулюється через Windows XP, Vista або Seven. Windows завантажується з власних ресурсів.


9
-1: Неправильно. Це не так to DOS (or cmd). Є інтерпретатор команд, cmd.exe, але це не DOS. У DOS також був інтерпретатор команд command.com, який дуже схожий за синтаксисом, ключовими словами та використанням, але командний інтерфейс - лише частина DOS; це не DOS.
користувач невідомий

Так, consoleТип у заголовку PE є частиною підсистеми Win32 / Win64. Це зовсім не 16 біт.
користувач2284570
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.