SysRq

From Free net encyclopedia

SysRq or SysReq (short for System Request) is a key on keyboards for PCs that has no standard use.

Original purpose

Introduced by IBM with the PC/AT, it was intended to be available as a special key to directly invoke low-level operating system functions with no possibility of conflicting with any existing software. A special BIOS routine — software interrupt hexadecimal 15, subfunction hexadecimal 85 — was added to signal the OS when SysReq was pushed or released. Unlike most keys, when pressed, nothing is stored in the keyboard buffer.

A special key was needed because most software of the day operated at a low-level, often bypassing the OS entirely, and typically made use of many hotkey combinations. The use of TSR programs further complicated matters. To implement a task switching or multitasking environment, it was thought that a special, separate key was needed. This is similar to the way "Ctrl + Alt + Del" is used under Windows NT.

On 84-key keyboards, SysReq was a key of its own. On the later 101-key keyboard, it shares a physical key with the Print Screen key function. One must hold down the Alt key while pressing this "dual-function" key to invoke SysReq.

The default BIOS keyboard routines simply ignore SysRq and return without taking action. So did the MS-DOS input routines. The keyboard routines in libraries supplied with many high-level languages followed suit. Although still included in most PC keyboards manufactured, the key is of no use for the vast majority of users.

Other uses

Under DOS, malfunctioning foreground software could make the entire computer unresponsive. Third-party TSRs existed that used SysRq to provide a form of "panic button" to terminate the program and return you to the DOS command prompt.

In Linux, the kernel can be configured (with CONFIG_MAGIC_SYSRQ=y) to provide emergency functions for system debugging. It is mainly intended for use when the system is otherwise unresponsive, but at least some of the kernel still works. Alt+SysRq+letter can be used for synching disks, remounting filesystems readonly, dumping CPU state, rebooting, and other functions.

See also