Почему macOS использует DMG-файлы для новых приложений?

Когда вы загружаете новую программу для вашего Mac, она часто поставляется с файлом «.dmg». Легко узнаваемый по своему значку диска на бумаге, расширение «dmg» обозначает образ диска. Когда вы дважды щелкаете по dmg, он монтируется (или, точнее, прикрепляется), открывая его содержимое в Finder. Оттуда пользователи перетаскивают содержимое образа в каталог Программы, чтобы установить новые приложения на свои Mac.
Этот процесс очень отличается от процесса установки в Windows и может привести к неприятным ситуациям для новых пользователей macOS. Когда я переходил с Windows, я не имел понятия, что этот последний шаг необходим. В конце концов, многие программы могут работать идеально из своего образа диска, и образы диска не всегда объясняют шаг «перетащить в Программы». В результате я запускал Firefox из образа диска около месяца, пока не понял, что у меня нет закладок и не мог понять, почему.
Так почему DMG-файлы необходимы для новых приложений, и в чем смысл «монтирования» чего-то просто для того, чтобы перетащить файл?
Причина 1: Структура приложения Mac

Хотя приложение Mac представлено привлекательным значком, по которому вы дважды щелкаете, чтобы запустить приложение, этот значок скрывает секрет. Файл .app на самом деле представляет собой пакет. Это, по сути, папка, содержащая все файлы приложения.
Убедитесь сами: щелкните правой кнопкой мыши на любом приложении в Finder и выберите «Показать содержимое пакета», чтобы исследовать самостоятельно. Поскольку приложения macOS по сути являются папками, им нужен какой-то контейнер, чтобы переносить их на новые компьютеры без потери файлов. Перенос голой папки может быть неаккуратным, особенно через сети.
Это как транспортировка дюжины яиц без картонной упаковки. И оказывается, что DMG делает довольно хорошую картонную упаковку для яиц. Конечно, другие форматы могут содержать папку; что еще делает DMG таким долговечным?
Причина 2: Эстетическая настройка

Образы дисков также предлагают уникальное преимущество: возможность настраивать их внешний вид и опыт установки пользователя. Это включает в себя установку таких функций, как пользовательские значки, позиционирование значков и фоновое изображение.
Когда вы открываете образ диска и видите стрелку, предлагающую вам перетащить приложение в папку Программы, вы на самом деле смотрите на фоновое изображение DMG. Это невозможно с другими форматами контейнеров, и разработчики macOS чувствительны к визуальному дизайну. ZIP-архивы могут предлагать сжатие, но они не могут предложить такой степени «опыта установки» без запуска фактического установщика. Вместо этого программа разархивации просто помещает файлы в папку, предоставляя разработчику мало эстетического контроля.
Причина 3: Образы дисков похожи на CD
Помните, что образы дисков стали популярными (и были приняты Apple) в эпоху физических носителей. В то древнее время пользователи покупали программное обеспечение, отправляясь в магазин и покупая коробку с установочным CD приложения. Затем они вставляли CD в свой CD-привод и перетаскивали приложение из «смонтированного» CD в папку Программы. После этого они извлекали CD и возвращали его обратно в его футляр для будущих установок.
Образ диска имитирует этот процесс, подстраиваясь под знакомое поведение пользователя. Образы также могут быть только для чтения (так же, как CD), предотвращая повреждение или изменение известной хорошей копии приложения. Пользователи могут архивировать образы дисков, зная, что у них будет функциональная копия приложения, отложенная на случай чрезвычайной ситуации.
Заключение: Современные альтернативы и установочные пакеты

Образы дисков все еще широко используются, даже сегодня. Наряду с их преимуществами, DMG развили корку традиции и ожидания. Пользователи ожидают, что новое программное обеспечение будет доставлено через DMG, поэтому разработчики предоставляют его таким образом. Но вы также найдете разумное количество голых .app файлов внутри ZIP-архивов, разбросанных по Интернету. Это особенно верно для приложений из GitHub или от небольших разработчиков.
Вы также можете увидеть приложения в пакетах (.pkg) с установленными установщиками. Разработчики используют формат пакета, когда приложению необходимо выполнить инструкции при открытии. Это особенно полезно, когда программе необходимо скопировать файлы в каталоги вне «/Программы». Например, если установщик должен установить пользовательские шрифты или скопировать файлы в каталог Библиотеки, формат пакета может выполнить это с помощью установщика.
Если вам это интересно, вы можете прочитать о истории образа диска.