linux device model之我见
纪晓岚曾经说:“世间的道理与事情,都在古人的书中说尽,现在如再著述,仍然超不过古人的范围,又何必再多著述。”于是他一生之中,从不著书,只是编书--整理前人的典籍,将中国文化作系统的分类,以便于以后的学者们学习。自己的著作只有『阅微草堂笔记』一册而已。
linux设备模型也是如此,这个东西本来就是老外发明的,而且英文相关资料也足够详实明了,我在此不多赘言,只将资料整理于此。
在Linux Kernel Development(Second Edition),linux device drivers(third edition),Understanding the Linux Kernel(third edition)中都有关于linux device model的章节,其中linux device drivers(third edition)中介绍最为详实,在第十四章。[这三本可以从这里下载]
其实所有关于linux device model的文章不过乎两点,一个是关于Kobjects, Ksets,Ktype,另一个就是关于sysfs,里面会介绍它的device,bus,class等目录。在linux device drivers还有一章14.6. Putting It All Together很好,使我们更加清晰的了解一个设备或驱动注册的整个过程发生了什么。
网路上fudan_abc的复旦人甲曾经在“我是u盘”里也讲过设备模型(在linux内核修炼之道里也有总结),不过感觉幽默有余,而逻辑不足,不如书中讲的好,虽然有些枯燥。
资源差不多都在上面,万千精彩还等你去发现。正巧我在lwn上面发现了一个不错的overview,建议你去看原文,因为上面有几个有用的链接,这里只作摘抄存档。
Driver porting: Device model overview
 
相关文档:
一 三种类型的套接字:
1.流式套接字(SOCKET_STREAM)
提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。
2.数据报式套接字(SOCKET_DGRAM)
提供无连接的数据传输服务,不保证可靠性。
3.原始式套接字(SOCKET_RAW)
......
Linux下getch()和getche()
I would recommend never mixing input techniques in a program. Don't mix fgets() or scanf() with getchar(). Don't mix any standerd C library input function with a non-standard function that bypasses the C stream mechanism, be that getch(), getche(), bioskey(), or anything el ......
[精华] 完全用 GNU/Linux 工作
http://www.chinaunix.net 作者:enfuzion 发表于:2005-12-08 16:05:56
【发表评论】【查看原文】【Linux讨论区】【关闭】
转自http://www.chinaunix.net/jh/4/16102.html
完全用 GNU/Linux 工作
— 摈弃 Windows 低效率的工作方式,发掘&n ......
在Linux 2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?
用udev在/dev/下动态生成设备文件,这样用户就不用手工调用mknod了。
利用的kernel API:
&nb ......