# System profiler

A system profiler is a program that can provide detailed information about the software installed and hardware attached to a computer. Typically workstations and personal computers have had system profilers as a common feature since the mid-1990s.
However, system profilers exist on most computing architectures in some form or other. System Monitor programs in mainframes essentially provide the same function as system profiler programs on personal computers.
Modern system profilers typically provide real time information on not only the CPU state (such as clock speed), GPU state, and attached hardware state (such as USB or FireWire devices).

## Historical origins

System profilers came into use after punch cards were no longer needed to run programs. Mainframe computers had evolved into have modular architectures at the same time punch cards were being abandoned as input devices. Punch card based mainframe computer systems typically had very rigidly fixed architectures with little variation in input or output devices.
Since the 1990s hardware independent system profilers have emerged in some computing architectures, like Linux. Most Unix-like (aka POSIX compliant) operating systems have system hardware independent profilers.

## Usage origin

In Apple Computer's classic Mac OS, this was done by an application called Apple System Profiler.
macOS' profiler is simply called System Information, and can be accessed via two methods. A GUI application, System Information.app, provides system information in simplified tables and trees, whereas detailed, highly-verbose information can be viewed upon executing the /usr/sbin/system_profiler binary in a terminal emulator.
In Microsoft Windows, similar information can be found by viewing the properties of "My Computer" or "This PC," pressing the Windows key and Pause/Break key simultaneously, or by executing the msinfo32.exe binary.

## List of system profiler software
### Microsoft Windows

* System Information – built-in component
* CPU-Z – useful when overclocking processors
* System Information for Windows (SIW) – portable freeware with software, hardware, and network information as well as miscellaneous tools
* Belarc – freeware for personal use PC Auditing Software lists hardware, as well as software installed on the local machine and displays as a local webpage. Belarc also makes a security assessment for checking how secure a system is, and links missing updates directly to a Microsoft website for download.
* systeminfo – native windows command line, returns OS version, uptime, CPU, physical memory, network cards, etc.
* SekChek Local – an automated security audit tool which scans multiple Windows workstations and servers, from the network. It creates a security assessment report file which is presented as a Microsoft Access dataset.
* Speccy – detailed specifications of various PC subsystems

### Linux (and some other Unix-like systems)

* uname -a – prints basic information about the current machine and its OS
* lshw – prints a list of hardware devices and their properties
* dpkg -l – prints a list of all installed packages and their versions (for Linux distributions using Debian-style package management)
* rpm -qa – prints a list of all installed packages and their versions (for Linux distributions using Red-Hat-style package management)