Delta Update
   HOME

TheInfoList



OR:

A delta update is a
software update A patch is a set of changes to a computer program or its supporting data designed to update, fix, or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually being called bugfixes or bug fixes. Patches ...
that only requires the user to download those parts of the software's code which 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''. By using a delta update, a program can be updated more quickly and efficiently. For example: An auto racing simulation game has a size of 300 megabytes; it is updated to include a new racetrack, and the body of code which inserts the new racetrack into the game has a size of two megabytes; the game may use a delta update, which would require the download of only the two megabytes of new code, instead of a total download of 302 megabytes.


Uses


Linux

Fedora Linux Fedora Linux is a Linux distribution developed by the Fedora Project. Fedora contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. Fedora is the upstream source ...
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. This functionality has been inherited by Fedora-derived operating systems, including RedHat Enterprise Linux and its variant, CentOS. OpenSUSE also uses deltarpms with its zypper manager. A more primitive system, the SUSE ''patchrpm'', worked by replacing changed files. A similar system for the
dpkg 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. dpkg (Debian Package) itself is ...
-
APT Apt. is an abbreviation for apartment. Apt may also refer to: Places * Apt Cathedral, a former cathedral, and national monument of France, in the town of Apt in Provence * Apt, Vaucluse, a commune of the Vaucluse département of France * A ...
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. 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. A descendant of Debian,
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
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. In 2011 they tried to just set up debdelta, but once again dropped the efforts in May of the same year. The
Arch Linux Arch Linux () is an independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is a minimal base system, ...
package manager ''
pacman originally called ''Puck Man'' in Japan, is a 1980 maze action video game developed and released by Namco for arcades. In North America, the game was released by Midway Manufacturing as part of its licensing agreement with Namco America. ...
'' used to support a form of delta updating using VCDIFF (xdelta). It was scrapped due to an arbitrary command execution vulnerability () due to a lack of string escaping.


Windows

Windows Update has supported delta updates since
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
which are called express installation files. On redistributing updates, Windows Server Update Services has supported delta updates since Windows Server 2003.


FreeBSD

FreeBSD has supported delta updates using
portsnap Portsnap is a system written by Colin Percival for secure distribution of compressed, digitally signed snapshots of the FreeBSD ports tree. The distribution follows the client–server model and uses the transport protocol HTTP ( pipelined HTT ...
since November 2005. Given FreeBSD's traditional stance of focusing on
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
updates, no method of delta binary updates currently exists.


Google

Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
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. Google's open source project Chromium requires frequent updates to narrow the window of vulnerability. It uses a disassembly-based
diff In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but ...
ing 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. 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.


Apple iOS

Apple's
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
is also capable of delta updates for operating system and application updates to reduce bandwidth usage.


Over-the-air software updates

Over-the-air (OTA) software updates have been used widely across many mobile devices; Apple
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
, Google Android, Microsoft
Windows Phone 8 Windows Phone 8 is the second generation of the Windows Phone mobile operating system from Microsoft. It was released on October 29, 2012, and, like its predecessor, it features a flat user interface based on the Metro design language. It was s ...
, and
BlackBerry 10 BlackBerry 10 is a discontinued proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry Limited (formerly Research In Motion). BlackBerry 10 is based on QNX, a Unix-like operating system that was ...
.


See also

*
Data differencing In computer science and information theory, data differencing or differential compression is producing a technical description of the difference between two sets of data – a source and a target. Formally, a data differencing algorithm takes as in ...
*
Delta encoding 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 compre ...


References

Software maintenance {{install-software-stub