Linux 0.12内核
Linux使用从1970年1月1日0时0分0秒起到开机时经过的秒数作为开机时间, 是在main.c和mktime.c中进行初始化的.
1. linux/init/main.c
/*
* read current time from CMOS.
* 访问CMOS需要通过端口0x70, 0x71进行.
* 读数据时,先用OUT指令向0x70发送要读取字节的偏移位置值, 然后用IN指令从0x71读数据.
* 写数据时也一样, 先向0x70发送偏移值, 然后用OUT指令向0x71端口发送数据.
*/
#define CMOS_READ(addr) ({ \
outb_p(0x80|addr,0x70); \
inb_p(0x71); \
})
/*
* CMOS 字节信息:
* 0x00 - 当前秒. 0x02 - 当前分. 0x04 - 当前小时. 0x06 - 一周中的当前天.
* 0x07 - 一月中的当前日期. 0x08 - 当前月份. 0x09 - 当前年份
*/
/* 将取得的BCD码转换为数值 */
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
/*
* 初始化开机时间, 由main()调用.
*/
static void time_init(void)
{
struct tm time;
do {
time.tm_sec = CMOS_READ(0); /* 读取当前秒值 */
time.tm_min = CMOS_READ(2); /* 读取当前分值 */
time.tm_hour = CMOS_READ(4);
time.tm_mday = CMOS_READ(7);
time.tm_mon = CMOS_READ(8); /* 读取当前月份 ( 1 - 12) */
time.tm_year = CMOS_READ(9);
} while (time.tm_sec != CMOS_READ(0)); /* 如果秒值已经发生变化就重新读一遍,
&nbs
相关文档:
1 接口
我们先看看i915_drv.c里面申明的driver变量:
static struct drm_driver driver = {
/* don't use mtrr's here, the Xserver or user space app should
* deal with them for intel hardware.
*/
.driver_features =
DRI ......
(AIX命令)iostat命令主要通过观察物理磁盘的活跃时间以及他们的平均传输速度,监控系统输入/输出设备负载.
iostat [间隔时间] [打印次数]
exp: iostat 5 2
ps命令是UNIX系统中最常见的命令,它主要显示系统中关于进程的统计和状态信息,如进程ID,I/O行为以及CPU利用率等.
显示10个消耗CPU最多的进程:
ps aux |sort ......
今天读了本书的第一章.这一章初步介绍了Linux内核的总体布局,也就是总体上来看有哪些模块组成.从上到下主要是:glidc->系统调用->(VFS,Schedular,Soft ISR,ISR,FILE Sytem,Task Manager,Memory Manager,IP Stack)括号里面的各个模块都是并列存在的.目前对于这其中的许多名词我还不熟悉,不禁感到惭愧,要学 ......
Linux中tty、pty、pts的概念区别
基本概念:
1> tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种 ......