2011-04-03 203 views
3

如果Python VM本身被構建到硬件中,那麼操作系統是不是可以完全在Python中?像舊的Lisp Machine一樣?
假設我有一個cpu是Python虛擬機的硬件實現,那麼所有用python編寫的程序都會以彙編速度執行,不是嗎(但是Python大部分是解釋的,但我們可以編譯它)?
如果我們有這樣一個「蟒蛇微處理器」,那麼內存和其他子系統呢?它會與當前的內存兼容嗎?
是否有關於寄存器和Python VM體系結構的信息,類似於我們對8086的信息?Python CPU和操作系統

+1

(1)Python *被編譯。在大多數字節碼的實現中,有些(最着名的是PyPy,因爲它是完全兼容的實現)編譯爲C或直接編譯爲機器碼。 (2)與其他所有組件/機器代碼一樣,它只是運行它的東西。當然可以構建一個處理器,例如運行CPython字節碼指令。使其運行速度與現代x64處理器一樣快,這是一項非常不可能完成的任務。 – delnan 2011-04-03 00:44:58

+0

另請參閱[google pypy + fpga](http://www.google.com/search?q=pypy+fpga)(+去年之內)。 – denis 2011-06-16 13:38:04

回答

4

豈不是能有一個OS 完全是用Python如果Python的VM 本身就是建設成爲一個硬件? 有點像好老Lisp 機器?

是的,理論上這是可能的。

假設我有一個CPU中是 硬件實現蟒蛇 虛擬機,然後用Python編寫的所有程序 將與 組裝的速度進行,不會吧(但 Python是大多解釋但我們 可以編譯它)?

Python沒有速度,它是一種語言。解釋器(在這裏是處理器)的速度可以被測試。但正如很難比較RISC和CISC處理器的性能一樣,將Assembly和Python進行比較也很困難。

如果我們有這樣的 「蟒蛇微處理器」,怎麼樣 內存和其它子系統?它會 與當前的 內存兼容。

python微處理器將不得不做內存管理(並因此垃圾收集)。由於這通常由解釋器完成,現在微處理器必須這樣做。

是否有對 寄存器和Python的VM 架構的任何信息,類似於 我們所擁有的8086的東西嗎?

通常情況下,你不直接在Python中訪問內存,所以這裏的寄存器不應該是相關的。

+0

哦,沒想到垃圾收集。好的,這會使電路更復雜。但爲什麼我們有一臺Lisp機器呢? – boring 2011-04-03 01:01:08

4

Similar things were tried for Java,但沒有一件真的是風靡世界。

是的,這可能是可能的,但設計新的硬件是昂貴的。投資回報會證明建造這樣的玩具是否合理?我猜不是的,否則現在有人會嘗試它。 :)

+1

那裏**是真正的大型鐵本身運行Java。是的,這是_quite_ _expensive_。例如IBM的[zAPP](http://en.wikipedia.org/wiki/ZAAP)和Azul的[Vega](http://en.wikipedia.org/wiki/Azul_Systems)。 – 2011-04-03 13:33:26

+0

@Mackie Messer,真棒;我喜歡那種瘋狂的大硬件。回到學校後,我們看到_Java工作站_的_photos_,其中包含顯示器,鍵盤和鼠標,它們正在取代PC_。這似乎是一個可愛的笑話,但zAPP和Vega肯定聽起來很棒。沒有像那些工作站那樣。 :) – sarnold 2011-04-04 01:56:54

-1

新的操作系統很有趣而且很酷,而基於python的操作系統很酷。再說一次,linux非常好,已經有了很多的發展。它必須是「正確的時間」。

+0

答案似乎不瞭解什麼是操作系統和虛擬機是什麼。 – Rollo 2014-12-07 12:43:13

2

在70年代,這樣的想法很受歡迎。這個想法是關閉編譯器/虛擬機和指令集架構之間的semantic gap,從而將編程語言和硬件更緊密地結合在一起。然而,當Patterson和Ditzel發表了The Case for the Reduced Instruction Set Computer (PDF, 672KB)之後,RISC和微處理器成功之後,關閉語義鴻溝的想法已基本消失。

現在,隨着晶體管數量的不斷增加,這個想法可能會再次變得有趣。但是,正如其他人已經指出的那樣,設計芯片代價高昂。你需要一個非常好的理由來吸收這麼多錢。但它絕對有可能。 IBMAzul已經用它們的大規模並行Java芯片展示了這一點。

我想你應該打電話給Google,讓他們相信他們迫切需要一個Python處理器。 ;-)

+0

什麼意思是「隨着晶體管數量的不斷增加,這個想法可能會再次變得有趣」? – Bakudan 2011-05-20 11:42:09

+1

@Bakudan:如今晶體管本質上是免費的,而功耗卻是極限。在過去,這只是另一種方式。因此,如果複雜的架構不使用過多的功率,那麼今天的複雜架構是合理的。例如。一個通用微處理器上的Python解釋器很可能是一個更復雜,更專用的Python處理器。 – 2011-05-20 15:58:58

3

假設我有一個cpu是python虛擬機的硬件實現,那麼所有用python編寫的程序都會以彙編的速度執行,不是嗎(但是Python大部分是解釋的,但是我們可以編譯它)?

是的,它會是組裝速度。請參閱此鏈接以與avr微控制器彙編代碼進行比較。 http://pycpu.wordpress.com/code-examples/speed-pycpu-vs-8bit-avr/。 這是一個可以做非常非常有限的python字節碼的cpu的硬件實現。但足夠ifs條件和while循環與簡單的整數。