深入理解linux内核(第三版)-读书笔记

这篇博客是《深入理解Linux内核》第三版的读书笔记,涵盖了操作系统基本概念,如进程、地址空间、系统调用和文件描述符。深入讨论了文件描述符在Linux内核中的作用,包括其数据结构和共享机制。此外,还介绍了硬链接和软链接的区别,以及Unix内核中的核心概念,如mmap、竞争条件、临界区、信号量和自旋锁。
摘要由CSDN通过智能技术生成

本文记录我对《深入理解linux内核》第三版的杂谈读书笔记,所记录的大部分为杂谈记录,系统的知识我会单独总结。

第一章 绪论

操作系统基本概念

进程

程序运行时的一个实例。

地址空间

允许进程引用的内存地址集合。

系统调用

即对内核提出的请求,硬件就会把cpu从用户态切换到内核态。然后开始一个内核的执行过程。执行完毕之后,内核过程将迫使硬件返回到用户态。继续执行下一条指令。

文件描述符(这一部分来自于apue)

对于内核而言,所有的打开文件都通过文件描述符引用。
从形式上来说,文件描述符是一个非负整数。
当打开一个现有文件或者创建一个新的文件时,内核向进程返回一个文件描述符。

内核使用三种数据结构表示打开的文件:他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。
1. 每个进程具有一个文件描述符打开表。[fd, pfile]
2. 内核为所有打开文件维持一张文件表。每一个表项包括:
- 文件状态
- 当前文件偏移量
- 指向该文件v节点表项的指针
3. 每个打开文件都有一个v节点结构,该结构包括:
- v节点信息(文件类型,对此函数进行各种操作的函数的指针)
- i节点信息(索引节点,文件所有者,文件长度,文件所在的设备,文件在磁盘上的位置指针)

这里写图片描述

进程打开不同的文件,具有不同的文件表,不同的v-node.

这里写图片描述

注意,这种情况是不同的进程各自独立的打开了同一个文件。从语义上来说,他们并不共享同一个文件。所有,二者具有不同的文件表。第一个进程在fd=3打开了该文件,而第二个进程在fd=4打开了该文件。内核这么做的原因是:既然语义上二者是独立的,那么各自拥有对改文件不同的文件偏移量。但是,v-node是一样的。

这里写图片描述

这种是共享的情形,执行同一个文件表。

硬链接和软连接

这里写图片描述

通过上图来学习硬链接和软连接:

硬链接:相当于给文件起别名,新的文件名和原来的文件名共享一个inode.显然,inode具有引用计数!
现在目录下有两个文件,一个名为AAA,一个名为BBB。
引用
$ ls -il
963922 -rw-r–r– 1 ocean ocean 92 2007-05-18 15:46 AAA
963923 -rw-r–r– 1 ocean ocean 95 2007-05-18 15:46 BBB

首先先做一个AAA的硬链接。
引用
ln AAA AAAhard
ls -il
963922 -rw-r–r– 2 ocean ocean 92 2007-05-18 15:46 AAA
963922 -rw-r–r– 2 ocean ocean 92 2007-05-18 15:46 AAAhard
963923 -rw-r–r– 1 ocean ocean 95 2007-05-18 15:46 BBB

这里我们注意在创建链接前,AAA显示的链接数目为1,创建链接后 <

为了透彻理解linux的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再受限于慢速硬盘。    《深入理解linux内核第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了linux运作方式的理论支撑。    本书第三版涵盖linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:    内存管理,包括文件缓冲、进程交换以及直接内存访问(dma)    虚拟文件系统层和第二及第三扩展文件系统    进程创建及调度   信号、中断及设备驱动程序的主要接口   定时   内核中的同步   进程间通信(ipc)   程序执行   本书将使你熟悉linux所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使linux产生最佳性能,你还会看到,linux在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现linux系统的魅力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值