Установщик Windows | это... Что такое Установщик Windows? (original) (raw)

Установщик Windows

Разработчик Microsoft
Операционная система Windows
Последняя версия 4.5 (2 июня 2008 года [1])
Лицензия Пользовательское соглашение Microsoft

Windows Installer (установщик Windows) — подсистема Microsoft Windows, обеспечивающая установку программ (инсталлятор). Является компонентом Windows, начиная с Windows 2000; может доустанавливаться и на более ранние версии Windows. Вся необходимая для установки информация (иногда и вместе с устанавливаемыми файлами) содержится в установочных пакетах (installation packages), имеющих расширение .msi.

Содержание

История

Windows Installer был разработан в 1995—1998 годах и имел вначале кодовое название Darwin. Ранние версии назывались Microsoft Installer, отсюда стандартное расширение файла инсталляционного пакета — .msi. [2]

Первая версия Installer’а вышла в начале 1999 в качестве инсталлятора Microsoft Office 2000. В конце того же года Installer стал частью Windows 2000. Майкрософт всячески поощрял переход разработчиков на новый инсталлятор, включив в список требований к программам, желающим получить так называемый знак Windows 2000 Logo, требование устанавливаться с помощью Windows Installer.

Windows Installer оказался значительным шагом вперёд по отношению к предыдущему инсталлятору Microsoft — Setup API (ACME Setup): в нём были введены возможности GUI, поддержка деинсталляции и отката в любой момент установки (включая откат во время деинсталляции), корректная работа с правами доступа в Windows и другие возможности, что сделало его сильной альтернативой различным существовавшим на рынке инсталляционным пакетам.

Логическая структура пакета

Инсталляционный пакет описывает установку одного продукта и имеет свой GUID. Продукт состоит из компонентов (components) (тоже имеющих свои GUIDы), сгруппированных в возможности (features).

Компонент (component) — минимальная неделимая установочная единица, представляющая собой группу файлов, значений реестра, создаваемых папок и других элементов, объединённых общим именем (именем компоненты) и либо устанавливаемых вместе, либо не устанавливаемых. Компоненты скрыты от конечного пользователя. Каждая компонента имеет ключевой путь (key path) — например, имя своего главного файла — по которому определяется наличие этой компоненты на компьютере пользователя.

Возможность (feature; в русифицированной версии Windows именно это слово переводится как «компонента», что вносит путаницу) — это иерархическая группа компонент и/или других возможностей. Когда при установке показывается диалог выбора устанавливаемых частей программы, пользователь управляет выбором именно возможностей. Выбор возможности для установки влечёт за собой установку всех компонент, которые в неё включены.

Физическая структура пакета

Файл .msi представляет собой составной документ OLE (OLE compound document — в том же формате-контейнере хранятся документы Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.

Кроме базы, структура файла .msi предусматривает помещение туда пользовательских сценариев и вспомогательных DLL, если таковые требуются для установки, а также самих устанавливаемых файлов, запакованных в формате .cab. Файлы можно размещать и отдельно от пакета, в запакованном или распакованном виде (с сохранением структуры каталогов).

Процесс установки

Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).

Действия

Каждый этап установки состоит из последовательности действий (actions), записанной в базе данных. Действиям присвоены номера, определяющие порядок их выполнения, а иногда — и условия, при которых действия выполняются или не выполняются.

Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы. Кроме них, пользователь может определить и свои действия (custom actions).

Действия, определённые пользователем, могут быть либо написаны на одном из скриптовых языков, встроенных в операционную систему (JScript или VBScript так же и Eclipse, побочный язык от C++), либо размещаться в специально созданной DLL (написанной на таких языках, как C, C++ и т. д.). Файлы с этими действиями помещаются внутрь файла .msi и извлекаются оттуда в начале запуска инсталляции.

Сбор информации

На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.

Этот этап называют также непосредственным режимом (immediate mode).

Выполнение

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

Этот этап иногда называется отложенным режимом (deferred mode).

Откат

Если какое-либо из действий, определённых в сценарии, оканчивается неудачей, или установка в процессе отменяется пользователем, все действия, выполненные до этого места, откатываются, возвращая систему в состояние, бывшее до установки. Откат обеспечивается наличием для каждого действия, вносящего изменение в систему, обратного к нему. Вводя в пакет нестандартные действия, программист также должен создать обратные к ним для правильной работы отката.

Прочие возможности

Анонсирование и установка по требованию

Журнал установки

Другие системы инсталляции

Примечания

  1. Ссылка на скачивание актуальной версии Установщика Windows
  2. Rob Mensching. Inside the MSI file format.

См. также

Ссылки

Просмотр этого шаблона API и фреймворки Microsoft
Графика Desktop Window Manager · Direct2D · Direct3D (extensions) · GDI / GDI+ · WPF · Windows Color System · Windows Image Acquisition · Windows Imaging Component
Аудио DirectMusic · DirectSound · DirectX plugin · XACT · Speech API · XAudio2
Мультимедиа DirectX (Media Objects · Video Acceleration) · DirectInput · DirectShow · Image Mastering API · Managed DirectX · Media Foundation · XNA · Windows Media · Video for Windows
Web MSHTML · RSS Platform · JScript · VBScript · BHO · XDR · SideBar Gadgets
Доступ к данным Data Access Components · Extensible Storage Engine · ADO.NET · ADO.NET Entity Framework · Sync Framework · Jet Engine · MSXML · OLE DB · OPC
Сеть Winsock (LSP) · Winsock Kernel · Filtering Platform · Network Driver Interface Specification · Windows Rally · BITS · P2P API · MSMQ · MS MPI · DirectPlay
Коммуникации Messaging API · Telephony API · WCF
Администрирование и управление Win32 console · Windows Script Host · WMI (extensions) · PowerShell · Task Scheduler · Offline Files · Shadow Copy · Windows Installer · Error Reporting · Event Log · Common Log File System
Компонентная модель COM · COM+ · ActiveX · Distributed Component Object Model · .NET Framework
Библиотеки Base Class Library (BCL) · Microsoft Foundation Classes (MFC) · Active Template Library (ATL) · Windows Template Library (WTL)
Драйверы устройств Windows Driver Model · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture · VxD
Безопасность Crypto API (CAPICOM) · Windows CardSpace · Data Protection API · Security Support Provider Interface (SSPI)
.NET ASP.NET · ADO.NET · Base Class Library (BCL) · Remoting · Silverlight · TPL · WCF · WCS · WPF · WF
Программное обеспечение EFx Factory · Enterprise Library · Composite UI · CCF · CSF
IPC MSRPC · Dynamic Data Exchange (DDE) · Remoting · WCF
Доступность Active Accessibility · UI Automation
Текст и многоязнаяподдержка DirectWrite · Text Services Framework · Text Object Model · Input method editor · Language Interface Pack · Multilingual User Interface · Uniscribe
Просмотр этого шаблона Компоненты Microsoft Windows
Основные AeroClearTypeДиспетчер рабочего столаDirectXПанель задач (ПускОбласть уведомлений) • Проводник (Пространство имён • Специальные папки • Ассоциации файлов) • Windows Search (Smart folders • iFilters) • GDIWIMSMB.NET FrameworkXPS • Active Scripting (WSHVBScriptJScript) • COM (OLEDCOMActiveX • Структурированное хранилище • Сервер транзакций) • Теневая копияWDDM • UAA • Консоль Win32
Службыуправления Архивация и восстановление • COMMAND.COMcmd.exeСредство переноса данных • Просмотр событий • Установщикnetsh.exePowerShell • Отчёты о проблемах • rundll32.exe • Программа подготовки системы (Sysprep) • Настройка системы (MSConfig) • Проверка системных файлов • Индекс производительности • Центр обновленияВосстановление системыДефрагментация дискаДиспетчер задачДиспетчер устройствКонсоль управленияОчистка дискаПанель управления (элементы)
Приложения Контакты • DVD Maker • Факсы и сканирование • Internet Explorer • Журнал • Экранная лупаMedia CenterПроигрыватель Windows Media • Программа совместной работы • Центр устройств Windows Mobile • Центр мобильности • Экранный диктор • Paint • Редактор личных символов • Удалённый помощник • Распознавание речи • WordPadБлокнотБоковая панельЗвукозапись • Календарь • КалькуляторНожницыПочта • Таблица символов • Исторические: Movie MakerNetMeetingOutlook ExpressДиспетчер программДиспетчер файловФотоальбом
Игры Chess Titans • Mahjong Titans • Purble Place • Пасьянсы (КосынкаПаукСолитер) • СапёрПинбол • Червы
Ядро ОС Ntoskrnl.exeСлой аппаратных абстракций (hal.dll) • Бездействие системыsvchost.exeРеестрСлужбыДиспетчер управления сервисамиDLL (формат модулей) • PENTLDR • Диспетчер загрузки • Программа входа в систему (winlogon.exe) • Консоль восстановления • Windows RE • Windows PE • Защита ядра от изменений
Службы Autorun.inf • Фоновая интеллектуальная служба передачи • Файловая система стандартного журналирования • Отчёты об ошибках • Планировщик классов мультимедиа • Теневая копияПланировщик задач • Беспроводная настройка
Файловые системы ProtogonNTFS (Жёсткая ссылкаТочка соединенияТочка монтирования • Точка повторной обработки • Символьная ссылкаTxFEFS) • WinFSFATexFATCDFS • UDF • DFS • IFS
Сервер Active Directory • Службы развёртывания • Служба репликации файлов • DNS • Домены • Перенаправление папок • Hyper-VIIS • Media Services • MSMQ • Защита доступа к сети (NAP) • Службы печати для UNIX • Удалённое разностное сжатие • Службы удаленной установки • Служба управления правами • Перемещаемые профили пользователейSharePoint • Диспетчер системных ресурсов • Удаленный рабочий стол • WSUS • Групповая политикаКоординатор распределённых транзакций
Архитектура NT • Диспетчер объектов • Пакеты запроса ввода/вывода • Диспетчер транзакций ядра • Диспетчер логических дисков • Диспетчер учетных записей безопасности • Защита ресурсовlsass.execsrss.exesmss.exe • spoolsv.exe • Запуск
Безопасность BitLockerЗащитникПредотвращение выполнения данных • Обязательный контроль целостности • Защищенный канал данных • UAC • UIPI • БрандмауэрЦентр обеспечения безопасностиЗащита файлов
Совместимость Подсистема UNIX (Interix) • Виртуальная машина DOS • Windows on WindowsWOW64
Просмотр этого шаблона Программные интерфейсы и фреймворки Microsoft Windows
Графика Проводник WindowsDirectXDirect3DGDIWindows Presentation Foundation • Windows Color System • Windows Image Acquisition • Windows Imaging Component
Звук DirectSound • DirectMusic • XACT • Speech APIMME
Мультимедиа DirectShowWindows MediaMedia Foundation
Веб MSHTMLMSXML • Платформа RSS для Windows • JScriptActiveXXMLHttpRequest • Гаджеты
Доступ к данным Компоненты Microsoft Data Access • Extensible Storage Engine • ADO.NET • Sync Framework • Jet-механизм
Сети Winsock (LSP) • Filtering Platform • NDIS • Windows Rally • Сервис фоновой интеллектуальой передачи данных • P2P API
Коммуникации TAPI
Администрирование Консоль Win32 • Windows Script Host • Инструментарий управления Windows • PowerShell • Планировщик задач • Offline Files • Теневое копирование • Windows Installer • Диспетчер ошибок Windows • Журнал событий Windows
Модель компонентов COMCOM+DCOM.NET Framework
Библиотеки Microsoft Foundation Classes (MFC) • Active Template Library (ATL) • Windows Template Library (WTL) • Base Class Library (BCL)
Разработка драйверов Windows Driver ModelWindows Driver Foundation (KMDF • UMDF)
Безопасность CryptoAPI (CAPICOM) • Windows CardSpace • Data protection API • Security Support Provider Interface
.NET .NET FrameworkASP.NETADO.NET.NET RemotingWindows Presentation FoundationWindows Workflow FoundationWindows Communication FoundationWindows CardSpaceXNA FrameworkSilverlight • Библиотека параллельного программирования
Межпроцессноевзаимодействие Dynamic Data Exchange (DDE) • MSRPC • Именованные каналы
Текст иподдержка языков Framework Текстовых сервисов • Объектная модель текстов • Редактор метода ввода • Языковые пакеты • Многоязычный интерфейс
Игры XNA FrameworkDirectX
Просмотр этого шаблона Форматы архивов (сравнение по типу)
Только архивирование arcpio • shar • tar • LBR
Только сжатие bzip2 • compress • gzipLZMALZWlzop • rzip • SQ • XZ
Архивирование и сжатие 7zACEARCALZipARJCabinet • cpt • DARdd • DGCA • .dmg • GCA • kgbLHALZXPAQRAR • qda • sit • SQX • XarzooZIP
Упаковка и распространение ПО deb • pkg • gemRPMMSIJAR (WAR • RAR (Java)EAR)