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 を発明したかもしれない。しかし、ビル・ゲイツがそれを有名にした。」と語っている。ゲイツ自身は、「あれは失敗だった」、「IBMのキーボード設計者がMicrosoftのためにそういう（セキュア・アテンション・キー用の）ボタンを付けたがらなかった」と2013年に語っている。
DOSやその他リアルモードで動作するシステム.
パソコン上で動作するDOSやその他リアルモードで動作するシステムは、キーストローク・コンビネーションは、BIOS内のキーボード・ハンドリング・コードによって認識され、Intel 8086のNMI(Non-Maskable Interrupt)シグナル（極一部の例外を除いてソフトリブートされる）として扱われる。
Windows.
DOSベースのWindows.
Windows 3.0以前（スタンダードモードで起動されたWindows 3.1も含む）では、-- をするとMS-DOSと同様、再起動が行われる。386拡張モードで起動しているWindows 3.1、Windows 95、Windows 98、Windows Meでは、このキーボードストローク・コンビネーションは、Windowsキーボードデバイスドライバによって認識される。このとき、system.ini の [386Enh] の項の LocalReboot によって、Windowsは振る舞いを変える。
タスクやプロセスの強制終了は、例えばプログラムが無限ループに突入したときに役に立つ。理論的には、このキーストローク・コンビネーションを使用しても、ほかのプロセスは影響なく実行されなくてはならないが、Windows 3.1ではリソースやメモリのリークが発生する。そのようなバージョンのWindowsでは、プロセスの強制終了後、直ちに他のアプリケーションのデータを保存し、再起動を行うことが強く推奨されている。そのようなダメージは、リソーストラッキングによって、新しいDOSベースWindowsではほとんど発生しない。
DOSベースWindowsで -- を二回押すと、たとえWindowsがプロセスリストを表示していなくてもソフトリブートが行われる。これは、-- の組合せに対する応答を定義できるユーザーレベルのプログラムがないため、全てのスタックしたプロセスを飛び越えることをユーザーに許可するためである。
Windows NT.
Windows NTやその後継のWindows 2000、Windows XP、Windows Server 2003、Windows Vista、 Windows 7 、Windows Server 2008、Windows 8、Windows Server 2012、Windows 10では、このキーストローク・コンビネーションは、Winlogonプロセスによって認識され、以下のうちいずれかの振る舞いをする。
Windows NTのような構成では、何らかの方法でセキュリティを弱めない限り、Winlogonプロセスしかこのキーストローク・コンビネーションの通知を受け取ることができない。これは、カーネルがWinlogonプロセスのプロセスIDを覚えていて、このプロセスにしか情報を通知しないからである。このように、このキーストローク・コンビネーションはセキュア・アテンション・キーとなっている。Windows NTでは、これをセキュア・アテンション・シーケンスと呼ぶ。ユーザーは -- を押すことで、これが第三者のプログラムではなく、本当にオペレーティングシステムが表示しているものだと判断でき、安心してパスワードを入力することができる。Windowsでこの組合せがセキュア・アテンション・キーに選ばれたのは、PCプラットフォームでこの目的のためにキーストロークの組合せを変更する合理的理由がなかったためである。
また、このキーストローク・コンビネーションは、Windows Server 2003以降でタスクマネージャを呼び出す信頼できる方法でもある。その他全てのキーストローク・コンビネーションはスタックしたプロセスに縛られる可能性があったが、ユーザープロセスが -- のシーケンスを妨害することはできない。しかし、これはWindowsグループポリシーで無効化できる。Windows NT 4.0以降の全てのNT系OSでは、-- の組合せがWindowsのセキュリティダイアログに割り当てられているときでも、-- のキーストローク・コンビネーションでタスクマネージャが起動できる。
副作用として、ユーザーが電源や電源スイッチ、リセットスイッチに触れる手段がない場合、以前は -- を使うことで再起動することができたが、現在は、グループポリシーの設定を行うことで、一般ユーザーが勝手にコンピュータを再起動することができなくなった。
OS/2.
OS/2では、このキーボードストローク・コンビネーションは、OS/2のキーボードデバイスドライバによって認識され、セッションマネージャプロセスに通知される。OS/2バージョン2以降の通常のセッションマネージャプロセスでは、親ワークプレイス・シェル・プロセスが "The system is rebooting" とウィンドウに表示して、ソフトリブートが行われる。このとき、もう一度 -- を押すと、セッションマネージャプロセスを待たずに直ちにソフトリブートが実行される。
いずれのケースでも、システムはページキャッシュをフラッシュし、全てのディスクを綺麗にアンマウントする。しかし、全ての実行中のプロセスが綺麗に終了されるわけではない（ドキュメントは保存されない）。
Linux.
Linuxでは、キーボードストローク・コンビネーションはカーネルのキーボードデバイスドライバによって認識される。特に指示されていない場合（たいていはシステム初期化中の間）、カーネルはソフトリブートを開始する。より一般的には、カーネルは "init" プロセスにシグナルを送り、スクリプトを実行したり、「現在のセッションを終了します」と表示したりする。
多くのLinuxディストリビューションでは、"init" はシグナルを受けてランレベルを切り替えて、ソフトリブート実行する。なお、Linuxのシステムではキーボードストローク・コンビネーションを無視することもできる。設定は、たいてい inittab(5)設定ファイルのcaというキーワード下にある。
Mac OS.
Mac OS XやClassic Mac OSで -- に対応するキーの組合せは、-- （コマンドキーとオプションキーを押しながらEscキー）である。これらを押すと強制終了ウィンドウが表示される。Macのノート型パソコンは、キーボード電源ボタンをサポートし、-- を押すと、システムをハードリブートする。macOSでは、-- になっている。macOSで-の組合せは、ログアウト、スリープ、再起動、終了の選択をする画面になる。1980年代のアップルのマイコン（Apple IIやApple III）では、-- の組合せでソフトブートが始まる。
Control-Alt-Deleteと大衆文化.
コンピュータが普及したことで、Control-Alt-Delete は隠語としても使われるようになった。 は、英語で （…を投げ捨てる）とか （…を廃止する）という意味を持つ。