А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
0-9 A B C D I F G H IJ K L M N O P Q R S TU V WX Y Z #


Чтение книги "Полное руководство по Microsoft Windows XP" (страница 64)

   Системные файлы
   Теперь, когда вы получили первое представление об архитектуре Windows XP, можно перейти к рассмотрению ее компонентов и проследить механизмы их функционирования. Windows XP использует два режима исполнения программных приложений: режим ядра (Kernel Mode) и пользовательский режим (User Mode). Процессор обычно заставляет приложения применять два из четырех имеющихся уровней защиты. Защита файлов операционной системы гарантирует нормальную работу операционной системы даже в условиях разрушения программного приложения. Другими словами, обеспечение безопасности и защита файлов являются весьма важными составляющими, дающими высокие показатели стабильности и надежности компьютерной системы.
   Пользовательский режим соответствует наиболее низкому уровню защиты, причем все пользовательские приложения и утилиты операционной системы задействуют именно такой режим. На практике система «не доверяет» пользовательским приложениям, поэтому для установления связи с ОС им приходится взаимодействовать с промежуточными объектами.
   Режим ядра соответствует наивысшему уровню защиты, причем все драйверы и базовые файлы работают именно в этом режиме. Кроме того, большая часть (если не все) служб также использует данный режим. Операционная система «доверяет» тем файлам, которые открыты в режиме ядра, поэтому для них предусматривается дополнительный контроль с тем, чтобы не допустить разрушения структуры системы. В частности, Microsoft рекомендует применять в системе только предлагаемые корпорацией драйверы.
   В приводящихся ниже разделах подробно описываются оба режима. Важно хорошо осознать их возможности, а также понять характер их влияния на операционную систему. Правильное понимание воздействия, которое файл может оказать на операционную систему, весьма важно для поиска неисправностей. Если драйвер выходит из строя, он в ряде случаев приводит к разрушению всей системы. С другой стороны, вероятность повреждения приложения самой операционной системы относительно невелика. Если в Windows XP вы столкнулись с подобным явлением, оно, скорее всего, является следствием некорректного функционирования системного программного приложения в режиме ядра. Когда Windows XP сообщает о закрытии программного приложения в связи с обнаружением ошибки, это может быть вызвано работой этого приложения в пользовательском режиме и его некорректным поведением.
Пользовательский режим
   Пользовательский режим связан с исполнением приложений. При запуске 32-разрядного приложения операционная система выделяет для него независимый объем памяти. Современные приложения могут задействовать объемы памяти величиной до 4 Гб. Windows XP выделяет объем памяти подобному приложению на основе анализа кодов и данных, которые хранятся в соответствующем разделе области памяти, называемом рабочим разделом памяти (Process Working Set). Некоторые современные приложения, предназначенные для создания сложной графики или моделирования процессов, реально претендуют на использование объемов памяти величиной до 4 Гб.
   Выделяемая область памяти (4 Гб) обычно носит виртуальный характер, то есть не существует как реальная физическая среда. Многие пользователи в принципе не располагают объемами оперативной памяти на уровне 4 Гб. В некоторых случаях они просто не могут выделить объем в 4 Гб (даже при его наличии в системе), поскольку это требует объединения всей области оперативной памяти и отвлечения заметной области памяти жесткого диска. Предел в 4 Гб для программ является скорее теоретическим показателем, однако он служит своего рода точкой отсчета для создания более мощных по своим параметрам оперативной памяти и жестких дисков, которые, видимо, появятся уже в ближайшем будущем.
   Ниже речь пойдет о методах выделения операционной системой Windows XP необходимых объемов памяти прикладным программам. Эти методы обычно ориентированы на применение программы Диспетчер виртуальной памяти (Virtual Memory Manager), когда каждое 32-разрядное приложение Windows использует свой небольшой объем памяти, причем ОС позволяет одним приложениям временно «заимствовать» память у других. Такой подход заметно отличается от тех, которые предлагались в предшествующих версиях Windows, когда все программы могли задействовать любые свободные разделы памяти. Специалисты Microsoft намеренно отказались от прежнего подхода, поскольку в ряде случаев он приводил к поистине катастрофическим последствиям. По этой причине они построили Windows XP более надежно, полностью исключив возникновение подобных катаклизмов.
   Средства поддержки 16-разрядных приложений в Windows XP отличаются от средств поддержки 32-разрядных приложений. Так, операционная система предусматривает выделение единой области памяти для 16-разрядных приложений, поскольку именно в этом заключается принцип их создания. На практике Windows XP не активизирует эти приложения непосредственным образом. Для запуска 16-разрядных приложений используется специальная программа-утилита (см. файл WOWEXEC.EXE в каталоге SYSTEM32). В разделе «Системные файлы Windows XP, используемые в режиме ядра» данной главы будет показано, каким образом средства поддержки 16-разрядных приложений связаны с ядром Windows XP. Другими словами, пользовательский режим с применением 16-разрядных приложений во многом аналогичен такому же режиму с применением 32-разрядных приложений – за тем лишь отличием, что он опирается на компоненты 16-разрядного типа и реализуется с помощью единого раздела памяти.
   Windows XP также поддерживает программные приложения MS DOS. В данном случае, однако, речь не идет о моделировании старой версии Windows со встроенными средствами поддержки. MS DOS является совершенно иной по структуре операционной системой и в этом смысле заметно отличается от Windows XP.
...
   Рекомендация
   Когда специалисты Microsoft создавали Windows NT, они разрабатывали программы, совместимые с другими типами систем. Эта традиция корпорации Microsoft была продолжена и в Windows 2000. Подобная совместимость предусматривала исполнение программ и сценариев с помощью других ОС, например мобильной операционной системы для UNIX – POSIX (Portable Operating System Interface for Unix), версия OS/2 1.0, и дисковой операционной системы MS DOS (Disk Operating System). При загрузке Windows XP нельзя не заметить присутствующие в ней усовершенствованные средства поддержки MS DOS, однако в данном случае поддержка POSIX и OS/2 разработчиками предусмотрена не была. Официальной причиной отхода от традиций явилась ссылка на моральное устаревание этих операционных систем и заметное уменьшение случаев их применения. К сожалению, последнее означает, что программные инструменты POSIX, присутствующие в пакете Resource Kit Windows 2000, нельзя использовать с Windows XP. При этом некоторые, в частности правительственные, сайты потребуют заметной доработки. Одно из решений данной проблемы связано с выпуском программы Microsoft Interix (http://www.microsoft.com/WINDOWS2000/interix), эмулирующей функции ОС POSIX и являющейся еще одной альтернативой UNIX.
   Специалисты Microsoft предусмотрели использование программ MS DOS, причем в процессе их исполнения иногда создается впечатление, что это происходит в самой операционной системе. В данном случае применение дополнительной среды позволяет создать результирующую рабочую среду, моделирующую функции старой ОС. Специалисты Microsoft называют подобную среду виртуальной машиной DOS (DOS Virtual Machine). При этом приложения и «не подозревают» о пользовательском режиме, операционной системе Windows XP или каких-либо других программах и совершенно «уверены», что они исполняются в рабочей среде MS DOS.
   Windows XP приходится поддерживать подобные иллюзии, поскольку многие программы MS DOS захватывают большие объемы памяти, взаимодействуют с системой на основе устаревших приемов и нарушют все мыслимые и немыслимые правила, принятые для среды Windows XP. В свое время корпорация Microsoft предложила MS DOS в качестве однозадачной системы, поэтому нет ничего странного в том, что ее программные приложения не могут «вписаться» в рабочую среду Windows XP, поэтому Windows XP вынуждена отделять и надежно изолировать их от других своих разделов.
Системные файлы Windows XP, используемые в режиме ядра
   Первое, что вы должны хорошо себе представлять – это ядро операционной системы. В данном случае под ядром понимается базовая часть ОС, то есть та ее часть, которая обеспечивает объединение всех прочих разделов и объектов и выполнение всех основных функций. Программисты обычно обращаются к ядру с помощью специального интерфейса – интерфейса API (Application Programming Interface – интерфейс прикладного программирования).
   При создании приложения для Windows разработчик обычно обращается к интерфейсу API и предлагает операционной системе выполнить необходимую операцию. Подобный запрос во многом напоминает обращение, направляемое приятелю, чтобы он, скажем, сделал несколько покупок в магазине. Коды интерфейса API присутствуют в системных файлах. Естественно, рассмотренная выше модель интерфейса API является весьма упрощенной. Windows XP обычно использует два интерфейса API: 16– и 32-разрядный. Каждый их этих интерфейсов допускает исполнение приложений в пользовательском режиме, в частности направление запросов операционной системе, которая сама работает в режиме ядра.
   Вне зависимости от конкретного типа интерфейса API, применяемого приложением Windows, обеспечивается взаимодействие с тремя компонентами (файлами) операционной системы. Так, 16-разрядные версии этих файлов соответствуют GDI.EXE, USER.EXE и KRNL386.EXE, а 32-разрядные – GDI32.DLL, USER32.DLL и KERNEL32.DLL. Разработчики называют данный набор файлов интерфейсом Win32 API. Имеются и другие интерфейсы API для выполнения требуемых операций, причем в большинстве случаев запросы к API формируются при исполнении приложения в пользовательском режиме и при обращении его к операционной системе, работающей в режиме ядра.
...
   Примечание
   Другие операционные системы поддерживаются Windows XP с помощью специальных драйверов, служб и библиотечных файлов DLL, упоминавшихся в предшествующих разделах. Другими словами, сервер транслирует запросы, создаваемые приложениями, в запросы Windows API. При этом приложения, которые ориентируются на другие ОС, используют те же компоненты, что и приложения Windows (несмотря на тот факт, что они предназначены для работы с совсем другими операционными системами).
   В приводящемся ниже перечне подробно описываются три упомянутых базовых компонента (файла):
   • ядро операционной системы Windows (модуль Kernel, файл KRNL386.EXE или KERNEL32.DLL). Этот модуль средств Windows XP поддерживает функции низкого уровня, используемые различными приложениями. Например, каждый раз, когда приложение испытывает потребность в области памяти, оно обращается к компоненту Windows Kernel для получения необходимого объема памяти. Этот компонент образует реальное ядро операционной системы, однако Windows XP не сможет нормально работать без двух других компонентов. Поэтому указанный файл следует рассматривать в виде «части единого целого», что станет более очевидным, когда вы познакомитесь с его содержимым. Компонент Windows Kernel не взаимодействует с интерфейсом или другими устройствами – единственным объектом его взаимодействия является сама операционная система Windows;
   • интерфейс графического устройства (компонент Graphical Device Interface, файл GDI.EXE или GDI32.DLL). Каждый раз, когда приложение выводит на экран данные, оно прибегает к помощи службы интерфейса графического устройства (Graphical Device Interface – GDI). Этот компонент Windows XP отвечает за использование шрифтов, служб печати, режимов воспроизведения, режимов управления цветностью и за другие подобные режимы, инициируемые пользователем при исполнении программных приложений;
   • модуль User (модуль User, файл USER.EXE или USER32.DLL). Windows XP основана на применении хорошо известных объектов – окон. При этом требуется управляющая программа, которая отслеживает все окна, создаваемые приложением для вывода данных различного типа. Тем не менее работа компонента User в этот момент только начинается. Каждый раз при выводе приложением значка или изображения кнопки оно задействует тот или иной компонент модуля User и его соответствующую функцию. Поэтому модуль User интерфейса Windows API проще представить в виде управляющей программы: подобный подход позволяет правильно организовывать и использовать объекты данных.
Чтение онлайн



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 [64] 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

Навигация по сайту
Реклама


Читательские рекомендации

Информация