自宅にあるパソコンといえど、インターネットを介して世界中のサーバやパソコンとの通信が可能です。こうなると世界中のパソコンが同じ基準の時刻情報を使う必要性が生じ、
UTC(Universal Time Coordinated)と呼ばれる協定世界時をコンピュータの世界における標準時とするようになりました。
・・・ とはいえ、それ程厳密な話でもなく、パソコンの世界ではUTCとグリニッジ標準時(GMT)は同義と捉えても何の不都合もありません。
両者の値には問題となるほどの差はありませんし、Windows はGMTという表現も使っています。
さて、コンピュータ界の標準時となっているUTCですが、ロンドン市民の生活にはシックリ馴染むでしょうけれど、世界中の市民生活に違和感なく当てはまるものでもありません。
そこで世界を市民生活の実情に合わせた
タイム ゾーン(時間帯)と呼ぶ区域に分け、UTCからの時差で補正した時刻をタイム ゾーンの標準時として適用しています。タイム ゾーンの標準時を
ローカル タイム(地方時)と呼んでいます。
ローカル タイムは、UTCからの時差と併せて
UTC ± 時差 ( あるいは GMT ± 時差 )
のように表記します。
UTCより9時間進んでいる日本のローカル タイム(JST)は、UTC+09:00 あるいは GMT+09:00 となります。
時計やカレンダーの表示、ファイルやフォルダの作成・更新日時(タイム スタンプ)、アクセス情報の記録(ログやイベント)等に時刻情報は欠かせません。
パソコンで使用される唯一の時計(時刻情報源)は
システム クロックと呼ばれ、OS(Windows や Linux)が維持管理します。
重要な時刻情報源のシステム クロックですが、その実態はメモリ上で管理されているため、OSのシャットダウンと共に消滅してしまいます。これではOS起動のたびに時刻情報を入力しなければならず、手間であると同時に正確さに欠けるものとなってしまいます。
そこでパソコンの電源を切っても時刻情報を維持し続ける
ハードウェア クロックが登場します。ハードウェア クロックはマザーボード上に実装され、バックアップ電池等により途切れることなく稼働するようになっています。
起動されたOSはハードウェア クロックのデータを参照して現在時刻を認識し、自OS用に編集してシステム クロックを設定します。
ハードウェア クロックはマザーボード上の IC に実装され、RTC(Real Time Clock)あるいはCMOSクロックとも呼ばれます。他のシステム(OS)からは独立しており、コンピュータの電源を切ってもバックアップ電池により動作を継続します。
ハードウェア クロックは、秒、分、時、曜日、日、月、年それぞれのバイト データを、ICチップ上に保持しています。また自身の持っている時刻情報がUTCかローカル タイムかを識別するための情報や機能はなく、時刻情報を受け取ったシステム(OS)側で認識・管理します。OSによって次のような違いがあります。
- Windows
ハードウェア クロックをローカル タイムと規定しています。
- Linux
インストール オプション[システム クロックでUTCを使用]の設定(有効/無効)で次のように変化します。
オプション 有効 | ハードウェア クロックをUTCとして認識。 |
オプション 無効 | ハードウェア クロックをローカル タイムとして認識。 |
システム クロックはOSが管理する時刻情報で、OS起動時に生成されOS終了時には消滅します。OSは起動されるとハードウェア クロックの時刻情報を読み出し、基準時刻からの経過秒数の形式に編集してOSが管理するメモリ内にシステム クロックとして格納します。
システム クロックの基準時刻はOSごとに次のような決められています。
OS | 基準時刻 |
Linux | 1970年01月01日00時00分00秒 |
Windows | 1601年01月01日00時00分00秒 |
Linux と Windows のどちらのOSでもシステムク ロックはUTCで管理します。
そのためハードウェア クロックがローカル タイムの場合は、メモリに格納する前に時差の補正が行われます。
OSはマザーボード上のインターバル タイマーから供給されるパルス(クロック信号)を受けて、システム クロックの更新(時計の進行)を行います。運用(管理)が開始されたシステム クロックはOS唯一の時刻(計時システム)であり、OS全体の一意な時刻情報として使用されます。