自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oberon操作系統(tǒng):一個被忽略的珍寶

系統(tǒng)
Oberon 操作系統(tǒng)是用一種同名的程序語言(Oberon 語言)寫成,比起 Unix,有很大的不同,在于它的數(shù)據(jù)都是結(jié)構(gòu)化的。操作系統(tǒng)的設(shè)計(jì),真是天外有天。

推薦一篇很久以前看的文章:Oberon - The Overlooked Jewel,它介紹的是 Niklaus Wirth 設(shè)計(jì)的一種操作系統(tǒng),叫做 Oberon。Niklaus Wirth 就是大家熟知的 Pascal 語言的設(shè)計(jì)者。絕大部分人都沒聽說過有 Oberon 這個東西存在,更難以把它跟 Niklaus Wirth 的大名掛上鉤。所以作者說:“Wirth 因?yàn)?Pascal 而聞名于世,可是接下來幾年,他成為了 Pascal 的受害者。” 確實(shí)是這樣。Wirth 一直都不覺得 Pascal 是他的杰作。我想他應(yīng)該會更喜歡以 Oberon 聞名于世。

Oberon 比起 Unix,有很大的不同,在于它的數(shù)據(jù)都是結(jié)構(gòu)化的。進(jìn)程間不通過字符串交換數(shù)據(jù),而是直接使用數(shù)據(jù)結(jié)構(gòu)。很奇特的一點(diǎn)是,Oberon 操作系統(tǒng)是用一種同名的程序語言(Oberon 語言)寫成。令人驚訝的是,在那個年代,ETH 計(jì)算機(jī)系的所有教職員工,學(xué)生,包括辦公室的大媽,都是用的這種操作系統(tǒng)。

操作系統(tǒng)的設(shè)計(jì),真是天外有天。

之所以找到這個系統(tǒng),是因?yàn)槲乙恢痹谠噲D利用程序語言的設(shè)計(jì)原理,設(shè)計(jì)一種超越“Unix 哲學(xué)”的操作系統(tǒng)。這里是我的設(shè)想:

  • 這種系統(tǒng)里面的程序間通信不使用無結(jié)構(gòu)的字符串,而是使用帶有類型和結(jié)構(gòu)的數(shù)據(jù)。在這樣的系統(tǒng)里面,“程序”的概念基本上完全消失。系統(tǒng)由一個個的“函數(shù)”組成,每個函數(shù)都可以調(diào)用另外一個函數(shù),通過參數(shù)傳遞數(shù)據(jù)。每個函數(shù)都可以并發(fā)執(zhí)行。
  • 由于參數(shù)是一個數(shù)據(jù)結(jié)構(gòu),而不是字符串,這避免了程序間通信繁瑣的“編碼”和“解碼”過程。使得“進(jìn)程間通信”變得輕而易舉。任何函數(shù)都可以調(diào)用另一個函數(shù)來處理特定類型的數(shù)據(jù),這使得像 “OLE 嵌入”這樣的機(jī)制變得及其簡單。
  • 所有函數(shù)由同一種先進(jìn)的高級程序語言寫成,所以函數(shù)間的調(diào)用完全不需要“翻譯”。
  • 由于這種語言不允許應(yīng)用程序使用“指針運(yùn)算”,應(yīng)用程序不可能產(chǎn)生 segfault 一類愚蠢的錯誤。
  • 由于沒有指針運(yùn)算,系統(tǒng)不再需要現(xiàn)代處理器提供的“內(nèi)存映射”機(jī)制,以及 TLB。這使得內(nèi)存訪問效率大幅提高。而且簡化了處理器的設(shè)計(jì)。
  • 操作系統(tǒng)使用與應(yīng)用程序相同的高級語言寫成(可能需要支持一些“特權(quán)操作”),至于“系統(tǒng)調(diào)用”,只不過是調(diào)用另外一個函數(shù)。
  • 操作系統(tǒng)的“shell”,不過是一個這種高級語言的 REPL。用戶可以在終端輸入各種函數(shù)調(diào)用,從而啟動進(jìn)程的運(yùn)行。
  • 系統(tǒng)不需要 SQL,不需要關(guān)系式數(shù)據(jù)庫。所有的數(shù)據(jù)都作為“對象”,保存在一個分布式的數(shù)據(jù)空間。
  • 系統(tǒng)不需要“文件系統(tǒng)”。所有的數(shù)據(jù),包括“進(jìn)程上下文”自動被“版本控制”,在合適的時候作為對象同步到磁盤。所以即使在機(jī)器掉電的情況,絕大部分的數(shù)據(jù)和進(jìn)程能夠在電源恢復(fù)后自動繼續(xù)運(yùn)行。
  • 程序員和用戶完全不需要知道“數(shù)據(jù)庫”或者“文件系統(tǒng)”的存在。程序假設(shè)自己擁有無窮大的空間,可以任意的構(gòu)造數(shù)據(jù)。
  • 為了減少數(shù)據(jù)的移動,系統(tǒng)根據(jù)數(shù)據(jù)的位置,選擇: 1)遷移數(shù)據(jù),或者 2)遷移處理數(shù)據(jù)的“進(jìn)程”。程序員不需要使用 MapReduce,Hadoop 等,就能進(jìn)行大規(guī)模并行計(jì)算。
  • 這個操作系統(tǒng)是如此的“一致”,以至于所有的用戶和程序員,只需要學(xué)會一種很簡單的程序語言。

我曾經(jīng)以為我是第一個想到這個做法的人??上У氖?,調(diào)查之后發(fā)現(xiàn),很多人早就已經(jīng)做出了類似的系統(tǒng)。Lisp Machine 似乎是其中最接近的一個。Oberon 是另外一個。我只能說,英雄所見略同。

責(zé)任編輯:黃丹 來源: udpwork.com
相關(guān)推薦

2022-10-09 08:16:29

React前端

2009-09-02 18:36:46

LinuxLinux操作系統(tǒng)Linux開發(fā)

2009-12-16 12:30:25

openSUSE操作系

2010-02-26 14:13:51

Linux操作系統(tǒng)

2018-10-26 09:30:47

Boxes操作系統(tǒng)Linux

2010-04-20 14:43:01

Unix操作系統(tǒng)

2012-05-07 13:02:46

Linux服務(wù)器集群

2018-06-27 09:14:54

嵌入式操作系統(tǒng)Linux

2011-07-19 09:41:33

2020-10-25 08:52:19

Unix操作系統(tǒng)TrueOS

2009-06-30 10:37:59

Linux操作系統(tǒng)

2022-04-07 14:33:31

操作系統(tǒng)鴻蒙HarmonyOS

2009-12-10 15:17:58

Linux操作系統(tǒng)

2018-12-05 08:40:53

開發(fā)操作系統(tǒng)

2009-09-04 10:47:33

2019-08-09 10:45:09

操作系統(tǒng)WindowsLinux

2021-02-20 13:52:50

Windows 10XWindows 10微軟

2013-09-17 13:24:07

Unix操作系統(tǒng)

2020-03-03 10:17:00

云計(jì)算公共云

2020-05-17 16:19:59

JavaScript代碼開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號