Jump to content

Delta update: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m rewrote phrases
Changed some words, inserted two citation needed templates.
Line 15: Line 15:
A similar system for the [[dpkg]]-[[APT (Debian)|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.<ref>{{cite web|title=debdelta at the Debian Project|url=http://debdelta.debian.net/}} (for source code, see debian "developer information" for package; for repository, see http://debdeltas.debian.net/debian-deltas/pool/.)</ref> 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.<ref>{{cite web |title=Teams/Dpkg/Spec/DeltaDebs |url=https://wiki.debian.org/Teams/Dpkg/Spec/DeltaDebs |website=Debian Wiki}}</ref>
A similar system for the [[dpkg]]-[[APT (Debian)|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.<ref>{{cite web|title=debdelta at the Debian Project|url=http://debdelta.debian.net/}} (for source code, see debian "developer information" for package; for repository, see http://debdeltas.debian.net/debian-deltas/pool/.)</ref> 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.<ref>{{cite web |title=Teams/Dpkg/Spec/DeltaDebs |url=https://wiki.debian.org/Teams/Dpkg/Spec/DeltaDebs |website=Debian Wiki}}</ref>


A descendant of Debian, [[Ubuntu (operating system)|Ubuntu]] developers have tried over and over to implement delta updates for their system. Around 2006 they tried to create one, but was confronted with too many options and dropped the efforts.<ref>{{cite web |title=SmallerUpdates |url=https://wiki.ubuntu.com/SmallerUpdates |website=Ubuntu Wiki |accessdate=13 January 2020}}</ref> In 2011 they tried to just set up debdelta, but dropped the efforts in May of that year.<ref>{{cite web|title=UbuntuDebdeltaSupport|url=https://wiki.ubuntu.com/UbuntuDebdeltaSupport}}</ref>
A descendant of Debian, [[Ubuntu (operating system)|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.<ref>{{cite web |title=SmallerUpdates |url=https://wiki.ubuntu.com/SmallerUpdates |website=Ubuntu Wiki |accessdate=13 January 2020}}</ref> In 2011 they tried to just set up debdelta, but once again dropped the efforts in May of the same year.<ref>{{cite web|title=UbuntuDebdeltaSupport|url=https://wiki.ubuntu.com/UbuntuDebdeltaSupport}}</ref>


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|reason=cited ArchWiki page is now archived and no longer exists|date=August 2022}}
The [[Arch Linux]] package manager ''[[Pacman 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|reason=cited ArchWiki page is now archived and no longer exists|date=August 2022}}


=== Windows ===
=== Windows ===
Line 26: Line 26:


=== Google ===
=== Google ===
[[Google]] refers to delta updates as "smart updates." This has been implemented in Google's [[Android (operating system)|Android]] operating system devices that run on [[Android Gingerbread|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]] refers to delta updates as "smart updates." This has been implemented in Google's [[Android (operating system)|Android]] operating system devices that run on [[Android Gingerbread|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|date=September 2022}}


Google's open source project [[Chromium (web browser)|Chromium]] requires frequent updates to narrow the window of vulnerability.<ref>{{cite web|title=Smaller is faster (and safer too),|url=https://blog.chromium.org/2009/07/smaller-is-faster-and-safer-too.html}}</ref> It uses a disassembly-based [[diff]]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.<ref>{{cite web|title=Software Updates: Courgette|url=https://dev.chromium.org/developers/design-documents/software-updates-courgette}}</ref> The technology helped Chrome to push its updates to 100% of users in less than 10 days.
Google's open source project [[Chromium (web browser)|Chromium]] requires frequent updates to narrow the window of vulnerability.<ref>{{cite web|title=Smaller is faster (and safer too),|url=https://blog.chromium.org/2009/07/smaller-is-faster-and-safer-too.html}}</ref> It uses a disassembly-based [[diff]]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.<ref>{{cite web|title=Software Updates: Courgette|url=https://dev.chromium.org/developers/design-documents/software-updates-courgette}}</ref> The technology helped Chrome to push its updates to 100% of users in less than 10 days.
Line 36: Line 36:


== Over-the-air software updates ==
== Over-the-air software updates ==
Over-the-air (OTA) software updates have been used widely across many mobile devices; Apple [[iOS]], Google [[Android (operating system)|Android]], Microsoft [[Windows Phone 8]], and [[BlackBerry 10]].
Over-the-air (OTA) software updates have been used widely across many mobile devices; Apple [[iOS]], Google [[Android (operating system)|Android]], Microsoft [[Windows Phone 8]], and [[BlackBerry 10]].{{Citation needed|date=September 2022}}


== See also ==
== See also ==

Revision as of 16:32, 14 September 2022

A delta update is a software update 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.[1]

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

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. OpenSUSE also uses deltarpms with its zypper manager. A more primitive system, the SUSE patchrpm, worked by replacing changed files.[3]

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.[4] 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.[5]

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.[6] In 2011 they tried to just set up debdelta, but once again dropped the efforts in May of the same year.[7]

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.[8]

FreeBSD

FreeBSD has supported delta updates using portsnap[9] since November 2005.[10] 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.[11] 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.[12] 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.[13]

Apple iOS

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

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

References