本文记录我对《深入理解linux内核》第三版的杂谈读书笔记深入理解linux内核 第四版,所记录的大部份为杂谈记录,系统的知识我会单独总结。
第一章总论操作系统基本概念进程
程序运行时的一个实例。
地址空间
容许进程引用的显存地址集合。
系统调用
即对内核提出的恳求如何安装linux,硬件都会把cpu从用户态切换到内核态。之后开始一个内核的执行过程。执行完毕以后,内核过程将促使硬件返回到用户态。继续执行下一条指令。
文件描述符(这一部份来自于apue)
对于内核而言,所有的打开文件都通过文件描述符引用。
从方式上来说,文件描述符是一个非负整数。
当打开一个现有文件或则创建一个新的文件时,内核向进程返回一个文件描述符。
内核使用三种数据结构表示打开的文件:她们之间的关系决定了在文件共享方面一个进程对另一个进程可能形成的影响。
1.每位进程具有一个文件描述符打开表。[fd,pfile]
2.内核为所有打开文件维持一张文件表。每一个表项包括:
-文件状态
-当前文件偏斜量
-指向该文件v节点表项的表针
3.每位打开文件都有一个v节点结构,该结构包括:
-v节点信息(文件类型,对此函数进行各类操作的函数的表针)
-i节点信息(索引节点,文件所有者,文件宽度,文件所在的设备linux操作系统安装,文件在c盘上的位置表针)
进程打开不同的文件,具有不同的文件表,不同的v-node.
注意,这些情况是不同的进程各自独立的打开了同一个文件。从语义上来说,她们并不共享同一个文件。所有,两者具有不同的文件表。第一个进程在fd=3打开了该文件,而第二个进程在fd=4打开了该文件。内核如此做的缘由是:既然语义上两者是独立的深入理解linux内核 第四版,这么各自拥有对改文件不同的文件偏斜量。并且,v-node是一样的。
这些是共享的情形,执行同一个文件表。
硬链接和软联接
通过上图来学习硬链接和软联接:
硬链接:相当于给文件起别称,新的文件名和原先的文件名共享一个inode.其实,inode具有引用计数!
如今目录下有两个文件,一个名为AAA,一个名为BBB。
引用
$ls-il