2010-02-05 51 views

回答

23

如果你是從頭開始的話:它肯定是可能的。但它需要大量的人力資源:-)。手機制造商通常擁有數百名程序員,然而軟件往往充滿了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):

  1. ASIC(包含CPU)啓動,重置本身並開始執行所謂的引導程序(硬編碼到ASIC中)。
  2. 引導帶嘗試設置連接到ASIC的閃存芯片。
  3. 引導帶將閃存中的SW加載到芯片的SRAM中(ASIC芯片上的集成RAM)。
  4. SRAM中的SW設置SDRAM(時序等)並從閃存裝載「OS」(或任何你想要的軟件)到SDRAM中。
  5. SRAM中的SW將CPU中的內部指令指針設置爲SDRAM,因此ASIC的CPU內核開始在SDRAM中執行。
  6. SDRAM中的SW(「OS」)設置定時器,中斷,內存管理或任何需要的東西。
  7. SW可以是任何東西,無限循環,完整的操作系統,或者只是一個SW拉動一些LED的高或低。

如果ASIC有NOR閃存,它可以直接執行,而無需首先將SW上傳到SDRAM中。

SDRAM中的操作系統可能是一個vanilla Linux內核。 Linux內核唯一需要的是一些信息塊,例如內存大小,內存的物理位置等等(一種方法是使用ATAG列表)。當然,它也需要了解ASIC的一些內部,這將被添加到Linux內核中。但目前市場上大多數芯片已經存在於Linux內核中。例如,諾基亞爲TI OMAP3430適配提供了大量代碼,這可以在內核源代碼本身(arch/directory或類似內容)中看到。我不確定諾基亞的哪款手機使用這款芯片,但它可能是高端的Linux和Symbian手機。

給出一個比上面更詳細的答案需要幾頁,所以你最好的選擇是使用你所得到的答案,並嘗試使用它來從別處獲得更多的信息。

好運:-)

4

我認爲這將是困難的你自己,沒有關於你期望運行它的設備的詳細信息。但如果你仍然想嘗試...

Symbian have just open sourced他們的整個移動操作系統。這可能是一個開始的好地方。

4

Android也是開源的,如果你不打算從頭開始。否則,您需要查找手機架構的文檔。你有沒有特別的電話?

1

希望這是更Phantom少幽靈的威脅(badoom-tish),但此人寫自己的手機操作系統,你會發現該網站有趣。

相關問題