粘住位

檔案的粘住位 ( S _ I S V T X ),在U N I X的早期版本中,有一位被稱為粘住位(sticky bit) 。如果一個可執行程式檔案的這一位被設定了,那么在該程式第一次執行並結束時,該程式正文的一個文本被保存在交換區。(程式的正文部分是機器指令部分)這使得下次執行該程式時能較快地將其裝入記憶體區。其原因是:在交換區,該檔案是被連續存放的,而在一般的 U N I X檔案系統中,檔案的各數據塊很可能是隨機存放的。對於常用的應用程式,例如文本編輯程式和編譯程式的各部分常常設定它們所在檔案的粘住位。

UNIX環境高級編程檔案和目錄

 自然,對交換區中可以同時存放的設定了粘住位的檔案數有一定限制,以免過多占用交換區空間,但無論如何這是一個有用的技術。因為在系統再次自舉前,檔案的正文部分總是在交換區中,所以使用了名字“粘住” 。後來的U N I X版本稱之為保存 -正文位(saved-text bit) ,因此也就有了常數 S _ I S V T X。現今較新的U N I X系統大多數都具有虛存系統以及快速檔案系統,所以不再需要使用這種技術。S V R 4和4 . 3 + B S D中粘住位的主要針對目錄。如果對一個目錄設定了粘住位,則只有對該目錄具有寫許可權的用戶並且滿足下列條件之一,才能刪除或更名該目錄下的檔案:
· 擁有此檔案。
· 擁有此目錄。
· 是超級用戶。
目錄/ t m p和/ v a r / s p o o l / u u c p p u b l i c是設定粘住位的候選者—這兩個目錄是任何用戶都可在其中創建檔案的目錄。這兩個目錄對任一用戶 (用戶、組和其他)的許可權通常都是讀、寫和執行。但是用戶不應能刪除或更名屬於其他人的檔案,為此在這兩個目錄的檔案方式中都設定了粘住位。

相關詞條

熱門詞條

聯絡我們