Patch (computing)

In computing, a patch is a software update meant to fix problems with a computer program. This can range from fixing bugs, to replacing graphics, to improving the usability or performance of a previous version. The term probably originates from the Unix patch command written by Larry Wall. Though meant to fix problems, patches can sometimes introduce new problems.

Contents

Types

Programmers publish and apply patches in various forms. Because writers of proprietary software keep their source code confidential, their patches usually circulate in binary form. 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 diffent nomenclature. Bulky patches or patches that significantly change a program may circulate as "service packs" or as "software updates". Microsoft Windows software uses the "service pack" terminology.

Sometimes developers release patches in order to eliminate functionality or to prevent users from performing a certain activity. Some companies employ a tactic of issuing patches that install themselves automatically, mostly to obfuscate the protocol for blocking third-party products. For example, in 2003 and 2004 AOL issued updates for its instant messenger whose only functionality was to block clients like Trillian, Gaim and KaZaA.

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 removeable disk drives, patches came from the software developer via a disk or, later, CD-ROM via mail. Today, with almost ubiquitous Internet access, end-users must download most patches from the developer's web site.

Often today, computer programs can co-ordinate 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 and for many commercial software products adopt such automated strategies.

Though not common, 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. In particular, patches can become quite large when the changes add or replace non-program data, such as graphics and sounds files. Such situations occur common in the patching of computer games.

Compared with the initial installation of software, patches usually do not take long to apply. Patches acquired via the Internet may take longer (depending on Internet connection speed).

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.

Complete automatic update has not succeeded in gaining mainstream popularity, partly because of the aforementioned glitches, but also because users fear that software companies may gain unlimited control over their computers. Package management systems can offer various degrees of patch automation.

Cautious users, particularly system administrators, tend to put off applying patches until they can verify the stability of the fixes. 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 is provided, 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. Any unexpected error or interruption, like a power outage, might spell disaster. A motherboard BIOS update exemplifies a common firmware patch.

Computer games

Unlike applications such as word processors, patches play a unique role in computer games. Computer games often — almost ubiquitously today — require patches to fix compatibility problems after their initial release.

Patches may also be released to change game rules or algorithms. These patches may be prompted by the discovery of exploits in the multiplayer game experience that give canny users unfair advantages. These kinds of patches are common in massive multiplayer online role-playing games, first-person shooters, and strategy games

Network games (played over the Internet) may reject any candidate program that has not applied the latest patches -- in order to avoid conflicts. This also gives users an incentive to update their versions.

Tools

Several software manufacturers develop tools to aid in the patch application process, such as Pocket Soft's RTPatch, which only delivers changes to the binary executable. WinZip has a self-extraction utility that will launch a program that can apply a patch.

Patches in software development

Patches sometimes become mandatory to fix problems with libraries or with portions of source code for programs in frequent used 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 a webmaster created to add new features to NCSA HTTPd, hence the name that implies that it is a collection of patches: "a patchy server".

See also

External link

es:Parche informtico fr:Patch (informatique) nl:Patch pl:Łata (informatyka) sl:Popravek (računalništvo)

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools