概要
ブルースクリーン(英:Blue screen of death)はWindows系システムにおける、OSのカーネルレベルでのエラー(カーネルパニック)の名称。英語ではBSoDと略記され、日本語では「ブルスク」とも略される。
Windowsのシステムがハングアップ(クラッシュ)すると、青い背景に白い文字で英文のメッセージとエラーコードが表示される。こうなると通常は再起動以外に対処不可能である。何もメッセージを出さずに画面が固まる(フリーズ)こともある。過去のWindowsのバージョン及び環境によっては割と多発していたことで知られる(後述)。
まともなメッセージが出るようになったのはWindows 3.0からで、2.x以前は意味不明な文字の羅列状態になっていた。MacintoshやUNIX系OS(Linuxなど)といった他のプラットフォームのエラーコードについても本項で解説する。
勘違いされやすいが、ブルースクリーンはOSが暴走したために表示されるものではなく、暴走しかけた時に被害が広がるのを防ぐために表示されるものである。
Windows9x系の場合
2000年以前のWindows NTを除くWindows95 98 MEはWindows9x系と言う。これらは実は構造はそれまでのMS-DOS向け拡張環境であったWindows3.1までの基本設計を引きずっており、実際MS-DOSとしてのバージョンを振られていた。
Windows3.1以前は(カーネルに当たるDOSを含む)全てのソフトウェアが16ビットモードの共有メモリーで稼働しており、稼働中のソフトが1つでもエラーを起こすとシステム全体を巻き込んでクラッシュしていた。
Windows95は32ビットモード(Win32c)を実装し不完全ながらメモリ保護の仕組みが備わるようになった。アプリケーションがシステムのメモリにアクセスすると「一般保護違反」として強制終了されOSや他のアプリケーションに影響を及ぼさないようにされたものの、実際にはOSそのものにも16ビットコードが随所に残っており、ソフトウェアがエラーを起こすとWindowsも道連れにブルースクリーンになることが日常茶飯事であった。また、16ビットモードでのシステムリソースという特定のメモリ領域が64キロバイトという狭い領域に制限されていたこともブルースクリーンの原因の一つであった。多数のアプリケーションを同時に立ち上げないようにしたり、定期的に再起動するなどの対策がとられた。
Windows98は、16ビットモードの問題をそのままにして無理な多機能化を図ったため、初期のバージョンではOSそのものの不具合(バグ)も手伝ってブルースクリーンを多発させた。一方で改良版のWindows98SEはバグが潰されたため、モダンOS前のシステムとしてはかなり安定した部類に入った。
ちなみにNTのコンシューマー向けバージョン(Windows XP Home)までのつなぎとして発売されたMEに関しては……お察しください
主なブルースクリーンの原因と対処方法
- 例外 xx がxxxx:xxxxxxxx(16進法) で発生しました(xは数字)
- 原因のアプリケーションを終了させる(だいたいはそのままフリーズするので要再起動)
- 一般保護違反の発生
- プログラムが許可されていないメモリ領域にデータを書き込もうとする際に発生する処理例外の一つ。そこんところ柔軟に対応してくれよ!と思うかもしれないが、相手は機械であって人間ではない。機械は命令どおりにしか動かない。命令外の動作は全てエラーなのである。さらに始末の悪いことにIntel x86系のCPUの仕様上、一般保護違反が発生するとOSがプログラム的に原因を特定して復旧し、再開させることは非常に難しい。一般保護違反が発生した場合にはさらなる誤動作による二次被害を防ぐために当該プログラムを速やかに終了させる前提でCPUが設計されているためである。そのため一般保護違反が発生した場合良くても当該プログラムは強制終了しなければならず、9x系の構造も相まって、OSそのものがフリーズすることが日常茶飯事となったのである。
- ユーザーでは対処不可 要再起動
- Windowsのソースコードが出回れば物好きな誰かがバグを修正してくれるかもしれない(ソースコードが出回ったらそれこそ大問題だが)。
- なお、このエラーはXP以降でも発生するが、発生させる方が難しい。
- 処理中にフロッピーを取り出した
- フロッピーの書き込み中または動作中に取り出した。挿しなおすといいかもしれない。
- リソース不足
- メモリリーク
- カーネルモードのソフトウェアがクラッシュした
- セキュリティソフト、オンラインゲームのアンチチート、デバイスドライバー等のソフトウェアは多くの場合、デバイスに直接アクセスできる権限を持っている(カーネルモード)。これらのソフトウェアがクラッシュすると、Windows側は「重大なエラー」と認識し、ブルスクへ移行する。デバイスドライバーの更新後、オンラインゲームのプレイ中などに発生したのであれば、これを疑った方が良いだろう。
- 過去にあったCrowdStrike導入PCの集団BSoDも、これが原因であるとされている。
- 右のCtrlキーを押しながらScrLkキーを2回押した
- レジストリに特定の値を追加してからこの操作を行うことで、意図的にブルースクリーンを発生させることができる。カーネルがフリーズしてしまった時に、メモリダンプを保存させて原因を分析するために使われる。が、相当な技術者の方を除けば関係のない話だろう。
NT系OSの場合
Windows2000とXP以降に登場したWindowsはWindowsNT系と言う。
Windows9x系とは仕組みが違うため(最初から32ビットのコードで書かれているので)発生しにくい。XP以降はエラー報告機能が装備されマイクロソフトがWindowsに発生したエラーを確認して対処できるようになったので、より危険なバグを修正するのが容易になっている。NT系でブルースクリーンが出た場合はとても深刻なエラーである。さらに、NT系のブルースクリーンは初期設定状態ではほんの一瞬しか表示されない。(正確には自動的に再起動する設定になっているので設定変更が必要)
そのため、復旧を困難にしてしまう。
ブルースクリーンは、トラブルの対処について書かれた英文の後で、一見意味不明の数字の羅列が表示されているが、これはエラーコードといい、ここにはエラーの原因そのものが書かれている。
一番下の列、STOP: 0x00000050 のように書かれているのはエラー番号であり、この番号をぐぐってみよう。
ちなみに、STOP: 0x00000050 は「要求されたデータがメモリに存在しない」時に発生する。
簡単に言えば「作業中のデータが失われたので作業が停止しちゃったよ」という意味である。
当時、「エラー番号出せるくらいなら、具体的な説明文を用意しておけよ…」と思ったユーザーも多いだろう。
原因が特定できれば修復自体は容易であるが、意味を理解できないユーザーにとっては苦行そのものである。修復には、対象となるマシンの他に正常に動作するパソコンが必要である(情報収集用)。スマートフォンなどの端末が使えるなら情報収集用パソコンはなくてもいいが、異常があるマシンで情報収集をするのは症状を悪化させる危険がある。
Windows8以降は(ようやく)ブルースクリーンが多言語対応し、OSの言語にあわせて表示できるようになった(9xでは多言語対応していたが、NTでは長らく英語のまま放置されていた)。10ではメッセージと共にヘルプページへ飛ぶQRコードが表示されるようになっている。なお、それ以前の真っ青な画面と違ってやや水色がかった画面に色合いが変わっている。
ちなみにブルースクリーンとは言うが、色を変える方法はある。色を変える方法はMicrosoftが公式に説明している。
Windows9x系
WindowsNT系
WindowsNT 2k WindowsXP WindowsVista Windows7 Windows8 Windows10
余談
- あまり知られていないが、正式名称はBSoD(BlueScreen of Death)である。
- ジョークソフトとしてブルースクリーンのスクリーンセーバーが存在する。あまりにもリアルすぎて使ったら逆にパニックになり、現在でも一部ウィルス対策ソフトでは不正ソフトウェアとして認識する。製作元はWindows関連の管理ツールを多くリリースしていたSysInternals。同社はMSに買収されたため、現在ではMicrosoftが自ら配布している。(→公式サイト。URLに注目)
- WindowsVistaには、初期のベータバージョン限定で「レッドスクリーン」というものがあった。
ブルースクリーン -(WindowsNT系列・9x系列のOS)
レッドスクリーン -(WindowsVistaβのみ)
ブラックスクリーン -(Windows8・Windows11)
その他のOS
UNIX系OSではカーネルパニックの名称で呼ばれている。基本的には昔のブルースクリーン同様、専門知識がある人向けのメッセージが出る。そのうちLinuxではシステム管理ソフトウェア群「systemd」のバージョン255に「systemd-bsod」というコンポーネントが追加され、ブルースクリーンが輸入されることになった。ただしこのコンポーネントはまだ実験的なものとのこと。
macOS(初期のバージョンはMac OS X)ではハードウェアが壊れてでもいない限り滅多にお目にかかれない現象だが、バージョンによって挙動が違う。10.2までは他のUNIX系と同じようなパニックメッセージが表示される。10.7までは黒地(10.2は白地)に電源ボタンのアイコンを背景に「コンピュータを再起動する必要があります」というメッセージが日本語、英語、フランス語、ドイツ語で出る。10.8以降は自動的に再起動し、それまでのカーネルパニック時と同様の背景に「問題が起きたためコンピュータを再起動しました。このまま起動する場合はいずれかのキーを押すか、数秒間そのままお待ちください」と表示される。
Classic Mac OS(バージョン9以前)では、「爆弾」などと呼ばれ、(特に7.x以前は)当時のWindows9x以上に頻発していたことで知られている。爆弾の名は「システムエラーが起きました。タイプxx」のエラーメッセージとともに表示されるアイコンに由来するものだが、エラーメッセージも吐かずに突然フリーズしてしまうことの方が多かった。特にSystem7.5/7.5.1/7.5.2には大量のバグがあり、その不安定さは語り草になっている。バグは7.5.5であらかた排除され、Mac OS 8.0以降は素のシステムで使う分にはそこそこ安定していたものの、メモリ保護が無いなどOSのつくりが根本的に脆弱だったため、相性の悪いデバイスドライバなどを入れると途端に不安定になり、爆弾は後継のMac OSXに移行するまでMacユーザーにつきまとった。
外部リンク
引用元と詳細
縮小運営中? - Windowsブルースクリーン:エラーコードの解説(一覧)
http://www.jaist.ac.jp/~t-koba/bluescreen.php
Wikipedia
Windows 9x系:https://ja.wikipedia.org/wiki/Windows_9x%E7%B3%BB
Microsoft Windows 95#構造:https://ja.wikipedia.org/wiki/Microsoft_Windows_95#.E6.A7.8B.E9.80.A0
通信用語の基礎知識
例外:http://www.wdic.org/w/TECH/%E4%BE%8B%E5%A4%96
処理例外:http://www.wdic.org/w/TECH/%E4%BE%8B%E5%A4%96%E5%87%A6%E7%90%86
ページフォールト:http://www.wdic.org/w/TECH/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%88
一般保護例外:http://www.wdic.org/w/TECH/%E4%B8%80%E8%88%AC%E4%BF%9D%E8%AD%B7%E4%BE%8B%E5%A4%96
一般保護違反:http://www.wdic.org/w/TECH/%E4%B8%80%E8%88%AC%E4%BF%9D%E8%AD%B7%E9%81%95%E5%8F%8D
カーネルパニック:http://www.wdic.org/w/TECH/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%83%91%E3%83%8B%E3%83%83%E3%82%AF
青画面:http://www.wdic.org/w/TECH/%E9%9D%92%E7%94%BB%E9%9D%A2
IT用語辞典
一般保護違反:http://e-words.jp/w/E4B880E888ACE4BF9DE8ADB7E98195E58F8D.html
関連イラスト
pixivではブルースクリーンの文字を改変したネタ絵などが投稿されている。