Почему ваш 64-битный компьютер не может работать со старыми 16-битными приложениями? Вот почему, а также несколько обходных путей, которые вы можете использовать в любом случае
Как только компьютеры начали использовать современную 64-битную архитектуру, пользователи вскоре поняли, что запустить старые 16-битные приложения не получится. Почему 64-битные машины не могут работать с 16-битными приложениями?
Ответ на этот вопрос может быть неоднозначным, в зависимости от того, кого вы спросите. Во-первых, на самом деле запуск 16-битных приложений не является невозможным. Это просто сложно. Во-вторых, причина этой сложности кроется как в архитектуре процессора, так и в операционной системе
Уже запутались? Не волнуйтесь, вы не одиноки. Но когда вы дойдете до конца этой статьи, вы уже не будете в замешательстве
История архитектуры процессоров
Я знаю, последнее, что вы хотите прочитать – это урок истории, верно? Не волнуйтесь, он будет коротким. Он также важен для понимания того, почему 64-битные системы не могут запускать 16-битные приложения нативно
Если вы жили в 80-х и 90-х годах, то вы, вероятно, помните тех старых 16-битных динозавров, которых все в то время считали передовой технологией
В то время это было так. Эти старые машины работали на процессоре Intel 8086 1978 года. Процессор мог обращаться к адресному пространству размером 1 Мб, используя 16-битную адресацию. Учитывая, что предыдущие машины работали с 64 Кб памяти, это было огромным прогрессом и ознаменовало начало новой эры в персональных компьютерах
В этом режиме (называемом Real mode ) часть памяти отводилась под оперативную память, а остальная часть использовалась BIOS и аппаратными средствами компьютера, такими как видеокарта
Чуть позже произошло дальнейшее усовершенствование архитектуры процессора – появился процессор 80286, способный адресовать 16 Мб, используя 16-битную адресацию. С архитектурой 286 появился ‘Защищенный режим’ с функциями, которые позволяли не только адресовать больше памяти, но и работать в многозадачном режиме. Запускать старые 16-битные приложения в ‘реальном режиме’ было не всегда просто, но это было возможно
Конец 16-битной версии, вроде того
В 1985 году компания Intel представила процессор нового поколения – Intel 386. Это был первый процессор Intel, который мог обращаться к памяти, используя 32 бита за раз, и мог получить доступ к огромному объему адресуемой памяти в 4 Гб. В то время пользователям компьютеров это казалось большим прорывом. Компьютерные игры вот-вот должны были вступить в пору своего расцвета
Вместе с появлением 32-битной архитектуры появилась расширенная версия Protected mode , которая не только обеспечивала возможность доступа к большему объему памяти, но и включала набор функций, позволяющих программному обеспечению отмечать системе, является ли оно 16-битным или 32-битным кодом. Это стало возможным благодаря так называемому Virtual 86 mode , который был по сути встроенной виртуализированной системой 8086
Как видите, от одной эволюции архитектуры процессора к другой, как аппаратное (программирование процессора), так и программное обеспечение (операционные системы и приложения), поддерживали обратную совместимость для всех тех пользователей, у которых все еще было очень старое программное обеспечение, которое они хотели запустить. Для индивидуальных пользователей компьютеров это было полезно, но для многих корпораций и малых предприятий это было критически важно для унаследованных систем
64-разрядная архитектура разрушила все
Ограничение в 4 Гб адресуемой памяти оставалось костылем для 32-битных систем в течение многих лет. Однако с изобретением 64-битных процессоров произошел еще один прорыв. Эти системы включали новый режим (известный как Long mode ), способный адресовать до 16 миллионов терабайт памяти. Вероятно, пройдет много времени, прежде чем это станет ограничивающим фактором для компьютерных приложений
Однако вместе с этим огромным прогрессом пришел и значительный компромисс. Когда пользователи пытались запустить 16-битные приложения, требующие давно поддерживаемого ‘реального режима’ или ‘виртуального режима 8086’, они обнаруживали сообщение об ошибке: ‘Program.exe не является действительным приложением Win32.’
Это расстраивало, но не было концом света. Пользователи могли использовать эмуляторы или устанавливать виртуальные машины с 32-битной архитектурой и операционными системами, способными поддерживать устаревшие 16-битные приложения
Таким образом, хотя для 64-битных систем ‘невозможно’ запускать 16-битные приложения MS-DOS, для пользователей не исключена возможность сделать это с помощью обходного пути. Но почему это произошло?
64-разрядная архитектура удаляет NTVDM
В каждом поколении 32-битных процессоров на протяжении многих лет в операционную систему вкладывалось много усилий для того, чтобы система могла работать со старыми 16-битными DOS-приложениями. Это достигалось с помощью так называемой NTVDM, или NT Virtual DOS Machine
Это 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. Существует множество отличных эмуляторов, которые работают так же хорошо. Это особенно актуально, если вы любитель игр
Кристиан рассказал о том, как эмулировать Commodore Amiga, Raspberry Pi, Android и даже классическую SNES на любом ПК
Это лишь верхушка айсберга. Если вы поищете в Интернете, то найдете целую библиотеку различных эмуляторов, которые позволят вам запустить практически любое ретро-приложение, которое вы только можете себе представить. Возможно, Microsoft уже отказалась от старых 16-битных приложений, но у вас все еще есть варианты
Не отказывайтесь от 16-битной версии
Нет никаких причин считать, что невозможно запустить 16-битные приложения на 64-битной машине. Это может быть невозможно нативно, но, как вы видите, существует множество решений для выполнения этой задачи
Комментировать