Times and Timers 在一個進程的生命周期中,核心除了跟蹤它使用的CPU時間還記錄它的其他時間。每一個時間片(clock tick),核心更新jiffies中當前進程在系統和用戶態所花的時間綜合。Linux也支持進程指定的時間間隔的計數器。進程可以使用系統調用建立計時器,在計時器到期的時候發送信號給自己。這種計時器可以是一次性的,也可是周期性的。
File system 進程可以根據需要打開或者關閉文件,進程的task_struct結構存放了每一個打開的文件描述符的指針和指向兩個VFS I節點(inode)的指針。每一個VFS I節點唯一描述一個文件系統中的一個文件或目錄,也提供了對于底層文件系統的通用接口。Linux下如何支持文件系統在第9章中描述。第一個I節點是該進程的根(它的主目錄),第二個是它的當前或者說pwd目錄。Pwd取自Unix命令:印出工作目錄。這兩個VFS節點本身有計數字段,隨著一個或多個進程引用它們而增長。這就是為什么你不能刪除一個進程設為工作目錄的目錄。
Effective uid and gid 一些程序把執行進程的uid和gid 改變為它們自己的(在VFS I節點執行映像的屬性中)。這些程序叫做setuid程序。這種方式有用,因為它可以限制對于服務的訪問,非凡是那些用其他人的方式運行的,例如網絡守護進程。有效的uid 和gid來自setuid程序,而uid和gid 仍然是原來的。核心檢查特權的時候檢查有效 uid和gid。
File system uid and gid 通常和有效uid和gid相等,檢查對于文件系統的訪問權限。用于通過NFS安裝的文件系統。這時用戶態的NFS服務器需要象一個非凡進程一樣訪問文件。只有文件系統uid和gid改變(而非有效uid和gid)。這避免了惡意用戶向NFS的服務程序發送Kill信號。Kill用一個非凡的有效uid和gid發送給進程