All Topics  
Patch (computing)

 

   Email Print
   Bookmark   Link






 

Patch (computing)



 
 
A patch is a small piece of software designed to fix problems with or update a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 or its supporting data. This includes fixing bugs, replacing graphics and improving the usability
Usability

Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal....
 or performance
Performance

A performance, in performing arts, generally comprises an event in which one group of people behave in a particular way for another group of people ....
. Though meant to fix problems, poorly designed patches can sometimes introduce new problems (see software regression
Software regression

A software regression is a software bug which makes a feature stop functioning as intended after a certain event . A software performance regression is a situation where the software still functions correctly, but performs slowly or uses more memory when compared to previous versions....
s).

Patch management is the process of using a strategy and plan of what patches should be applied to which systems at a specified time.

rammers publish and apply patches in various forms. Because proprietary software
Proprietary software

Proprietary software is a term coined by advocates of the free software movement to describe computer software which is the legal property of one party....
 authors withhold their source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
, their patches are distributed as binary executables instead of source.






Discussion
Ask a question about 'Patch (computing)'
Start a new discussion about 'Patch (computing)'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A patch is a small piece of software designed to fix problems with or update a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 or its supporting data. This includes fixing bugs, replacing graphics and improving the usability
Usability

Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal....
 or performance
Performance

A performance, in performing arts, generally comprises an event in which one group of people behave in a particular way for another group of people ....
. Though meant to fix problems, poorly designed patches can sometimes introduce new problems (see software regression
Software regression

A software regression is a software bug which makes a feature stop functioning as intended after a certain event . A software performance regression is a situation where the software still functions correctly, but performs slowly or uses more memory when compared to previous versions....
s).

Patch management is the process of using a strategy and plan of what patches should be applied to which systems at a specified time.

Types

Programmers publish and apply patches in various forms. Because proprietary software
Proprietary software

Proprietary software is a term coined by advocates of the free software movement to describe computer software which is the legal property of one party....
 authors withhold their source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
, their patches are distributed as binary executables instead of source. This type of patch modifies the program executable—the program the user actually runs—either by modifying the binary file to include the fixes or by completely replacing it.

Patches can also circulate in the form of source code modifications. In these cases, the patches consist of textual differences between two source code files. These types of patches commonly come out of open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 projects. In these cases, developers expect users to compile the new or changed files themselves.

Because the word "patch" carries the connotation of a small fix, large fixes may use different nomenclature. Bulky patches or patches that significantly change a program may circulate as "service pack
Service pack

A service pack is a collection of updates, fixes and/or enhancements to a computer program delivered in the form of a single installable package....
s" or as "software updates". Microsoft Windows NT and its successors (including Windows 2000
Windows 2000

Windows 2000 is a line of operating systems produced by Microsoft for use on business desktops, Laptop, and Server . Released on 17 February, 2000, it was the successor to Windows NT 4.0, and is the final release of Microsoft Windows to display the "Windows NT" designation....
, Windows XP
Windows XP

Windows XP is a line of operating systems produced by Microsoft for use on personal computers, including home and business desktops, laptop, and media centers....
, and later versions) use the "service pack" terminology.

In several Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 systems, particularly Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, updates between releases are delivered as new software packages
Software package (installation)

A software package refers to computer software packaged in an archive format to be installed by a package management system or a self-sufficient Installation ....
. These updates are in the same format as the original installation so they can be used either to update an existing package in-place (effectively patching) or be used directly for new installations.

History

Applying a patch once involved a tedious, error-fraught process that required end-users to follow an often ill-documented set of procedures. Missing or misapplying a step usually resulted in having to re-install both the application and patch. Today, patch installation generally occurs automatically.

Historically, software suppliers distributed patches on paper tape or on punched cards, expecting the recipient to cut out the indicated part of the original tape (or deck), and patch in (hence the name) the replacement segment. Later patch distributions used magnetic tape. Then, after the invention of removable disk drives, patches came from the software developer via a disk
Floppy disk

A floppy disk is a data storage medium that is composed of a disk of thin, flexible magnetic storage medium encased in a square or rectangle plastic shell....
 or, later, CD-ROM
CD-ROM

CD-ROM is a pre-pressed Compact Disc that contains Computer data storage accessible to, but not writable by, a computer. While the Compact Disc format was originally designed for music storage and playback, the 1985 Yellow Book standard developed by Sony and Philips adapted the format to hold any form of Binary file....
 via mail
Mail

Mail, or post, is a method for transmitting information and tangible objects, wherein written documents, typically enclosed in envelopes, and also small packages, are delivered to destinations around the world....
. Today, with almost universal Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
 access, end-users must download most patches from the developer's web site.

Today, computer programs can often coordinate patches to update a target program. Automation simplifies the end-users' task -- they need only to execute an update program, whereupon that program makes sure that updating the target takes place completely and correctly. Service packs for Microsoft Windows NT and its successors and for many commercial software products adopt such automated strategies.

Some programs can update themselves via the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
 with very little or no intervention on the part of users. The maintenance of server
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
 software and of operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s often takes place in this manner. In situations where system administrators control a number of computers, this sort of automation helps to maintain consistency. The application of security patches commonly occurs in this manner.

Application

The size of patches may vary from a few kilobyte
Kilobyte

Kilobyte is a unit of Computer data storage equal to either 1,024 bytes or 1,000 bytes , depending on context.It is abbreviated in a number of ways: KB, kB, K and Kbyte....
s to hundreds of megabyte
Megabyte

Megabyte is a SI prefix-multiple of the unit byte for digital information computer storage or transmission and is equal to 106 bytes....
s — mostly more significant changes imply a larger size, though this also depends on whether the patch includes entire files or only the changed portion(s) of files. In particular, patches can become quite large when the changes add or replace non-program data, such as graphics and sounds files. Such situations commonly occur in the patching of computer games. Compared with the initial installation of software, patches usually do not take long to apply.

In the case of operating systems and computer server software, patches have the particularly important role of fixing security holes. To facilitate updates, operating systems often provide automatic or semi-automatic update facilities.

Completely automatic updates have not succeeded in gaining widespread popularity in corporate computing environments, partly because of the aforementioned glitches, but also because administrators fear that software companies may gain unlimited control over their computers. Package management system
Package management system

A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing Software package from a computer....
s can offer various degrees of patch automation.

Usage of completely automatic updates is far more widespread in the consumer market, due largely to the fact that Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 added support for them, and Service Pack 2 of Windows XP enabled them by default.

Cautious users, particularly system administrators, tend to put off applying patches until they can verify the stability of the fixes. Microsoft (W)SUS support this. In the cases of large patches or of significant changes, distributors often limit availability of patches to qualified developers as a beta test
Development stage

A software release is the distribution of an initial or upgraded Software versioning of a computer software product. The software engineering and company doing the work decide on how to distribute the program or system, or changes to that program or system....
.

Applying patches to firmware
Firmware

Firmware is a term sometimes used to denote the fixed, usually rather small, programs that internally control various electronic devices. Typical examples range from end user products such as remote controls or calculators, via computer parts and devices like harddisks, keyboard s, TFT screens or memory cards, all the way to scientific instr...
 poses special challenges: re-embedding typically small code sets on hardware devices often involves the provision of totally new program code, rather than simply of differences from the previous version. Often the patch consists of bare binary data and a special program that replaces the previous version with the new version is provided. A motherboard
Motherboard

A motherboard is the central printed circuit board in some complex electronic systems, such as modern personal computers. The motherboard is sometimes alternatively known as the mainboard, system board, or, on Apple Inc....
 BIOS
BIOS

In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
 update is an example of a common firmware patch. Any unexpected error or interruption during the update, such as a power outage, may render the motherboard unusable. It is possible for motherboard manufacturers to put safeguards in place to prevent serious damage. An example safeguard is to keep a backup of the firmware to use in case the primary copy is determined to be corrupt (usually through the use of a checksum
Checksum

A checksum or hash sum is a fixed-size data computed from an arbitrary block of digital data for the purpose of error detection that may have been introduced during its telecommunications or computer storage....
, such as a CRC
Cyclic redundancy check

A cyclic redundancy check is a type of function that takes as input a data stream of any length, and produces as output a value of a certain space, commonly a 32-bit integer....
).

Computer games

Unlike applications such as word processor
Word processor

A word processor is a computer Application software used for the production of any sort of printable material.Word processor may also refer to an obsolete type of stand-alone office machine, popular in the 1970s and 80s, combining the keyboard text-entry and printing functions of an electric typewriter with a dedicated computer for th...
s, patches play a unique role in computer games. Computer games often require patches to fix compatibility problems after their initial release.

Patches may also be released to change game rules or algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s. These patches may be prompted by the discovery of exploits
Exploit (online gaming)

In the realm of online games, an exploit is usually a software bug, hack or Internet bot that contributes to the user's prosperity in a manner not intended by the developers....
 in the multiplayer game experience that give canny users unfair advantages. Extra features and game play tweaks are also often added. These kinds of patches are especially common in first-person shooters with multiplayer capability, and in MMORPG
MMORPG

A massively multiplayer online role-playing game is a genre of computer role-playing games in which a large number of player interact with one another in a virtual world....
s. MMORPGs, which are typically very complex with large amounts of content, almost always rely heavily on patches following the initial release, where patches sometimes add new content and abilities available to players. Because the balance and fairness for all players of an MMORPG can be severely corrupted within a short amount of time by an exploit, servers of an MMORPG are sometimes taken down with short notice in order to apply a critical patch with a fix.

A new practice among computer game manufacturers is to include deliberately a bug in the released version, forcing all users to download a patch. This prevents users of early pirated copies to enjoy the game, as it crashes regularly and they can't apply the available patch, because it is not compatible with the illegal version.

Multiplayer games may reject any users that are not using the same patch version in order to avoid conflicts between versions. This also gives users an incentive to update their versions.

Tools

There are several tools to aid in the patch application process, such as JUpdater
JUpdater

JUpdater is a project which aims to create a utility that allows developers to quickly implement version checks into Java programs. The utility ensures that the user can always be notified of new versions, and easily upgrade to the latest version from within the program, without having to do anything....
 or StableUpdate
StableUpdate

StableUpdate is a cross platform library for automatic update of the installed applications on the client side. It supports the automated creation, detection, downloading, installation and removing of the service packs ....
. WinZip Self-Extractor
WinZip

WinZip is a proprietary file archiver for Microsoft Windows, developed by WinZip Computing . It natively uses the PKZIP format but also has various levels of support for other List of archive formats....
 can launch a program that can apply a patch.

In software development

Patches sometimes become mandatory to fix problems with libraries
Library (computer science)

In computer science, a library is a collection of subroutines or Class used to develop software. Libraries contain code and data that provide services to independent programs....
 or with portions of source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 for programs in frequent use or in maintenance. This commonly occurs on very large-scale software projects, but rarely in small-scale development.

In open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 projects, the authors commonly receive patches or many people publish patches that fix particular problems or add certain functionality, like support for local languages outside the project's locale. In an example from the early development of the Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 operating system (noted for publishing its complete source code), Linus Torvalds
Linus Torvalds

Linus Benedict Torvalds is a Finland software engineering best known for having initiated the development of the Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator....
, the original author, received hundreds of thousands of patches from many programmer
Programmer

A programmer is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software....
s to apply against his original version.

The Apache HTTP Server
Apache HTTP Server

The Apache HTTP Server, commonly referred to simply as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web....
 originally evolved as a number of patches that Brian Behlendorf
Brian Behlendorf

Brian Behlendorf is a technologist, computer programmer, and an important figure in the open-source software movement. He was a primary developer of the Apache HTTP server, the most popular web server software on the Internet, and a founding member of the Apache Group, which later became the Apache Software Foundation....
 collated to improve NCSA HTTPd
NCSA HTTPd

The NCSA HTTPd was a web server originally developed at the National Center for Supercomputing Applications by Robert McCool and . It was among the earliest web servers developed, following Tim Berners-Lee's CERN HTTPd, Tony Sanders' Plexus server, and some others....
, hence a name that implies that it is a collection of patches ("a patchy server"
Apache HTTP Server

The Apache HTTP Server, commonly referred to simply as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web....
). The FAQ on the project's official site states that the name 'Apache' was chosen from respect for the Native American Indian tribe of Apache
Apache

Apache is the collective term for several culturally related groups of Native Americans in the United States. These indigenous peoples of North America speak a Southern Athabaskan languages language, and are related linguistically to the languages of Athabaskan speakers of Alaska and western Canada....
. However, the 'a patchy server' explanation was initially given on the project's website.

Security patches

If a patch is a piece of data used to update a software product, then a security patch is a change applied to an asset to correct the weakness described by a vulnerability. This corrective action will prevent successful exploitation and remove or mitigate a threat’s capability to exploit a specific vulnerability in an asset.

Security patches are the primary method of fixing security vulnerabilities in software. Currently Microsoft releases their security patches once a month, and other operating systems and software projects have security teams dedicated to releasing the most reliable software patches as soon after a vulnerability announcement as possible. Security patches are closely tied to responsible disclosure.

Hot patching

Hot patching is a technology that allows patches to be applied without shutting down and restarting the system or the program. This addresses problems related to unavailability of service provided by the system or the program. A patch that can be applied in this way is called a hot patch.

See also


  • Patch (Unix)
    Patch (Unix)

    patch is a Unix computer program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments....
  • Porting
    Porting

    In computer science, porting is the process of adapting software so that an executable Computer program can be created for a computing environment that is different from the one for which it was originally designed ....
  • Hotfix
    Hotfix

    A hotfix was originally the term applied to software patches that were applied to live i.e. still running systems. Similar use of the terms can be seen in Hot_swappable....


External links