Оперативна пам’ять в MS Windows95, Windows, Операційні системи, статті

Alexander A Maltsev
(C) 1995 Russian Team Windows’95
Portions (C) Microsoft Corp

Передрук і розповсюдження без посилання на оригінал і авторів категорично заборонені! З усіма питаннями звертайтеся: 2:5020 / 448.95 або amp@usa.net або в луна-конференції SU.WIN95. *

Даний документ входить в ряд статей, який готуємо ми – Russian Team Windows ’95. Статті містять корисні поради, опис прихованих можливостей, та іншу інформацію по такому багатогранному продукту як Microsoft Windows95. Ми будемо раді (як завжди!) Почути розумні поради з удосконалення наших матеріалів. Контактні адреси см. в заголовку.

1. Загальна організація пам’яті

Вся пам’ять ділиться на conventional (від 1 до 1M) і extended. У даних момент expanded пам’ять зустрічається рідко і ми не буде її згадувати, окрім як результат використання емулятора (EMM386.EXE, QEMM386, 386MAX наприклад). Перший 1M складається з conventional (640K) і резервних 384K, які містять в собі буффера відеопам’яті, код BIOSа для відео і доп. пристроїв. Невикористання блоки можуть використовуватися для завантаження DOS-програм. Для цього ваш менеджер пам’яті створює upper memory blocks (UMB). Див пункт “Створення та налагодження UMB”.

Отже, ситуація для Windows95 і DOS однакова. На відміну від NT, Win95 НЕ вміє створювати “порожні” віртуальний машини (VM), але створює копії основного 1 мегабайта. Це означає, що в кожному DOS-вікні ви маєте той-же набір DOS-драйверів, що і до завантаження Win95. Я опускаю подробиці типу коду ядра Win95, і т.д. Це ми розглянемо в іншій статті. Однак зауважимо, що дана особливість зроблена тільки заради мати доступ DOS-драйверів як останнього шансу підтримки заліза, для якого поки немає “рідних” Win95-драйверів.

Ви як і раніше можете використовувати принцип multi-config, як і раніше.

В процесі завантаження Win95 в режимі GUI (Graphic User Interface) замінює код BIOSа, драйвер миші, CD-ROM, мережі і т.д. В ідеалі ви можете взагалі видалити autoexec / config і мати підтримку всього заліза тільки на базі рідних драйверів Win95. Переваги очевидні: швидкі 32-бітові драйвера, без проблем з нереентарабельностью (система не чекає завершення поточної операції перш ніж почати виконувати іншу), не використовується 1M пам’яті, і т.д.

В режимі MS-DOS Mode _нікакіе_ 32-бітові драйвера не використовуються, тому що це спеціальний примусовий режим повної сумісності з DOS з повним вивантаженням коду Win95 (за винятком невеликої частини-завантажувача). [Хочу спеціально наголосити, що цей режим зроблений на крайній випадок, і не існує в NT або OS / 2, хоча IBM пішла цим шляхом і планує включити його у слід. версії Warp].

Тому якщо вам потрібен, наприклад, драйвер миші в MS-DOS Mode, то ви повинні завантажити DOS-драйвер, як і раніше.

2. WINSTART.BAT

Цей bat-файл (з директорії Win95) виконується в момент завантаження ядра / GUI (частина підсистем вже проініціалізувати) і дозволяє завантажити невеликий ряд програм, які не можуть бути запущені з autoexec.bat (Наприклад драйвер btrieve для NetWare). У цей файл можна написати виклик програми установки частоти відео-карти, наприклад, що залишає ще менше турбот для збереження autoexec.bat

3. DOSSTART.BAT

Цей bat-файл виконується при виході в MS-DOS Mode і дозволяє автоматично завантажити потрібні для поточної сесії DOS потрібні драйвера (миші наприклад). Увага: під час установки Win95 системи переносить частину відомих їй драйверів в цей цей файл, тим самим позбавляючи вас від доп. зусиль.

4. UMB

Як ви вже знаєте, UMB (або upper memory) дозволяє розширити область пам’яті, в яку можливе завантаження резидентних програм / драйверів (на всякий випадок скажемо, що не треба забувати, що мізерна частина TSR- програм не працюють при завантаженні в адресний простір вище 640K), що звільняє першого 640K для роботи інших DOS-програм. Існує тільки один шлях (в ранніх бета-версіях Win95 був і інший) створення UMB – через використання менеджерів пам’яті. Ми розглянемо стандартну і що входить в поставку EMM386 (. EXE) з незапам’ятних часів. Отже, мінімальний набір для організації UMB (ми будемо вважати, що мінімальне знання EMM386.EXE ви вже маєте):

  
config.sys
   dos = high,umb
   device = himem.sys
   device = emm386.exe noems

Якщо вам потрібна EMS-пам’ять в MS-DOS режимі, то доведеться замінити “noems” на “auto” або “frame = <64K_buffer_addr>” і треба задати блоки UMB з допомогою команди “ram = “. Приклад:

 
[...]
 device = emm386.exe ram=b000-b7ff frame=c800

Завантаження програм в UMb потрібно робити як і раніше, через використання команд DeviceHigh = (в config.sys) і LH .

Цього цілком достачно для MS-DOS Mode. Але, за замовчуванням Win95 (як і Windows 3.x) використовує всю вільну UMB пам’ять (на момент завантаження) для розміщення ядра. Для того, щоб цього не відбувалося (ядро все одно залишиться в UMB), необхідно задати:

  
system.ini
  [386enh]
  LocalLoadHigh=true

після чого ви можете завантажувати DOS-драйвера і під 32-bit_kernel/GUI.

Note: при використанні інших менеджером пам’яті зазначені кроки можуть відрізнятися.

Ще одна корисна команда це:

 
system.ini
 [NonWindowsApp] LocalTSRs = <спісок_без_расшіреній>

Дана команда створює унікальні блоки для кожної VM і тому, скажімо, перемикач клавіатури не буде мати один і той-же статус у всіх DOS-вікнах.

5. XMS-пам’ять

Ця пам’ять обслуговується (як і раніше) драйвером HIMEM.SYS, який завантажується в config.sys, або самої Win95 якщо оний відсутній. У момент завантаження ядра / GUI Win95 передає управління внутрішнього 32-бітному менеджеру пам’яті і на цьому робота HIMEM.SYS закінчується.

Ви можете виділяти XMS-пам’ять для DOS-програм використовуючи стандартний шлях через Properties потрібної DOS-завдання, Memory -> Extended (XMS) Memory. Можна поставити Auto і тоді Win95 стежитиме за запитами з DOS- завдання і довиделять пам’ять тільки в разі потреби. Це економить пам’ять у багатьох ситуаціях (для деяких програм все ж краще задати необхідний розмір, наприклад для DOOM – 4096Kb).

6. EMS-пам’ять

Expanded Memory стала досить рідкісна, але як і раніше використовується деякими іграми і старими програмами. Т.к. апаратна реалізації “Канула в лету”, то доводиться використовувати алгоритми емуляції. Підхід в установки EMS пам’яті для DOS-задач схожий з XMS. Див пункт “XMS”

7. Абстрактні зауваження

Ми рекомендуємо активно використовувати можливість завдання завантаження bat-файл до виклику DOS-програми під kernel / GUI. Загляньте в Properties -> Program -> Batch file. Створіть bat-файл і покладіть туди потрібні вам резидентні програми. Не варто заради пари програм вантажити купу резидентів в autoexec / config.

Використовуйте можливість multi-config та шляхи завдання унікальних autoexec.bat / config.sys для кожної DOS-завдання, що працює в MS-DOS Mode:
Properties -> Program -> Advanced -> [X] MS-DOS Mode, (o) Specify a
New MS-DOS Mode Configuration: CONFIG.SYS: , AUTOEXEC.BAT:…

Бажаємо вам успіху і сподіваємося, що дана інформація буде корисною!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*