다음 이전 차례

8. Ctrl-Alt-Del와 그 밖의 다른 특별한 키 조합

8.1 Ctrl-Alt-Del (부팅)

사용자가 Ctrl-Alt-Del(또는 loadkeys에서 keysym Boot에 지정된 키는 무엇이든)을 누르면 머신은 (sync 동작 없이) 즉시 재부팅을 하거나, init가 SIGINT를 보낸다. 전자의 행동이 디폴트 값이다. 이것은 루트 권한에서 시스템 호출 reboot()를 사용하면 바꿀 수 있다. init가 SIGINT를 얻었을 때 동작하는 내용은 사용하는 init의 버전에 따라 달라진다. 종종 /etc/inittab의 pf 항목에 의해 정해진다. (이것은 사용자가 설정하기에 따라서는 임의의 프로그램을 실행시킬 수도 있음을 의미한다.) 현재 커널에서 Ctrl-AltGr-Del은 더이상 Boot에 할당되어 있지 않다.

8.2 다른 키 조합

Name            Default binding
-------------------------------
Show_Memory     Shift-Scrollock
Show_Registers  AltGr-ScrollLock
Show_State      Ctrl-ScrollLock
Console_n       Alt-Fn and Ctrl-Alt-Fn  (1 <= n <= 12)
Console_{n+12}  AltGr-Fn                (1 <= n <= 12)
Incr_Console    Alt-RightArrow
Decr_Console    Alt-LeftArrow
Last_Console    Alt[Gr]-PrintScreen
Scroll_Backward Shift-PageUp
Scroll_Forward  Shift-PageDown
Caps_On                                 (CapsLock은 토글이다. 이렇게 하면 키가 설정된다.)
Compose         Ctrl-.

8.3 X에서의 키조합

Ctrl-Alt-Fn     VT n으로 이동
Ctrl-Alt-KP+    다음 모드
Ctrl-Alt-KP-    이전 모드
Ctrl-Alt-Backspace      X 죽이기
어떤 마더보드에서는 Ctrl-Alt-KP-와 Ctrl-Alt-KP+가 터보 보튼을 누르는 것과 똑같은 동작을 한다. 두 키보드 모두 스캔코드 1d 38 4a ca b8 9d와 1d 38 4e ce b8 9d를 발생시킨다. 이것은 터보 (>= 25MHz)와 보통(8 또는 12 MHz) 모드를 전환한다. (종종 이 키 조합은 마더보드에서 점퍼가 설정되어 있을 때만 효과가 있는 경우도 있다.)

Perry F Nguyen (pfnguyen@netcom22.netcom.com)에 의하면, AMI BIOS는 BIOS 패스워드가 설정되어 있으면, Ctrl-Alt-Backspace를 누르면 CMOS/BIOS 패스워드가 입력될 때까지 키보드를 잠궈두고 LED를 켜둔다고 한다.

8.4 Dosemu에서의 키 조합

Ctrl-Alt-Fn     VT n으로 이동 (0.50 버전 이후부터; 이전에는 Alt-Fn)
Ctrl-Alt-PgDn   dosemu 종료 (RAW 모드일 경우)
(다른 키들은 dosemu 문서를 참조할 것.)

8.5 심볼 조합하는 방법

심볼 하나는 서너개의 키보드를 사용하여 만들 수 있다.

적어도 이러한 조합 메카니즘에는 3가지가 있음을 유의하자.

  1. loadkeys와 결합해서 사용하는 리눅스 키보드 드라이버 메카니즘.
  2. X 메카니즘 - X386keybd(1), 최신 버전은 XFree86kbd(1)을 참조. X11R6하에서 /usr/X11R6/lib/X11/locale/iso8859-1/Compose를 참조.

    또한 Andrew D. Balsa http://wauug.erols.com/~balsa/linux/deadkeys/index.html 의 조언을 참조하면 도움이 될 것이다.

  3. "iso-insert.el"를 로드하거나 `iso-accents-mode'를 호출하여 얻는 emacs 메카니즘.
X에서는 두 심볼의 순서는 관계없다. Compose-,-c와 Compose-c-는 둘 다 c-cedilla를 발생시킨다. 리눅스와 emacs에서는 단지 앞의 시퀀스만이 작동한다. X에서는 compose 조합의 목록이 고정되어 있지만 리눅스와 emacs는 변동 가능하다. 이 세 방법에서 디폴트 설정은 비슷하게 되어 있지만 세세히 보면 약간 다르다.

8.6 The SysRq key

커널을 CONFIG_MAGIC_SYSRQ를 설정해놓고 컴파일했다면 (이 기능은 리눅스 2.1.43 이후에 생겼다.) 현재 키보드 모드에 상관없이 특별한 시스템 함수가 연결되어 있는 단일 키가 존재한다. (이것은 <linux/keyboard.h>에 정의되어 있다.) PC 아키텍처에서 이 특수키는 당연히 Alt+SysRq 키이고 두 Alt 키중 어느것이라도 동작할 것이다. (하지만 CONFIG_MAGIC_SYSRQ가 설정되지 않은 상태라면 이 키의 디폴트 동작은 이전 콘솔로 돌아가는 것이다.)

이 키를 누른채로 다른 키를 누르면 해당되는 동작이 수행된다. 이 동작은 사용자가 누구건간에 수행된다. 더 자세한 것은 /drivers/char/sysrq.c를 참조하라. 이 기능은 커널 해커에게만 의미가 있으므로 이정도만 언급해도 충분할 것이다. 하지만 좀 더 해보자.

r키를 누르면 키보드 모드가 K_XLATE로 재설정된다. k키는 SAK와 콘솔 재설정이 수행된다. b키는 시스템이 즉시 재부팅된다. (사용자가 원치 않는 뭔가가 설정되는지 유의하라.) o키는 (머신이 이 기능을 지원하면) 전원이 꺼진다. s키는 응급 sync가 예약된다. u키는 응급 read-only remount가 예약된다. p, t, m 키는 여러가지 정보를 보여준다. (같은 정보를 RAlt,RCtrl,RShift+ScrollLock로도 볼 수 있다.) e, i, l키는 각각 모든 프로세스들이 SIG_TERM 또는 SIG_KILL을 받도록 한다. l키는 init 프로세스까지 죽인다. 숫자들은 로그 레벨을 설정한다. 그 외에 다음 것들은 간략한 정보를 보여준다. SysRq: unRaw saK Boot Off Sync Unmount showPc showTasks showMem loglevel0-8 tErm kIll killalL.

주의: 이것은 아주 위험한 작업이다! 또한 이것은 사실상 사용자의 keymap을 사용하지 않으므로 사실상 keymap의 상태나 전체 커널의 상태도 불확실하다는 것을 의미한다. 디보락 키보드 사용자라면 더더욱 문제가 된다. 다른 자판 배열을 사용하는 것이 안전할 것이다. 영어와 다른 배열인 프랑스어나 독일어 등의 키보드는 A,M,Q,W,Y,Z 같은 위험한 문자들은 이 동작에 사용하지 않는 것이 좋다.


다음 이전 차례