System request
System request (often abbreviated SysRq or Sys Req) is a key on personal computer keyboards that has no standard use.[1] 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 0x15, subfunction 0x85[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.
History
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.
On the Hyundai/Hynix Super-16 computer, pressing Ctrl+SysRq will hard boot the system (it will reboot when Ctrl+Alt+Del is unresponsive, and it will invoke startup memory tests that are bypassed on soft-boot).
Modern uses
In Linux, the kernel can be configured to provide functions for system debugging and crash recovery.[5] This use is known as the “Magic SysRq key”.
Microsoft has also 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.[6] For the Windows NT remote kernel debugger, it can be used to force the system into the debugger.[7]
In embedded systems, SysRq key is usually used to assert low-level on RESET# signal.[8]
Similar keys
IBM 3270-type console keyboards of the IBM System/370 mainframe computer, created in 1970, had an operator interrupt key that was used to cause the operating system such as VM/370 or MVS to allow the console to give input to the operating system.
References
- 1 2 "What is the SysRq key for?". comp.os.msdos.programmer FAQ. Retrieved 2008-01-08.
- ↑ "Ralf Brown's Interrupt List". Retrieved 2008-01-08.
- ↑ "Original IBM PC Product fact sheet". IBM Information Systems Division. August 12, 1981. Retrieved January 13, 2010.
- ↑ Personal interview with Sandy Meade, creator of the SysRq key
- ↑ "Linux Magic System Request Key Hacks". Linux kernel. Retrieved 2008-01-08.
- ↑ "Returning Control to CodeView". Microsoft Knowledge Base. Retrieved 2008-01-08.
- ↑ "How to enable a remote kernel debugger connection on a computer that is running Windows Server 2003 with Service Pack 1". Microsoft Knowledge Base. Retrieved 2008-01-08.
- ↑ "MicroVGA datasheet" (PDF).
See also
IBM PC keyboard (Windows, US layout) | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PrtScn/ SysRq |
Scroll Lock |
Pause/ Break |
|||||||||
Insert | Home | PgUp | Num Lock |
∕ | ∗ | − | ||||||||||||||||||
Delete | End | PgDn | 7 | 8 | 9 | + | ||||||||||||||||||
4 | 5 | 6 | ||||||||||||||||||||||
↑ | 1 | 2 | 3 | Enter | ||||||||||||||||||||
← | ↓ | → | 0 Ins |
. Del |