Дельта-обновление
Дельта -обновление — это обновление программного обеспечения программного обеспечения , которое требует от пользователя загрузки только тех частей кода , которые являются новыми или были изменены по сравнению с предыдущим состоянием, в отличие от необходимости загружать всю программу . Использование дельта-обновлений может сэкономить значительное количество времени и вычислительной мощности . Название «дельта» происходит от использования в математической науке греческой буквы «дельта», Δ или δ для обозначения изменения. [1]
Использование
[ редактировать ]Линукс
[ редактировать ]
Fedora Linux по умолчанию поддерживает двоичные дельта-обновления с использованием плагина yum presto с июня 2009 года. Это основано на системе deltarpm менеджера пакетов RPM (2004), которая, в свою очередь, была основана на bsdiff. [2] Эта функциональность была унаследована операционными системами, производными от Fedora, включая RedHat Enterprise Linux и его вариант CentOS . Начиная с Fedora 40, выпуск дельта-обновлений был прекращен. [3] OpenSUSE также использует дельта-обращение в минуту со своим менеджером zypper. Это все еще используется и сегодня является стандартным решением для всех дистрибутивов OpenSUSE. Более примитивная система — SUSE patchrpm — работала путем замены измененных файлов. [4]
Аналогичная система для dpkg - APT системы менеджера пакетов Debian — debdelta (2006); несмотря на очевидную остановку работы домашней страницы, его репозиторий пакетов, а также исходный код продолжают активно поддерживаться. [5] Debdelta не установлена по умолчанию и для нее настроено не так много зеркал. Член команды разработчиков предложил еще один формат, который в 2018 году интегрируется непосредственно в зеркалируемые основные репозитории, называемые патчами debs. Он предназначен для большего количества проверок целостности. [6]
, потомка Debian, Разработчики Ubuntu много раз пытались внедрить дельта-обновления для своей системы. В 2006 году они попытались его создать, но столкнулись со слишком большим количеством вариантов и отказались от попыток. [7] В 2011 году они попытались просто создать debdelta, но в мае того же года снова отказались от этой попытки. [8]
Arch Linux Менеджер пакетов pacman, используемый для поддержки формы дельта-обновления с использованием VCDIFF (xdelta). Он был удален из-за уязвимости выполнения произвольных команд ( CVE - 2019-18183 ) из-за отсутствия экранирования строк. [ нужна ссылка ]
Окна
[ редактировать ]Центр обновления Windows поддерживает разностные обновления, начиная с Windows XP , которые называются файлами экспресс-установки. При распространении обновлений службы Windows Server Update Services поддерживают разностные обновления, начиная с Windows Server 2003. [9]
FreeBSD
[ редактировать ]FreeBSD поддерживает дельта-обновления с помощью portsnap. [10] с ноября 2005 года. [11] Учитывая традиционную позицию FreeBSD, заключающуюся в сосредоточении внимания на обновлениях исходного кода , в настоящее время не существует метода дельта-бинарных обновлений.
Google называет дельта-обновления «умными обновлениями». Это было реализовано на устройствах с операционной системой Android от Google , работающих под управлением Android 2.3 или более поздней версии. Инженеры Google подсчитали, что интеллектуальные обновления в среднем будут занимать лишь треть от размера полного обновления. [ нужна ссылка ]
Проект Google с открытым исходным кодом Chromium требует частых обновлений, чтобы сузить окно уязвимости. [12] на основе дизассемблирования, Он использует алгоритм сравнения называемый «кабачок», для уменьшения размера различий двух двоичных исполняемых файлов, что уменьшает размер патча различий с 6,7% (bsdiff) до 0,76% (bsdiff + кабачок) для одного обновления версии. [13] Эта технология помогла Chrome распространить обновления среди 100% пользователей менее чем за 10 дней.
В обновлениях APK-файлов приложений в магазине Play Store для Android с 2016 года используется новый эффективный алгоритм дельта-обновления bsdiff, представленный в 2003 году. [14]
Apple iOS
[ редактировать ]от Apple iOS также поддерживает дельта-обновления операционной системы. [ нужна ссылка ] и обновления приложений для снижения использования полосы пропускания. [15]
Обновления программного обеспечения по беспроводной сети
[ редактировать ]Обновления программного обеспечения по беспроводной сети (OTA) широко используются на многих мобильных устройствах; Apple iOS , Google Android , Microsoft Windows Phone 8 и BlackBerry 10 . [ нужна ссылка ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Маллин, Шон (25 апреля 2017 г.). «Что такое дельта в математике?» . Наука . Лиф Групп Медиа . Проверено 06 сентября 2022 г.
дельта... означает «изменение» или «изменение» в математике.
- ^ «Функции Fedora/Престо» .
- ^ «Изменения/удаление дельта-RPM — Fedora Project Wiki» . Fedoraproject.org . Проверено 2 июня 2024 г.
- ^ «6.3. RPM и патчи» . www.pks.mpg.de. Архивировано из оригинала 24 марта 2020 г. Проверено 24 марта 2020 г.
- ^ «debdelta в проекте Debian» . (исходный код см. в «информации для разработчиков» пакета debian; репозиторий см. http://debdeltas.debian.net/debian-deltas/pool/ .)
- ^ «Команды/Dpkg/Spec/DeltaDebs» . Дебиан Вики .
- ^ «Маленькие обновления» . Убунту Вики . Проверено 13 января 2020 г. .
- ^ «Поддержка UbuntuDebdelta» .
- ^ «Определите параметры пропускной способности, которые будут использоваться для вашего развертывания» . 9 апреля 2014 г.
- ^ «Безопасное обновление дерева портов FreeBSD» .
- ^ «Объявление о выпуске FreeBSD 6.0» .
- ^ «Меньше — быстрее (и безопаснее)» .
- ^ «Обновления программного обеспечения: Кабачки» .
- ^ Новый дельта-алгоритм Google Play уменьшает размер обновлений приложений для Android.
- ^ «Технические вопросы и ответы QA1779: Уменьшение размера загрузки обновлений приложений для iOS» . разработчик.apple.com . Проверено 7 июля 2015 г.