トップQs
タイムライン
チャット
視点

Linux kernel oops

ウィキペディアから

Linux kernel oops
Remove ads

oops(ウップス)とはLinuxカーネルがエラーログを生成する、正常な動作からの逸脱状態のことである。その状態に陥った際に発せられるメッセージを指す場合もある。有名なカーネルパニックの発生は様々なoopsに起因するが、その他のoopsはシステムの連続稼働における信頼性を損なう可能性がある。この用語は英単語oopsの通常の用法と同様単なる錯誤を表すものであり、何かの略語ではない。

Thumb
SPARCアーキテクチャ用Linux2.4カーネルによるLinux kernel oops
Thumb
PA-RISCアーキテクチャ用Linux2.6カーネルによるLinux kernel oops(死んだAAが表示されている)
Thumb
FedoraディストリビューションにおけるLinux kernel oopsをバックトレースしている様子

概要

カーネルが異常を察知した際、oopsメッセージが表示され、異常を引き起こしたプロセスkillされる。そのメッセージはLinuxカーネル技術者がoopsを生じさせたバグデバッグするのに使用され、またその原因となるプログラミングのエラーを修正するのに利用される。

oopsメッセージに関するLinuxカーネル公式の文書はカーネルソースに同梱されているDocumentation/oops-tracing.txt[1]ファイルである。oopsメッセージを収集するロギングツールの設定を適切に行うことにより、システムのパフォーマンスに影響を与えず、かつ効率的なログ収集を可能にする。これに関する様々な設定手法が存在する[2]klogdデーモンsyslogの構成デーモンの一つ)はカーネルログリングバッファ(dmesgコマンドにより一部表示できる)からoopsの情報を抽出する機能に関与しているとしてしばしば引き合いに出されるが、いくつかのシステム、例えば近年のDebianUbuntuディストリビューションではklogdデーモンはrsyslogd英語版デーモンに取って代わられている。これ故klogdプロセスがなければ、ログファイルにoopsの情報の取りこぼしがあるとは必ずしもいえない。

一度システムでoopsが発生すると、もはやいくつかの内部リソースは消費され切ってしまうかもしれない。たとえシステムが正常に動作しているように見えても、動作中のタスクがkillされることにより意図しない悪影響が出る可能性がある。システムがひとたび喪失したリソースを利用しようと試みると、カーネルoopsがしばしばカーネルパニックを招く。

Kerneloops[3]というソフトウェアはoopsの収集の引き合いに出される。このソフトウェアをインストールすると、システムでoopsが発生する度にこれを収集し、開発元のウェブサイトに送信する[4]。ちょうどMicrosoft Windowsオペレーティングシステムにおける、「エラー報告」機能と類似したものと考えればよい[5]。このウェブサイトではインストールしたユーザーから自動的に送られてきたoopsの統計情報を提供している[3]

システムにおける/proc/sys/kernel/panic_on_oopsというファイルは、echoコマンドなどで1と書き込むと、oopsが発生した際、リングバッファにoopsメッセージを溜め込んだのちカーネルパニックする。

Remove ads

脚注

Loading content...

追加情報

関連項目

Loading content...

外部リンク

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads