Delta update

Last updated

A delta update is a software update that requires the user to download only those parts of the software's code that are new, or have been changed from their previous state, in contrast to having to download the entire program. The use of delta updates can save significant amounts of time and computing bandwidth. The name "delta" derives from the mathematical science use of the Greek letter delta, Δ or δ to denote change. [1]

Contents

Uses

Linux

Delta update in Fedora Linux Delta RPM (deltarpm) in Fedora Linux 34.png
Delta update in Fedora Linux

Fedora Linux has supported binary delta updates by default using the yum presto plugin since June 2009. This is based on RPM Package Manager's deltarpm system (2004), which was in turn based on bsdiff. [2] This functionality has been inherited by Fedora-derived operating systems, including RedHat Enterprise Linux and its variant, CentOS. From Fedora 40 onward, delta updates had been discontinued. [3] openSUSE also uses delta-rpm's with its zypper manager. This is still in use, and the standard solution for the openSUSE Leap distribution today. A more primitive system, the SUSE patchrpm, worked by replacing changed files. [4]

A similar system for the dpkg-APT package manager system of Debian is debdelta (2006); despite an apparent halt on the homepage, its package repository as well as the source code remains actively maintained. [5] debdelta is not installed by default and not many mirrors have been set up for it. A member of the developer team has proposed yet another format that integrates directly into the currently mirrored main repositories called patch debs in 2018. It is intended to have more integrity checks. [6]

A descendant of Debian, Ubuntu developers have tried many times to implement delta updates for their system. During 2006 they tried to create one, but were confronted with too many options and dropped the efforts. [7] In 2011 they tried to just set up debdelta, but once again dropped the efforts in May of the same year. [8]

The Arch Linux package manager pacman used to support a form of delta updating using VCDIFF (xdelta). It was scrapped due to an arbitrary command execution vulnerability (CVE - 2019-18183) due to a lack of string escaping.[ citation needed ]

Windows

Windows Update has supported delta updates since Windows XP which are called express installation files. On redistributing updates, Windows Server Update Services has supported delta updates since Windows Server 2003. [9]

FreeBSD

FreeBSD has supported delta updates using portsnap [10] since November 2005. [11] Given FreeBSD's traditional stance of focusing on source code updates, no method of delta binary updates currently exists.

Google

Google refers to delta updates as "smart updates." This has been implemented in Google's Android operating system devices that run on Android 2.3 or above. Google engineers have estimated that smart updates would be only about one third the size of a full update on average.[ citation needed ]

Google's open source project Chromium requires frequent updates to narrow the window of vulnerability. [12] It uses a disassembly-based diffing algorithm called "courgette" to reduce diff size of two binary executable files, which reduces the diff patch from 6.7% (bsdiff) to 0.76% (bsdiff + courgette) for one version update. [13] The technology helped Chrome to push its updates to 100% of users in less than 10 days.

App APK updates in Android's Play Store use bsdiff since 2016, a new efficient delta update algorithm introduced in 2003. [14]

Apple iOS

Apple's iOS is also capable of delta updates for operating system[ citation needed ] and application updates to reduce bandwidth usage. [15]

Over-the-air software updates

Over-the-air (OTA) software updates have been used widely across many mobile devices; Apple iOS, Google Android, Microsoft Windows Phone 8, and BlackBerry 10.[ citation needed ]

See also

Related Research Articles

<span class="mw-page-title-main">Debian</span> Linux distribution based on free and open-source software

Debian, also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software and optionally non-free firmware or software developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Debian (0.01) was released on September 15, 1993, and its first stable version (1.1) was released on June 17, 1996. The Debian Stable branch is the most popular edition for personal computers and servers. Debian is also the basis for many other distributions that have different purposes, like Proxmox for servers, Ubuntu or Linux Mint for desktops, Kali for penetration testing, and Pardus and Astra for government use.

<span class="mw-page-title-main">Irssi</span> Text-mode IRC client

Irssi is an Internet Relay Chat (IRC) client program for Linux, FreeBSD, macOS and Microsoft Windows. It was originally written by Timo Sirainen, and released under the terms of the GNU GPL-2.0-or-later in January 1999.

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. They are often obtained from the website of each distribution, which are available for a wide variety of systems ranging from embedded devices and personal computers to servers and powerful supercomputers.

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

<span class="mw-page-title-main">APT (software)</span> Free software package management system

Advanced package tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.

dpkg is the software at the base of the package management system in the free operating system Debian and its numerous derivatives. dpkg is used to install, remove, and provide information about .deb packages.

yum (software) Free and open-source command-line package management utility

The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

Delta encoding is a way of storing or transmitting data in the form of differences (deltas) between sequential data rather than complete files; more generally this is known as data differencing. Delta encoding is sometimes called delta compression, particularly where archival histories of changes are required.

deb is the format, as well as filename extension of the software package format for the Debian Linux distribution and its derivatives.

phpLDAPadmin is a web app for administering Lightweight Directory Access Protocol (LDAP) servers. It's written in the PHP programming language, and is licensed under the GNU General Public License. The application is available in 14 languages and supports UTF-8 encoded directory strings.

Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security, including how quickly security upgrades are available; ease of package management; and number of packages available.

CPython is the reference implementation of the Python programming language. Written in C and Python, CPython is the default and most widely used implementation of the Python language.

BioLinux is a term used in a variety of projects involved in making access to bioinformatics software on a Linux platform easier using one or more of the following methods:

The Ångström distribution is a defunct Linux distribution for a variety of embedded devices. The distribution is the result of work by developers from the OpenZaurus, OpenEmbedded, and OpenSIMpad projects. The graphical user interfaces (GUIs) available are OPIE and GPE among other options.

<span class="mw-page-title-main">RPM Package Manager</span> Package management system

RPM Package Manager (RPM) is a free and open-source package management system. The name RPM refers to the .rpm file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.

<span class="mw-page-title-main">KVIrc</span> IRC Client

KVIrc is a graphical IRC client for Linux, Unix, Mac OS and Windows. The name is an acronym of K Visual IRC in which the K stands for a dependency to KDE, which became optional from version 2.0.0. The software is based on the Qt framework and its code is released under a modified GNU General Public License.

<span class="mw-page-title-main">Zim (software)</span> Personal wiki software written in Python

Zim is a graphical text editor designed to maintain a collection of locally stored wiki-pages, a personal wiki. It works as a personal knowledge base and note-taking software application that operates on text files using markdown. Each wiki-page can contain things like text with simple formatting, links to other pages, attachments, and images. Additional plugins, such as an equation editor and spell-checker, are also available. The wiki-pages are stored in a folder structure in plain text files with wiki formatting. Zim can be used with the Getting Things Done method.

git-annex is a distributed file synchronization system written in Haskell. It aims to solve the problem of sharing and synchronizing collections of large files independent from a commercial service or even a central server.

References

  1. Mullin, Sean (2017-04-25). "What is Delta in Math?". Sciencing. Leaf Group Media. Retrieved 2022-09-06. delta...means 'change' or 'the change in' in mathematics
  2. "Fedora Features/Presto".
  3. "Changes/Drop Delta RPMs - Fedora Project Wiki". fedoraproject.org. Retrieved 2024-06-02.
  4. "6.3. RPM and Patches". www.pks.mpg.de. Archived from the original on 2020-03-24. Retrieved 2020-03-24.
  5. "debdelta at the Debian Project". (for source code, see debian "developer information" for package; for repository, see http://debdeltas.debian.net/debian-deltas/pool/.)
  6. "Teams/Dpkg/Spec/DeltaDebs". Debian Wiki.
  7. "SmallerUpdates". Ubuntu Wiki. Retrieved 13 January 2020.
  8. "UbuntuDebdeltaSupport".
  9. "Determine Bandwidth Options to Use for Your Deployment". 9 April 2014.
  10. "Secure FreeBSD ports tree updating".
  11. "FreeBSD 6.0-RELEASE Announcement".
  12. "Smaller is faster (and safer too)".
  13. "Software Updates: Courgette".
  14. Google Play’s new delta algorithm reduces size of Android app updates
  15. "Technical Q&A QA1779: Reducing Download Size for iOS App Updates". developer.apple.com. Retrieved 2015-07-07.