System request (often abbreviated SysRq or Sys Req) is a key on keyboards for PCs that has no standard use.[1] This key can be traced back to the operator interrupt key used on IBM 3270-type console keyboards of the IBM System/370 mainframe computer, which was used to cause the operating system such as VM/370 or MVS to allow the console to give input to the operating system.
Contents |
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[2] — was added to signal the OS when SysRq was pushed or released. Unlike most keys, when it is pressed nothing is stored in the keyboard buffer.
The specific low level function that the SysRq key was meant for was to switch between operating systems. When the original IBM-PC was created in 1980, there were three leading competing operating systems: PC-DOS, CP/M-86, and UCSD p-System,[3] while Xenix was added in 1983-1984. The SysRq key was added so that multiple operating systems could be run on the same computer, making use of the capabilities of the 286 chip in the PC/AT.[4]
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 Terminate and Stay Resident (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 “Control-Alt-Delete” is used under Windows NT.
On 84-key keyboards (except the 84-key IBM Model M space saver keyboard), SysRq 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 SysRq.
The default BIOS keyboard routines simply ignore SysRq and return without taking action. So did the MS-DOS input routines.[1] The keyboard routines in libraries supplied with many high-level languages followed suit. Although it is still included on most PC keyboards manufactured, and though it is used by some debugging software, the key is of no use for the vast majority of users.
In 2010, Lenovo removed the SysRq key from some of their new laptops.[5]
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 the user to the DOS command prompt.
In Linux, the kernel can be configured to provide functions for system debugging and crash recovery.[6] This use is known as the “Magic SysRq key”.
Microsoft has used SysRq for various OS- and application-level debuggers. In the CodeView debugger, it was sometimes used to break into the debugging during program execution.[7] For the Windows NT remote kernel debugger, it can be used to force the system into the debugger.[8]
On the Hyundai/Hynix Super-16 computer, pressing <kbd class="keyboard-key" style="border: 1px solid; border-color: #ddd #bbb #bbb #ddd; border-bottom-width: 2px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background-color: #f9f9f9; padding: 1px 3px; font-family: inherit; font-size: 0.85em; white-space: nowrap;">Ctrl</kbd>+<kbd class="keyboard-key" style="border: 1px solid; border-color: #ddd #bbb #bbb #ddd; border-bottom-width: 2px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background-color: #f9f9f9; padding: 1px 3px; font-family: inherit; font-size: 0.85em; white-space: nowrap;">SysRq</kbd> will hard boot the system (it will reboot when <kbd class="keyboard-key" style="border: 1px solid; border-color: #ddd #bbb #bbb #ddd; border-bottom-width: 2px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background-color: #f9f9f9; padding: 1px 3px; font-family: inherit; font-size: 0.85em; white-space: nowrap;">Ctrl</kbd>+<kbd class="keyboard-key" style="border: 1px solid; border-color: #ddd #bbb #bbb #ddd; border-bottom-width: 2px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background-color: #f9f9f9; padding: 1px 3px; font-family: inherit; font-size: 0.85em; white-space: nowrap;">Alt</kbd>+<kbd class="keyboard-key" style="border: 1px solid; border-color: #ddd #bbb #bbb #ddd; border-bottom-width: 2px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; background-color: #f9f9f9; padding: 1px 3px; font-family: inherit; font-size: 0.85em; white-space: nowrap;">Del</kbd> is unresponsive, and it will invoke startup memory tests that are bypassed on soft-boot).
In embedded systems, SysRq key is usually used to assert low-level on RESET# signal.[9]
Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PrtScn/ SysRq |
ScrLk | Pause/ Break |
|||||||||
Ins | Home | PgUp | Num Lock | / | * | - | ||||||||||||||||||
Del | End | PgDn | 7 | 8 | 9 | + | ||||||||||||||||||
4 | 5 | 6 | ||||||||||||||||||||||
↑ | 1 | 2 | 3 | Ent | ||||||||||||||||||||
← | ↓ | → | 0 | . |
|