- 博客(3)
- 资源 (5)
- 收藏
- 关注
原创 内核数据结构——链表
操作系统内核经常要维护内核数据结构的链表。有时,Linux内核数据结构中同时存在着多个链表的实现代码。为了减少重复代码的数量,内核开发者已经建立了一套标准的循环、双向链表的实现。如果你需要操作链表,那么建议你使用这一内核机制。当使用这些链表接口时,应该始终牢记这么链表函数不进行任何锁定。如果你的驱动程序有可能试图对同一个链表执行并发操作的话,则有责任实现一个锁方案。否则,崩溃的链表结构体、数据
2013-07-28 10:38:13 595
原创 I/O端口和I/O内存
每种外设都通过读写寄存器进行控制,大部分外设都有几个寄存器,不管在内存地址空间还是在I/O地址空间,这些寄存器的访问地址是连续的。在硬件层,内存区域和IO区域没有概念上的区别:他们都通过向地址总线和控制总线发送电平信号进行访问,再通过数据总线读写数据。 尽管硬件寄存器和内存非常相似,但程序员在访问IO寄存器的时候必须注意避免由于CPU或编译器不恰当地优化而改变预期的IO动作。
2013-07-18 22:28:55 594
转载 libnids中TCP/IP栈实现细节分析(上)——TCP会话重组
dccmx 于 2011年 三月 7日 发表 | 最后修改于 2011年 三月 22日libnids是网络安全方面的一个库,可以用来检测网络上的攻击行为。其中最有价值的部分是,它模拟了linux内核中3层和4层的协议栈。可以供我们进一步研究linux内核中的TCP/IP协议栈做一些有价值的参考。这里简单谈谈这个库中模拟3、4层协议的实现细节(在继续读下去之前,有必要复习一下TCP/IP
2013-07-14 21:29:16 732
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人