Почему в 64-битных операционных системах Cant работают 16-битные приложения?

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

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

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

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

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

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

почему 64-битный может't run 16-bit applications

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

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

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

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

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

почему 64-битный может't run 16-bit applications

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

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

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

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

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

почему 64-битный может't run 16-bit applications

Это было неприятно, но это был не конец света. Пользователи могут использовать эмуляторы

или установите виртуальные машины

32-разрядная архитектура и операционные системы, поддерживающие устаревшие 16-разрядные приложения.

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

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

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

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

почему 64-битный может't run 16-bit applications

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-битный может't run 16-bit applications

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

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

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

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

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

Таким образом, вы можете начать использовать этот подход прямо сейчас.

почему 64-битный может't run 16-bit applications

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

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

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

почему 64-битный может't run 16-bit applications

Для этого есть два варианта: решение с двойной загрузкой или виртуальная машина.

, Или вы можете просто полностью сбросить Windows и перейти на Linux

, Все, что работает для вас.

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

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

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

почему 64-битный может't run 16-bit applications

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

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

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

Ссылка на основную публикацию
Adblock
detector