Лекція - віртуальна машина і емуляція dos

На жаль, не всі програми сумісні з Windows 98/95. Давайте розглянемо випадки неправильної роботи при-ложений під управлінням Windows 9X і дамо рекомендації щодо поліпшення сумісності між додатками і цією операційною системою.

Звернення до апаратних засобів. Windows 98/95 перед- вважає, що програми звертаються до апаратним средст-вам машини тільки через інтерфейс операційної системи. Якщо звернення відбувається «в обхід» Windows 98/95, система розпізнає цю ситуацію і видає попередження сообще-ня.

Зверніть увагу, що це тільки попередження. Якщо додаток нормально працює в Windows 9X, які не викли-кість збоїв в системі і не «зависає», то в постає при його запуску вікні повідомлення встановіть прапорець «Не виводити більш це попередження» і запуск додатку-вання відбуватиметься без того, як з'явиться повідомлення.

Мультизадачная середу. Завдання, пов'язані з обслуговуванням і діагностикою дисків, розроблені під DOS, некоректно працюють в мультизадачной середовищі Windows 98, тобто можуть порушувати роботу інших програм з ді-агностіруемим пристроєм. Такі програми в більшості є додатками DOS. Найвідоміші з них - Norton Diagnostics і Norton DiskEditor. Norton DiskEditor чес-тно попереджає користувача про те, що його намагаються за-пустити в мультизадачной середовищі.

Ви можете на свій страх і ризик «обдурити» програму і змусити її працювати. Одні операції вона буде виконувати коректив-но, а інші - ні. Наприклад, при спробі змінити вміст фізичного сектора жорсткого диска Windows 98/95 перехопить управління і видасть повідомлення про те, що програма намагається виконати неприпустиму операцію.

Перед запуском подібних програм настійно рекомендується закрити всі інші додатки, щоб не втратити дан-ні на пристрої, для якого в даний момент виконується діагностика.

Конфлікт версій. Деякі програми при запуску визначають версію Windows і не виконуються, якщо версія систе-ми відрізняється від тієї, на яку розрахована програма. Найчастіше програміст хоче, щоб програма не запускалася в попередніх версіях, ніж та, для якої воно розроблялося. Але деякі програми не запускаються і в більш пізніх вер-сіях. Для Windows 98/95 така проблема при запуску програм DOS виникає дуже рідко (хоча для Windows Me - на жаль частіше) і практично завжди пов'язана з тим, що для зберігання всієї ін-формації про програму використовується Реєстр (Registry), а не файли * .INI. Яскравим прикладом може служити програма установки пакета SDK для Windows 3.0 / 3.1 фірми Microsoft. Вона «не переносить» як запуск в мультизадачной середовищі, так і робо-ту в Windows 98/95.

Віртуальна машина DOS. Деякі додатки DOS, в тому числі більшість застарілих, але цікавих ігор, не працюють під управлінням віртуальної машини DOS. У віртуальній машині DOS не працюють програми, які написані з при-трансформаційних змін програмного коду, який повністю бере на се-бе управління пам'яттю машини, що у випадку з Windows 98/95 призводить до конфлікту між цією програмою та диспетчером пам'яті. Так поводиться, наприклад, DOS версія пакету 3D-Studio фірми Autodesk.

Вихід з програми. Якщо є можливість, програму DOS слід завершувати за допомогою послідовності клавіш, ко-торая передбачена в ній для виходу, а не клацанням по правій кнопці вікна віртуальної машини DOS. В цьому випадку завер-шення виконує віртуальна машина, а програма нічого не «знає» про те, що її виконання буде перервано, що загрожує втратою даних. Windows 98/95 розпізнає подібну ситуацію і видає попередження. Використовувати кнопку закрити вікна віртуальної машини DOS потрібно тільки в тому випадку, коли всі інші способи виходу з про-грами не дають ефекту.

Виконання некоректної операції. Додатки Windows 98/95 (як і будь-яка програма) не вільні від внутрішніх помилок. У цьому випадку програма може бути примусово завершено. Управління при цьому бере на себе Диспетчер завдань Windows. Він виводить діалогове вікно з описом причин примусового завершення завдання.

Якщо в який з'явився при цьому вікні натиснути кнопку Відомості (Details), у вікні буде відображено вміст регістрів процесора і кілька байт сте-ка.Ета інформація може стати в нагоді розробнику для ана-лізу причин внутрішньої помилки програми.

Пряме звернення до диска. Якщо додаток безпосередньо звернеться до жорсткого диска, Windows перехопить це звернення і не дасть додатком ра-ботать, тому ви повинні повідомити системі, що додаток буде здійснювати читання і запис на диск «в обхід» Windows. Для цього виконайте команду LOCK з командного рядка. Сис-тема попередить вас про можливі наслідки і потребують підтвердити перехід в режим прямого управління жорстким дис-ком.

Якщо ви дозволите блокування диска, програма буде ра-ботать з ним «в обхід» операційної системи. Як тільки не-обходимость в такому режимі роботи відпаде, поверніть управ-ня диском системі, виконавши командуUNLOCK.

Як «обдурити» програму

Тепер розглянемо кошти, які є в системі для того, щоб змусити додаток працювати, якщо воно з якоїсь причини відмовляється це робити самостійно.

Програма МКСОМРАТ. Ця програма включена в Win 95 і Win 98, ймовірно, з метою налагодження і не документована. Вона по-зволяет змінювати деякі параметри, а також передавати конкретно виконується з додатком завідомо неправдиву інформацію про Windows 9X (наприклад, змінювати для нього номер версії Windows).

Вона знаходиться в папці WINDOWS \ SYSTEM і, зрозуміло, ніяк не проявляє себе при установці Windows. Щоб запустити його, в стартовому меню виберіть команду Виконати (Run) наберіть МКСОМРАТ і натисніть Ok. Після запуску додаток виведе своє головне вікно.

У меню цього вікна є всього один елемент File (файл). Якщо клацнути на ньому, відкриється підменю з п'яти елементів. Елемент Choose program (вибір програми) дає можливість вибрати програму, з яким буде передаватися «відфільтрована» інформація. Поки ні однієї програми не вибрано, в інформаційному рядку, яка знаходиться у верхній частині вікна, написано Program Name (Ім'я програми <ничего не выбрано>). При натисканні на цьому елементі виводиться стандартне діалогове вікно Open (Відкриття файлу), якому можна вибрати «піддослідна» додаток. Після того як ви вибрали додаток, в інформаційному рядку з'являється його ім'я. Тепер установкою або зняттям декількох прапорців у вікні программиМКСОМРАТ ви можете задавати додатком ті чи інші параметри. Наприклад, встановивши прапорець Lie Аbout Windows Version Number (Змінити номер версії Windows), можна ввести додаток «в оману» щодо того, в якій версії Windows воно працює. Якщо прапорець встановлений, додаток вважає, що працює під управлінням Widows 3.1. Встановіть цей прапорець, якщо додаток видає повідомлення про те, що воно не буде працювати в Windows 98/95.

Ecли вибрати рядок Розширені можливості пошуку (Advanced Options), список прапорців у вікні програми значно збільшиться. В цьому випадку можна точно підлаштувати поведінка системи під конкретне застосування. Щоб зберегти вибрані параметри для конкретного додатка, виконайте команду Save (Зберегти) з меню File (Файл).

Налаштування віртуальної машини DOS (PIF-файл). Щоб налаштувати вир-льну машину DOS під конкретне додаток, клацніть правою кнопкою миші і виберіть пункт Властивості (Properties). В однойменному діалозі виберіть вкладку Програма (Program) і клацніть на кнопці Додаткові параметри (Advanced).

У діалозі Додаткові параметри (Advanсеd Options) слід встановити прапорець «Не давати програмі виявити Windows» (Prevent MS-DOS based programs from detecting Windows).

Якщо прапорець встановлений, додаток вважає, що знаходиться в однозадачной середовищі. У цьому випадку вся відповідальність за мож-ли втрату даних лягає на користувача, особливо при запуску програм діагностики або стиснення жорсткого диска.

Прапорець MS-DOS на цій вкладці визначає поведінку сис-теми при виконанні програм, які не можуть бути запущені в віртуальній машині. Якщо він не встановлений, система запросить у користувача перехід в режим емуляції MS-DOS, в іншому випадку перехід буде виконаний авто-матически. Однак краще запускати такі програми в «на-стоїть» емуляторі MS-DOS. У нього можна перейти, виконан-нив в стартовому меню команду Завершення роботи (Shutdown). У діалоговому вікні виберіть варіант Перезавантажити комп'ютер в режимі емуляції MS-DOS (Restart the Computer in MS-DOS Mode).

По завершенні роботи програми в режимі емуляції виконайте командуEXIT, і система повернеться в Windows 9X. Врахуйте що якщо ви запускали якісь резидентні програми, про зійде повне перезавантаження машини.

На вкладці Пам'ять (Memory) можна вказати обсяг інформації, що відображається пам'яті, доступний даної віртуальної машині DOS, додаткової пам'яті (XMS), розширеної пам'яті (EMS) і пам'яті захищеного режиму DOS (DPMI), в залежності від того, яку пам'ять вимагає виконується у віртуальній машині додаток.

Якщо ніяких спеціальних вимог до пам'яті не пред'яв-ляется, вкажіть опцію Авто (Auto) для кожного виду пам'яті. Якщо програма використовує відображається пам'ять EMS, в будів-ке завантаження файлу CONFIG.SYS вкажіть параметр RAM (DEVICE = C: \ WINDOWS \ EMM386.EXE RAM), інакше пам'ять EMS буде недоступна. Система сама попереджає про це. Якщо клацнути на кнопці Відомості (Details), відкриє-ся діалог з докладним описом проблеми і дій, кото-які повинен виконати користувач.

На вкладці Шрифт (Font) користувачеві пропонується вибрати тип і розмір шрифту, який буде використовуватися в даній програмі DOS.

На вкладці Екран (Screen) можна вибрати в якому режимі повноекранному або віконному буде запускатися програма. Якщо вибрати віконний режим, то можна вказати розмір вікна в рядках (за замовчуванням розмір «стандартний»). Якщо включити пункт «відображати панель інструментів», то під заголовком вікна буде відображатися стандартний набір кнопок. Якщо включити пункт «відновлювати параметри при запуску», то при запуску програми вікно буде виглядати точно також як при попередньому запуску. Прапорець «емуляція функцій ПЗУ» дозволяє прискорити виведення інформації на екран, його потрібно знімати, якщо програма не правильно відображає текст на екрані. Встановлений прапорець «динамічне виділення пам'яті» означає, що в міру необхідності програмі буде виділятися пам'ять (наприклад під час перемикання з одного графічного режиму в інший), або пам'ять буде звільнятися якщо програмі вона стала не потрібна.

На вкладці Різне (Other) можна задати додаткові параметри: можливість використання заставки Windows, використання миші, поведінка програми у фоновому режимі, пріоритет програми при простої, поведінка при спробі закрити вікно в якому виконується програма. А також можна вказати як буде реагувати програма на системні комбінації клавіш Windows. Нагадаємо ці комбінації:

Перемикання між програмами.

Виклик віконного (системного) меню програми.

Всі описані вище параметри зберігаються в файлі з розширенням PIF і з ім'ям таким же як ім'я програми. Цей файл створюється автоматично при першому запуску DOS програми.

Емуляція MS-DOS. При запуску режиму емуляції MS-DOS з пам'яті вивантажуються майже всі керуючі компоненти Windows і залишається тільки «сполучний» код для повернення в Windows. Тобто Windows просто вивантажується і запускається інтерпретатор команд COMMAND.COM.

Запустити режим емуляції MS-DOS за допомогою таких дій:

1. Натиснути кнопку «Пуск» вибрати пункт «Завершення роботи» і у вікні вибрати пункт «Перезавантажити комп'ютер в режимі MS-DOS» і натиснути кнопку Ок.

2. Якщо при старті операційної системи натиснути кнопку F8 і в меню вибрати пункт Command Prompt Mode Only.

3. Перехід в режим емуляції здійснюється під час запуску програми DOS, в параметрах якої зазначений параметр «Режим MS-DOS». Він встановлюється так як було описано вище.

4. Також можна при запуску операційної системи натиснути кнопку F8 і в меню вибрати пункт «Previous operating system» (попередня операційна система), він є якщо при установці Windows була збережена попередня операційна система.

Нові команди. У Windows були введені кілька нових команд:

1. Була змінена команда DIR: у неї додався ключ / V, який дозволяє відображати на екрані довгі імена файлів і розширену інформацію про них (дату й час редагування файлу і його атрибути).

2. Команда VER - виводить на екран інформацію про версії операційної системи.

3. Команда START призначена для запуску програм MS-DOS і Windows або відкриття відомих для Windows файлів. Вона має наступний синтаксис:

START [параметри] програма [аргументи. ]

START [параметри] документ.расш

де параметри це:

/ M [inimized] Запуск програми в згорнутому вікні (фоновий режим).

/ Max [imized] Запуск програми в розгорнутому вікні (основний процес).

/ R [estored] Запуск програми в стандартному вікні (використовується за умовчанням).

/ W [ait] Відкласти запуск до завершення попередньої програми.

4. Якщо в командному рядку сеансу MS-DOS набрати ім'я документа і натиснути Enter, то Windows запустить додаток пов'язане з розширенням даного документа і відкриє в ньому цей документ. Наприклад, якщо в командному рядку набрати readme.txt, то система запустить «блокнот» і відкриє в ньому файл readme.txt.

5. Команда EXIT завершує роботу сеансу MS-DOS.

Зауваження. якщо ім'я файлу або шлях до нього використовувані в команді містять прогалини, то його необхідно укладати в подвійні лапки.

Ще роботи з інформатики