Control-Alt-Delete

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
多くのPC/AT互換機のQWERTY配列キーボードにおける Control-Alt-Delete の位置

Control-Alt-Delete または Ctrl-Alt-Del(コントロール・オルト・デリート)とは、コンピュータキーボードコマンドの一つで、コンピュータ再起動するときや、最近のほとんどのバージョンのMicrosoft WindowsでWindowsのセキュリティやタスクマネージャを呼び出すときに使用される。コントロールキー(Ctrlキー)とAltキーを押しながら、削除キー(Delキー)を押すことで実行される。

日本ではPC-9800シリーズの普及もあり、Alt を GRPH (グラフキー)に置き換えた、CTRL-GRPH-DEL という表現もされる。

起源[編集]

このキーストローク・コンビネーションは、オリジナルのIBM PCを設計したデビッド・ブラッドリーによって実装された。ブラッドリーは、コントロールキーとAltキーとEscキーの組み合わせでソフトリブートが実行されるように設計していた。 しかし、彼はキーボードの左側に手などをぶつけただけで簡単にこれらキーが同時に押されて、意図せずコンピュータが再起動してしまうことに気が付いた。そこで彼は、片手では同時に押せないよう、キーストローク・コンビネーションをコントロールキーとAltキーと削除キーに変更したのである(現在では102キーボードマルトロンキーボードのような、片手でこれらキーを押すことができるものもある)。より進んだオペレーティングシステムでは、この状態を予約された組合せとして様々な目的に使用しているが、現在でも特定の環境や条件下ではソフトリブートが行われる。

ブラッドリーは、「私が Control-Alt-Delete を発明したかもしれない。しかし、ビル・ゲイツがそれを有名にした。」と語っている[1]

DOSやその他リアルモードで動作するシステム[編集]

パソコン上で動作するDOSやその他リアルモードで動作するシステムは、キーストローク・コンビネーションは、BIOS内のキーボード・ハンドリング・コードによって認識され、Intel 8086NMI(Non-Maskable Interrupt)シグナル(極一部の例外を除いてソフトリブートされる)として扱われる。

Windows[編集]

DOSベースのWindows[編集]

Windows 3.0以前(スタンダードモードで起動されたWindows 3.1も含む)では、Control-Alt-Delete をするとMS-DOSと同様、再起動が行われる。386拡張モードで起動しているWindows 3.1、Windows 95Windows 98Windows Meでは、このキーボードストローク・コンビネーションは、Windowsキーボードデバイスドライバによって認識される。このとき、system.ini[386Enh] の項の LocalReboot によって、Windowsは振る舞いを変える。

  • LocalReboot=Off - ソフトウェア処理による再起動(ソフトリブート)が実行される。
  • LocalReboot=On:
    • Windows 3.1は、ブルースクリーンを表示してユーザーにエンターキーを押して、現在実行しているタスクを終了させるか、もう一度 Control-Alt-Delete を押して、ソフトリブートを実行するかを選択させる。
    • Windows 95、Windows 98、Windows Meでは、現在実行中のプロセスの一覧を表示させ、これらプロセスを終了させ、応答がない場合は強制終了させることをユーザーに示す。もう一度 Control-Alt-Delete を押すと、ソフトリブートが実行される。

タスクやプロセスの強制終了は、例えばプログラムが無限ループに突入したときに役に立つ。理論的には、このキーストローク・コンビネーションを使用しても、ほかのプロセスは影響なく実行されなくてはならないが、Windows3.1ではリソースやメモリのリークが発生する。そのようなバージョンのWindowsでは、プロセスの強制終了後、直ちに他のアプリケーションのデータを保存し、再起動を行うことが強く推奨されている。そのようなダメージは、リソーストラッキングによって、新しいDOSベースWindowsではほとんど発生しない。

DOSベースWindowsで Control-Alt-Delete を二回押すと、たとえWindowsがプロセスリストを表示していなくてもソフトリブートが行われる。これは、Control-Alt-Delete の組合せに対する応答を定義できるユーザーレベルのプログラムがないため、全てのスタックしたプロセスを飛び越えることをユーザーに許可するためである。

Windows NT[編集]

Windows NTやその後継のWindows 2000Windows XPWindows Server 2003Windows VistaWindows 7Windows Server 2008では、このキーストローク・コンビネーションは、Winlogonプロセスによって認識され、以下のうちいずれかの振る舞いをする。

  • 誰もログインしていない場合、ログイン画面を表示する。コンピュータのロックを解除する場合にも使う。
  • NTドメインまたはActive Directoryのドメインに参加ないしは構成していたり、Windows 2000が起動している場合、「Windowsのセキュリティ」のダイアログが表示され、ユーザーはコンピュータをロックしたり、パスワードを変更したり、ログアウトしたり、コンピュータをシャットダウンしたり、タスクマネージャを起動することができる。Windows VistaやWindows Server 2008では、それらのドメインを起動しているいないに関わらず、デフォルトの振る舞いである。提示されるオプションは、グループポリシーを使用することによって制限できる。
  • Windows XPで、ドメインに接続していない場合、
    • ようこその画面で高速ユーザー切り替えが有効の場合、タスクマネージャを起動する。
    • ようこその画面で高速ユーザー切り替えが無効の場合、Windowsのセキュリティのダイアログが起動する。
  • Windows VistaまたはWindows 7の場合、
    • セキュリティオプションを起動する。

Windows NTのような構成では、何らかの方法でセキュリティを弱めない限り、Winlogonプロセスしかこのキーストローク・コンビネーションの通知を受け取ることができない。これは、カーネルがWinlogonプロセスのプロセスIDを覚えていて、このプロセスにしか情報を通知しないからである。このようにこのキーストローク・コンビネーションはセキュア・アテンション・キーとなっている。Windows NTでは、これをセキュア・アテンション・シーケンスと呼ぶ。ユーザーは Control-Alt-Delete を押すことで、これが第三者のプログラムではなく、本当にオペレーティングシステムの表示してるものだと判断でき、安心してパスワードを入力することができる。Windowsでこの組合せがセキュア・アテンション・キーに選ばれたのは、PCプラットフォームでこの目的のためにキーストロークの組合せを変更する合理的理由がなかったためである[2]

また、このキーストローク・コンビネーションはWindows Server 2003以降でタスクマネージャを呼び出す信頼のできる方法でもある。その他全てのキーストローク・コンビネーションはスタックしたプロセスに縛られる可能性があったが、ユーザープロセスが Control-Alt-Delete のシーケンスを妨害することはできない。しかし、これはWindowsグループポリシーで無効化できる。Windows NT 4.0以降の全てのNT系OSでは、Control-Alt-Delete の組合せがWindowsのセキュリティダイアログに割り当てられているときでも、Ctrl- Shift-Esc のキーストローク・コンビネーションでタスクマネージャが起動できる。

副作用として、ユーザーが電源や電源スイッチ、リセットスイッチに触れる手段がない場合、以前は Control-Alt-Delete を使うことで再起動することができたが、現在は、グループポリシーの設定を行うことで一般ユーザーが勝手にコンピュータを再起動することができなくなった。

OS/2[編集]

OS/2では、このキーボードストローク・コンビネーションは、OS/2のキーボードデバイスドライバによって認識され、セッションマネージャプロセスに通知される。OS/2バージョン2以降の通常のセッションマネージャプロセスでは、親ワークプレイス・シェル・プロセスが "The system is rebooting" とウィンドウに表示して、ソフトリブートが行われる。このとき、もう一度 Control-Alt-Delete を押すと、セッションマネージャプロセスを待たずに直ちにソフトリブートが実行される。

いずれのケースでも、システムはページキャッシュをフラッシュし、全てのディスクを綺麗にアンマウントする。しかし、全ての実行中のプロセスが綺麗に終了されるわけではない(ドキュメントは保存されない)。

Linux[編集]

Linuxでは、キーボードストローク・コンビネーションはカーネルのキーボードデバイスドライバによって認識される。特に指示されていない場合(たいていはシステム初期化中の間)、カーネルはソフトリブートを開始する。より一般的には、カーネルは init プロセスにシグナルを送り、スクリプトを実行したり、「現在のセッションを終了します」と表示したりする。

多くのLinuxディストリビューションでは、init はシグナルを受けてランレベルを切り替えて、ソフトリブート実行する。なお、Linuxのシステムではキーボードストローク・コンビネーションを無視することもできる。設定は、たいてい inittab(5)設定ファイルのcaというキーワード下にある。

Mac OS[編集]

Mac OS XMac OSControl-Alt-Delete に対応するキーの組合せは、 Command- Opt-Escコマンドキーオプションキーを押しながらEscキー)である。これらを押すと強制終了ウィンドウが表示される。Macのノート型パソコンは、キーボード電源ボタンをサポートし、 Command-Control-Power を押すと、システムをハードリブートする。OS Xでは、Control- Option-Eject になっている。OS XでControl-Ejectの組合せは、ログアウト、スリープ、再起動、終了の選択をする画面になる。1980年代のアップルのマイコンApple IIApple III)では、Control-Open-Apple Reset の組合せでソフトブートが始まる。

Control-Alt-Deleteと大衆文化[編集]

このオランダ人のデモ参加者は、Control-Alt-Delete を使って政府の方針を白紙に戻せと求めている。

コンピュータが普及したことで、Control-Alt-Delete は隠語としても使われるようになった。Control-Alt-Delete は、英語で dump(…を投げ捨てる)とか do away with(…を廃止する)という意味を持つ[3]

参考文献[編集]

  1. ^ David Bradley - Ctrl Alt Del - YouTube
  2. ^ Osterman, Larry (2005年1月24日). “Why is Control-Alt-Delete the secure attention sequence (SAS)?”. Larry Osterman's WebLog. MSDN Blogs. 2007年3月15日閲覧。
  3. ^ Wordspy はこの用法の最初期の例として Chris Miksanek による Computerworld 誌の1995年12月18日付のコラム "Ctrl-Alt-Delete those holiday trinkets." を引用している

参照[編集]

  1. Windows 3.1 Resource Kit SYSTEM.INI 386ENH Section A-L”. Microsoft's KnowledgeBase article 83435. 2005年1月7日閲覧。
  2. Linux manual pages for kill(2) and reboot(2).
  3. Gary S. Terhune (2004年1月11日). “Lost Ctrl-Alt-Del function on W98, 2nd”. microsoft.public.win98.gen_discussion. (ウェブリンク)  — a report of the effect of LocalReboot in Windows 95
  4. Geoff Chappell (1998年5月6日). “Is this possible?”. comp.os.ms-windows.programmer.vxd. (ウェブリンク)  — a report of differences in LocalReboot between Windows 3.x and Windows 95

外部リンク[編集]