萬維網操作系統---空間意義之二

 

 

既然傳統的計算機空間存在問題,那麼如何設計新的計算空間形式?這裏有幾個必須考慮的因素:運行效率,支持進程、線程、對象,存儲結構等,基於這幾個因素,採用簡單的進程空間內的函數分段模式。以前的x86設計有任務段,這個任務段可以支持當任務切換時,自動保存任務的寄存器等數據,在一個任務內,他不能保存函數切換時的棧地址、堆地址,對函數調用的棧溢出也不能防範,而且在開發操作系統時段模式也沒有得到很好的使用,如windows操作系統的程序進程各段都一樣,沒有分出各種內存空間段,這樣用戶程序事實上可以存儲任何數據包括指令部分。因爲這種不明確的分段模式,造成程序員在編程時不認真規劃數據結構,指令與數據混在在一起,內存經常違規存取、超界、溢出。如果當初設計函數調用功能時,設計出可以讓函數自身方便管理的函數段模式就不會出現這種弊端了。

另外由於計算機內存事實上是一種線性結構,他的內存單元是按照地址存取的,相鄰內存單元的地址相差一個固定值,這種內存結構可以方便存取,但必須爲各種數據精心安排內存單元數量,並讓指令按內存單元地址存取數值。這樣的設計對於機器運行效率很高,但對於編程人員來說是一種負擔,必須時刻保證數據內容地址的正確性,否則計算出來的數據可能是錯誤的。

爲了方便程序員編程方便,web應用程序的函數空間數據不用地址存取,直接用數據的標號存取,這樣程序員不用在費神去計算數據地址,也不用去動態安排數據空間。如

喬布斯=“偉人”

QQ=“山寨集成”

喬布斯QQ 兩個數據在函數空間直接用數據標示就可以存取了,不存在數據地址,程序員也根本沒有辦法找到數據的地址。Java語言號稱消滅指針,但語言中還再用 new 來分配數據空間,他只能是一個表面沒有地址而內部有地址的語言設計,而javascript 語言在數據空間設計中比java更加超前,也直接用符號來存取數據,程序員再設計javascript腳本時,就完全不用考慮數據空間的問題(不過,現代的編譯器非常厲害,在動態編譯javascript腳本時,可能會用真實的地址去代替符號的訪問方式)。

總結上述,爲web應用程序及操作系統設計的空間爲開發效率、多任務運行的需要,簡化了日常程序語言開發中的各種數據結構,採用分段式的函數空間組成進程空間可以滿足web應用程序開發設計的需要,後面將論述web應用模型。

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