Объяснение технологий

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

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

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

Разблокируйте БЕСПЛАТНУЮ шпаргалку Ultimate Windows Keyboard Shortcuts прямо сейчас

Это подпишет вас на нашу рассылку

Введите адрес электронной почты

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

Смущены еще? Не волнуйся, ты не одинок. Но когда вы дойдете до конца этой статьи, вы больше не будете смущены.

История архитектуры процессора

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

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

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

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

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

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

Конец 16-битного, вроде…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не сдавайся на 16-бит

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

Похожие посты
Объяснение технологий

Как работает жесткий диск? [Технология объяснила]

Объяснение технологий

Что такое программное обеспечение с открытым исходным кодом? [MakeUseOf Объясняет]

Объяснение технологий

Разрешения графического дисплея - что означают цифры? [MakeUseOf Объясняет]

Объяснение технологий

Как переформатировать внешний жесткий диск, не теряя на нем все