| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() |
Оперативная память в MS Windows95 Перепечатка и распространение без ссылки на оригинал и авторов
категорически запрещены!
Со всеми вопросами обращайтесь: 2:5020/448.95 или Данный документ входит в ряд статей, который готовим мы - 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=<start_addr>-<end_addr>". Пример: [...] device = emm386.exe ram=b000-b7ff frame=c800 Загрузку программ в UMb нужно производить как и ранее, через использование команд DeviceHigh=<driver> (в config.sys) и LH <program>. Этого вполне достачно для 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:... Желаем вам успеха и надеемся, что данная информация будет полезной! |
|
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
|