G.5.3. Этап 2. Минимизация базовой (conventional) оперативной памяти.

Итак, Вы установили систему MS-DOS. Эта операционная система в минимальной конфигурации (загружены только файлы IO.SYS, MSDOS.SYS и Command.com) может выполнять большинство программ. Однако Вам дополнительно могут потребоваться:

1. Драйверы поддержки манипулятора "мышь" для операционной системы MS-DOS. Эти драйверы могут быть разными для различных видов мышей. Обычно файл называется mouse.com. Если Вы используете мышь в ее двухкнопочном варианте (удовлетворяющей спецификации Microsoft Mouse), то может быть полезен драйвер msmouse.com, а также его версия MSMOUSE.SYS, устанавливаемая в файл Config.sys. Если Вы используете спецификацию Genius на трехкнопочные мыши, Вы наверняка будете использовать драйвер gmouse.com. Для мышей Logitech используется драйвер lmouse.com. Также может случиться, что Ваша мышь является нестандартной, и для нее подойдет только ее "родной" драйвер. По этому поводу проконсультируйтесь у изготовителя Вашей мыши (или его представителя), и используйте программу установки этого драйвера для DOS на прилагаемой к мыши дискете.

2. Драйвер SCSI - адаптеров. Если Ваш загрузочный жесткий диск подключен к SCSI - адаптеру, Вам придется для правильной работы адаптера загрузить его драйвер. Обычно эти драйверы поставляются вместе со SCSI - адаптером, и что Вам необходимо сделать - это правильно установить их. Конечно, MS-DOS будет работать и загружаться и без этих драйверов. Однако она не сможет использовать всех возможностей адаптера. (смотри [3]).

3. Драйверы CD-ROM и других сменных дисководов. Если у Вас установлен CD-ROM дисковод, стример, магнитооптические, Zip- и Jazz- дисководы, другое оборудование для резервного копирования, Вам также придется установить в файл Config.sys драйверы для их поддержки. Эти файлы имеют разные названия, но они обязательно присутствуют на прилагаемых к этим устройствам дискетах и компакт-дисках. Перед установкой SCSI 0 устройств необходим драйвер SCSI - адаптера.

4. Драйвер поддержки файловой системы компакт-дисков MSCDEX.EXE. Он необходим для того, чтобы Вы могли бы прочесть информацию на компакт-дисках. Этот драйвер поставляется вместе с драйвером CD - дисковода, однако можно использовать собственный файл MS-DOS версий 6.xx с тем же именем.

5. Драйверы поддержки сжатых дисков. С целью более эффективного использования дискового пространства в операционных системах имеется возможность создание "сжатых" томов в виде файлов (Compressed Volume File, CVF). Этот файл в дальнейшем операционная система распознает как дополнительный раздел жесткого диска. Для создания CVF используются различные утилиты, например Stacker. В MS-DOS 6.0 для этих целей может использоваться набор файлов с именем DBLSPACE, а в версиях начиная с 6.2 - еще файлы с именем DRVSPACE. Файлы DBLSPACE.BIN и DRVSPACE.BIN являются системными и устанавливаются командой SYS вместе с файлами IO.SYS, MSDOS.SYS и COMMAND.COM. Они позволяют автоматически распознать CVF и смонтировать его как том. Для доступа к CVF других фирм-производителей данного программного обеспечения необходимо использование драйверов CVF других этих фирм. (О сжатых дисках и CVF смотри книги [3] и [4]).

6. Драйвер хранения информации кодовых страниц MS-DOS (смотри "Руководство пользователя MS-DOS") Display.sys. Этот файл используют для переключения кодовых страниц дисплея. В частности, в MS-DOS версии 6.22 его можно использовать для русификации (смотри книги [3] и [4]).

7. Драйвер поддержки национальных кодовых страниц и раскладок клавиш для клавиатур, отличных от клавиатур США. Этот драйвер загружается командой keyb (файл keyb.com) в файле autoexec.bat.

8. Файл поддержки смены национальных кодовых страниц (с помощью команды chcp) для MS-DOS NLSFUNC.EXE. Этот драйвер не желательно использовать при работе с WINDOWS.

9. Программа - русификатор экрана. Она служит для отображения символов кириллицы на мониторах, работающих в текстовом режиме EGA и VGA. Обычно это файл UNISCR.COM (но необязательно).

10. Программа - русификатор клавиатуры. Позволяет набирать символы русского алфавита на клавиатуре. В качестве примера этой программы можно указать файл UNIKBD.COM.

11. Совмещенная программа - русификатор экрана и клавиатуры. Примерами могут служить программы keyrus и rkega.

12. Программы - русификаторы принтеров. Они предназначены для того, чтобы принтеры (обычно матричные) с "прошитыми" англоязычными шрифтами могли печатать русские символы. Обычно они состоят из файла шрифтов и программы их посылки на принтер.

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

13. Специальные резидентные программы для выгрузки "зависших" программ. Среди них можно выделить программы stop и kill.

14. Программы для освобождения базовой оперативной памяти от ненужных резидентных программ (типа release.com).

15. Антивирусные программы - "сторожа" (типа VSafe и Anti4us). Они предназначены для перехвата обращения программ, зараженных вирусами, к системной информации на диске. Компьютерные вирусы всегда обращаются к системным областям диска, и перехват этих обращений иногда предотвращает от размножения вирусов. При каждом обращении к системным областям на диске, характерные для вирусов, эти программы запрашивают подтверждение на осуществление этих действий.

16. Сетевые драйверы. Они служат для поддержки оборудования, связывающего отдельные компьютеры в локальные сети (о локальных сетях смотри первый выпуск серии). Сюда входят: драйверы поддержки и установления связи (типа lsl.com), собственно драйвер сетевой платы, драйверы сетевых протоколов (IPXODI,COM, TCPIP.EXE и другие), а также программа - клиент (netx.com, net.exe, vlm.exe и другие). Только после загрузки всех сетевых драйверов компьютер может работать в сети.

17. Драйверы командной строки. Встроенные средства MS-DOS и Windows имеют очень ограниченные возможности манипулирования данными в командной строке (в отличие от UNIX). Поэтому для облегчения работы оператора используют либо файловые оболочки (примером которой может быть Norton Commander фирмы Semantec), либо (как в менее "продвинутых" операционных системах) драйверы командной строки. Фирменным, поставляемым вместе с MS-DOS и Windows 95/98/NT, драйвером командной строки является программа doskey.com.

18. Драйвер для обслуживания дисковой кэш-памяти (типа Smartdrv.exe, Nchache.exe и других). Эти программы имеет смысл устанавливать только при большом объеме памяти, поэтому в данной главе, посвященной минимизации базовой памяти, она рассматриваться не будет (смотри раздел "Использования кэша диска в MS-DOS".)

19. Другие резидентные программы. Среди них можно отметить, например, научный калькулятор scc, различные программы для напоминания дат, событий и т.п.

Необходимо, чтобы при загрузке драйверов и резидентных программ соблюдались следующие условия:

а) Не нарушался порядок вызова резидентных программ. Например, русификатор экрана UNISCR должен загружаться перед русификатором клавиатуры UNIKBD. Этот порядок определяется следующим логическим соображением. Если необходимо будет выгрузить резидентные русификаторы, то лучше оставить возможность отображения символов кириллицы, отказавшись от ввода этих символов, чем наоборот.

б) Если же для некоторых из резидентных программ порядок следования не существен, то их необходимо располагать так, чтобы они занимали непрерывный блок памяти и чтобы между ними не было свободного пространства. Для определения необходимого объема памяти для резидентной программы используйте команду mem операционных систем MS_DOS и Windows 95/98 (смотри книги [3] [1]).

Также для минимизации места, выделяемого для прикладных резидентных программ, можно использовать команду install в файле Config.sys. Ее формат следующий:

install=[<диск>:\][<путь>\]<программа> [<параметры_программы>]

Загрузка резидентной программы этим способом по сравнению с загрузкой в файле autoexec.bat уменьшает объем занимаемой ею памяти (не будет загружен PSP и другая служебная информация.) Однако такой способ загрузки имеет свои недостатки, главные их которых:

1. Командой install можно загрузить резидентную программу только в базовую память. В принципе возможна загрузка программы в область старшей памяти с помощью команды installhigh=, являющейся разновидностью команды install в MS-DOS v. 6.2x. Эта команда описана, например, в книге Богумирского [4]. Однако автор на практике не сталкивался с ее использованием.

2. Загруженную таким образом программу уже нельзя выгрузить.

3. Поскольку загрузка резидентных программ командой install происходит в файле Config.sys, то при осуществлении нужного порядка загрузки программы теряется гибкость при оптимизации памяти.

Что касается порядка вызова драйверов в файлах Config.sys и Autoexec.bat, то он должен быть следующим:

1. Первой строкой в файле Config.sys должна стоять директива загрузки драйвера расширенной памяти Himem.sys (если он необходим).

2. Второй строкой в этом же файле должна стоять команда загрузки файла дополнительной памяти Emm386.exe (также если он необходим).

3. В некоторых случаях первой строкой в файле Config.sys вместо загрузки драйверов Himem.sys и Emm386.exe можно загрузить драйвер Quemm386.sys. Это совмещенный драйвер расширенной и дополнительной памяти, разработанный фирмой Quarterdeck.

4. После них (опять же если это необходимо) необходимо загрузить драйвер кэширования диска Smartdrv.exe или какой-либо другой для осуществления двойной буферизации.

5. После него в этом же файле должны идти параметры настройки памяти операционной системы типа Files, Buffers и другие.

6. Лишь после всего этого в файле Config.sys можно вводить директивы загрузки драйверов Ваших устройств с помощью команд Device, Devicehigh и install.

7. Последней строкой в файле Config.sys должна стоять команда поддержки национальных форматов Country.

В файле же Autoexec.bat последовательность вызова резидентных программ такова:

1. Первой загружается в файле autoexec.bat программа release.com. Она предназначена для выгрузки более ненужных резидентных программ из базовой оперативной памяти. Данная утилита не выгружает программы, которые были загружены в область старших адресов памяти командой lh или в базовую память директивой install файла Config.sys. Этот драйвер работает не всегда корректно, поэтому его нужно устанавливать на компьютерах, не имеющих расширенной памяти, а обладающие только базовой памятью (как, например, компьютеры с процессором i8088 - смотри раздел "Классификация оперативной памяти"). В этом случае размер базовой оперативной памяти является критическим ресурсом, и ее необходимо "чистить" от лишних резидентных программ.

2. Затем загружаются драйверы мыши, CD-ROM - дисковода, русификаторы клавиатуры, экрана и драйверы других устройств. Порядок их загрузки достаточно произволен. Необходимо только соблюдать, чтобы драйвер - русификатор клавиатуры загружался бы после драйвера - русификатора экрана, а драйвер мыши - после русификатора клавиатуры (для компьютеров, не использующих расширенную память) или перед русификатором экрана (для компьютеров, использующих расширенную память). В остальном программы должны располагаться в порядке, который минимизирует свободные участки памяти между программами.

3. Если у Вас инсталлирована сеть, необходимо также загрузить драйверы для ее работы. Для сетей Novell NetWare последовательность загрузки сетевых драйверов следующая: первым загружается драйвер поддержки связи lsl.com; вторым - драйвер сетевой платы (их названия могут отличаться у разных производителей сетевых плат), третьими - драйверы сетевых протоколов (IPXODI, TCPIP и другие). Четвертой загружается клиентская оболочка рабочей станции. В качестве клиентских оболочек может выступать программа net.exe фирмы Microsoft, программы netx.com и vlm.exe фирмы Novell. Порядок вызова этих программ существен. Однако они могут не идти сразу одним блоком, то есть между ними можно вставлять другие драйверы. Если рабочая станция должна все время работать в сети, сетевые драйверы не должны выгружаться из памяти. Поэтому имеет смысл разместить их в области старших адресов (если они это позволят).

3. После этого можно поставить программу - драйвер командной строки doskey.com. Этот драйвер автор рекомендует устанавливать в том случае, если использование файловых оболочек (типа Norton Commander, Volkov Commander) нежелательно. Это связано с тем, что файловые оболочки занимают больше места в оперативной памяти, хотя они дают более широкие возможности работы с командной строкой, чем драйвер doskey.

4. После всех этих драйверов можно поставить программу предотвращения "зависания" компьютера (типа kill.com и stop.exe). Эти программы имеет смысл использовать только в том случае, когда Вы работаете с ненадежным программным обеспечением под управлением MS-DOS (например, когда Вы сами пишите или отлаживаете программы). В остальных случаях их не следует применять по причине их ненадежной работы и конфликтов с другими программными продуктами.

5. Только теперь Вы можете установить Ваши любимые прикладные резидентные программы (типа калькулятора, календаря, будильника, контекстной справки help, ng и другие.

7. Самой последней должна загружаться файловая оболочка (типа Norton Commander) либо оболочка Windows или другой расширитель DOS. Дело в том, что эти программы полностью перехватывают выполнение программ MS-DOS, а дальнейшее выполнение файла autoexec.bat прекращается до выхода из этих оболочек.

При загрузке резидентных программ следует учитывать, что они имеют четыре разных размера, а именно:

1) Истинный размер (длина) файла. Она отсчитывается от начала заголовка файла до его конечного байта. Именно ее показывают программы просмотра каталогов дисков.

2) Размер, занимаемый этой программой на диске (равный количеству занятых кластеров умноженного на размер кластера диска).

3) Размер, занимаемый программой в оперативной памяти. Из реальной длины удаляются заголовок файла и другая системная информация, а добавляется префикс программного сегмента (PSP), занимающий память в размере 256 байт.

4) Размер памяти, необходимый в процессе загрузки программы.

Как правило, Размер 3 < Размера 1 < Размера 2, а Размер 3 <= Размера 4. Превышение размера программы, указанного в пункте 4), над размером пункта 3 связано с тем, что, кроме самой программы, в оперативной памяти на начальном этапе загрузки программы может происходить выполнение служебного кода. Например, может происходить чтение файлов конфигурации, производится настройка и тестирование системы, и осуществляться другие служебные операции. После загрузки резидентных программ в память код, ответственный за эти служебные процедуры, выгружается из памяти. Поэтому реальный размер памяти запущенной резидентной программы будет отличаться от требуемого объема памяти при загрузке программы. Это следует учитывать в процессе минимизации памяти. В качестве программы, требующей при загрузке больше памяти, чем при своей работе, можно назвать драйвер - русификатор keyrus. Такие программы с целью минимизации памяти нельзя загружать последней [3] противном случае память, которая освобождается после загрузки резидентной программы, не сможет использоваться другими прикладными программами (появляется "дыра" в памяти).

 

Назад...   Вперед...

 

Гостевая книга Обсуждение в блоге. Отправить E-mail Автору проекта.

=== *** === *** === *** ===

В настоящее время проект закрыт (в версии 1.3.0 beta). Автор приносит извинения за прекрашение разработки.

Hosted by uCoz