20169210《Linux内核原理与分析》第三周作业

本次作业也是分为两部分,第一部分是对实验楼《Linux基础入门》复习,第二部分为对课本18章的复习。

第一次学习实验楼的《Linux基础入门》时由于是第一次接触Linux,所以一些理解很不到位,尤其对于文件系统操作与磁盘管理的理解,所以利用国庆假期重新看一下。

如上图所示,利用命令查看磁盘和目录的内容。物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),如果主机上有多块硬盘则可能还会出现 /dev/sdb,/dev/sdc 这些磁盘设备都会在 /dev 目录下以文件的存在形式。

我们用另一个命令来使结果更直观,如下图所示。

其中提到了挂载的概念, Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。举例来说,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。结合第4节的介绍,就可以理解挂载的意思。

第二部分是课本的第18章的复习,主要的问题就是对有些名词第一次接触,不是很理解,例如syslogd、klogd和断言。

syslogd可以负责记录系统运作中,kernel或应用程式产生的各种讯息。这些讯息被写入到系统的纪录档中,让管理人员,进行故障排除、追踪尝试非法入侵的使用者、进行使用者的分析等等。

klogd 是一个专门截获并记录 Linux 内核消息的守护进程。

所以两者之间的区别的显而易见了,syslogd是记录系统运作的各种讯息的,而klogd是截获内核消息的。教材中提到:在标准的Linux系统上,用户空间的守护进程klogd从记录缓冲区中获取内核消息,再通过syslogd守护进程将它们保存在系统日志文件中。开始时对这句话不理解,通过了解了两个名词的概念之后就可以很好地理解这句话了。

断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言。

这些内容理解的还是不够深刻,以后有新的看法还会更新。

原文地址:https://www.cnblogs.com/crisgy/p/5943150.html