Bochs 的实时时钟

摘抄自 ByteKits 上的文章 [1],目前已不可用,做个备份(方便大家查阅)。

clock 定义了 Bochs 内的时钟。

sync 定义了如何将 Bochs 内部时间与实时同步的方法。值为’none’时,Bochs 时间依赖于 IPS 值,并且不使用主机时间同步。“减速” 方法牺牲性能以保持再现性,同时允许主机时间相关性。“实时” 方法牺牲了再现性,以保持性能和主机时间相关性。可以同时启用这两种同步方法。

rtc_sync 选项与实时同步一起启用,RTC 将以实时速度运行。默认情况下,此功能处于禁用状态。

time0 指定虚拟机的开始(引导)时间。使用 time(2) 系统调用返回的时间值或 ctime(3) 系统调用返回的字符串。如果没有设置 time0 值,或者 time0 等于 1(特殊情况),或者 time0 等于 “local”,则模拟将在当前本地主机时间开始。如果 time0 等于 2(特殊情况)或 time0 等于’utc’,模拟将在当前 utc 时间开始。

以下是一个例子:

1
2
3
4
5
6
7
8
9
10
11
Syntax:
clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
Examples:
clock: sync=none, time0=local # Now (localtime)
clock: sync=slowdown, time0=315529200 # Tue Jan 1 00:00:00 1980
clock: sync=none, time0="Mon Jan 1 00:00:00 1990" # 631148400
clock: sync=realtime, time0=938581955 # Wed Sep 29 07:12:35 1999
clock: sync=realtime, time0="Sat Jan 1 00:00:00 2000" # 946681200
clock: sync=none, time0=1 # Now (localtime)
clock: sync=none, time0=utc # Now (utc/gmt)
Default value are sync=none, rtc_sync=0, time0=local

  1. http://www.bytekits.com/bochs/bochs-clock.html ↩︎