「Linux/時計」の版間の差分
提供: Wikinote
< Linux
(→2 つの時計) |
細 (→起動時の設定) |
||
行16: | 行16: | ||
# 1. に戻る | # 1. に戻る | ||
− | === | + | === 起動時・終了時の動作 === |
− | RTC からシステムクロックへの読み込みは、/etc/rc.d/rc.sysinit で行われる。 | + | |
+ | 起動時の RTC からシステムクロックへの読み込みは、/etc/rc.d/rc.sysinit で行われる。 | ||
# /etc/sysconfig/clock を読み込み | # /etc/sysconfig/clock を読み込み | ||
行23: | 行24: | ||
# <code>UTC=yes|true</code> ならば、<code>$CLOCKFLAGS</code> に <code>--utc</code> を設定。<code>UTC=no|false</code> ならば、<code>--localtime</code> を設定 | # <code>UTC=yes|true</code> ならば、<code>$CLOCKFLAGS</code> に <code>--utc</code> を設定。<code>UTC=no|false</code> ならば、<code>--localtime</code> を設定 | ||
# 以下で hwclock を実行 | # 以下で hwclock を実行 | ||
+ | |||
[ -x /sbin/hwclock ] && /sbin/hwclock $CLOCKFLAGS | [ -x /sbin/hwclock ] && /sbin/hwclock $CLOCKFLAGS | ||
action $"Setting clock $CLOCKDEF: `date`" /bin/true | action $"Setting clock $CLOCKDEF: `date`" /bin/true | ||
+ | |||
+ | 終了時は /etc/rc.d/init.d/halt で、起動時とほぼ同様の動作が行われる。 | ||
+ | <code>--hctosys</code> が <code>--systohc</code> になるだけである。 | ||
+ | |||
+ | [ -x /sbin/hwclock ] && action $"Syncing hardware clock to system time" /sbin/hwclock $CLOCKFLAGS | ||
== 関連用語 == | == 関連用語 == |
2009年5月1日 (金) 13:28時点における版
Linux でどのように時計が動いているのか。
2 つの時計
- ハードウェアクロック (リアルタイムクロック; RTC)
- マザーボードに実装されたチップで、電源がオフでも進み続ける。精度はそれほどよくない。
- ソフトウェアクロック (システムクロック)
- カーネルが管理している、タイマ割り込みによって進められる時計 (カウンタ)。もちろん電源オフ時は消滅する。調節すれば、かなりの高精度になる。
- 電源オフ時、RTC のみが時間を刻んでいる。
- 起動時に OS が RTC の時刻を読み取り、以後タイマ割り込みでシステムクロックを刻む。
- NTP 等を利用していて時刻が正確だとわかると、11 分ごとにシステムクロックを RTC に書き戻す。
- シャットダウン時にシステムクロックを RTC に書き戻す。
- 1. に戻る
起動時・終了時の動作
起動時の RTC からシステムクロックへの読み込みは、/etc/rc.d/rc.sysinit で行われる。
- /etc/sysconfig/clock を読み込み
-
$CLOCKFLAGS
に--hctosys
を設定 -
UTC=yes|true
ならば、$CLOCKFLAGS
に--utc
を設定。UTC=no|false
ならば、--localtime
を設定 - 以下で hwclock を実行
[ -x /sbin/hwclock ] && /sbin/hwclock $CLOCKFLAGS action $"Setting clock $CLOCKDEF: `date`" /bin/true
終了時は /etc/rc.d/init.d/halt で、起動時とほぼ同様の動作が行われる。
--hctosys
が --systohc
になるだけである。
[ -x /sbin/hwclock ] && action $"Syncing hardware clock to system time" /sbin/hwclock $CLOCKFLAGS
関連用語
- jiffies 変数
- タイマ割り込みの回数を記録する。jiffies_64 の下位 32 ビットが jiffies。グローバルタイマ割り込みハンドラ do_timer() にてインクリメントされる。
- HZ マクロ
- 1 秒間に発生するタイマ割り込みの回数。RHEL では 1000、SLES では 250
- xtime 変数
- 1970/01/01 からの経過時間。グローバルタイマ割り込みハンドラ do_timer() にて進められる。