VFS (Virtual File System)

【譯名】虛擬檔案系統(Virtual File System

【說明】VFS 結合了 SVR3.x 版的 FFSFile System Switch)以及 Sun OS 的虛擬檔案系統管理技術。VFS 架構允許不同型態的檔案系統在同一個系統上並存,它並提供系統開發人員設計及更改的工具,以方便增併新型態的檔案系統於 UNIX 作業系統中。

Virtual address space

【譯名】虛擬位址空間

【說明】當處理程序在破碎(fragment)的真實記憶體中移出移入時,並無法保証隨時都有足夠的空間能夠給每個處理程序,因此核心程式(kernel)會在處理程序調入時配置程式在記憶體中所在的位址,而使用虛擬位址空間可以指定一塊連續的虛擬記憶體區塊(block)給處理程序,這些區塊會當調入時才真正映射到真實記憶體中。

【參考】fragmentation, block

Virtual circuit

【譯名】虛擬線路

【說明】虛擬線路是分封交換網路(packed-switching network)的技術之一,另一種主要方式是:資料流(datagram)。

虛擬線路好比是我們日常生活中所使用的電話系統:在兩端開始通訊之前,須先將通訊路徑建立起來。因此,當連線建立後,所有的傳輸路徑也就同時產生了,每個封包只要按著這條路徑,便可以送達到對方的主機。而和電話系統不同的是:虛擬線路的各項資源,如:IMP,傳輸線路等﹐在傳輸過程中並非是固定分配給某個使用者來使用。如此一來,才可以達到資源共享,而使網路的資源得以被充分利用。

由於虛擬線路在傳輸過程中,其傳輸路徑已被固定,因此每個封包並不需要去做路徑的選擇,所以封包中只需存放虛擬線路的編號,而不必記住完整的目的地位址。所以它適合用於每個封包長度皆很短的情況下,如終端機與主機間的連線。但由於虛擬線路是將傳輸路徑的資料儲存於 IMP 中,因此當某個 IMP 故障而導至其記憶體中的資料流失時,所有經過此 IMP 的虛擬線路都將遭到斷線的命運。

Virtual console

【譯名】虛擬主控台

【說明】所謂虛擬主控台是指用戶可以在只有一個實際主控台的情況下,以軟體(包括 vgettyvtlmgrnewvt 等)模擬數個主控台,使用戶能以熱鍵在各個虛擬主控台間切換,使得同一用戶能夠同時操作一個以上的控制台。每啟動一個虛擬主控台就形同開啟一個新的 session,該 session 有自己的 session leader,是以 session session 間是完全獨立的。大多數 SVR4 版的 UNIX 都有提供這種功能,因此您可以在一台終端機上開啟好幾個虛擬控制台,而每個虛擬控制台都執行不同的 shell 或是任何應用程式。

Virtual memory management

【譯名】虛擬記憶體管理

【說明】自 System V 以降,UNIX 系統提供虛擬記憶體管理的能力,因此它允許處理程序不須全部載入主記憶體就能執行,它可以讓輔助記憶體模擬成主記憶體,以提高 multi-programming 的程度,然後利用程式在主記憶體與輔助記憶體間切換,這種記憶體管理方式便是所謂的虛擬記憶體管理。而模擬主記憶體的輔助記憶體則被稱作置換設備(swap device)。置換設備必須是一個區塊設備,一般來說都是以硬式磁碟機來擔任置換設備。

VTP (Virtual Terminal Protocal)

【譯名】無

【說明】應用層的通訊協定(protocol)。提供一種虛擬終端機的標準,以便能使一些全螢幕型的編輯程式(如 UNIX 上的 vi)能夠不因終端機種差異而有所影響。

【參考】protocol

Vxfs

【譯名】無

【說明】在 SVR4 所提供的諸多型別之檔案系統中,vxfs 算是執行效能與容錯能力都強的一個,它有下面三項特點:

1. 能夠快速回復(recover)受損(failure)的檔案係統不論是 ufs 還是 s5,它們在檔案系統受損時都必須依賴系統指令 fsck 來驗證檔案系統是否受損,並更正所有發現的錯誤;對於一個龐大的檔案系統,這個查驗程序可能耗時甚久。vxfs 提供一個在短時間(有時甚至只須幾秒鐘)回復受損檔案系統的方式;這個方式稱作意向記錄(intent logging)。意向記錄是把檔案系統裏進行了一部份,但是未全部做完的變化予以記載。當檔案系統出毛病時,vxfs fsck 指令將會直接檢查意向記錄(intent log,注意此處 log 是作名詞解),並把在系統出問題時所有未完成的改變一則將它做完,或是放棄所做的一切改變。如此 UNIX 便可以在很短的時間內將檔案系統掛上(mount)統查驗流程。

2. extent-based 的定址方式 extent 是指檔案系統中相鄰的儲存區塊,vxfs 在存入檔案資料時就是以 extent 為單位,換言之在 vxfs 之下對檔案讀寫的磁碟輸出輸入是以每次數個區塊為單位,而 s5ufssfs 等則以區塊為單位。當進行循序輸出輸入(sequential I/O)時,一次對數個區塊進行輸出輸入的速度將遠高於一次一個區塊的作業。

3. 資料完整性(integrity)的強化在系統運行時,inode 與一般資料都擁有兩份拷貝,若以 inode 為例,在主記憶體的那一份稱為 in-core inode,在硬碟中的那份叫 disk inode。一般資料也是一樣,在被處理時都會先載入記憶體,然而為了減少硬碟輸出輸入的次數增加系統的效率,系統不會在資料一被更改後就將修改過的資料存入硬碟,通常是隔一段時間才作一次資料寫入的作業。這個動作叫同步(synchronizeUNIX 透過指令 sync 來執行此動作)。假使系統在上次執行 sync 後到再次執行 sync 之間當機,那麼這段時間所有更改或新增的資料都將一去不回。vxfs。提供了一個稱作 mincache 的選項,它讓系統幾乎是在即時的情況下做資料同步,如此只有在當機那一刻正進行寫入的資料才會喪失,使資料的一致性與完整性大為增進。當然天下無白吃的午餐,當使用 mincache 選項時,系統的速度將變慢。下面為 vxfs 的架構圖:

Vxfs.gif (2510 bytes)

在超級區塊這部份,vxfs ufs 差不多,而定址單位(allocation unit)則是連續的一組區塊,比較值得一提的是『意向記錄』,這個部份佔 256 個區塊(vxfs 的區塊大小可以從 1K 8K,預設大小為 1K),它的大小大約是 256K,如果系統的大小少於 4 MB,意向記錄的尺寸會自行縮小以節省空間。vxfs 的這套處理方式有人稱作是『交易基準』的作業模式,我們以銀行的自動櫃員機(ATM)為例,每一筆交易(不論是存款還是提款)都必須要全部完成,絕對不允許有做了一半的情況。以提款為例,假設整個交易動作包括驗核用戶密碼、讀取存款餘額、核對存款是否足夠、如果夠則提領款項、將新的存款餘額寫入、付款等,這六個動作結合在一起便是一筆交易,一筆交易要就是全部完成,要就是整個放棄,絕不容許有做了一部份的情況。vxfs 就是將檔案系統的作業以類似交易的方式處理,所有未做 sync 的工作都會以『意向紀錄』與以記載,因此才能做到當系統當掉時僅有現在正寫入的個筆資料會喪失。