我想知道的是有可能使這是用C語言一樣,我可以寫在Java中,讓我有相同的功能,用C語言編寫是否有可能使用java製作操作系統?
回答
在理論上是一個像操作Windows的XP,但你仍然必須有一些底層彙編代碼來引導將在機器上運行的Java虛擬機,以及訪問硬件驅動程序的低級代碼。
鑑於Sun Microsystems的Java是今天 最主要的 面向對象的語言之一,這是毫不 奇怪,基於Java的操作系統 系統已嘗試。在此 區域中,理想情況下,內核將由 組成,用於支持JVM的最低要求爲 。這是此操作系統 中唯一的 組件,必須使用非Java語言的 語言編寫。建立在JVM和基本硬件支持 的 之上,可以用Java編寫操作系統的其餘 ;甚至 傳統上用較低級別 語言(例如C,例如設備 驅動程序)編寫的系統部分更可以用Java編寫。
在這樣的 操作系統上嘗試的示例包括JX,JNode和 JavaOS。
硬件驅動程序也應該用Java編寫。 – 2011-11-19 10:26:07
這取決於你認爲的「功能」。如果你的意思是圖形界面,花哨的窗口效果等,那麼是的,儘管你需要彙編語言或C語言來獲取最低位(即與I/O端口等接口)。如果你還包含Windows ABI作爲一個功能,那麼它會變得更加困難,因爲它們遵循Pascal調用約定。
Windows API不是操作系統的必要組成部分。 – 2010-01-01 10:03:35
理論上,是的。但是,您需要以某種方式使用低級代碼運行Java VM(除非您想將Java編譯爲彙編程序,如果不犧牲Java的許多功能,這可能是不可能的)。
Eli擊敗了我大致相同的答案... – 2010-01-01 08:49:57
Jikes RVM(以前稱爲IBM Jalapeno)和Sun Lab的Maxine是自承載JVM的兩個示例。前者有大約1000行C. Java通常被編譯成機器碼。 – 2010-01-01 11:34:06
@ TomHawtin-tackline,Maxine是否向公衆開放? – 2011-11-19 10:26:56
這裏還有一個。 http://sourceforge.net/projects/jos/。但我第二個是Eli Bendersky和Ron Gejman說的。 – 2010-01-01 08:52:57
我可以將它安裝在VmWare上嗎? – 2016-07-30 07:32:58
操作的系統更接近的硬件(像驅動程序)。在我看來,這不是Java領域(只是問題域操作系統的錯誤解決方案)。
從理論上講,你實際上可以使用Java processor來編寫Java中的整個操作系統。基本上它使用Java字節碼作爲處理器的指令集。
正如上面提到的那樣,它已經是一個嘗試。 Jnode是唯一一個經受住了時間考驗的人,並且正在積極努力,儘管他們還沒有多年發佈新版本。 但是,如果你看看他們的Git提交,他們正在撰寫即將發佈的版本。我是Java的粉絲,期待發布。那些討厭Java這類冗長的命令式語言的人會畏懼這個想法,但並不適合所有人。
有趣的是在硬件中實現Java字節碼的想法。我認爲這不會成爲任何問題,因爲Java的優勢在於您無需擔心硬件問題。您只需要在Java中獲得操作系統,並且可以在任何JVM上運行。
我認爲Java在操作系統領域的真正威力是虛擬化。 Java無處不在,我無法想象擁有更好的虛擬操作系統。
正如上面提到的其他海報,它不能在沒有Java硬件實現的Java中完全實現。 Jnode完全是用匯編和Java編寫的。但是,所有現代操作系統都使用匯編語言。
- 1. 是否可以製作使用VB.NET的操作系統?
- 2. Java操作系統可能如何?
- 3. libumem是否僅在Solaris操作系統或其他操作系統中可用?
- 4. 是否有宏檢測操作系統...?
- 5. Android是否有「主機」操作系統?
- 6. 是否有可能使用操作系統線程創建自己的線程?
- 7. 是否可以使用Python創建操作系統?
- 8. 是否可以使用Cosmos開發移動操作系統?
- 9. 操作系統提供程序是否爲Docker製作特殊/定製操作系統?
- 10. 是否有使用Lisp開發的操作系統?
- 11. 操作系統是否有安全文本輸入的功能?
- 12. 是否可以使用Java獲取遠程主機的操作系統類型?
- 13. Java中的操作系統
- 14. 僅限Java操作系統
- 15. 是否有可能使用「AND」操作符作爲「ConditionalAttribute」?
- 16. 網站是否依賴操作系統?
- 17. 檢查操作系統是否爲Solaris
- 18. 確定操作系統是否爲Mac
- 19. 是否有可能使用Java製作內存掃描器?
- 20. Docker - 容器操作系統是否需要與主機操作系統相同
- 21. 在所有操作系統上是否包含java可運行的C++代碼?
- 22. 是否有可能從基礎Docker文件覆蓋基本操作系統?
- 23. 是否有可能在Android操作系統上運行簡單的python遊戲
- 24. 是否有API知道當前的iOS/Mac是64位操作系統還是32位操作系統?
- 25. iphone 4.0操作系統。是否有可能在應用程序沙箱之外讀取文件系統?
- 26. 電腦操作系統不能使用fs登錄系統API
- 27. 操作系統
- 28. 如何是操作系統
- 29. 這種方式系統管理可能在Android操作系統?
- 30. 是否可以使用NMAP來查找使用MAC地址的操作系統
已經存在這樣的操作系統!看看這個=> http://sourceforge.net/projects/jos/ – missingfaktor 2010-01-01 08:48:17
JOS從來沒有得到任何地方... http://www.jnode.org是一個更好的例子。 – 2010-01-01 09:53:03
即使只有極少量的研究發現已經創建了一個。 – Raedwald 2013-10-07 00:15:11