Спецификация XMS
Спецификация дополнительной памяти (eXtended Memory Specification — XMS) разработа
на в 1987 году компаниями Microsoft, Intel, AST Corp. и Lotus Development. Она определяет
способ, с помощью которого программы получают доступ к дополнительной памяти. Эта спе
цификация предназначена для компьютеров с процессорами 286 и последующими и позво
ляет программам, работающим в реальном режиме (например, выполняемым под управлением
DOS), использовать дополнительную память и еще один блок, обычно недоступный для DOS.
До появления XMS не было способа координации работы программ, которые переключа
ли процессор в защищенный режим и использовали дополнительную память. Ни одна из про
грамм не могла узнать, что делает с дополнительной памятью другая, поскольку она не
“видела” этой памяти из своего реального режима. Главным арбитром стал драйвер
Himem.sys. Сначала он забирает всю дополнительную память в свое распоряжение, а затем
выделяет ее программам, соблюдающим протокол XMS. Благодаря этому некоторые про
граммы, использующие XMS, могут работать под управлением DOS одновременно на одном
компьютере, периодически переключая процессор в защищенный режим для получения дос
тупа к памяти. Протокол XMS запрещает программе доступ к той области памяти, которая
используется другой программой. Поскольку среда Windows 3.х является диспетчером про
грамм, который при одновременном выполнении нескольких программ переключает процес
сор в защищенный режим и обратно, для функционирования Windows требуется XMS.
Как правило, Windows 95 работает в защищенном режиме, однако переключается в реальный
режим для получения доступа к системным ресурсам. Операционные системы Windows NT,
Windows 2000 и OS/2 работают исключительно в защищенном режиме.
Организовать дополнительную память по спецификации XMS можно, загрузив соответствую
щий драйвер в файле Config.sys. Наиболее распространенной является программа Himem.sys,
которая входит в состав Windows и последних версий DOS (в том числе и DOS 6). Существуют и
другие диспетчеры памяти, например QEMM, которые также загружаются как драйверы из файла
Config.sys и организуют дополнительную память в соответствии со спецификацией XMS. Опе
рационные системы Windows 9х и Windows NT/2000 при переключении в режим MS DOS автома
тически предоставляют дополнительную память по спецификации XMS.