首页 照片墙 友情链接

《The Linux Kernel Primer》第1章习题

最近趁着双11购入不少之前一直买不起的电脑书,开始啃!

《The Linux Kernel Primer》这本书的内容给我感觉学习曲线会相对平缓一些,毕竟是Primer嘛(感觉很不理解书名为什么翻译成《Linux内核编程》),而且还有对应的课后习题。以后每一章看完做一下一部分习题,也算监督自己认真学习吧。答案仅供参考,如有错误,烦请指出,不胜感激。

第1章 习题:

1、 Unix系统和Unix的克隆系统之间有何区别?

Unix的克隆系统指实现了POSIX UNIX规范的操作系统,例如Linux。区别呢,实在是太多了,例如最明显的,两者的许可证不相同。

2、 术语“基于Power的Linux”指什么?

指运行在PowerPC架构的Linux操作系统。

3、 什么是用户空间?什么是内核空间?

在Linux种,操作系统划分为**内核空间**和**用户空间**(内核态和用户态)两部分。用户和程序员开发的应用程序位于用户空间,用户空间不能直接访问内核,通过内核定义的最外层例程——系统调用来访问。Linux操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,

具体内容涉及到CPU的保护模式和内存管理的知识。

4、 用户空间的程序访问内核功能的接口是什么?

在Linux中,系统调用是用户空间访问内核的主要机制。

5、 用户UID与用户名有何联系?

系统以唯一的用户名登录,对应一个UID(user identifier),内核通过UID验证用户的文件访问权限。

6、 列举文件与用户关联的方式。

文件总是与权限关联,权限保存在inode结构中,文件通过其拥有者的UID对应访问权,同时suid、sgid位可以设置执行进程以其拥有者UID(GID)身份运行,而不是以执行者的身份运行。

7、 列举Linux所支持的各种文件类型。

普通文件、目录文件、块设备文件、字符设备文件、链接文件、命名管道文件、套接字文件

8、 Shell是操作系统的一部分吗?

不是,但它是与操纵系统进行交互的主要用户接口。

9、 为什么既要有文件保护还要有文件模式?

 例如:root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin,但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网,这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。(转载)

10、 列出在存放文件元数据的结构中都有哪类信息。

文件类型、大小、拥有者UID、权限等

11、 字符设备和块设备的根本区别是什么?

块设备的I/O以2的幂次方数据块大小进行传送,如软盘驱动器,字符设备如果不是伪设备,其I/O以字节流发送,如串口。

12、 是哪个组成部分让Linux内核成为多进程系统?

进程调度程序

13、 一个进程如何成为另一个进程的父进程?

进程通过fork()系统调用产生子进程,此时调用者即为父进程。

16、 分配进程的优先级有什么作用?所有用户能改变进程的优先级吗?为什么?

可以更好的处理进程调度,确保重要的任务获得更多的CPU时间。只有用户拥有对应权限才可以修改进程优先级。一般用户只能降低它们自己进程的优先级别,并限于 0 到 19 之间。超级用户(root)可以将任何进程的优先级设定为任何值。

17、设备驱动程序仅用于添加硬件支持吗?

不是,例如/dev/random字符设备的设备驱动程序,从其他设备收集熵信息。