摘要: 原文转自:http://blog.chinaunix.net/uid-7471615-id-83767.htmlUNIX内核系列已经写了5篇了。按照“The Design of The UNIX Operation System”给出的系统原型来看,file sub-system基本上已经覆盖到了——当然要除去设备驱动相关的部分,如下图所示:http://blogimg.chinaunix.net/blog/upfile2/071118215716.jpg——注意,file sub-system与常说的ext2、ext3文件系统不是一个概念。ext2、ext3是指文件系统类型,file sub 阅读全文
posted @ 2013-05-14 21:52 长烟慢慢 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 原文转自:http://blog.chinaunix.net/uid-7471615-id-83766.html在inode里存放了文件数据所在磁盘数据块号,文件越大,所需要的块号就越多,这是因为文件在磁盘上的存放是不连续的。那为什么不用连续存放?这样只需要一个起始块号以及文件大小就可以描述整个文件的数据位置了。这回带来一些问题,包括很难增长文件大小,以及很容易产生磁盘碎片。因此,还是采用存储每个块号的方式来存放文件数据在磁盘上的索引。当然,要想允许大文件且保持inode足够小,可以采用分级机制。在inode中有13个整数用来存放块号。前10个数是直接指向文件数据的块号,第11个数单级间接指向 阅读全文
posted @ 2013-05-14 21:51 长烟慢慢 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 原文转自:http://blog.chinaunix.net/uid-7471615-id-83765.html内核开发不是洪水猛兽。一旦你了解到其中的规则,你就会发现,跟开发应用程序一样;两者区别在于要遵守的规则集合不一样。Linux是UNIX家族的一员,而且其内核源代码唾手可得,因此这里用其来作说明。规则上,与应用程序(运行于用户空间)的开发不同,主要表现在:没有C库 用GNU C编程(对于Linux内核而言) 没有内存保护 在内核中很难使用浮点数 内核栈大小固定且很小 由于异步中断、抢占以及支持SMP,需要额外小心同步和并发 移植性问题下面就来逐个解释。内核没有链接任何C库。这里面涉及到 阅读全文
posted @ 2013-05-14 21:50 长烟慢慢 阅读(239) 评论(0) 推荐(0) 编辑