Patch (computing)

Patch (computing)

A patch is a piece of software designed to fix problems[1] with, or update a computer program or its supporting data. This includes fixing security vulnerabilities[1] and other bugs, and improving the usability or performance. Though meant to fix problems, poorly designed patches can sometimes introduce new problems (see software regressions).

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

Contents

Types

Programmers publish and apply patches in various forms. Because proprietary software authors withhold their source code, 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 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 packs" or as "software updates". Microsoft Windows NT and its successors (including Windows 2000, Windows XP, and later versions) use the "service pack" terminology.

In several Unix-like systems, particularly Linux, updates between releases are delivered as new software packages. 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

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 or, later, CD-ROM via mail. Today, with almost universal Internet 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 with very little or no intervention on the part of users. The maintenance of server software and of operating systems 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 kilobytes to hundreds of megabytes — 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.[citation needed] Package management systems 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 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.

Applying patches to firmware 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 BIOS 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, such as a CRC).

Computer games

Computer games receive patches to fix compatibility problems after their initial release just like any other software, but they can also be applied to change game rules or algorithms. These patches may be prompted by the discovery of exploits in the multiplayer game experience that can be used to gain unfair advantages over other players. Extra features and game play tweaks can often be added. These kinds of patches are common in first-person shooters with multiplayer capability, and in MMORPGs.[citation needed] 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.

Tools

There are several tools to aid in the patch application process, such as RTPatch, JUpdater, StableUpdate or Visual Patch. WinZip Self-Extractor can launch a program that can apply a patch

In software development

Patches sometimes become mandatory to fix problems with libraries or with portions of source code 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 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 operating system (noted for publishing its complete source code), Linus Torvalds, the original author, received hundreds of thousands of patches from many programmers to apply against his original version.

The Apache HTTP Server originally evolved as a number of patches that Brian Behlendorf collated to improve NCSA HTTPd, hence a name that implies that it is a collection of patches ("a patchy server"). 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. However, the 'a patchy server' explanation was initially given on the project's website.[2]

Security patches

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 its 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 the application of patches without shutting down and restarting the system or the program concerned. This addresses problems related to unavailability of service provided by the system or the program.[3] A patch that can be applied in this way is called a hot patch.

See also

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Patch (Unix) — patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file . The patch file (also called a patch for short) is a text file that consists of a list of differences and is produced by… …   Wikipedia

  • Patch — The term patch may refer to:Textiles* Embroidered patch, an embroidered design applied to clothing by organizations or individuals * Eyepatch, used in the treatment of eye disorders, or for aesthetic purposes in covering an injured or missing eye …   Wikipedia

  • patch — ► NOUN 1) a piece of material used to mend a hole or strengthen a weak point. 2) a small area differing in colour, composition, or texture from its surroundings. 3) a small plot of land: a cabbage patch. 4) Brit. informal a brief period of time:… …   English terms dictionary

  • patch — noun 1》 a piece of material used to cover a torn or weak point.     ↘a shield worn over a sightless or injured eye.     ↘a piece of cloth sewn on to clothing as a badge.     ↘an adhesive piece of drug impregnated material worn on the skin so that …   English new terms dictionary

  • patch — {{Roman}}I.{{/Roman}} noun 1 material over a hole VERB + PATCH ▪ have ▪ Her jeans have patches all over them. ▪ sew on/onto ▪ She wore a jacket with bright patches sewn onto it. PREPOSITION …   Collocations dictionary

  • patch — patch1 [ pætʃ ] noun count ** ▸ 1 piece of cloth ▸ 2 different part of something ▸ 3 piece of ground ▸ 4 piece of software ▸ 5 with nicotine ▸ + PHRASES 1. ) a piece of cloth that you sew over a hole in clothes, or over a part where holes might… …   Usage of the words and phrases in modern English

  • patch — I UK [pætʃ] / US noun [countable] Word forms patch : singular patch plural patches ** 1) an area that is different from what surrounds it Icy patches are likely on some roads. The male has a distinctive white patch on its tail. There were damp… …   English dictionary

  • patch — [pætʃ] noun [C] I 1) an area that is different from what surrounds it There were damp patches on the ceiling.[/ex] 2) a piece of ground, especially one where you grow fruit or vegetables, or where a particular plant grows a patch of grass[/ex] 3) …   Dictionary for writing and speaking English

  • History of computing hardware — Computing hardware is a platform for information processing (block diagram) The history of computing hardware is the record of the ongoing effort to make computer hardware faster, cheaper, and capable of storing more data. Computing hardware… …   Wikipedia

  • Trusted computing base — The trusted computing base (TCB) of a computer system is the set of all hardware, firmware, and/or software components that are critical to its security, in the sense that bugs occurring inside the TCB might jeopardize the security properties of… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”