2008年1月3日 星期四

日誌 Jan. 3 4 about minix 3

lib/ansi :
clock- determine the processor time used
在userspace叫times ,會先送給PM, 在送到kernel ,最後由clock task接手

posix定了一些標準 :在 lib/posix內
getpriority ,times都是

開完機後還在跑的程式:
idle
clock
system
kernel
pm
fs
rs
mem
log
tty
ds
init
/bin/pci
/bin/floppy
/bin/at_wini
/sbin/is
/sbin/cmos
getty*4

系統時間:
主機板上有一元件存系統時間,可透過BIOS取得資訊,吃主機板上電池的電維持。
在minix 3 上,每60分之一秒一個tick,定義為HZ
每次counter數到0,即產生一個tick,好像是IRQ 0,由Interrupt handler處理,minix 3 上由
clock task處理,clock task有一個global variable --- realtime 每次tick來都加1,因此realtime實際上就是開機的時間。
當每次call time()這個system call時,實際上是去跟PM要時間,而PM內部存的時間是以boottime+uptime/HZ回傳。
Minix 3在開完機後,會up cmos driver(早期稱cmos意指bios),cmos driver 起來之後會去要系統時間,並且去設定PM裡boottime的值。

相關command的source code在以下位置:
commands/ibm/readclock.c
commands/simple/date

沒有留言: