1. Логика развития и ключевые свойства версий ОС Windows 3x, 9x, NT, 2000, XP. Графические интерфейсы и расширения для DOS Эти версии Windows не были полноценными операционными системами, а являлись надстройками к операционной системе MS-DOS и были по сути многофункциональным расширением, добавляя поддержку новых режимов работы процессора, поддержку многозадачности, обеспечивая стандартизацию интерфейсов аппаратного обеспечения и единообразие для пользовательских интерфейсов программ. Предоставляли встроенные средства (GDI и USER, первые версии Windows вообще состояли из трех модулей — KERNEL, GDI и USER, первый из них предоставлял вызовы управления памятью, запуском .EXEфайлов и загрузкой .DLL-файлов, второй — графику, третий — окна) для создания графического интерфейса пользователя. Они работали с процессорами начиная с Intel 8086. 1. Windows 1.0 (1985) 2. Windows 2.0 (1987) 3. Windows 2.1 (Windows 386, 1987) — в системе появилась возможность запуска DOS-приложений в графических окнах, причём каждому приложению предоставлялись полные 640 Кб памяти. Полная поддержка процессора 80286. Появилась поддержка процессоров 80386. 4. Windows 3.0 (1990) — улучшена поддержка процессоров 80386 и защищённого режима. 5. Windows 3.1 (1992) — серьёзно переработанная Windows 3.0; устранены UAE (Unrecoverable Application Errors — фатальные ошибки прикладных программ), добавлен механизм OLE, печать в режиме WYSIWYG («что видите, то и получите»), шрифты TrueType, изменён Проводник (диспетчер файлов), добавлены мультимедийные функции. 6. Windows для рабочих групп (Windows for Workgroups, WfWG) 3.1/3.11 — первая версия ОС семейства с поддержкой локальных сетей. В WfWG 3.11 также испытывались отдельные усовершенствования ядра, применённые позднее в Windows 95. Семейство Windows 9x Включает в себя Windows 95, Windows 98 и Windows ME. Windows 95 была выпущена в 1995 году. Её отличительными особенностями являются: новый пользовательский интерфейс, поддержка длинных имён файлов, автоматическое определение и конфигурация периферийных устройств Plug and Play, способность исполнять 32-битные приложения и наличие поддержки TCP/IP прямо в системе. Windows 95 использует вытесняющую многозадачность и выполняет каждое 32-битное приложение в своём адресном пространстве. Операционные системы этого семейства не являлись безопасными многопользовательскими системами как Windows NT, поскольку из соображений совместимости вся подсистема пользовательского интерфейса и графики оставалась 16-битной и мало отличалась от той, что в Windows 3.x. Так как этот код не был thread-safe, все вызовы в подсистему оборачивались в мьютекс по имени Win16Lock, который, кроме того, ещё и находился всегда в захваченном состоянии во время исполнения 16битного приложения. Таким образом, «повисание» 16-битного приложения немедленно блокировало всю ОС. Программный интерфейс был подмножеством Win32 API, поддерживаемым Windows NT, но имел поддержку юникода в очень ограниченном объёме[9]. Также в нём не было должного обеспечения безопасности (списков доступа к объектам и понятия «администратор»). В составе Windows 95 присутствовал MS-DOS 7.0, однако его роль сводилась к обеспечению процесса загрузки и исполнению 16-битных DOS приложений. Исследователи заметили, что ядро Windows 95 — VMM — обращается к DOS под собой, но таких обращений довольно мало, главнейшая функция ядра DOS — файловая система FAT — не использовалась. В целом же интерфейс между VMM и нижележащей DOS никогда не публиковался, и DOS была замечена (тем же Эндрю Шульманом) в наличии недокументированных вызовов только для поддержки VMM. Семейство Windows NT Основная статья: Windows NT Операционные системы этого семейства в настоящее время работают на процессорах с архитектурами x86, x64, и Itanium,ARM. Ранние версии (до 4.0 включительно) также поддерживали некоторые RISC-процессоры: Alpha, MIPS, и Power PC. Все операционные системы этого семейства являются полностью 32- или 64- битными операционными системами, и не нуждаются в MS-DOS даже для загрузки. Win 2000 Новшества по сравнению с Windows NT 4.0 Некоторыми из наиболее существенных улучшений в Windows 2000 по сравнению с Windows NT 4.0 являются: Поддержка службы каталогов Active Directory. Серверная часть Active Directory поставляется с изданиями Server, Advanced Server и Datacenter Server, в то время как полную поддержку службы на стороне клиента осуществляет издание Professional. Службы IIS версии 5.0. По сравнению с IIS 4.0 эта версия включает, помимо прочего, версию 3.0 системы вебпрограммирования ASP. Файловая система NTFS версии 3.0 (также называемая NTFS 5.0 по внутренней версии Windows 2000 — NT 5.0). В этой версии NTFS впервые появилась поддержка квот, то есть ограничений на максимальный объём хранимых файлов для каждого пользователя. Обновлённый пользовательский интерфейс, включающий Active Desktop на основе Internet Explorer версии 5 и подобный, таким образом, интерфейсу Windows 98. Цветовая схема оформления была переработана. Языковая интеграция: предыдущие версии Windows выпускались в трёх вариантах — для европейских языков (однобайтные символы, письмо только слева направо), для дальневосточных языков (многобайтные символы) и для ближневосточных языков (письмо справа налево с контекстными вариантами букв). Windows 2000 объединяет эти возможности; все её локализованные версии сделаны на единой основе. Шифрованная файловая система EFS, с помощью которой можно зашифровать файлы и папки. Win XP Некоторыми из наиболее заметных улучшений в Windows XP по сравнению с Windows 2000 являются: Новое оформление графического интерфейса, включая более округлые формы и плавные цвета; а также дополнительные функциональные улучшения (такие, как возможность представления папки в виде слайд-шоу в проводнике Windows). Поддержка метода сглаживания текста ClearType, улучшающего отображение текста на ЖК-дисплеях (по умолчанию отключена). Возможность быстрого переключения пользователей, позволяющая временно прервать работу одного пользователя и выполнить вход в систему под именем другого пользователя, оставляя при этом приложения, запущенные первым пользователем, включёнными. Функция «удалённый помощник», позволяющая опытным пользователям и техническому персоналу подключаться к компьютеру с системой Windows XP по сети для разрешения проблем. При этом помогающий пользователь может видеть содержимое экрана, вести беседу и (с позволения удалённого пользователя) брать управление в свои руки. Программа восстановления системы, предназначенная для возвращения системы в определённое предшествующее состояние (эта функция является развитием аналогичной программы, включённой в Windows ME), а также улучшение других способов восстановления системы. Так, при загрузке последней удачной конфигурации загружается также и прежний набор драйверов, что позволяет в ряде случаев легко восстановить систему при проблемах, возникших в результате установки драйверов; возможность отката драйверов и т. д. Улучшенная совместимость со старыми программами и играми. Специальный мастер совместимости позволяет эмулировать для отдельной программы поведение одной из предыдущих версий ОС (начиная с Windows 95). Впрочем, функция совместимости присутствует в Windows 2000 с пакетом обновления 2. [4] Возможность удалённого доступа к рабочей станции благодаря включению в систему миниатюрного сервера терминалов (только в издании Professional). Более развитые функции управления системой из командной строки. Поддержка проводником Windows цифровых фотоформатов и аудиофайлов (автоматическое отображение метаданных для аудиофайлов, например, тегов ID3 для MP3-файлов). Windows XP включает технологии, разработанные фирмой Roxio, которые позволяют производить прямую запись CD из проводника, не устанавливая дополнительное ПО, а работа с перезаписываемыми компакт-дисками становится подобной работе с дискетами или жёсткими дисками. Также в Media Player включена возможность производить запись аудио-дисков. Возможности работы с образами дисков не предусмотрено. Windows XP может работать с архивами ZIP и CAB без установки дополнительного ПО. Работа с архивами данного типа возможна в проводнике как с обычными папками, которые можно создавать и удалять, заходить в архив, добавлять/удалять файлы подобно работе с обычными папками. Также возможна установка пароля на архив. При необходимости можно назначить для работы с этими архивами любое стороннее программное обеспечение. Улучшения в подсистеме EFS, заключающиеся в необязательности агента восстановления, более безопасного сохранения ключей. Шифруемые файлы теперь не просто удаляются, а перезаписываются нулями, что гораздо надёжнее. Начиная с SP1 становится возможным использовать (он и используется по умолчанию) алгоритм AES, наряду с DESX и 3-DES. Настраиваемые панели инструментов, с помощью которых можно оптимизировать доступ к файлам, папкам и ресурсам Интернета. Достаточно разместить их на краю Рабочего стола (наподобие боковой панели) или на Панели задач (в форме ссылки). Частичное использование сборок (англ. Side-by-side assembly, (SxS)). 2. Логика развития и ключевые свойства версий ОС Windows Server 2003, Server 2008, Windows 7, Windows 8. Поддержка .NET Windows Server 2003 — первая из операционных систем Microsoft, которая поставляется с предустановленной оболочкой .NET Framework. Это позволяет данной системе выступать в роли сервера приложений для платформы Microsoft .NET без установки какого-либо дополнительного программного обеспечения. Улучшения Active Directory Windows Server 2003 включает в себя следующие улучшения для Active Directory — службы каталогов, впервые появившейся в Windows 2000: Возможность переименования домена Active Directory после его развёртывания. Упрощение изменения схемы Active Directory — например, отключения атрибутов и классов. Улучшенный пользовательский интерфейс для управления каталогом (стало возможно, например, перемещать объекты путём их перетаскивания и одновременно изменять свойства нескольких объектов). Улучшенные средства управления групповой политикой, включая программу Group Policy Management Console. IIS 6.0 В составе Windows Server 2003 распространяется версия 6.0 служб Internet Information Services, архитектура которой существенно отличается от архитектуры служб IIS 5.0, доступных в Windows 2000. В частности, для повышения стабильности стало возможным изолировать приложения друг от друга в отдельных процессах без снижения производительности. Также был создан новый драйвер HTTP.sys для обработки запросов по протоколу HTTP. Этот драйвер работает в режиме ядра, в результате чего обработка запросов ускоряется. Безопасность По заявлениям Microsoft, в Windows Server 2003 большое внимание было уделено безопасности системы. В частности, система теперь устанавливается в максимально ограниченном виде, без каких-либо дополнительных служб, что уменьшает поверхность атаки. В Windows Server 2003 также включён программный межсетевой экран Internet Connection Firewall. Впоследствии к системе был выпущен пакет обновления, который полностью сосредоточен на повышении безопасности системы и включает несколько дополнительных функций для защиты от атак. Согласно американскому стандарту безопасности Trusted Computer System Evaluation Criteria (TCSEC) система Windows Server 2003 относится к классу безопасности C2 — Controlled Access Protection. Прочее В Windows Server 2003 впервые появилась служба теневого копирования тома (англ. Volume Shadow Copy Service), которая автоматически сохраняет старые версии пользовательских файлов, позволяя при необходимости вернуться к предыдущей версии того или иного документа. Работа с теневыми копиями возможна только при установленном «клиенте теневых копий» на ПК пользователя, документы которого необходимо восстановить. Также в данной версии системы был расширен набор утилит администрирования (dsadd, dsget, dsmod и др.), вызываемых из командной строки, что упрощает автоматизацию управления системой. Роли Введено новое понятие — «роли», на них основано управление сервером. Проще говоря, чтобы получить файл-сервер, необходимо добавить роль — «файл-сервер». Поддержка оборудования Windows Server 2003, Standard Edition поддерживает 4 центральных процессора и до 4 Гбайт оперативной памяти. 64разрядная версия Standard Edition поддерживают до 32 Гбайт оперативной памяти. Windows Server 2003 Enterprise Edition поддерживает до 32 Гбайт оперативной памяти на процессорах х86 (оперативная память более 4Гбайт может использоваться только при включенной функции Physical Address Extension[1], до 64 Гбайт оперативной памяти на процессорах Itanium и до 8 центральных процессоров. В ней также поддерживаются 64-разрядные процессоры Intel Itanium, оперативная память с возможностью «горячей» замены и неоднородный доступ к памяти (NUMA). Windows Server 2003 Datacenter Edition способна работать с бо́льшими объёмами оперативной памяти — до 64 Гбайт на процессорах х86 (для доступности более 4 Гбайт также необходимо включение PAE [1]) и до 128 Гбайт на процессорах Itanium. Минимальное количество процессоров для работы Datacenter Edition — 8, максимальное — 32. Server 2008 Server Core Windows Server 2008 включает вариант установки называемый Server Core (рус. ядро сервера). Server Core — это существенно облегченная установка Windows Server 2008 в которую не включена оболочка Windows Explorer. Вся настройка и обслуживание выполняется при помощи интерфейса командной строки Windows, или подключением к серверу удалённо посредством Консоли управления. При этом доступны Блокнот и некоторые элементы панели управления, к примеру, Региональные Настройки. Роли Active Directory С помощью Active Directory заказчики могут управлять удостоверениями и взаимоотношениями, формирующими сеть организации. Службы Active Directory интегрированы с Windows Server 2008 R2, могут использоваться сразу после развертывания и позволяют организациям централизованно настраивать параметры систем, пользователей и приложений и управлять этими параметрами. Доменные службы Active Directory (AD DS) хранят данные каталогов и управляют взаимодействием между пользователями и доменами, в том числе входом в домен, проверкой подлинности и поиском в каталоге. Кроме того, интегрированные роли поддерживают средства и технологии управления удостоверениями и доступом, которые позволяют централизованно управлять технологиями и учетными данными и предоставлять доступ к устройствам, приложениям и данным только уполномоченным пользователям.[1] Службы Терминалов В Windows Server 2008 произошло значительное обновление Служб Терминалов (Terminal Services). Службы Терминалов теперь поддерживают Remote Desktop Protocol 6.0. Самое заметное усовершенствование, названное Terminal Services RemoteApp, позволяет опубликовать одно конкретное приложение, вместо всего рабочего стола. Другая важная особенность, добавленная в Службы Терминалов — Terminal Services Gateway и Terminal Services Web Access (теперь полностью через web-интерфейс). Terminal Services Gateway позволяет авторизованным компьютерам безопасно подключаться к Службам Терминалов или Удаленному Рабочему Столу из интернета используя RDP через HTTPS без использования VPN. Для этого не требуется открывать дополнительный порт на межсетевом экране; трафик RDP туннелируется через HTTPS. Terminal Services Web Access позволяет администраторам обеспечивать доступ к службам терминалов через Webинтерфейс. При использовании TS Gateway и TS RemoteApp, передача данных происходит через HTTP(S) и удаленные приложения выглядят для пользователя так, как будто они запущены локально. Несколько приложений запускаются через один сеанс чтобы гарантировать отсутствие потребности в дополнительных лицензиях на пользователя. Благодаря Terminal Services Easy Print администраторам больше нет необходимости устанавливать какие-либо драйверы для принтеров на сервер. При этом Easy Print Driver перенаправляет пользовательский интерфейс и все возможности исходного принтера. Помимо этого, он улучшает производительность при передаче заданий на печать за счет перевода заданий в формат XPS перед отправкой клиенту. Windows PowerShell Windows Server 2008 — первая операционная система Windows, выпущенная со встроенным Windows PowerShell, расширяемой оболочкой с интерфейсом командной строки и сопутствующим языком сценариев, разработанным Microsoft.[2] Язык сценариев PowerShell был разработан специально для выполнения административных задач, и может заменить собой потребность в cmd.exe и Windows Script Host. Самовосстанавливающаяся NTFS Если в предыдущих версиях Windows операционная система обнаруживала ошибки в файловой системе тома NTFS, она отмечала том как «грязный»; исправление ошибок на томе не могло быть выполнено немедленно. С самовосстанавливающейся NTFS вместо блокировки всего тома блокируются только поврежденные файлы/папки, остающиеся недоступными на время исправления. Благодаря этому больше нет необходимости перезагрузки сервера для исправления ошибок файловой системы. Также операционная система теперь отображает информацию S.M.A.R.T. жестких дисков чтобы помочь определить возможные сбои жёсткого диска. Впервые эта возможность появилась в Windows Vista.[3] Hyper-V Основная статья: Microsoft Hyper-V Microsoft Hyper-V, кодовое имя Viridian, технология ранее известная как Виртуализация Windows Server (Windows Server Virtualization) — система виртуализации на основе гипервизора для x64-систем. Бета-версия Hyper-V была включена в x64версии Windows Server 2008, а финальная версия для этих версий была выпущена 26 июня 2008. Windows System Resource Manager Диспетчер системных ресурсов Windows (Windows System Resource Manager) Административное средство WSRM, которое позволяет управлять ресурсами сервера с целью равномерного распределения рабочей нагрузки между ролями. Server Manager Server Manager — это новое, основанное на ролях средство управления Windows Server 2008[4]. Он является комбинацией Управления данным сервером и Мастера настройки безопасности из Windows Server 2003. Server Manager является улучшенным диалогом Мастера настройки сервера, который запускался по умолчанию в Windows Server 2003 при входе в систему. Теперь он позволяет не только добавлять новые роли, но ещё и объединяет в себе все операции, которые пользователи могут выполнять на сервере, а также обеспечивает консолидированное, выполненное в виде единого портала отображение текущего состояния каждой роли. На данный момент невозможно удаленное использование Server Manager, однако запланировано создание клиентской версии. Win 7 Безопасность В Windows 7 реализована более гибкая настройка User Account Control (UAC), которая в отличие от Windows Vista имеет ещё два промежуточных состояния — «Уведомлять только при попытках программ внести изменения в компьютер» (положение по умолчанию) и «Уведомлять только при попытках программ внести изменения в компьютер (не затемнять рабочий стол)». Внесены изменения в технологию шифрования BitLocker и добавлена функция шифрования съёмных носителей BitLocker to go, позволяющая шифровать съёмные носители, причём даже при отсутствии модуля TPM. Добавлена возможность защиты данных на USB-накопителях с помощью Enhanced Storage[9]. Улучшения коснулись и брандмауэра Windows: вернулась функция уведомления пользователя о блокировке программы, которая пытается получить доступ к сети. С помощью групповой политики и функции AppLocker можно запретить запуск определенных приложений. Функция DirectAccess позволяет устанавливать безопасное соединение с сервером в фоновом режиме, в отличие от VPN, которому требуется участие пользователя. Также DirectAccess может применять групповые политики до входа пользователя в систему. 3. Общая архитектура Windows уровня ядра, состав и функции основных компонентов. DOS-appl. Win16-appl. Защищ. подсист. среды Win32-appl. сист. службы интегрир. подсис. POSIX-appl. OS/2 Win32 Защищ. OS/2-appl. POSIX службы сервера служба раб. станции Безопасность Active Directory системный интерфейс (NTDLL.DLL) (серверы) Кольцо 3 Кольцо 0 NT Executive мен. IPC мен. вирт. памяти мен. мен. процессов PnP менеджер объектов монит. безоп. мен. упр. пит. GDI + др. гр. устр. п/с в/в микроядро (ntoskrnl.dll) HAL (уровень абстракций оборудования) Аппаратная часть файл. сист. мен. кэша драйверы устрв Пользовательские процессы: Фиксированные процессы поддержки системы (например, диспетчер сеансов). Имеют доступ напрямую к некоторым сервисам ОС, т.е. являются привилегированными процессами. Процессы сервисов (сервисы Win32) или службы. Пример — Планировщик задач. Работают в фоновом режиме, без интерактивного взаимодействия с пользователем. Пользовательские приложения. Подсистемы окружения. Образуют окружение операционной среды, предоставляя сервисы ОС. Существует 3 подсистемы: Win32, POSIX и OS/2. Процессы пользовательского режима не могут вызывать сервисы ядра ОС напрямую, вместо этого они используют DLL соответствующих подсистем окружения. Компоненты режима ядра: Исполнительная система. Содержит базовые сервисы ОС (управление памятью, процессами и потоками, защиту, ввод/вывод и взаимодействие между процессами). Ядро — низкоуровневые функции ОС (планирование потоков, диспетчеризация прерываний и исключений и т.д.). Предоставляет набор процедур и базовых объектов исполнительной системе для реализации более сложных структур. Драйверы устройств. Драйверы как аппаратных устройств, транслирующих стандартные запросы программ в специфичные запросы ввода/вывода к конкретному оборудованию, так и сетевые драйверы и драйверы файловых систем, службы операционных систем, обеспечивают выполнение различных запросов и приложений ОС, а также поддержку Plug and Playтехнологии, DirectX. Уровень абстрагирования от оборудования. Изолирует другие компоненты режима ядра от специфики оборудования данной платформы. Подсистема поддержки окон и графики. Реализует функции графического интерфейса пользователя (GUI). Обеспечивает поддержку окон, элементов управления пользовательского интерфейса и отрисовку графики. Диспетчер виртуальных машин (VMM). Управляет работой приложений. Его функции: подкачка страниц, роль планировщика (планирование процессов, управление памятью, динамическая загрузка VxD), DPMI-сервер (интерфейс защищенного режима для DOS-программ), диспетчер VDM. Основные компоненты ядра: Микроядро (Microkernel) - компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и другие. Слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования. Использование HAL позволяет обеспечить переносимость 99% кода системы между различным оборудованием. Диспетчер Ввода/Вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Если драйвер написан с ошибками и может привести к сбою - это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев (Bluescreen) - есть результат некорректного поведения драйверов устройств. Windows XP содержит встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи. Модуль управления объектами (Object Manager), управления виртуальной памятью (Virtual Memory Manager), управления процессами (Process Manager), управления безопасностью (Security Reference Monitor), управления локальными вызовами (Local Procedure Calls Facilities) – также важные компоненты ядра системы. Наконец, особое по значению и важности место в ядре системы занимает модуль графического интерфейса - Win32k.sys. Фактически - это часть подсистемы Win32, отвечающая за прорисовку и управление графическим интерфейсом. Динамически загружаемые модули: Встроенные функции операционной системы Windows XP находятся в DLL – динамически загружаемых модулях. Модули DLL – это разделяемые библиотеки процедур, к которым по мере необходимости обращаются исполняемые программы. Основой кода Windows XP, выполняемого в третьем кольце защиты процессора, служат модули Kernel, User и GDI. Каждый из них состоит из 2-х частей – 32-разрядной и 16-разрядной. Имя файла 32-разрядного модуля Kernel – KERNEL32.DLL.16-разрядная часть Kernel, KRNL386.EXE, задействуется только на момент загрузки Windows и используется только для инициализации 32-разрядной части Kernel, а сам KERNEL32.DLL никогда не обращается к KRNL386.EXE. Модуль ядра операционной системы (krnl386.exe и kernel32.dll) обеспечивает базовые функциональные возможности операционной системы: поддержку файлового ввода/выводы, управление виртуальной памятью и планирование задач. Модуль krnl386.exe инициализирует в процессе загрузки 32-разрядную часть kernel.dll.Kernel отвечает за выделение виртуальной памяти, разрешение импорт-ссылок и выполняет поддержку подкачки страниц по запросу. При выполнении программы модуль отвечает за исполнение потоков каждого процесса и распределение между ними процессорного времени. Обработка исключений - еще одна функция ядра. Также kernel обеспечивает взаимодействие 16разрядного и 32-разрядного кодов, применяя для преобразования 16-разрядного формата в 32-разрядный специальный процесс - трансформацию. GDI (Graphic Device Interface) - интерфейс графического устройства. Это - графическая система, управляющая процессами отображения всех объектов Windows на экране и поддерживающая графический вывод на принтеры и другие устройства. Она отвечает за прорисовку графических примитивов, манипуляции растровыми изображениями и взаимодействие с аппаратнонезависимыми графическими драйверами. Для реализации работы системы разработана 32-разрядная графическая машина DIB-машина (Device Independent Bitmaps, аппаратно-независимая растровая графика). Она содержит набор оптимизированных универсальных графических функций для работы с графическими устройствами. Модуль User управляет пользовательским вводом-выводом. Модуль user обслуживает события, генерируемые пользователем: управляет вводом с клавиатуры, от мыши и других координатных устройств, а также вводом через интерфейс пользователя (окнами, значками, меню и др.), также управляет взаимодействием со звуковыми драйверами, таймером и коммуникационными портами. Кроме того, выполняет операции асинхронного ввода для любого ввода в систему и приложения. Основные функции выполняет модуль user.exe. Модуль user32.dll выполняет переадресацию вызовов 16разрядному модулю. Диспетчер конфигурации: Управляет конфигурированием системы, используется для поддержки функциональных возможностей технологии plug-andplay. В процессе конфигурирования могут участвовать множество шин различных архитектур и устройств. Диспетчер конфигурации вызывает драйверы, ответственные за создание дерева устройств. Дерево устройств - иерархическое представление всех шин и устройств в компьютере. Каждая шина и устройство рассматриваются как узел. В процессе перечисления устройств отыскивается и собирается информация от драйверов устройств или от BIOS. Для каждого устройства загружается драйвер. По окончании процессов конфигурирования системы Диспетчер конфигурации информирует драйверы устройств о конфигурации соответствующих устройств. Этот процесс повторяется, когда BIOS обнаруживает в системе новое устройство. Диспетчер виртуальной машины: Работу диспетчера обеспечивает файл vmm32.vxd. Выделяет ресурсы каждому приложению и системному процессу, выполняемому на компьютере. Создает и поддерживает виртуальную среду, в которой исполняются программы и системные процессы. Виртуальная машина - среда в оперативной памяти ПК, которая кажется приложению отдельным компьютером - с теми же ресурсами, что и у физического компьютера. Основные функции ДВМ: 1) распределение процессорного времени; 2) подкачка страниц памяти; 3) поддержка режима MS-DOS для программ DOS. За выделение системных ресурсов приложениям и другим выполняемым на компьютере процессам, а также за распределение процессорного времени отвечает планировщик. 4. Общая архитектура Windows прикладного уровня. Свойства API Win32. Самая важная подсистема среды в Windows NT - это подсистема среды Win32 (рассматриваемая ниже), которая предоставляет прикладным программам интерфейс API 32-разрядной Windows. В Windows NT также имеются подсистемы среды: POSIX, OS/2 и виртуальная DOS машина (virtual DOS machine, VDM), эмулирующая 16-разрядную Windows и MS-DOS. Данные подсистемы предоставляют свои API, но используют для получения пользовательского ввода и отображения результатов подсистему Win32, то есть перенаправляют видеовывод своих приложений подсистеме Win32 для отображения. Подсистема среды Win32 Подсистема среды Win32 делится на серверный процесс (csrss.exe - Client/Server Runtime Subsystem) и клиентские DLLs (user32.dll, gdi32.dll, kerneI32.dll), которые связаны с программой, использующей Win32 API. Win32. API разделен на три категории: Управление окнами (windowing) и передача сообщений (messaging). Эти интерфейсы оконных процедур и процедур сообщений включают, например, такие функции, как CreateWindow(), SendMessage(), и предоставляются прикладной программе через библиотеку user32.dll. Рисование (drawing). Например, функции BitBitQ и LineTo() являются Win32-функциями рисования и предоставляются библиотекой gdi32.dll. Базовые сервисы. Базовые сервисы включают весь ввод/вывод %т32, управление процессами и потоками, управление памятью, синхронизацию и предоставляются библиотекой kernel32.dll. Когда Win32-приложение вызывает функцию API Win32, управление передается одной из клиентских DLLs подсистемы Win32. Эта DLL может: Выполнить функцию самостоятельно без обращения к системным сервисам ОС и вернуть управление вызывающей программе. Послать сообщение Win32-cepeepy для обработки запроса в том случае, если сервер должен участвовать в выполнении заданной функции. Так, функция CreateProcess(), экспортируемая библиотекой kernel32.dll, требует взаимодействия с Win32-cepBepOM, который, в свою очередь, вызывает функции «родного» API. Вовлечь «родной» интерфейс API для выполнения заданной функции. Последний вариант встречается наиболее часто. В версиях Windows NT ниже 4.0 функции окон (windowing) и рисования (drawing) были расположены в Win32-сервере (csrss.exe). Это означало, что, когда приложение использовало такие функции, посылались сообщения указанному серверу. В версии 4.0 эти функции были перенесены в компонент режима ядра, называемый win32k.sys. Теперь вместо того, чтобы посылать сообщение серверу, клиентская DLL обращается к этому компоненту ядра, уменьшая затраты на создание сообщений и переключение контекстов потоков различных процессов. Это увеличило производительность графического ввода/вывода. Библиотеки gdi32.dll и user32.dll стали вторым «родным» API, но оно менее загадочно, чем первое, так как хорошо документировано. Функциями библиотеки kernel32.dll, вызывающими «родной» интерфейс API напрямую, являются функции ввода/вывода, синхронизации и управления памятью. Фактически, большинство экспортируемых библиотекой kerael32.dll функций используют «родной» API напрямую. На рис. 3 иллюстрируется передача управления от Win32-приложения, выполнившего вызов Win32-функции CreateFile(), библиотеке kernel32.dll, затем функции NtCreateFile() в ntdll.dll и далее режиму ядра, где управление передается системному сервису, реализующему создание/открытие файла. Подробнее вызов системных сервисов рассматривается в следующем параграфе. Рис. 3. Вызов системных сервисов через "родной" API. (ntdll.dll) 5. Процесс загрузки Windows, управление загрузкой, протоколирование и исправление ошибок загрузки. Технология UEFI. 1) POST – самотестирование 2) Initial Startup Process 3) Bootloader 4) Загрузка и инициализация ядра 5) Регистрация пользователя, создание сеанса пользователя 1) Ntldr выполняет кеширование атрибуутов сист. Файлов, переключает режим процессора и запускает минифайловую систему 2) Ntdetect.com обнаружиает базовые устройства для загрузки 3) Выбор аппаратного профиля, распознаются шины, адаптеры, порты, клавиатура. 4) Загрузка ядра ntoskrnl.exe. компоненты загружены но неинициализированы. Загрузка улья реестра hklm\system. Активизируется апи для работы с реестром. Создается набор управляющих параметров controlset, который управляет инициализ системы. Загрузка драйверов устройств. Инициализация ядра – граф. Заставка на экране. Ядро создает ключ hklm\hardware с описанием устройств, распознование которых происходит при каждой загрузке. Создание набора опций управляющих параметров. Инициализация низкоуровневых драйверов устр. Проверка диска chkdsk. Загрузка служб. Создание файла подкачки. Запуск подсистем. Smss.exe(менеджер сессии) - csrss.exe(вин32) – считываются ветви реестра для дальнейших действий – помещение объектов в пространство имен – загрузка необходимых длл – процессрегистрации и инициализация сетевых драйверов – загрузка систем локалной безопасности – загрузка служб servicecontrol. UEFI – аппаратно программный интерфейс доступа к компьютеру. Используется вместо биос. Проблемы BIOS: ограничение 16битного кода, ограничение памяти в 1мб, сложность ехнологии pnp. Св-ва EFI: 1) модульная архитектура на базе драйверов нижнего уровня. 2) совместимость с существующими системами. Был разработан шаблон реализации и в рез-те снялась зависмиость от реального режима работы процессора, зависмость от vga. Отсюда гибкий пользовательский интерфейс, возможность безопасной загрузки 6. Принцип установки и удаления приложений. Проблемы зависимостей установленных приложений и системы и способы их преодоления. Различия программных моделей DOS-, Win16-, Win32-приложений, особенности их выполнения в Windows. DOS – приложения: Установка DOS-программ сводится к размещению на диске, формированию переменных окружения. Для каждого приложения DOS ОС создает отдельнуюВДМ. ВДМ работают в режиме вытесняющей многозадачности, деля процессорное время с системной виртуальной машиной. ВДМ не создают очередей сообщений. При выходе из программы завершается работа виртуальной машины и освобождаются ресурсы. Загрузкой MS-DOS приложений можно управлять с помощью файлов autoexec.nt и config.nt из каталога Windows/system32. Win16-приложения: Приложения Win16 выполняются в Windows XP в общем пространстве адресов в пределах системной виртуальной машины и имеют общую очередь сообщений. Ситуация с зависанием Win16 опасна, поскольку остальные программы Win16 перестанут получать сообщения и тоже зависнут. Кроме того, заблокированное приложение Win16 способно повлиять и на приложение Win32, несмотря на то, что они используют независимые очереди сообщений. В случае аварийного завершения Win16 все системные ресурсы, которые были заняты этим приложением, освободятся после того, как будут выгружены все текущие программы Win16. Win32 приложения: Для каждого приложения Win32 используется отдельная адресная область в пределах системной виртуальной машины. Приложения Win32 работают в режиме вытесняющей многозадачности, для каждого Win32-приложения и для каждого создаваемого ими потока используются отдельные очереди сообщений. Это делает ошибку в Win32-приложениях фактически безопасной для остальных приложений. 7. Базовые свойства графического интерфейса пользователя. Представление в системе основных элементов интерфейса (ярлыков рабочего стола, пунктов меню Пуск, контекстного меню). Характерные примеры настройки интерфейса. 8. Общие свойства файловой системы NTFS. Структура системных данных на томе. Принцип адресации расположения файлов на томе. Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части. Первые 12% диска отводятся под так называемую MFT зону - пространство, в которое растет метафайл MFT. Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов. Свободное место диска включает в себя всё физически свободное место - незаполненные куски MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая, таким образом, место для записи файлов. При освобождении места в обычной области MFT зона может снова расширится. При этом не исключена ситуация, когда в этой зоне остались и обычные файлы: никакой аномалии тут нет. Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл. Самый главный файл на NTFS называется MFT, или Master File Table - общая таблица файлов. Именно он размещается в MFT зоне и представляет собой централизованный каталог всех остальных файлов диска. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует, какому либо файлу. Первые 16 файлов носят служебный характер и недоступны операционной системе - они называются метафайлами, причем самый первый метафайл сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности - они очень важны - хранится ровно посередине диска. Остальной MFTфайл может располагаться, как и любой другой файл, в произвольных местах диска - восстановить его положение можно с помощью его самого, "зацепившись" за самую основу - за первый элемент MFT. Основными достоинствами файловой системы NTFS является: быстрая скорость доступа к файлам малого размера; размер дискового пространства практически не ограничен; фрагментация файлов не влияет на саму файловую систему; высокая надежность сохранения данных и самой файловой структуры; высокая производительность при работе с файлами большого размера. Основными недостатками файловой системы NTFS является: более высокие требования к объему оперативной памяти по сравнению с FAT 32; работа с каталогами средних размеров затруднена из-за их фрагментации; более низкая скорость работы по сравнению с FAT 32. 9. Атрибуты файлов NTFS, форматы записей MFT для файлов и каталогов. Применение расширенных атрибутов. Атрибуты файла NTFS NTFS просматривает каждый файл (или каталог) как набор атрибутов файла. Такие элементы, как имя файла, информация зашиты и даже данные — все это атрибуты файла. Каждый атрибут идентифицирован кодом типа атрибута и, необязательно, именем атрибута. Если атрибуты файла могут находится внутри записи файла MFT, они называются резидентными (resident) атрибутами. HanpHMqi, информация типа имени файла и отметки времени всегда включается в запись файла MFT. Если файл слишком большой, чтобы содержать все атрибуты в записи файла MFT, часть атрибутов является нерезидентной (nonresident). Нерезидентные атрибуты занимают один или несколько пробегов (run) дискового пространства в другом месте тома (пробег дискового пространства — непрерывная линейная область на диске). Записи каталога помещены внутри главной файловой таблицы так же, как записи файла. Вместо данных каталоги содержат индексную информацию. Небольшие записи каталогов находятся полностью внутри структуры MFT. Большие каталоги организованы в B-tree, имея записи с указателями на внешние кластеры, содержащие элементы каталога, которые не могли быть записаны внутри структуры MFT. 10. Расширенные возможности NTFS: сжатие и шифрация данных, точки повторной обработки, монтирование томов, жесткие и символические связи. Сжатие Файлы NTFS имеют один довольно полезный атрибут - "сжатый". Дело в том, что NTFS имеет встроенную поддержку сжатия дисков - то, для чего раньше приходилось использовать Stacker или DoubleSpace. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые "виртуальные кластеры" - опять же предельно гибкое решение, позволяющее добиться интересных эффектов - например, половина файла может быть сжата, а половина - нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов: например, типичная запись физической раскладки для реального, несжатого, файла: кластеры файла с 1 по 43-й хранятся в кластерах диска начиная с 400-го кластеры файла с 44 по 52-й хранятся в кластерах диска начиная с 8530-го ... Физическая раскладка типичного сжатого файла: кластеры файла с 1 по 9-й хранятся в кластерах диска начиная с 400-го кластеры файла с 10 по 16-й нигде не хранятся кластеры файла с 17 по 18-й хранятся в кластерах диска начиная с 409-го кластеры файла с 19 по 36-й нигде не хранятся Видно, что сжатый файл имеет "виртуальные" кластеры, реальной информации в которых нет. Как только система видит такие виртуальные кластеры, она тут же понимает, что данные предыдущего блока, кратного 16-ти, должны быть разжаты, а получившиеся данные как раз заполнят виртуальные кластеры - вот, по сути, и весь алгоритм. Безопасность NTFS содержит множество средств разграничения прав объектов - есть мнение, что это самая совершенная файловая система из всех ныне существующих. В теории это, без сомнения, так, но в текущих реализациях, к сожалению, система прав достаточно далека от идеала и представляет собой хоть и жесткий, но не всегда логичный набор характеристик. Права, назначаемые любому объекту и однозначно соблюдаемые системой, эволюционируют - крупные изменения и дополнения прав осуществлялись уже несколько раз и к Windows 2000 все-таки они пришли к достаточно разумному набору. Права файловой системы NTFS неразрывно связаны с самой системой - то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows2000 (NT5) всё же ввели стандартную возможность - об этом см. ниже. Система прав в своем текущем состоянии достаточно сложна, и я сомневаюсь, что смогу сказать широкому читателю что-нибудь интересное и полезное ему в обычной жизни. Если вас интересует эта тема - вы найдете множество книг по сетевой архитектуре NT, в которых это описано более чем подробно. На этом описание строение файловой системы можно закончить, осталось описать лишь некоторое количество просто практичных или оригинальных вещей. Hard Links Эта штука была в NTFS с незапамятных времен, но использовалась очень редко - и тем не менее: Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя. Symbolic Links (NT5) Гораздо более практичная возможность, позволяющая делать виртуальные каталоги - ровно так же, как и виртуальные диски командой subst в DOSе. Применения достаточно разнообразны: во-первых, упрощение системы каталогов. Если вам не нравится каталог Documents and settings\Administrator\Documents, вы можете прилинковать его в корневой каталог - система будет по прежнему общаться с каталогом с дремучим путем, а вы - с гораздо более коротким именем, полностью ему эквивалентным. Для создания таких связей можно воспользоваться программой junction (junction.zip (15 Kb), 36 кб), которую написал известный специалист Mark Russinovich (http://www.sysinternals.com). Программа работает только в NT5 (Windows 2000), как и сама возможность. Для удаления связи можно воспользоваться стандартной командой rd. ВНИМАНИЕ: Попытка уделения связи с помощью проводника или других файловых менеджеров, не понимающих виртуальную природу каталога (например, FAR), приведет к удалению данных, на которые ссылается ссылка! Будьте осторожны. Шифрование (NT5) Полезная возможность для людей, которые беспокоятся за свои секреты - каждый файл или каталог может также быть зашифрован, что не даст возможность прочесть его другой инсталляцией NT. В сочетании со стандартным и практически непрошибаемым паролем на загрузку самой системы, эта возможность обеспечивает достаточную для большинства применений безопасность избранных вами важных данных. 11. Базовые свойства командного языка Windows и его расширения. Смысл и применение переменных окружения. Программирование командных файлов. Командная оболочка — это отдельный программный продукт, который обеспечивает прямую связь между пользователем и операционной системой. Текстовый пользовательский интерфейс командной строки предоставляет среду, в которой выполняются приложения и служебные программы с текстовым интерфейсом. В командной оболочке программы выполняются, и результат выполнения отображается на экране в виде, сходном с интерпретатором Command.com MS-DOS. Командная оболочка Windows XP использует интерпретатор команд Cmd.exe, который загружает приложения и направляет поток данных между приложениями, для перевода введенной команды в понятный системе вид. Имеется возможность использовать командную оболочку для создания и редактирования пакетных файлов (также называемых сценариями), что позволит автоматизировать выполнение обычных задач. Переменная окружения (переменная среды́ ) в Windows используются для хранения текстовых строк пользователя и информации о настройках операционных систем. Примеры: RANDOM Случайное десятичное число от 0 до 32767. Генерируется Cmd.exe. SYSTEMDRIVE Диск, на котором расположен корневой каталог Windows. 12. Средства обмена данными между приложениями в Windows: Clipboard, DDE, OLE. Базовые понятия OLE, особенности применения связывания и внедрения объектов. Роль технологии OLE во внутренних механизмах Windows. Clipboard - универсальный буфер обмена, так как пользователь может записать в него самую различную информацию. Это общая область для хранения дескрипторов данных, через которую прикладные программы могут обмениваться форматированными данными. DDE – технология, которая позволяет создать постоянно действующие каналы между несколькими одновременно работающими приложениями Windows. Эти каналы могут создаваться автоматически при запуске приложения или при необходимости, а также по явному запросу пользователя. После того как каналы созданы, они будут работать без вмешательства пользователя. Приложения, использующие технологию динамического обмена данных DDE, выступают как клиенты или серверы (или одновременно как клиенты и серверы). Большая часть DDE-функций реализована в последних версиях OLE. Механизм OLE (Object Linking and Embedding - Связывание и Встраивание Объектов) позволяет обеспечить интеграцию различных по своей сути объектов. При связывании объекта с документом создается ссылка на его файл (технология OLE1 – жесткая ссылка, технология OLE2 – относительная ссылка) OLE является набором средств, позволяющим легко подготавливать документы, включающие в себя данные, подготовленные в различных приложениях. Для реализации этих возможностей соответствующие приложения должны иметь опцию Object (Объект) в меню Insert (Включение). В отличие от операции встраивания, при выполнении операции связывания внутрь документа помещается не сам объект, а только ссылка на него (путь исходного файла, подготовленного приложением-сервером).