ABI (Application Binary Interface)

【譯名】應用程式二進位介面

【說明】應用程式二進位介面為 SVR4 所提供的一組介面,它是用來促使在相同微處理機下所發展出來的應用程式能夠在二進位碼上相容。換句話說,在 80486 微處理機的 DOS 作業系統下所發展出的程式,可以和在相同硬體環境下的 UNIX 執行。

【參考】WABI

absolute path

【譯名】絕對路徑

【說明】UNIX系統的檔案是由階層狀的樹狀結構所構成的,所以由資料結構的角度來看,目錄為一非終端節點(nonterminal node),而檔案則是一個終端節點或稱為葉(leaf)。因此目錄的本身亦為一種「特別」的檔案,其儲存的內容為它之下的檔案/目錄的相關資訊。從使用者觀點而言,我們可以透過兩種方式來尋找所需的檔案。第一種是「絕對路徑」的方式,第二種是「相對路徑」的方式 。所謂「絕對路徑」是從檔案系統的根目錄(root directory)開始,寫出到達該目的檔案的完全路徑名稱,第一個字一定為   "/"  ,表示根目錄。

【範例】$cd/user/local/trevor

【參考】root directory, relative path

access mode

【譯名】存取模式

【說明】詳見 access permission 一辭。

access permision

【譯名】存取權限

【說明】在 UNIX 系統中(S5 檔案系統),每個檔案有一個佔 16 位元的欄位來表示該檔案的存取權限與屬性,其中位元 0-8 是表示關於檔案的存取權限,分別代表的意義如下:

位元

876

543

210

rwx

owner

rwx

group

rwx

other group

共有三個八進位來代表檔案擁有者(owner)、同一團體(group)、其它團體(other group)三類。每一類分別有讀 (r)、 (w) 與執行 (x) 三種使用權利。UNIX利用這九個位元決定檔案被每個人使用的權利,以管制非法使用他人的檔案,而此存取權限是以 chmod 指令來設定。

【範例】查看存取權限

$ ls -l

total 26

drwxrwxrwx 2 root root 120 July 8 18:00 KEVIN

-rwxrwxr-- 1 root root 68 July 8 18:00 temp.c

存取權限

advertise

【譯名】無

【說明】在一個「遠端檔案共享」(Remote File Sharing 的環境之下,允許將當地主機(host)的現有可用資源移轉給其它主機使用的一種方法。

【參考】remote file sharing

advisory cooperative

【譯名】無

【說明】這是 UNIX 所提供四種記錄鎖定功能之一。當使用者存取已被鎖定的資料時﹐系統僅僅提出警告﹐並不禁止使用者去存取被鎖定的資料。這種鎖定方式僅適合數個處理程序在協同作業(Cooperative operation)時採用。

【參考】Cooperative process

Advisory locking

【譯名】勸諫鎖、建議鎖

【說明】就鎖定的的方式來說,可以分為讀取鎖定(read locking,亦稱為分享鎖定,share locking)以及寫入(write locking,也稱作排外鎖定,exclusive locking)。

當一個檔案或記錄以讀取鎖定的方式鎖住時,其他的處理程序僅能對被鎖定的檔案(或記錄)進行讀取作業;在該鎖定未被解除前,所有的更新及新增作業都將被拒絕。

當一個檔案或記錄以寫入鎖定的方式上鎖時,所有的處理程序都不允許對該檔(或記錄)從事任何形式的讀寫作業,直到鎖定被解除。

若是以鎖定的種類來看,又可分為強制鎖(mandatory locking)與勸諫鎖(advisory locking)。強制鎖與輸出輸入次系統結合,當一個檔案或記錄以強制的方式上鎖時,所有違背鎖定方式的讀寫作業都會被核心主動擱置直到鎖定解除。由於上鎖與解鎖的動作都不須經由處理程序叫用 fcntl() lockf() 的程序,所以又稱為暗鎖(implicit locking)。

勸諫鎖未曾與輸出輸入次系統結合,因此系統必須自行處理上鎖與解鎖的動作,而這些行為都得經過常式 fcntl() lockf(),因此稱為明鎖(explicit locking)。

由於 UNIX 是一個多人多工的作業系統,一切的資源都是由眾多處理程序所共享,因此您若要獨佔某個資源一段時間時,您必須先獲得系統的同意,取得系統同意的程序便是申請一個鎖定(lock,這裏作名詞解),而鎖定有兩類,一類是您申請到後,只有您可以讀寫該檔,這就是所謂的寫入鎖定。另一類是您申請到後,別的處理程序僅可讀取該檔但不可以寫入,這便是讀取鎖定。申請鎖定的要求未必會成功,這是由於該檔案的鎖定已被別的處理程序拿走,這時您就必須等待,直到能夠拿到鎖定。例如對檔案的寫入鎖定一次只能給一個處理程序(鎖定的目的就是防止多個處理程序同時對一個檔案寫入),而讀取鎖定就可以給多個處理程序。至於強制鎖及勸諫鎖則是指上鎖的方式,是透過處理程序對特定常式的叫用來加鎖還是由系統本身對所指定資源作強制性的上鎖;下圖為兩種鎖定型態對檔案(或記錄)讀取暨寫入作業的管制情形。

鎖定方式:

讀取鎖定

寫入鎖定

目的檔案/記錄未被任何處理程序鎖定

成功

成功

已有處理程序取得目的檔案/記錄的讀取鎖定

成功

拒絕

有處理程序取得目的檔案/記錄的寫入鎖定

拒絕

拒絕

讀者請注意,要取得一個檔案的讀取鎖定則處理程序必須有對該檔的讀取權限(read permission);同理,只有在處理程序對檔案有寫入權限(write permission)時,它才能獲取該檔的寫入鎖定。

SVR4 以前,所有的 UNIX 系統只有提供勸諫鎖,勸鍊鎖的問題是沒有強制性,這好像古時的忠臣對君王只能苦口婆心的規勸,卻無強制君王遵循的力量。一切以勸諫型態建立的鎖定,都必須經由 fcntl() lockf() 常式,故稱明鎖如果我們今天發展一個資料庫管理系統(DBMS Data Base Management System),所有存取資料庫的的作業都必須經由一組特定的函式來完成,這時該組函式就可以使用勸諫鎖。請注意,這裏的先決條件是『所有的存取作業都必須經由一組特定的函式來完成』。萬一有個處理程序它擁有對資料庫系統中。各檔案的存取權,而它不經由上述的那組函式來存取資料庫系統,此時勸諫鎖就無能為力了。

UNIX 系統將處理程序存取檔案的權限,完全交由檔案存取權限位元來管制;它只是消極且被動的來處理資源同步存取(synchronous access)的問題,因此建立鎖定、取得鎖定、查驗鎖定乃至撤消鎖定都須由程式自行叫用 fcntl() lockf() 常式來完成。

【參考】Mandatory locking

AGE buffer list

【譯名】過時緩衝區串列

【說明】在緩衝區的管理方式中,此串列存在作用是─它把已經用過而且可能不會再用到的資料緩衝區放入此串列中。當系統的緩衝區不敷使用,需要新的緩衝區時,可以直接從此串列中的第一個開始取用。使用過時緩衝區的另一個好處是─萬一某個資料緩衝區有再次使用的機會時,而且該緩衝區也還存在的話,系統就可以再次直接取用它。

alias

【譯名】別名、化名

【說明】在 C shell Korn shell 下提供此項功能。它允許使用者用一個自定的名稱來替代原有的命令名稱,在執行時由 shell來負責這中間的轉換工作。同時原始的命令名稱仍可繼續使用。

【範例】 $alias rm="rm -i"

$alias h=history

$alias v=vi

【參考】AT&T, shell, C shell, Korn shell

anchored match

【譯名】停泊匹配

【說明】即是指在一個文字檔中,每一列的某個固定位置找尋一特定字樣(pattern)。

【範例】 $grep "^unix system"

<尋找以 "unix system" 為開頭的各列

$grep "^unix system$"

<尋找以 "unix system" 為結尾的各列

$grep "^unix system$"

<尋找一列中僅有以 "unix system" 為字樣而無其它字樣的各列

ANSI (American National standard Institute)

【譯名】美國國家標準協會

【說明】為一非營利性組織,其功能為協調廠商、制定彼此間共通的工業標準。

AOE (Application Operation Environment)

【譯名】軟體應用操作環境

【說明】由於 UNIX 對於一般使用者而言,缺乏操作上的親和力,遂有AOEApplication Operating Environment)的構想產生,以改善使用者介面,及協助使用者發展應用軟體....等等,讓人機間能有更好的溝通。

整個操作環境可分為四大部份,如下圖所示:

1. 發展工具。

2. 資料管理功能。

3. 網路系統支援。

4. 使用者界面

aoe.gif (5636 bytes)

archive

【譯名】保存檔

【說明】將好幾個檔案所需的資料組合成一個集合,而稱此集合為 archive 檔或是 archive 程式庫。而構成 archive 的每一個

檔案則稱為此 archive 的成員(member)。

ARP (Address Resolution Protocol)

【譯名】地址對應通訊協定

【說明】ARPAddress Resolution Protocol)是一種通訊協定,能夠以動態的方式將某一個網路上的位址對應到另一個不同網路的位址上。舉例來說:在 BSD 4.3 版中, ARP 是將 DARPA Internet 網路的位止對應到 Ethernet 網路的位止上。在所有的 UNIX 系統中都有一個 ARP 表,記錄了每一個所知道機器的「IP 地址」及其所代表的「ETHERNET 地址」,所以一個 IP 地址只會對應一個 乙太網路地址,如果有人用相同的 IP ,其乙太網路( EtherNet) 地址會和 ARP 表中的內容相符,因此系統送出的封包( package) 能保證送到真正的地方,但如果網路上有任何一台機器更換 乙太網路網路卡時,必須到所有機器上去更改 ARP 表內的資料。

【附註】DARPADefense Advanced Research Projects Agency)高級國防研究專案局是美國國防部內的一個單位。

ASCII

【譯名】美國國家標準交換碼 (American Standard Code for Information Interchange)

【說明】ASCII 是美國國家標準交換碼(American Standard Code for Information Interchange )的縮寫。它是由美國國家標準協會(ANSI)所制定﹐以作為電腦內部與網路傳輸的標準碼。ANSCII 以一個 byte 代表一個字元,其中包括大、小寫的英文字母、阿拉伯數字以及一些特殊符號,共有 128 個。

【參考】ANSI

Asynchronous I/O

【譯名】非同步(異步)輸入/輸出

當一個處理程序仍然在作業時,能夠對輸入/輸出次系統提出輸入/輸出的請求。當作業完成或是發生任何錯誤的時候,系統通常也是會以非同步的方式發出通知。

Asynchronous writing

【譯名】非同步寫入,異步寫入

【說明】非同步寫入與同步寫入作業的方式恰恰相反,同步寫入是『說寫就寫,絕不等待』,在進行輸出輸入時,叫用輸出輸入常式的處理程序(calling process)就暫時進入睡眠狀態直到整個輸出輸入的動作完畢。而非同步寫入則是在進行輸出輸入時,叫用的處理程序雖然立即執行輸出輸入之動作,但是它不待輸出輸入動作完成就徑行執行其他的工作。

Atomic operation

【譯名】無

【說明】UNIX SVR3.0 以後的版本在系統呼叫上所做的一項重要的改進就是讓所有的系統呼叫皆為 "atomic operation"。所謂的 "atomic operation" 是指一個多步驟(multiple steps)的系統呼叫在執行時,要就是一次做完所有的步驟,要不然就是全部不做。我們以 SVR2.x 時期的 open() creat() 系統呼叫為例,當時 open() creat() 是這麼用:

#define MODE 0666

...........

int fd;

char fname[_POSIX_PATH_MAX+1];

...........

...........

if((fd=open(fname,WR_ONLY)) == -1)

if(errno == ENOENT)

{

if((fd=creat(fname,MODE)) == -1)

perror("creat ");

}

else

perror("open ");

上述的作業方式將建立新檔的作業切成兩個階段:

粗看之下,上述的作業方式並無可議之處,但是仔細推敲您會發現兩個系統呼叫間有可能產生間隙。比方說處理程序A執行行上面的動作,在它執行完 open() 後(time slice)終了,於是處理程序B執行,處理程序B建立了 fname 檔且寫入資料,然後它的時間配額也終了,再換處理程序A執行,這時處理程序A會徑行叫用 creat(),結果原本處理程序B所輸入的資料將全盤喪失。解決此一問題的辦法便是讓檢查檔案是否存在及建檔的動作一次完成,中間沒有間隙。因此 SVR3.x 版以降的 open() 常式加入了 O_CREAT 旗標,使所有動作一氣呵成。上面的程式以新版的 open() 來寫將如下:

if((fd=open(fname,O_WRONLY|O_CREAT|O_EXCL,MODE)) == -1)

perror("open ");

AT&T

【譯名】美國電話電報公司

【範例】AT&T 是美國最大的電信公司﹐在 1984 年尚未被以反托拉斯法強迫解體之前,它是世界上最大的電信公司﹐其營運範涵蓋了美國一半以上的領土﹐與百分之八十的美國用戶。而其旗下的數個研究單位在國際上也頗負盛名﹐最有貢獻的首推貝爾實驗室(BELL LAB)﹐而 UNIX也就是由它所發展出來的。因此, AT&T 版的  UNIX 指的也就是由貝爾實驗室所發展的 UNIX。目前最新的 AT&T UNIX SVR4.2 System V Release 4.2)。

auto configuration phase

【譯名】自動架構階段

【說明】UNIX 系統在起動的過程中,必須經過許多的步驟與階段。在此階段中,系統會偵測出所有可能與主機相連接的硬體周邊設備,並且呼叫相對應的設備常式來建立這些設備所需的軟體環境,以便可以順利上線,供用戶使用。