我可以爲手機編寫一個操作系統嗎? 我該如何去建設它?是否可以爲手機編寫操作系統?
回答
如果你是從頭開始的話:它肯定是可能的。但它需要大量的人力資源:-)。手機制造商通常擁有數百名程序員,然而軟件往往充滿了bug :-)。
簡化的東西,你可以說,有經常在移動手機雙SW模塊:
- 的「UI OS」的處理顯示,聲音和用戶輸入。
- 處理與移動網絡通信的「基帶OS」。
UI操作系統可能是例如Linux或更簡單的東西。幾乎所有的現代手機都可以輕鬆運行vanilla Linux內核。
第二部分是基帶操作系統。這部分通常需要實時屬性才能夠處理與移動網絡的通信,因爲在特定「時隙」中發送數據時,時序需要精確。
只有一個問題:你需要找到一個「開放硬件手機」放在哪裏。電信運營商通常需要在今天的手機上採取嚴格的安全措施,因此很難在市場上通過手機編寫自己的操作系統。你也需要訪問電路板原理圖,芯片細節等,這是不會發生的:-)。
一個想法可能是OpenMoko,這是一個「開放式手機項目」:http://wiki.openmoko.org/wiki/Main_Page或Google Android項目。
此外,CPU:■在今天的手機,如TI OMAP使用,往往是通過開發板提供諸如http://www.igep-platform.com/index.php?option=com_content&view=article&id=46&Itemid=55
這裏下來的事情是該主板不包含基帶芯片處理通信朝向移動網絡。
編輯: 關於構建和運行SW手機。什麼發生在手機的啓動取決於硬件平臺明顯,但這樣的事情會發生在(這也是大多數嵌入式系統是true):
- ASIC(包含CPU)啓動,重置本身並開始執行所謂的引導程序(硬編碼到ASIC中)。
- 引導帶嘗試設置連接到ASIC的閃存芯片。
- 引導帶將閃存中的SW加載到芯片的SRAM中(ASIC芯片上的集成RAM)。
- SRAM中的SW設置SDRAM(時序等)並從閃存裝載「OS」(或任何你想要的軟件)到SDRAM中。
- SRAM中的SW將CPU中的內部指令指針設置爲SDRAM,因此ASIC的CPU內核開始在SDRAM中執行。
- SDRAM中的SW(「OS」)設置定時器,中斷,內存管理或任何需要的東西。
- SW可以是任何東西,無限循環,完整的操作系統,或者只是一個SW拉動一些LED的高或低。
如果ASIC有NOR閃存,它可以直接執行,而無需首先將SW上傳到SDRAM中。
SDRAM中的操作系統可能是一個vanilla Linux內核。 Linux內核唯一需要的是一些信息塊,例如內存大小,內存的物理位置等等(一種方法是使用ATAG列表)。當然,它也需要了解ASIC的一些內部,這將被添加到Linux內核中。但目前市場上大多數芯片已經存在於Linux內核中。例如,諾基亞爲TI OMAP3430適配提供了大量代碼,這可以在內核源代碼本身(arch/directory或類似內容)中看到。我不確定諾基亞的哪款手機使用這款芯片,但它可能是高端的Linux和Symbian手機。
給出一個比上面更詳細的答案需要幾頁,所以你最好的選擇是使用你所得到的答案,並嘗試使用它來從別處獲得更多的信息。
好運:-)
我認爲這將是困難的你自己,沒有關於你期望運行它的設備的詳細信息。但如果你仍然想嘗試...
Symbian have just open sourced他們的整個移動操作系統。這可能是一個開始的好地方。
Android也是開源的,如果你不打算從頭開始。否則,您需要查找手機架構的文檔。你有沒有特別的電話?
希望這是更Phantom少幽靈的威脅(badoom-tish),但此人寫自己的手機操作系統,你會發現該網站有趣。
- 1. 我可以在機器代碼中編寫操作系統嗎?
- 2. 爲手機創建linux操作系統
- 3. Android是否有「主機」操作系統?
- 4. 是否可以在C中完全編寫一個操作系統?
- 5. 爲arm架構編寫操作系統
- 6. 蘋果的手機操作系統
- 7. Docker - 容器操作系統是否需要與主機操作系統相同
- 8. 我可以將本機操作系統安裝作爲虛擬機操作系統運行嗎?
- 9. 檢查操作系統是否爲Solaris
- 10. 確定操作系統是否爲Mac
- 11. 是否可以製作使用VB.NET的操作系統?
- 12. libumem是否僅在Solaris操作系統或其他操作系統中可用?
- 13. 用UEFI編寫操作系統
- 14. 如何編寫操作系統
- 15. 編寫定製的Android操作系統
- 16. 使用C++編寫操作系統
- 17. 關於編寫操作系統
- 18. 哪個手機操作系統很容易編程?
- 19. 在64位操作系統上編寫程序時,程序是否會運行在32位操作系統上?
- 20. 是否可以檢測Haxe中的當前操作系統?
- 21. 是否可以使用Python創建操作系統?
- 22. 是否可以使用Cosmos開發移動操作系統?
- 23. 是否可以跨虛擬機,JDK和操作系統使用String.hashCode()?
- 24. 是否可以使用Java獲取遠程主機的操作系統類型?
- 25. 是否可以在託管操作系統上運行「本機」代碼?
- 26. 爲iPhone編譯時操作系統是否重要?
- 27. 如何檢查當前的操作系統是否爲Windows 10並且該設備是否是手機?
- 28. 是否可以修改Android內部並在手機上重新安裝操作系統?
- 29. Windows Mobile 5 SDK是否適用於Windows 7.5芒果操作系統手機
- 30. 是否可以從另一個操作系統爲Windows Azure開發?
我可以肯定地說,*是*你可以爲手機編寫一個操作系統。 – IAbstract 2010-02-05 07:46:21