Что происходит, когда мы устанавливаем программу на комп
easy

Что происходит, когда мы устанавливаем программу на комп

Заглядываем под капот установщиков

Это текст про то, как работают компьютеры. Никакой сиюминутной практической ценности, просто расширение кругозора. Будете ходить и унижать всех своим кругозором. 

Когда мы устанавливаем новую программу на компьютер или телефон, чаще всего это происходит так:

  1. Мы запускаем установщик программы.
  2. Он что-то там делает и иногда спрашивает у нас всякое ← про это мы и будем рассказывать.
  3. В конце сообщает, что программа готова к работе. Часто она действительно готова. 

Иногда программу можно запустить и без установки, про это тоже поговорим.

Что такое установщик и что он делает

Для работы программы ей чаще всего нужны дополнительные библиотеки, драйверы, базы данных, компоненты или просто внутренние служебные файлы. Всё это нужно разложить по разным местам в операционной системе: драйверы к драйверам, библиотеки к библиотекам, создать новые папки для служебных файлов. Чтобы всё это оказалось в правильных местах, нужно составить список, что куда копировать и в каком порядке.

Ещё часть этих файлов нужно зарегистрировать в системе — без этого она не поймёт, что у неё появились новые библиотеки, которыми можно пользоваться. Для этого тоже нужен отдельный список — что регистрировать и как. 

Иногда части программы нужно скачать из интернета (или даже всю программу целиком). Например, когда вы скачиваете установщик «Фотошопа» последней версии, на самом деле вы скачиваете скачивальщик. И уже скачивальщик скачивает «Фотошоп» и устанавливает его куда нужно. 

Получается, что для установки программы нужно:

  • скачать недостающее;
  • создать новые папки;
  • скопировать файлы;
  • зарегистрировать файлы, чтобы компьютер мог ими пользоваться;
  • обновить настройку системы.

Чтобы всё это сделать, нужна отдельная программа, которая возьмёт это на себя, — это и есть установщик. 

Как сделать установщик

Установщик можно написать с нуля на любом языке под нужную вам платформу. Но так делают редко. 

Чаще разработчики используют один из общепринятых установщиков: там нужно прописать нужные параметры, положить внутрь нужные файлы, и дальше установщик сделает нужную работу сам. 

Из популярных решений автоматических установщиков вы наверняка помните InstallShield или Wise. А так их два-три десятка

Автоматические установщики возможны благодаря тому, что для установки программ нужны примерно одни и те же действия: копирование файлов, создание ярлыков, работа с реестром и библиотеками. Для чего-то, что требует более глубокой работы с системой, потребуются более сложные решения.

Что происходит, когда мы устанавливаем программу на комп
Первый экран установщика, сделанного на InstallShield. Источник — Virtmachine.ru

Что проверяется перед установкой программы

Задача установщика — проверить все доступные ему параметры компьютера и убедиться, что они соответствуют требованиям программы.

Тип процессора — если программа написана для ARM-процессоров, а на компьютере стоит x86, то программа просто не запустится. 

Архитектура — некоторые производители софта делают только 64-битные версии своих приложений. Это значит, что для доступа к памяти и внутренним ресурсам они используют адреса, которые состоят из 64 бит. Но если на компьютере стоит 32-битная операционная система, то такая адресация может вызвать ошибки.

Версия операционной системы — иногда на компьютере стоит слишком старая или просто неподходящая версия, с которой программа не сможет работать. 

Свободное место — установщик заранее проверяет, что на выбранном диске достаточно места для копирования всех файлов.

Права доступа — может оказаться так, что у пользователя, в чьём аккаунте происходит установка, не хватает прав на создание папок в системных разделах.

Зависимости — в системах, где есть менеджер пакетов (например, в Linux и Mac OS), установщик проверяет, есть ли все необходимые пакеты, от которых зависит работа основной программы. Если нет — он попробует их скачать и установить.

Что происходит, когда мы устанавливаем программу на комп
Установщик программы для Windows…
Что происходит, когда мы устанавливаем программу на комп
…и Mac OS. Разные компоновщики установщика — разный интерфейс

Запуск без установки

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

Ещё есть portable-версии программ — в них все файлы и настройки собраны в одной папке. Её тоже можно скопировать куда угодно и запустить софт без полноценной установки на компьютер. 

А в Mac OS можно просто перетащить иконку мышкой, и всё будет работать

Да, но не всё так просто.

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

Получается, что в MacOS установщик тоже есть, просто он невидимый и включается в момент, когда мы перетащили приложение в нужную папку. 

Также нужно понимать, что технически приложения MacOS — это не исполняемые файлы, а папки. Внутри этой папки лежит исполняемый файл программы и все дополнительные ресурсы. Для пользователя эта папка выглядит как единый объект, который можно запустить, но на самом деле это умный пакет файлов. 

Облачные установщики и маркетплейсы

В последние 15 лет развивается технология облачных установщиков: когда вы говорите, какой вам нужен софт, а установщик сам его скачивает и устанавливает. Примеры — Native Access, Waves Central, Steam и Adobe Creative Cloud.

По тому же принципу работают магазины приложений — App Store, Play Market, RuStore. Вы регистрируете аккаунт, привязываете к нему приложения, и они будут доступны на всех ваших устройствах. 

Плюсы таких установщиков в том, что они позволяют привязать весь ваш софт к аккаунту, скачать его на любой компьютер, легко всё обновлять и следить за подлинностью. Например, если вы дизайнер и пользуетесь программами Adobe, на новом компьютере вам достаточно установить один облачный установщик Creative Cloud, а дальше он сам установит вам весь ваш рабочий софт.

Минусы в том, что эти облачные системы часто висят в памяти, мешают установке нелицензионного софта и могут закрыть вам доступ к программам по своему желанию. Одно дело — вы поставили на компьютер «Фотошоп» и он просто работает. Другое дело — когда он при запуске звонит на сервер Adobe и просит разрешения на работу. 

Что происходит, когда мы устанавливаем программу на комп
Приложения пакета Adobe Creative Suite, которые можно установить, обновить и запустить прямо из облачного менеджера приложений

Насколько безопасны установщики?

Строго говоря, установщики небезопасны: это программы, которые вносят непонятно какие изменения в вашу систему. Если вы запустили установщик и дали ему право распоряжаться вашей системой, дальше вам остаётся только надеяться на добросовестность разработчиков.

Например, одно время при установке Torrent-клиента uTorrent в процессе вам ненавязчиво предлагали установить кучу другого софта, не всегда нужного. Если вы прокликали установщик не читая, то после установки у вас появлялось много неожиданного софта на компе. Хорошо, если вы могли это заметить, — а если это кто-то, кто не разбирается в компьютерах? 

Поэтому использовать установщики стоит только тех компаний, которым вы доверяете.

Апскиллинг, как говорится
Апскиллинг — это, например, переход с уровня junior на уровень middle, а потом — senior. У «Яндекс Практикума» есть курсы ровно для этого: от алгоритмов и типов данных до модных фреймворков.
Изучить вопрос
Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy