Upgrade

Last updated

Upgrading is the process of replacing a with a newer version of the same product. In computing and consumer electronics an upgrade is generally a replacement of hardware, software or firmware with a newer or better version, in order to bring the system up to date or to improve its characteristics.

Contents

Computing and consumer electronics

Examples of common hardware upgrades include installing additional memory (RAM), adding larger hard disks, replacing microprocessor cards or graphics cards, and installing new versions of software. Many other upgrades are possible as well.

Common software upgrades include changing the version of an operating system, an office suite, of an anti-virus program, or of various other tools.

Common firmware upgrades include the updating of the iPod control menus, the Xbox 360 dashboard, or the non-volatile flash memory that contains the embedded operating system for a consumer electronics device.

Users can often download software and firmware upgrades from the Internet. Often the download is a patch—it does not contain the new version of the software in its entirety, just the changes that need to be made. Software patches usually aim to improve functionality or solve problems with security. Rushed patches can cause more harm than good and are therefore sometimes regarded[ by whom? ] with skepticism for a short time after release. [1] [ original research? ] Patches are generally free.

A software or firmware upgrade can be major or minor and the release version code-number increases accordingly. A major upgrade will change the version number, whereas a minor update will often append a ".01", ".02", ".03", etc. For example, "version 10.03" might designate the third minor upgrade of version 10. In commercial software, the minor upgrades (or updates) are generally free, but the major versions must be purchased.

Companies usually make software upgrades for the following reasons: 1.) to support industry regulatory requirements 2.) to access emerging technologies with new features, and tools 3.) to meet the demands of changing markets 4.) to continue to receive comprehensive product support. [2]

Risks

Although developers usually produce upgrades to improve a product, there are risks involved—including the possibility that the upgrade will worsen the product.

Upgrades of hardware involve a risk that new hardware will not be compatible with other pieces of hardware in a system. For example, an upgrade of RAM may not be compatible with existing RAM in a computer. Other hardware components may not be compatible after either an upgrade or downgrade, due to the non-availability of compatible drivers for the hardware with a specific operating system. Conversely, there is the same risk of non-compatibility when software is upgraded or downgraded for previously functioning hardware to no longer function.

Upgrades of software introduce the risk that the new version (or patch) will contain a bug, causing the program to malfunction in some way or not to function at all. For example, in October 2005, a glitch in a software upgrade caused trading on the Tokyo Stock Exchange to shut down for most of the day. [3] Similar have occurred: from important government systems [4] to freeware on the internet.

Upgrades can also worsen a product subjectively. A user may prefer an older version even if a newer version functions perfectly as designed. This may happen for a variety of reasons, including the user is already accustomed to the behavior of the old version or because the upgrade removed some features (see iPhone jack removal controversy or OtherOS).

A further risk of software upgrades is that they can brick the device being upgraded, such as if power fails while the upgrade is in the middle of being installed. This is an especially big concern for embedded devices, in which upgrades are typically all-or-nothing (the upgrade is a firmware or filesystem image, which isn't usable if it's only partially written), and which have limited ability to recover from a failed upgrade. [5] Solutions to this generally involve keeping multiple copies of firmware, so that one can be upgraded while the other remains intact as a backup, but there are still holes which can cause this to fail. [5] [6] [7] Tools such as Mender.io, [8] Sysup, [5] SWUpdate, RAUC, [7] and OSTree [9] provide more complete solutions that implement upgrades in a safe atomic way, and reduce or eliminate the need to customize bootloaders and other components. Desktop systems are more likely to use something like snapshots or restore points; these are more efficient as they only require a small fraction of space to store the changes from the old system to the new one, but the lack of a turnkey implementation for embedded systems makes this impractical.

See also

Related Research Articles

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The firmware comes pre-installed on the computer's motherboard.

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. They are often obtained from the website of each distribution, which are available for a wide variety of systems ranging from embedded devices and personal computers to servers and powerful supercomputers.

<span class="mw-page-title-main">Firmware</span> Low-level computer software

In computing, firmware is software that provides low-level control of computing device hardware. For a relatively simple device, firmware may perform all control, monitoring and data manipulation functionality. For a more complex device, firmware may provide relatively low-level control as well as hardware abstraction services to higher-level software such as an operating system.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class C of hardware devices to be accessed through identical interfaces even though C may contain different subclasses of devices that each provide a different hardware interface.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

Unified Extensible Firmware Interface is a specification that defines an architecture for the platform firmware used for booting a computer's hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.

<span class="mw-page-title-main">American Megatrends</span> International hardware and software company

American Megatrends International, LLC, doing business as AMI, is an international hardware and software company, specializing in PC hardware and firmware. The company was founded in 1985 by Pat Sarma and Subramonian Shankar. It is headquartered in Building 800 at 3095 Satellite Boulevard in unincorporated Gwinnett County, Georgia, United States, near the city of Duluth, and in the Atlanta metropolitan area.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates the processor of a computer through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can be interoperated with Kernel-based Virtual Machine (KVM)(see also Kernel) to execute virtual machines at near-native speed. QEMU also provides emulation for user-level processes, allowing applications compiled for one processor architecture to run on another.

coreboot Open-source computer firmware

coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary firmware found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system.

Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management, auto configuration, and status monitoring. It was first released in December 1996. ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification. ACPI brings power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies. The specification is central to the Operating System-directed configuration and Power Management (OSPM) system. ACPI defines hardware abstraction interfaces between the device's firmware, the computer hardware components, and the operating systems.

<span class="mw-page-title-main">Dreambox</span>

Dreambox is a series of Linux-powered DVB satellite, terrestrial and cable digital television receivers, produced by German multimedia vendor Dream Multimedia.

The NSLU2 is a network-attached storage (NAS) device made by Linksys introduced in 2004 and discontinued in 2008. It makes USB flash memory and hard disks accessible over a network using the SMB protocol. It was superseded mainly by the NAS200 and in another sense by the WRT600N and WRT300N/350N which both combine a Wi-Fi router with a storage link.

In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.

The Linux booting process involves multiple stages and is in many ways similar to the BSD and other Unix-style boot processes, from which it derives. Although the Linux booting process depends very much on the computer architecture, those architectures share similar stages and software components, including system startup, bootloader execution, loading and startup of a Linux kernel image, and execution of various startup scripts and daemons. Those are grouped into 4 steps: system startup, bootloader stage, kernel stage, and init process. When a Linux system is powered up or reset, its processor will execute a specific firmware/program for system initialization, such as the power-on self-test, invoking the reset vector to start a program at a known address in flash/ROM, then load the bootloader into RAM for later execution. In IBM PC–compatible personal computers (PCs), this firmware/program is either a BIOS or a UEFI monitor, and is stored in the mainboard. In embedded Linux systems, this firmware/program is called boot ROM. After being loaded into RAM, the bootloader will execute to load the second-stage bootloader. The second-stage bootloader will load the kernel image into memory, decompress and initialize it, and then pass control to this kernel image. The second-stage bootloader also performs several operation on the system such as system hardware check, mounting the root device, loading the necessary kernel modules, etc. Finally, the first user-space process starts, and other high-level system initializations are performed.

<span class="mw-page-title-main">Intel Active Management Technology</span> Out-of-band management platform

Intel Active Management Technology (AMT) is hardware and firmware for remote out-of-band management of select business computers, running on the Intel Management Engine, a microprocessor subsystem not exposed to the user, intended for monitoring, maintenance, updating, and repairing systems. Out-of-band (OOB) or hardware-based management is different from software-based management and software management agents.

<span class="mw-page-title-main">Kickstart (Amiga)</span> Bootstrap firmware used by Amiga computers

Kickstart is the bootstrap firmware of the Amiga computers developed by Commodore International. Its purpose is to initialize the Amiga hardware and core components of AmigaOS and then attempt to boot from a bootable volume, such as a floppy disk. Most Amiga models were shipped with the Kickstart firmware stored on ROM chips.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions, after Commodore's demise, were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

ETAS GmbH is a German company which designs tools for the development of embedded systems for the automotive industry and other sectors of the embedded industry. ETAS is 100% owned by Robert Bosch GmbH.

<span class="mw-page-title-main">Logitech Unifying receiver</span> USB wireless receiver

The Logitech Unifying Receiver is a small dedicated USB wireless receiver, based on the nRF24L-family of RF devices, that allows up to six compatible Logitech human interface devices to be linked to the same computer using 2.4 GHz band radio communication. Receivers that are bundled with a Logitech product are paired with the device at the factory. When purchasing a replacement receiver or connecting multiple devices to one receiver, pairing requires the free-of-charge Logitech Unifying software, available for Microsoft Windows and macOS. On Linux, the Solaar software can be used to adjust the configurations. Although not compatible with Bluetooth, devices pair to Unifying Receivers in a similar way. Peripherals remain paired, and can then be used on systems not supporting the software. Logitech receivers compatible with the Unifying protocol can be identified by the orange Unifying logo, which distinguishes them from Logitech Nano receivers of similar appearance, which pair similarly but only with a single device, without using the Unifying protocol.

Custom firmware, also known as aftermarket firmware, is an unofficial new or modified version of firmware created by third parties on devices such as video game consoles, mobile phones, and various embedded device types to provide new features or to unlock hidden functionality. In the video game console community, the term is often written as custom firmware or simply CFW, referring to an altered version of the original system software inside a video game console such as the PlayStation Portable, PlayStation 3, PlayStation Vita/PlayStation TV, PlayStation 4, Nintendo 3DS, Wii U and Nintendo Switch. Installing custom firmware on some devices requires bootloader unlocking.

References

  1. Lea Rush (2007-08-07). "Windows Vista patch ready for download". IT News Digest. Retrieved 2008-07-30.
  2. Marini, Paul. "Best Practices for a Successful Software Upgrade". Sparta Systems. Retrieved 22 June 2015.
  3. Williams, Martyn (2005-11-01). "Software glitch halts Tokyo Stock Exchange". InfoWorld. Retrieved 2008-07-30.
  4. Associated Press (2006-04-20). "Official: Software glitch, not bomb, shut airport". NBC News. Retrieved 2008-07-30.
  5. 1 2 3 Ben-Yossef, Gilad. "Building Murphy-compatible embedded Linux systems" (PDF). Proceedings of the Linux Symposium. 1: 21–36. Retrieved 23 June 2016.
  6. Babic, Stefano. "Software Management on embedded systems" . Retrieved 23 June 2016.
  7. 1 2 "Welcome to the RAUC documentation" . Retrieved 5 May 2020.
  8. Northern.tech. "Open source over-the-air software updates for Linux devices". mender.io. Retrieved 2021-08-03.
  9. "OSTree Overview" . Retrieved 5 May 2020.