Сервисы Windows
Покупка
Новинка
Тематика:
Windows
Соавтор:
Рязанова Наталья Юрьевна
Год издания: 2011
Кол-во страниц: 49
Дополнительно
Рассмотрены служебные программы (службы) операционных систем (ОС) Windows NT/2000/XP/Vista, работающие в режиме пользователя и занимающие в ОС Windows NT/2000/XP/Vista особое место. На службы Win32 возложены такие важнейшие системные функции, как сохранение копий отдельных файлов, управление конфигурацией сети, загрузки и обновления ОС Windows и т. п. Рассмотрены особенности работы, использования, установки и разработки служб Win32. Для студентов 3-го и 4-го курсов, обучающихся на кафедре «Программное обеспечение ЭВМ и информационные технологии» МГТУ им. Н.Э. Баумана.
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет имени Н.Э. Баумана В.А. Крищенко, Н.Ю. Рязанова СЕРВИСЫ WINDOWS Рекомендовано Научно-методическим советом МГТУ им. Н.Э. Баумана в качестве учебного пособия по курсам «Системное программирование – введение в операционные системы» и «Управление устройствами» Москва Издательство МГТУ им. Н.Э. Баумана 2011
УДК 681.3.06 ББК 32.81 К82 Рецензенты: А. А. Рощин, Н. В. Лукьянова К82 Крищенко В. А. Сервисы Windows : учеб. пособие / В.А. Крищенко, Н.Ю. Рязанова. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2011. – 47, [1] с.: ил. Рассмотрены служебные программы (службы) операционных систем (ОС) Windows NT/2000/XP/Vista, работающие в режиме пользователя и занимающие в ОС Windows NT/2000/XP/Vista особое место. На службы Win32 возложены такие важнейшие системные функции, как сохранение копий отдельных файлов, управление конфигурацией сети, загрузки и обновления ОС Windows и т. п. Рассмотрены особенности работы, использования, установки и разработки служб Win32. Для студентов 3-го и 4-го курсов, обучающихся на кафедре «Программное обеспечение ЭВМ и информационные технологии» МГТУ им. Н.Э. Баумана. УДК 681.3.06 ББК 32.81 © МГТУ им. Н.Э. Баумана, 2011
Введение В различных операционных системах (ОС) используются разные способы выполнения служебных заданий одновременно с основной работой без снижения скорости интерактивного взаимодействия с пользователем. В ОС семейства Unix для этого существуют демоны, выполняемые в фоновом режиме. В ОС Windows возможность запуска процессов, не связанных с работой интерактивного пользователя, осуществляется службами, или сервисами, в которых используются функции интерфейса (Win32 API*) и которые работают в режиме пользователя. Заметим, что, к сожалению, термин «сервис» используется фирмой Microsoft для обозначения совершенно разных программных средств ОС Windows. Этот термин обозначает и драйверы устройств, и низкоуровневые сервисы ОС, такие как NtCreateProcess, являющиеся внутрисистемными сервисами, и собственно сервисы, т. е. серверные приложения, являющиеся процессами пользовательского режима. Последние часто называют сервисами Win32. На множественность понятия «сервис» в документации Windows обращают внимание М. Руссинович и Д. Соломон [1, с. 6]. Примером Windows-сервиса может служить Web-сервер, который должен запускаться при запуске ОС и работать независимо от того, зарегистрировался ли в ней какой-либо пользователь. Windows-сервисы являются частью ОС и взаимодействуют с SCP-приложением (Service Control Program – программа управления сервисами) и диспетчером управления сервисами (Service Control Manager – SCM). В учебном пособии обсуждаются особенности работы и написания сервисных приложений режима пользователя, учетные записи сервисов и работа SCM. * API (Application Interface Functions) – функция прикладного интерфейса. 3
1. СЛУЖБЫ WINDOWS 1.1. Программа – служба Сервис, или служба, ОС Windows (Windows Service) – это Win32приложение, которое особым образом обрабатывается ОС. Службы Microsoft Windows, ранее называвшиеся службами NT, позволяют создавать исполняемые приложения, работающие длительное время и выполняющиеся в отдельной сессии ОС Windows. Основное отличие сервиса от обычного приложения заключается во взаимодействии его с SCM. Именно влияние SCM на работу сервиса определяет его особенности: • сервис имеет определенную структуру, которая позволяет ему принимать информацию и команды от SCM; • сервис в общем случае не является последовательно исполняемой программой, так как имеет несколько точек входа, т. е. содержит функции, вызываемые в ответ на определенные события в ОС; • сервис может выполняться от имени любой учетной записи независимо от наличия вошедших в систему пользователей и их числа. Этот факт оказывает влияние, не запрограммированное специально для сервисов, а являющееся следствием работы механизмов ОС, отвечающих за пользователей и их права, на принципы взаимодействия сервисов с ОС и другими программами. Как правило, Windows-сервис не имеет пользовательского интерфейса, что позволяет создавать сервис или как GUI*-приложение (с функцией WinMain), или как консольное приложение (с функцией main). Сервис может быть запущен несколькими способами: • автоматически при загрузке ОС; • пользователем через панель управления сервисами; * GUI (Graphic User Interface) – графический интерфейс пользователя. 4
• с помощью специально написанного приложения; • путем вызова функций управления сервисами. Запущенный одним из перечисленных способов процесс может содержать в себе несколько сервисов, выполняющихся в различных потоках. Например, сервис Services.exe содержит около 10 других сервисов, в том числе сервисы DHCP Client, Messenger и Alerter. Потоки не имеют собственного адресного пространства и разделяют адресное пространство своего процесса. Запуск каждого процесса связан с переключением полного контекста, что расточительно с точки зрения временных затрат. Переключение потоков выполняется значительно быстрее. Но подобная оптимизация имеет один недостаток – SCM позволяет таким сервисам работать только от имени ОС. Другими словами, в настройках сервиса нельзя указать другие имя пользователя и пароль. Управление сервисами можно осуществлять программно, обращаясь к предоставляемой SCM API, либо через соответствующую оснастку консоли управления (Microsoft Manager Console – MMC). 1.2. Три компонента сервиса Для работы сервисов предназначены три вида компонентов ОС Windows. 1. SCM, исполняемый файл которого \Windows\System32\ Services.exe является консольным приложением. Процесс запускается автоматически в момент начальной загрузки ОС и прекращает работу в момент ее выгрузки. Очевидно, что SCM-процесс запускается с привилегиями ОС и предоставляет унифицированный и безопасный интерфейс сервисам системы. Задача SCM – управлять сервисами: запускать, настраивать, приостанавливать, продолжать и завершать их работу. 2. Сам сервис, по сути являясь Win32-приложением, содержит дополнительный код, позволяющий ему принимать информацию и команды от SCM и возвращать ему статусную информацию. 3. SCP-приложение – это Win32-приложение, которое предоставляет пользователю графический интерфейс для работы с сервисами. Такая программа позволяет пользователю управлять работой сервиса: запускать, приостанавливать, возобновлять и 5