Patch
(computing)
A patch is a
piece of software designed to update a computer program or its supporting data,
to fix or improve it. This includes fixing security vulnerabilities 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). In some special cases updates may knowingly break the
functionality, for instance, by removing components for which the update
provider is no longer licensed or disabling a device.
Patch management is the process of using a strategy
and plan of what patches should be applied to which systems at a specified
time.
Patches for proprietary software are typically
distributed as executable files instead of source code. 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 this case, the patches usually consist of textual differences
between two source code files, called "diffs". 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.
The size of patches may vary from a few kilobytes to
hundreds of megabytes; thus, 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. Some critical patches involve
issues with drivers.
Patches may require prior application of other
patches, or may require prior or concurrent updates of several independent
software components. To facilitate updates, operating systems often provide
automatic or semi-automatic updating 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 has become far
more widespread in the consumer market, due largely[citation needed] to the
fact that Microsoft Windows added support for them[when?], and Service Pack 2
of Windows XP (available in 2004) 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,
as it often involves the provisioning of totally new firmware images, rather
than applying only the differences from the previous version. The patch usually
consists of a firmware image in form of binary data, together with a
supplier-provided special program that replaces the previous version with the
new version; 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; for
example, the upgrade procedure could make and keep a backup of the firmware to
use in case it determines that the primary copy is corrupt (usually through the
use of a checksum, such as a CRC).
No hay comentarios:
Publicar un comentario