|
|
1行目: |
1行目: |
− | [[Image:Linux-2.4-oops-sparc.jpg|thumb|right|200px|[[SPARC]]アーキテクチャ用Linux2.4カーネルによるLinux kernel oops]]
| + | {{テンプレート:20180815sk}} __NOINDEX__ |
− | [[Image:Linux-2.6-oops-parisc.jpg|thumb|right|200px|[[PA-RISC]]アーキテクチャ用Linux2.6カーネルによるLinux kernel oops(死んだ[[cowsay|牛]]の[[アスキーアート|AA]]が表示されている)]]
| |
− | [[Image:FedoraCoreFault.png|thumb|right|200px|[[Fedora]]ディストリビューションにおけるLinux kernel oopsを[[:en:Stack trace|バックトレース]]している様子]]
| |
− | '''oops'''(ウップス)とは[[Linuxカーネル]]がエラーログを生成する、正常な動作からの逸脱状態のことである。その状態に陥った際に発せられるメッセージを指す場合もある。有名な[[カーネルパニック]]の発生は様々なoopsに起因するが、その他のoopsはシステムの連続稼働における[[信頼性設計|信頼性]]を損なう可能性がある。この用語は英単語[[wikt:en:oops|oops]]の通常の用法と同様単なる錯誤を表すものであり、何かの略語ではない。
| |
− | | |
− | == 概要 ==
| |
− | [[カーネル]]が異常を察知した際、'''oopsメッセージ'''が表示され、異常を引き起こした[[プロセス]]は[[kill]]される。そのメッセージはLinuxカーネル技術者がoopsを生じさせた[[バグ]]を[[デバッグ]]するのに使用され、またその原因となる[[プログラミング_(コンピュータ)|プログラミング]]のエラーを[[Patch|修正]]するのに利用される。
| |
− | | |
− | oopsメッセージに関するLinuxカーネル公式の文書はカーネルソースに同梱されている'''Documentation/oops-tracing.txt'''<ref>
| |
− | {{cite web | |
− | | url = http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/oops-tracing.txt;hb=HEAD
| |
− | | title =oops-tracing.txt
| |
− | | accessdate = 2011-01-27
| |
− | | date = 2010-05-19
| |
− | | author = [[リーナス・トーバルズ|Linus Torvalds]], G.W. Wettstein
| |
− | | publisher = git.kernel.org
| |
− | }}</ref>ファイルである。oopsメッセージを収集するロギングツールの設定を適切に行うことにより、システムのパフォーマンスに影響を与えず、かつ効率的な[[データログ|ログ]]収集を可能にする。これに関する様々な設定手法が存在する<ref name="madwifi-project"> | |
− | {{cite web
| |
− | | url = http://madwifi-project.org/wiki/DevDocs/KernelOops
| |
− | | title = Kernel Oops Howto
| |
− | | accessdate = 2011-01-27
| |
− | | date = 2008-01-10
| |
− | | author = Michael Renzmann
| |
− | | publisher = madwifi-project.org
| |
− | }}</ref>。'''[[klogd]]'''[[デーモン (ソフトウェア)|デーモン]]([[syslog]]の構成デーモンの一つ)は[[カーネルログ]][[リングバッファ]]([[dmesg]]コマンドにより一部表示できる)からoopsの情報を抽出する機能に関与しているとしてしばしば引き合いに出されるが、いくつかのシステム、例えば近年の[[Debian]]や[[Ubuntu]][[Linuxディストリビューション|ディストリビューション]]ではklogdデーモンは'''{{仮リンク|rsyslog|label=rsyslogd|en|rsyslog}}'''デーモンに取って代わられている。これ故klogd[[プロセス]]がなければ、ログファイルにoopsの情報の取りこぼしがあるとは必ずしもいえない。
| |
− | | |
− | 一度システムでoopsが発生すると、もはやいくつかの内部[[計算資源|リソース]]は消費され切ってしまうかもしれない。たとえシステムが正常に動作しているように見えても、動作中のタスクがkillされることにより意図しない悪影響が出る可能性がある。システムがひとたび喪失したリソースを利用しようと試みると、カーネルoopsがしばしばカーネルパニックを招く。
| |
− | | |
− | '''Kerneloops'''<ref name="kerneloops">
| |
− | {{cite web
| |
− | | url = http://www.kerneloops.org/
| |
− | | title = Kernel oops bugcount
| |
− | | accessdate = 2011-01-27
| |
− | | date =
| |
− | | author =
| |
− | | publisher = kerneloops.org
| |
− | }}</ref>というソフトウェアはoopsの収集の引き合いに出される。このソフトウェアをインストールすると、システムでoopsが発生する度にこれを収集し、開発元のウェブサイトに送信する<ref>
| |
− | {{cite web
| |
− | | url = http://linux.die.net/man/8/kerneloops
| |
− | | title = kerneloops(8) - Linux man page
| |
− | | accessdate = 2011-01-27
| |
− | | date =
| |
− | | author = [[アルヤン・ファン・デ・フェン|Arjan van de Ven]]
| |
− | | publisher = linux.die.net
| |
− | }}</ref>。ちょうど[[Microsoft Windows]]オペレーティングシステムにおける、「エラー報告」機能と類似したものと考えればよい<ref>
| |
− | {{cite web
| |
− | | url = http://screenshots.debian.net/package/kerneloops
| |
− | | title = Package 'kerneloops'
| |
− | | accessdate = 2011-01-27
| |
− | | date =
| |
− | | author =
| |
− | | publisher = screenshots.debian.net
| |
− | }} このようにWindowsの「エラー報告」ダイアログと同様に、oopsが発生した際、[[デスクトップ環境]]を使用しているならば、スクリーンショットのような[[ポップアップ]][[ダイアログボックス|ダイアログ]]が表示される。</ref>。このウェブサイトではインストールしたユーザーから自動的に送られてきたoopsの統計情報を提供している<ref name="kerneloops"></ref>。
| |
− | | |
− | システムにおける<code>[[procfs|/proc]]/sys/kernel/panic_on_oops</code>というファイルは、[[エコー_(コンピュータ)|echo]]コマンドなどで<code>1</code>と書き込むと、oopsが発生した際、リングバッファにoopsメッセージを溜め込んだのちカーネルパニックする。
| |
− | | |
− | == 脚注 ==
| |
− | {{Reflist}}
| |
− | | |
− | == 追加情報 ==
| |
− | * {{cite mailing list
| |
− | | title = Re: what's an OOPS
| |
− | | author = John Bradford
| |
− | | date = 2003-03-08
| |
− | | mailinglist = {{仮リンク|Linux kernel mailing list|label=LKML|en|Linux kernel mailing list}}
| |
− | | url = http://lkml.indiana.edu/hypermail/linux/kernel/0303.1/0009.html
| |
− | | accessdate = 2006-05-22
| |
− | }}
| |
− | * {{cite mailing list
| |
− | | title = Re: what's an OOPS
| |
− | | author = Szakacsits Szabolcs
| |
− | | date = 2003-03-08
| |
− | | mailinglist = LKML
| |
− | | url = http://lkml.indiana.edu/hypermail/linux/kernel/0303.1/0027.html
| |
− | | accessdate = 2006-05-22
| |
− | }}
| |
− | *{{cite mailing list
| |
− | | title = OOPS report analysis
| |
− | | author = Al Viro
| |
− | | date = 2008-01-14
| |
− | | mailinglist = LKML
| |
− | | url = http://article.gmane.org/gmane.linux.kernel/624292
| |
− | | accessdate = 2008-01-14
| |
− | }}
| |
− | * [http://madwifi-project.org/wiki/DevDocs/KernelOops Kernel Oops Howto (madwifi プロジェクト) ] oopsメッセージを表示するのに役に立つファイルとツールの設定に有益な情報がある。その他多くのリンクがある。
| |
− | * [http://lwn.net/images/pdf/LDD3/ch04.pdf ''Linux Device Drivers'', 3rd edition, Chapter 4.]
| |
− | | |
− | == 関連項目 ==
| |
− | * [[System.map]] - oopsを解釈するためのファイル。oopsメッセージにはoopsを引き起こした関数などのシンボル名とメモリアドレスが表示されているため、このファイルを利用すれば、oops発生を引き起こした原因を特定する事につながる。
| |
− | | |
− | == 外部リンク ==
| |
− | * [http://www.kerneloops.org/ Kernel oops bugcount]
| |
− | | |
− | {{Linux}}
| |
− | | |
− | [[Category:Linux]]
| |
− | [[Category:コンピュータのエラー]]
| |