大型機作業系統與殘留到現代的古老技術

【CSDN 編者按】當下使用者常常接觸到的計算機大多是微型計算機,對於大型機,除了用在一些特定的領域和場景,普通使用者很少能觸及,正如本文作者所表示:「行業無視它們,而它們也無視行業」。

原文連結:https://liam-on-linux.dreamwidth.org/86995.html

聲明:本文為 CSDN 翻譯,未經允許,禁止轉載。

作者 | Liam on Linux

譯者 | 彎月 責編 | 張紅月

我認為,21世紀大型機作業系統的有趣之處在於:

一方面,科技發展史上曾出現過很多偉大的作業系統、語言、接口和想法,但大多數都被遺忘了。大型機很昂貴,無論是過去還是現在都非常非常昂貴;小型計算機(minicomputer)相對比較便宜,所以它們在完全滅絕之前曾經歷過短暫的輝煌;而微型計算機(microcomputer)的價格最低。

所有現代計算機都是微型計算機。雖然經過長年的發展,如今的微型計算機看似很像小型機和大型機,但事實並非如此。就像鴕鳥進化後看起來有點像獸腳亞目恐龍,但實際上它們依然是鳥,沒有牙齒,手臂和翅膀上沒有爪子,依然是卵生。

微型計算機的一個突出的特徵是價格便宜,成本低廉,而且研發費用很低。

但大型機很昂貴,造價很高,租賃和許可成本很高,運行費用也很高,一切費用都很高。如果你很在意成本,那麼根本就不會使用大型機。但有人依然出於某種理由而必須使用大型機。

這就意味著即便大型機所服務的市場只有幾百個客戶,廠商也依然有利可圖,而且有足夠的資金開發產品並提供支持。

這就導致在如今高度同質化的現代計算環境中,一切都受到了Unix C這個主流技術及其文化的影響。Unix C是DEC小型機的遺留技術,但它深深地影響了DOS、Windows、OS/2甚至WinNT和Unix,它們都有共同的DNA。但是,大型機卻是個異類。

過去,我們曾有各種截然不同的系統。比如,經典的Mac和Amiga、搭載了RISC OS的Acorn ARM機器、Lisp機器、Apollo DomainOS機器等等,它們都與DEC/*nix不同,並且以此為特色。按照現代的標準來看,這些系統都很奇怪,而且很異類。

但這些系統都消失了。只有少數系統存活在模擬器和個人興趣中,但它們不可能再次在行業中佔據一席之地。一些以嵌入式系統的形式存在於某些設備的保護殼裡。Lisp就只有Emacs在用。還有Smalltalk這種在各種不同的計算機裡運行的虛擬機器語言。

與此同時,大型機一直活得好好的,縱然被整個行業忽視,卻依然存在,而且基本上不受各種技術發展趨勢的影響。

大型機有著自己獨特的儲存架構、網路系統、 I/O 控制器,還有程式語言和記憶體模型等等,因為它們不得不採用這些獨特的技術,它們極少會向主流技術靠攏。它們可以利用主流技術建立網路,如果需要彼此溝通,還可以把自己的協議打包到TCP/IP等。

但是,大型機有自己的客戶,有自己的資金來源,對於客戶的收入情況瞭如指掌,還掌握了大量的使用者資料,而且一些關鍵性的任務非它們莫屬,因此它們前進的路上沒有任何阻力。偶爾也會有不自量力的挑戰者,但這對於能夠輕易運行幾千個Linux虛擬機器的大型機來說簡直是無關痛癢。

結果就變成了:行業無視它們,而它們也無視行業。

但是,我們本可以在20世紀90年代後期擁有多處理器 BeOS 機器,或者在80年代後期擁有可以輕鬆支持多工的基於386架構的OS/2個人電腦,或者能夠支持多工的680×0的機器(而不是Mac),或者其他數百種沒有成功的技術中的任何一種。它們都是基於微型計算機的,因此沒有足夠的研發資金。

相反,如今我們只有很小一部分系統,而且並不是最好的,而是最便宜、最簡單、勉強夠用的系統,因為人們崇尚「最低限度可行產品」。

當然,還有少數倖存者仍在堅持。

有趣的是,歷史的發展總是週而復始。人類所有的文化都是如此,軟體亦是如此。想當初,20世紀末期流行的軟體只不過是當時最廉價、勉強能用的解決方案。後來它們被更廉價的方案取代了。

我們經歷了漫長的算盤和結繩計數的時代,如今已無法回頭,而眼前這些由一群自以為是的「軟體工程」人員製作出來的垃圾將會變成下一代昂貴的嵌入式或虛擬式垃圾,就像前面提到的那些消失的系統和技術一樣。

它們會嵌入到哪些設備中?現如今的「低級語言」就是可以「編譯」成「原生二進位制檔案」的語言。你可以使用這些語言來構建作業系統,並使用虛擬化層次結構來擴展不太可靠、不太方便擴展的技術。

然後在此之上的二級系統的核心是Web技術,以及使用了「JIT」的「動態語言」來解決「跨平臺」等問題,這樣它們就可以在任何平臺上運行,並分割成多個微服務,用「標準協議」連接,從而在「Web規模」的「雲」中運行。

技術高手都知道,選擇正確的語言和正確的工具,就可以構建出與一級系統相同類型的產品,來代替二級系統,而且不需要花哨的擴展基礎設施,因為一臺現代機器就可以支持一百萬個併發使用者,且沒有任何問題,幾臺這樣的機器就可以支持數千萬個併發使用者,而所有這些機器都可以放在一個房間的角落裡,正常運行時間長達數十年,不需要任何雲。

但是這個方案很難實現,而利用解釋語言和龐大的框架拼湊一個「現代系統」要容易得多。

相關文章

最強 AI ChatGPT 真要取代程式設計師?

最強 AI ChatGPT 真要取代程式設計師?

【CSDN 編者按】ChatGPT 一出,「程式設計師要失業了」、「程式設計師要下崗了」之聲不絕於耳,引得程式設計師們不由得一陣驚慌,最強 ...

中國資料庫的諸神之戰

中國資料庫的諸神之戰

作者 | 唐小引 出品 | 《新程式設計師》編輯部 「現在的資料庫產品實在是太多了!」 前幾天,我和深耕資料庫/大資料近 30 年的盧東明老...

雲原生時代的DevOps平臺設計之道

雲原生時代的DevOps平臺設計之道

【CSDN 編者按】雲原生時代,開發和運維的分工愈加分明,運維人員通過建設並維護一套 IaaS 雲平臺,將計算資源進行池化。開發人員按需申請...