深入理解Linux内核
文章平均质量分 79
vonzhou
这个作者很懒,什么都没留下…
展开
-
PC/AT微机级联式8259控制系统
<!-- p, li {white-space:pre-wrap} --> 在使用80x86组成的微机系统中采用了8259A可编程中断控制器芯片。每个8259A芯片可以管理8个中断源。通过多片级联方 式,8259A能构成最多管理64个中断向量的系统。在PC/AT系列兼容机中,使用了两片8259A芯片,共可管理15级中断向量。其中从芯片的INT引脚连接到主芯原创 2013-05-08 15:55:19 · 3693 阅读 · 0 评论 -
Linux内核hlist数据结构分析
在内核编程中哈希链表hlist使用非常多,比如在openvswitch中流表的存储中就使用了(见[1])。hlist的表头仅有一个指向首节点的指针,而没有指向尾节点的指针,这样在有很多个buckets的HASH表中存储的表头就能减少一半的空间消耗。 和hlist相关的数据结构如下,桶中存储的 hlist_head 是具有相同hash值的entry构成的链表,每个entry包含一个 hl原创 2014-06-30 21:37:04 · 2681 阅读 · 0 评论 -
Linux select 机制深入分析
Linux select 机制深入分析 作为IO复用的实现方式,select是提高了抽象和batch处理的级别,不是传统方式那样阻塞在真正IO读写的系统调用上,而是阻塞在select系统调用上,等待我们关注的描述符就绪。当然现在更好的方式是epoll,比如Java中的NIO底层就是用的epoll。这篇文章只是为了搞懂select机制的原理,不看源码就不能说懂这些IO复用手原创 2015-03-20 13:35:34 · 7733 阅读 · 3 评论 -
Linux pipe 源码分析
Linux pipe 源码分析 管道pipe作为Unix中历史最悠久的IPC机制,存在各个版本的Unix中,主要用于父子进程之间的通信(使用fork,从而子进程会获得父进程的打开文件表),pipe()系统调用底层的实现就相当于一个特殊的文件系统,每次调用的时候创建一个inode关联着两个file,一个用于读,一个用于写,从而实现数据的单向流动。 用户层API:原创 2015-03-20 17:13:38 · 3119 阅读 · 1 评论