Linux 内核系统架构 描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候,还是需要fucking the code. 28年前(1991年8月26日)Linus公开Linux的代码,开启了一个伟大的时代.这篇文章从进程调度,内存管理,设备驱动,文件系统,网络等方面讲解Linux内核系统架构.Linux的系统架构是一个经典的设计,它优秀的分层和模块化,融合了数量繁多的设备…
<UNIX环境高级编程>,推荐指数:★★★★★ <UNIX环境高级编程>是 Unix/ Linux 程序员案头必备的一本书籍.可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的.这本书概括了 Linux 编程所需的一切理论框架.主要系统函数.多进程编程.乃至 Linux 网络通信.对于初学者,如果你能将<操作系统>这门课程结合着这本书来学习,试着用 Linux 程序实践<操作系统>这门书中讲的进程间通信.进程调度.…
Linux V4L2驱动架构解析与开发导引 Andrew按:众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中被划分为"面向字符设备.面向块设备.面向网络接口"三大类来进行处理,前两类驱动在文件系统中形成类似文件的"虚拟文件",又称为"节点node",这些节点拥有不同的名称代表不同的设备,在目录/dev下进行统一管理,系统调用函数如open.close.re…
Linux kernel 成功的两个原因: 灵活的架构设计使得大量的志愿开发者能够很容易加入到开发过程中:每个子系统(尤其是那些需要改进的)都具备良好的可扩展性.正是这两个原因使得Linux kernel可以不断进化和改进. 一.Linux内核在整个计算机系统中的位置 分层结构的原则: the dependencies between subsystems are from the top down: layers pictured near the top depend on lower la…
网络命名空间 struct net { atomic_t count; /* To decided when the network * namespace should be freed. */ atomic_t use_count; /* To track references we * destroy on demand */ struct list_head list; /* list of network namespaces *///所有命名空间链接到net_namespace_li…