摘要:
系统中能够随机访问固定大小数据片的硬件设备称作块设备,这些固定大小的数据片称为块。最常见的块设备是硬盘、还有软盘驱动器、光驱盒闪存等。他们都是以安装文件系统的方式使用的。字符设备按照字节流的方式有序访问,如键盘和串口。14.1 剖析一个块设备块设备中最小的可寻址单元是扇区。扇区大小一般是2的整数倍,最常见的是512字节。扇区的大小是设备的物理属性,扇区是所有块设备的基本单元——块设备无法对比它还小的单元进行寻址和操作,尽管许多块设备能够一次对多个扇区进行操作。很多CD-ROM盘的扇区都是2kB大小。虽然物理磁盘寻址按照扇区级别进行的,但是内核执行的所有磁盘操作都是按照块进行的。由于扇区是设备的 阅读全文
摘要:
虚拟文件系统为用户空间程序提供了文件和文件系统相关的接口。通过虚拟文件系统,程序可以利用标准的Unix系统调用对不同的文件系统,甚至不同介质上的文件系统进行读写操作。13.1 通用文件系统接口13.2 文件系统抽象层VFS抽象层之所以能衔接各种各样的文件系统,是因为它定义了所有文件系统都支持的、基本的、概念上的接口和数据结构。同时实际文件系统也将自身的诸如“如何打开文件”,“目录是什么”等概念在形式上与VFS的定义保持一致。13.3 Unix文件系统Unix使用了四种和文件系统相关的传统抽象概念:文件、目录项、索引节点和安装点。文件:文件其实可以做一个有序的字节串,字节串中第一个字节是文件的开 阅读全文
摘要:
12.1 页内核用struct page 结构表示系统中的每个物理页struct page{ unsigned long flags;// 存放页的状态,包括页是否脏,是否锁定于内存中 acomic_t _count;// 页的引用计数。-1时,就说明当前内核没有引用这一页。 atomic_t _mapcount; unsigned long private; //指向拥有这个页的私有数据 struct address_space *mapping; //指向和这个页关联的address_space对象即页高速缓存对象 pgoff_t index; struct lis... 阅读全文
摘要:
11.1 内核中时间的概念硬件为内核提供了一个系统定时器用以计算流逝的时间,该时钟在内核中可以看成是一个电子时间资源。系统定时器以某种频率自行触发时钟中断,该频率可以通过编程指定,称作节拍率。因为预编的节拍率对内核来说是可知的,所以内核知道连续两次时钟中断的间隔时间。这个间隔时间就称为节拍,等于节拍率分之一秒。利用时钟中断处理的工作:更新系统运行时间、更新实际时间、均衡调度各处理器上的运行队列、检查当前进程是否用尽了时间片、运行超时的动态定时器、更新资源消耗和处理器时间的统计值。11.2 节拍率:HZ系统定时器频率(节拍率)是通过静态预处理定义的,也就是HZ,在系统启动时按照HZ的值对硬件进行 阅读全文