Почему 64-битные операционные системы не могут запускать 16-битные приложения?

Почему 64-битные операционные системы не могут запускать 16-битные приложения?

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





Ответ на этот вопрос может сбить с толку, в зависимости от того, кого вы спрашиваете. Во-первых, запускать 16-битные приложения на самом деле невозможно. Это просто сложно. Во-вторых, причина этой трудности кроется как в архитектуре процессора, так и в его архитектуре. а также операционная система.





Еще не запутались? Не волнуйтесь, вы не одиноки. Но когда вы дочитаете эту статью до конца, вы больше не запутаетесь.





История архитектуры ЦП

Я знаю, последнее, что вы хотите прочитать, это урок истории, верно? Не волнуйтесь, это короткое. Также важно понять, почему 64-битные системы не могут запускать 16-битные приложения изначально.

Если вы пережили 80-е и 90-е годы, то, вероятно, помните тех старых 16-битных динозавров, которых все в то время считали передовыми технологиями.



В то время это было так. Эти старые машины управляли Intel 8086 процессор в 1978 году. Процессор смог получить доступ к адресному пространству размером 1 Мбайт с использованием 16-битной адресации. С более ранними машинами, использующими 64 Кб памяти, это было огромным достижением и ознаменовало начало новой эры в персональных вычислениях.

В этом режиме (называется Реальный режим ), часть была зарезервирована для ОЗУ, а остальное использовалось BIOS и компьютерным оборудованием, таким как видеокарта.





Чуть позже произошел дальнейший прогресс в архитектуре ЦП с процессором 80286, способным адресовать 16 Мбайт с использованием 16-битной адресации. В архитектуре 286 появился «защищенный режим» с функциями, которые не только позволяли адресовать больший объем памяти, но и выполнять многозадачность. Запуск старых 16-битных приложений в «реальном режиме» не всегда был легким, но возможным.

Конец 16-битной, вроде ...

В 1985 году Intel представила свой процессор следующего поколения: Intel 386. Это был первый процессор Intel, который мог адресовать память, используя 32-битные одновременно, и мог получить доступ к колоссальным 4 Гб адресной памяти. В то время пользователям компьютеров это казалось большим прорывом. Компьютерные игры были на пороге своего расцвета.





Вместе с появлением 32-битной архитектуры появилась расширенная версия Защищенный режим это не только позволило получить доступ к большему объему памяти, но и включало набор функций, с помощью которых программное обеспечение могло сигнализировать системе, является ли это 16-битным или 32-битным кодом. Это стало возможным благодаря тому, что известно как Виртуальный режим 86 , который по сути представлял собой встроенную виртуализированную систему 8086.

Как вы можете видеть, от одной эволюции архитектуры ЦП к другой как аппаратное обеспечение (программирование ЦП), так и программное обеспечение (операционные системы и приложения) поддерживали обратную совместимость для всех тех пользователей, у которых все еще было очень старое программное обеспечение, которое они хотели. бег. Для индивидуальных пользователей компьютеров это было полезно, но для многих корпораций и малых предприятий это было критически важно для устаревших систем.

64-битная архитектура все испортила

Предел в 4 ГБ адресуемой памяти оставался опорой для 32-разрядных систем в течение многих лет. Однако с изобретением 64-битных процессоров произошел еще один прорыв. Эти системы включают новый режим (известный как Длинный режим ) с возможностью адресации до 16 миллионов терабайт памяти. Вероятно, пройдет много времени, прежде чем это станет ограничивающим фактором для компьютерных приложений.

Однако с этим огромным достижением пришлось пойти на значительный компромисс. Когда пользователи пытались запустить 16-разрядные приложения, для которых требовался давно поддерживаемый «реальный режим» или «виртуальный режим 8086», они обнаружили сообщение об ошибке, которое гласило: «Program.exe не является допустимым приложением Win32».

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

Таким образом, хотя для 64-разрядных систем «невозможно» запускать 16-разрядные приложения MS-DOS, для пользователей вполне возможно использовать обходной путь. Но почему это произошло?

64-битная архитектура устраняет NTVDM

В каждом поколении 32-битных процессоров на протяжении многих лет прилагалось много усилий к тому, чтобы операционная система могла обрабатывать старые 16-битные приложения DOS. Это было достигнуто с помощью так называемой виртуальной машины DOS NT, известной как NTVDM.

Это 32-битное приложение работало в операционной системе Windows и имитировало архитектуру 486, способную обрабатывать 16-битную адресацию с использованием виртуального 8086. К сожалению, «длиннорежимная» адресация не могла обеспечить это безопасно. Вместо этого потребовалось бы эмулировать полный процессор 8086 просто для поддержки запущенных приложений DOS.

Microsoft явно приняла решение отказаться от этих усилий, чтобы поддержать быстрый выпуск своей первой 64-разрядной операционной системы. На своей странице поддержки Microsoft четко заявляет, что «16-битные утилиты MS-DOS и Microsoft Windows 3.x не запускаются».

Без извинений. Это просто не поддерживается.

Поскольку на рынке существует множество продуктов для виртуализации, которые в любом случае могут сделать это, Microsoft явно не считала, что изобретать велосипед в ее интересах.

Как запускать 16-битные приложения в 64-битных системах

Тот факт, что запуск 16-битных приложений DOS изначально не поддерживается в 64-битных системах Windows, не означает, что это невозможно. Вам просто нужно установить дополнительные инструменты для настройки.

Если вам нравится классические игры DOS или использовать любые другие ретро-приложения из старых добрых компьютерных времен, есть варианты. Вот четыре способа запустить их на новом компьютере с Windows.

1. Играйте в ретро-игры с DOSBox

Один из самых простых способов запустить старые приложения DOS на вашем ПК - использовать эмулятор. Один из самых популярных из них - DOSBox .

забавные вещи, которые можно сделать с малиновым пи

Кристиан подробно рассказал, как установить и настроить DOSBox на запускать старые ретро-игры на вашем компьютере с Windows.

Самое замечательное в этом то, что большинство этих игр настолько стары, что они считаются заброшенными , так что вы можете легально загрузить и играть в них бесплатно.

2. Запускайте приложения внутри VirtualBox.

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

Одно из самых известных и простых в настройке приложений для этого - VirtualBox . У нас есть полное руководство по как настроить и использовать VirtualBox , так что вы можете начать использовать этот подход прямо сейчас.

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

3. Используйте Linux

Что бы вы ни говорили о Linux, большинство дистрибутивов Linux имеют право на поддержку 16-битных приложений. В дистрибутивах с ядром PAE вы не ограничены 4 ГБ 32-битных систем, поэтому другой вариант - запуск подходящего дистрибутива Linux с двойной загрузкой в ​​вашей системе.

Для этого есть два варианта: решение с двойной загрузкой или виртуальная машина. Или вы можете просто полностью сбросить Windows и пойти с Linux . Все, что вам подходит.

4. Используйте эмуляторы.

DOSBox - не единственный эмулятор, доступный для запуска старых приложений DOS. Есть много отличных эмуляторов, которые работают так же хорошо. Это особенно верно, если вы геймер.

Кристиан рассказал, как подражать Коммодор друг , к Raspberry Pi , Android , и даже классический SNES на любом ПК.

Это только верхушка айсберга. Если вы выполните поиск в Интернете, вы найдете целую библиотеку различных эмуляторов, которые позволят вам запустить практически любое ретро-приложение, которое вы можете себе представить. Microsoft, возможно, отказалась от старых 16-битных приложений в те времена, но у вас все еще есть варианты.

Не сдавайтесь на 16-битном

Нет никаких причин, по которым вы должны думать, что это невозможно для запуска 16-битных приложений на 64-битной машине. Это может быть невозможно изначально, но, как видите, существует множество решений для выполнения этой задачи.

Делиться Делиться Твитнуть Эл. адрес 12 видеосайтов, которые лучше, чем YouTube

Вот несколько видеосайтов, альтернативных YouTube. Каждый из них занимает свою нишу, но их стоит добавить в закладки.

Читать далее
Похожие темы
  • Игры
  • Объяснение технологии
  • Эмуляция
  • Windows 10
  • 64-битный
Об авторе Райан Дьюб(Опубликовано 942 статей)

Райан имеет степень бакалавра электротехники. Он проработал 13 лет в области автоматизации, 5 лет в ИТ, а теперь работает инженером по приложениям. Бывший управляющий редактор MakeUseOf, он выступал на национальных конференциях по визуализации данных и выступал на национальном телевидении и радио.

Ещё от Ryan Dube

Подписывайтесь на нашу новостную рассылку

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

Нажмите здесь, чтобы подписаться