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
相关文档:
MYSQL安装
//解压编译安装
# tar xzvf mysql-5.0.27.tar.gz
# cd mysql-5.0.27
# ./configure -prefix=/home/redadmin/mysql
# make
# make install
# cd /home/redadmin/mysql/
# cp share/mysql/my-medium.cnf ./
# mv my-medium.cnf my.cnf
// my.conf文件修改
# vi my.cnf
修改前:
port &nb ......
准备工作:
用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
程序实现:
使用
use
Win32::ODBC;
语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
$DSN = "DSN =
My DSN ......
c[tab][tab]: 获得以c开头的shell命令
alias lm='ls -al' : 取别名
unalias
type [cmd] : 判断是bash内建还是非内建的cmd
":双引号内的特殊字符可以保有变量特性
':单引号内的特殊字符尽为一般的字符
unset 变量名:取消变量名
$HOME
$PATH
$SHELL
$MAIL
$LANG
$RANDOM
$HSITSIZE
$ENV
env: 列出当前s ......
linux 中断处理流程
linux中断处理程序分解为两个半部:顶半部(top half)和底半部(bottom half)
1.
顶半部:用于完成尽可能少的比较急的功能,往往只是简单地读取寄存器中的中断状态并清除中断标志后进行“登记中断”的工作。一般设计成不
可中断。这样顶半部的执行速度会很快,可以响应服务更多的中断请求。 ......
1. 最常用的命令列表
下面列出十个在使用linux过程中使用频率最高的命令。这里只作简单介绍,具体用法请参考后面内容。
cat,显示文件内容。
cd,改变目录路径。
cp,复制文件。
find,查找文件。
grep,搜索、过滤信息。
ls,列出目录信息。
more,分页显示。
rm,删除文件或目录。
vi,调用vi文本编辑器 ......