• ベストアンサー

linux の ハードウエア クロックとソフトウエア クロック

ご存知の方教えてください。 なんで linux の クロックは、ハードウエア クロックとソフトウエア クロックがあるのでしょう。なにか理由があるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

今回は、クロックの役割として クロック役割その1:時計としてのクロック クロック役割その2:タイマカウンタとしてのクロック と2つの役割を考えましょう。 このうち、  役割その1は、単純な時計。  役割その2は、OSの動作に不可欠なタイマ機構に関数するもの。  役割その1は、偶にしか使わない。  役割その2は、OS動作の中枢。 つまり、Linuxにとって必要なクロックとは、クロックの「役割その2」を十二分に果たしてくれる存在でなければいけません。 単純な話、IBMPC互換機のハードウェアクロック(rtc:リアルタイムクロック)は「役割その2」を果たせる存在ではないため、結果、ソフトウェアクロックが必要となりました。 (さらに、その結果、Linux共通の仕組みとして、必ずソフトウェアクロックとハードウェアクロックの2つが存在することになった)

psychesine
質問者

お礼

今までソフトウエアクロックの存在が疑問でした。 onosukeさんの説明で納得しました ありがとうございます。

その他の回答 (1)

  • vais
  • ベストアンサー率75% (47/62)
回答No.1

これは、Linuxに限った事ではないと認識しております。 コンピュータに電源を入れると、ハードウェアクロックにあわせて、ソフトウェアクロックがセットされて、以降はハードウェアクロックを参照することはないのです。  長く立ち上げたままにしておくうちにこれがずれてきますから、ご存じかと思いますが、NTPサーバなどにアクセスして日時をあわせたりする行為が必要になります。  ハードウェアクロックについては、マシンの電源を落としても内部の電池によって、常に稼働しているので、次回OSを起動したときにも、通常はずれてはいません。  しかし、電池で動くわけなので、いずれは電池がなくなり、電源を落とすたびに時計が狂ってしまう・・なんてこともあります。  腕時計や他の時計でもそうですが、電波時計でもないかぎり放置しているうちに時間がずれてきちゃうんですよ。  それぞれの存在はそういったものになります。  ハードウェアクロックは独立したタイマーで、これを基準にしているというわけです。  ハードウェアクロックもずれてきますから、NTPコマンドで日時をあわせたら、ハードウェアクロック側をソフトウェアクロックにあわせてあげるわけです。

psychesine
質問者

お礼

よく解かりました。 ありがとうございます。

関連するQ&A