2006年12月17日星期日

哀叹我的小灵通

倒霉啊,小灵通坏了,修不好啦。客服MM告诉我这个残酷的事实的时候,我无语了。昨天下午专门出去修小灵通,大车都花了30+元,好不容易来到客服,却是修不好了。都怪我自己,自己没事瞎搞,终于玩坏了。不知道怎么了,可能我比较衰,大学以后买的手机,小灵通,电脑一个接一个的坏,真是霉运啊。小灵通坏了也就忍了,我想把机器停机了吧,可是身份证还找不到了,估计前段时间收拾的时候给消失了,还得补办,麻烦了啊。

哎,我就是一个衰人!!!

2006年12月15日星期五

reading tty_io.c

reading usr/src/linux-source-2.6.17/drivers/char/tty_io.c
TTYAUX_MAJOR,0 5,0 /dev/tty 当前进程的"控制终端"
TTYAUX_MAJOR,1 5,1 /dev/console 控制台
TTY_MAJOR,0 4,0 /dev/tty0 当前虚拟控制台
在打开ttyS0的时候,选项O_NOCTTY 表示不能把本串口当成控制终端,否则用户的键盘输入信息将影响程序的执行。
function done
static int tty_open(struct inode * inode, struct file * filp)

reading《Linux 2.6内核的精彩世界》

reading《Linux 2.6内核的精彩世界》
http://www-128.ibm.com/developerworks/cn/linux/kernel/
l-kernel26/index.html
1,模块子系统 - 设备驱动程序
在 Linux 2.6的开发历程中,模块子系统是另一有重大改进的部分。许多代码被重写,以提高稳定性,并使系统更加透明。除了这些明显的表层的变化之外,还有更多背后的内核如何看待以及使用模块的改变。
首先,Linux 2.6中内核驱动程序最显而易见的(虽然并没有太大作用)的变化是文件扩展名改变了。".ko"(kernel object,内核目标文件)取代了".o"(这是一目标文件的常见扩展名,通常在程序编译期间,链接生成可执行应用程序之前
完完全全实质性的改进在于消除存在于很多内核版本中的竞态的多方面工作。问题的关键在于,如果卸载发生在模块检查并确认没有其它的设备正在使用它之后,使用一个正在被卸载的模块来启动设备是有可能的。新的内核模块代码应使得这一条件更难被触发。
更加透明是新的模块子系统另一特性。在此之前,几乎所有的 Linux版本中,模块是足够智能的,它们可以通过扫描总线寻找它识别(recognized)的设备ID号,检测到它所能够支持的设备(比如PCI, ISA PnP以及PC卡)。Linux 2.6标准化了这种支持,使之对内

2,sys文件系统
最明显的用户可见的改变可能是新的sysfs文件系统的出现,它集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统(安装在/sys目录)是核心看到的设备树的一个直观反映。核

既然每个设备(或者说内核对象)在sysfs中都有唯一对应的目录结构,那么下一步可以把设备的属性(设备名,电源模式,中断处理等)信息输出到这个目录树中以供系统管理员读写。相应的,很多跟设备相关的/proc/sys的用法已经或者将要移到/sys目录下。