Device Independence
Encyclopedia
Device independence is the process of making a software application be able to function on a wide variety of devices regardless of the local hardware on which the software is used.
s, the concept of peripheral devices was introduced, where the base hardware could have a variety of different accessory devices from different manufacturers.
At first, software which was to use this accessory hardware was required to be specifically designed to support it. In the time of MS-DOS
, game programmers typically had to write custom control software for each type of sound card
or video card
that might be installed in the user's computer. The need to provide custom support for so many devices consumed a considerable amount of time for software development.
Eventually hardware abstraction layers (HAL) such as DirectX
were developed which separate application software from the underlying hardware. The application software does not need to know anything about the hardware on which it was to be used. Instead it discovers the capabilities of the hardware through the standardized abstraction layer, and then use abstracted commands to control the hardware. It is up to the HAL to be able to translate these commands into the specific format required for each device, using device driver
s typically provided by the hardware manufacturer.
and device virtualization
and emulation, allowing software written for one specific type of hardware to be reused on completely different hardware, or for seemingly independent operating systems to be made to share a single device.
, making it accessible from many types of Internet appliance
s. Its mission is to avoid the breaking up of the web into spaces which only subsets of devices can access.
One key publication of the Device Independence Working Group is the Composite Capability/Preference Profiles
recommendation.
Desktop computing
In the early days of computer design and development up until about 1980, software was typically specifically written to operate on the specific hardware where the software was used. The software was intimately linked to the hardware, and could not function independent of it. As computers became less expensive generalized personal computerPersonal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...
s, the concept of peripheral devices was introduced, where the base hardware could have a variety of different accessory devices from different manufacturers.
At first, software which was to use this accessory hardware was required to be specifically designed to support it. In the time of MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
, game programmers typically had to write custom control software for each type of sound card
Sound card
A sound card is an internal computer expansion card that facilitates the input and output of audio signals to and from a computer under control of computer programs. The term sound card is also applied to external audio interfaces that use software to generate sound, as opposed to using hardware...
or video card
Video card
A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...
that might be installed in the user's computer. The need to provide custom support for so many devices consumed a considerable amount of time for software development.
Eventually hardware abstraction layers (HAL) such as DirectX
DirectX
Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...
were developed which separate application software from the underlying hardware. The application software does not need to know anything about the hardware on which it was to be used. Instead it discovers the capabilities of the hardware through the standardized abstraction layer, and then use abstracted commands to control the hardware. It is up to the HAL to be able to translate these commands into the specific format required for each device, using device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
s typically provided by the hardware manufacturer.
Virtualization and Emulation
As computing power has continued to increase, there is sufficient processing capacity available for entire hardware devices to be simulated in software. This has brought about the development of the hypervisorHypervisor
In computing, a hypervisor, also called virtual machine manager , is one of many hardware virtualization techniques that allow multiple operating systems, termed guests, to run concurrently on a host computer. It is so named because it is conceptually one level higher than a supervisory program...
and device virtualization
Hardware virtualization
Computer hardware virtualization is the virtualization of computers or operating systems. It hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform...
and emulation, allowing software written for one specific type of hardware to be reused on completely different hardware, or for seemingly independent operating systems to be made to share a single device.
World Wide Web Usage
the web accessible by any device under any circumstance and by all people. The World Wide Web Consortium (W3C) has initiated the Device Independence Working Group, which aims to unify the webWorld Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...
, making it accessible from many types of Internet appliance
Internet appliance
An Internet appliance is a consumer device whose main function is easy access to Internet services such as WWW or e-mail. The term was popularized in the 1990s, when it somewhat overlapped in meaning with an information appliance, Internet computer, network computer, or even thin client, but now it...
s. Its mission is to avoid the breaking up of the web into spaces which only subsets of devices can access.
One key publication of the Device Independence Working Group is the Composite Capability/Preference Profiles
Composite Capability/Preference Profiles
Composite Capability/Preference Profiles is a specification for defining capabilities and preferences of user agents. CC/PP is a vocabulary extension of the Resource Description Framework...
recommendation.