The most common set of requirements defined by any
operating system or
software application is the physical computer resources, also known as
hardware, A hardware requirements list is often accompanied by a
hardware compatibility list (HCL), especially in case of operating systems. An HCL lists tested, compatible, and sometimes incompatible hardware devices for a particular operating system or application. The following sub-sections discuss the various aspects of hardware requirements.
Architecture All computer
operating systems are designed for a particular
computer architecture. Most software applications are limited to particular operating systems running on particular architectures. Although architecture-independent operating systems and applications exist, most need to be recompiled to run on a new architecture. See also a list of
common operating systems and their supporting architectures.
Processing power The power of the
central processing unit (CPU) is a fundamental system requirement for any software. Most software running on
x86 architecture define processing power as the
model and the
clock speed of the CPU. Many other features of a CPU that influence its speed and power, like
bus speed,
cache, and
MIPS are often ignored. This definition of power is often erroneous, as different makes and models of CPUs at similar clock speed often have
different throughput speeds.
Memory All software, when run, resides in the
random access memory (RAM) of a computer. Memory requirements are defined after considering demands of the application, operating system, supporting software and files, and other running processes. Optimal performance of other unrelated software running on a multi-tasking computer system is also considered when defining this requirement.
Secondary storage Data storage device requirements vary, depending on the size of software installation, temporary files created and maintained while installing or running the software, and possible use of
swap space (if RAM is insufficient).
Display adapter Software requiring a better than average
computer graphics display, like
graphics editors and high-end
games, often define high-end
display adapters in the system requirements.
Peripherals Some software applications need to make extensive and/or special use of some
peripherals, demanding the higher performance or functionality of such peripherals. Such peripherals include
CD-ROM drives,
keyboards,
pointing devices,
network devices, etc. == Software requirements ==