Linux中的几个问题

明天期末考试,就把往年试卷上的叙述题总结一下:

1.   如果一个设置用户ID程序未执行任何改变进程的实际用户ID和有效用户ID的系统调用,那么运行该程序的进程,它的实际用户ID和有效用户ID各是什么?

答: 实际用户ID在登录时取自口令文件中的登录项,如果没有执行任何改变实际用户ID和有效用户ID的调用,那么有效用户ID也就是实际用户ID。

 

2.   如果使用命令

            man  -SX  kill

     查阅系统调用kill的联机文档,则命令中“X”代表的实际值是什么?

答:对应于Section的部分编号,一共有8个部分:

1 表示用户命令和守护进程。
2 表示系统调用和内核服务。
3 表示子例程。
4 表示特殊文件、设备驱动程序和硬件。
5 表示配置文件。
6 表示游戏。
7 表示杂项命令。
8 表示管理命令和守护进程
 

 

3.   在读写磁盘文件时,每次使用系统调用read和write是否都意味着读写磁盘驱动器? 为什么?

 答:不是,因为系统有缓冲,读写操作均与缓冲有关。

 

4.   在UNIX系统中,文件空洞是什么意思?

答:文件空洞指当文件偏移量大于文件的长度时,对该文件的写将加长文件,这样便形成空洞。(P52) 

 

5.   在什么情形下,产生的信号是未决的(signal pending)?

答:在信号产生和递送之间的时间间隔内,称信号是未决的。如果在产生信号时,调用进程正阻塞该信号而不能递送,则产生的信号便是未决的。(P250,259) 

 

6.  早期的不可靠信号机制主要有哪些特点?

答:信号可能丢失,而且在执行临界区代码时,进程很难关闭所选择的信号。(P243)                                       

 

7.  如何打开文件时使用了O_APPEND标志,那么能否在该文件的任意位置上读写?

答:不能,使用O_APPEND标志每次写时,都追加到文件尾端(P48)。

 

8.   如果进程P创建进程Q,进程Q创建进程R,那么当进程Q在进程P和进程R之前结束,那么进程R的父进程是谁? 进程R是否可能变成僵尸进程?

答:进程R的父进程是init进程,不会变成僵尸进程。(P179)

 

9.   程序员能否根据进程的实际用户ID来判断它们是否有访问文件的相应权限(请简要说明理由)?

答:不能,判断是否有访问文件的相应权限是根据用户的有效用户ID及其附加组ID,而与实际用户ID无关。(P75) 

 

10.  为什么POSIX.1要求system函数阻塞SIGINT和SIGQUIT信号?

答:因为由system执行的命令可能是交互式命令,以及因为system的调用者在程序执行时放弃了控制,等待该执行程序的结束,所以system的调用者就不应接受这两个终端产生的信号。

 

11.   设置-用户-ID(suid)和保存的设置-用户-ID(ssuid)是如何产生的?各自的意义是什么?

 答:suid是为了让执行程序的用户拥有文件所有者的权限而产生的,而ssuid是为了解决运行该程序的权限与拥有改程序用户的权限之间的切换。suid是为了让运行程序用户与程序文件所有者一样的权限运行程序,ssuid是为了在设置用户ID之前,保存程序的有效用户,以备将来把有效用户ID恢复。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章