什麼是原語?

“原語 操作系統或計算機網絡用語範疇。是由若干條指令組成的,用於完成一定功能的一個過程。primitive or atomic action 是由若干個機器指令構成的完成某種特定功能的一段程序,具有不可分割性·即原語的執行必須是連續的,在執行過程中不允許被中斷。”——來自百度百科

第一次看到“原語”這種提法還是在學習操作系統的時候,而且要麼不碰到,一碰就是一雙,“PV操作”這對原語就是我最先接觸到的操作系統原語。當年 Alan Turing 在定義圖靈機六個基本操作的時候也用了 primitive 這個詞。當時覺得“原語”這個詞很陌生,於是上網查了一下,大部分的解釋都包含了“原子操作”的概念,事實上知道原語英文(primitives)的朋友應該知道它和“atomic”並沒有多大關聯,這說明“原語”和“原子”都姓“原”僅僅是一個巧合,儘管所有的“原語”看上去都是原子操作,但是它的定義絕對不僅限於此。

後來我在一個外國的論壇上找到了答案,具體的說法我已經忘了,簡單地講就是“石頭、剪刀、布”這三樣東西,除了“石頭”是原語,而“剪刀”和“布頭”不算,爲什麼呢?因爲剪刀和布頭都是人工合成的,而石頭是渾然天成的。因此“原語”這個單詞的定義還是要從它的英文原詞 primitive 出發,也就是“原始”的意思。

我們知道物質的最小組成單位絕非原子,比原子小的是質子,比質子小的還有夸克。那麼爲什麼我們看到一把剪刀以後很容易想到它的各個組成部分(比如鋒利的部分用鐵製成,而握的地方用塑料),而看到一塊石頭以後,腦子裏還是隻有一塊石頭,而不是各種礦物質的名稱呢?原因是在人類形成最早語言的過程中還不知道什麼是礦物質,衆所周知人類的視力其實是很差的,只能看到光譜上面很小的一段可見光,也不能像顯微鏡一樣看見的東西,直到道爾頓發現原子,人類科學纔算走上了正軌。

計算機是一門人造科學,因此真正意義上的“原語”是不存在的。操作系統層面上的“原語”(比如 write 之類的系統調用)對程序員來講的確是不可分割的最小單位,但是這寫系統調用本身還是用好幾句彙編語句組成的(對於 Linux 來說是 C 語言)。可能有人要說到了機器代碼這一級就不能再分了,但事實上一條機器指令也是由好幾個組合邏輯信號構成的。同樣的道理,控制信號也不過是無數電子在器件內部漂移的結果。

因此定義“原語”的前提是觀察者所處的位置。一旦規定了觀察者的位置和觀察的角度,比如就在操作系統的這層上,read,wirte,wait這些個系統調用自然就是最“原始”的詞彙,這也是爲什麼“原語”會在操作系統中頻繁出現的緣故。

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