Назад в раздел
Оперативная память в MS Windows95
Оперативная память в MS Windows95
Оперативная память в MS Windows95
Оперативная память в MS Windows95
OS Tips & Suggestions series Russian Team Windows'95 *
Release 003 Independent group of professional users *
Dec/31/1995 Founded: April 1995 *
"Оперативная память в MS Windows95"
(C) 1995 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. Общая организация памяти
2. WINSTART.BAT
3. DOSSTART.BAT
4. UMB
5. XMS-память
6. EMS-память
7. Отвлеченные замечания
* 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=" и надо задать блоки 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:...
Желаем вам успеха и надеемся, что данная информация будет полезной!
|
|
|
|