手機為什麼不能像電腦一樣隨意的裝系統? | 知乎問答精選

 

A-A+

手機為什麼不能像電腦一樣隨意的裝系統?

2019年01月10日 知乎問答精選 暫無評論 閱讀 2 ℃ 次

【廖俊媛的回答(161票)】:

默默看了一下手中的HTC HD2,不知道說什麼

【玉簫沙的回答(54票)】:

主要是因為驅動的關係。

首先,Windows和linux的驅動機制不同。Windows是微內核,驅動安裝比較方便。而安卓基於Linux,是宏內核,驅動是要編譯進內核的,安裝不便。在PC上還能編譯安裝一些東西,在手機上連原生C都不能運行,更別說編譯安裝了。其實PC下Linux和OS X的驅動問題也還是很嚴重的。

其次,是因為手機的硬件碎片化比PC更加嚴重。手機CPU的廠商有很多家,PC基本只有兩家。

其他攝像頭陀螺儀什麼的就更多了。PC的系統只要集成A/I兩家的CPU驅動、ANI三家的顯卡驅動和A/I兩家的主板驅動就可以裝上(OS X只支持I和N),而這些硬件在架構沒有大變化的情況下都是可以使用老驅動的。而手機的SOC實際上包含了十幾個模塊,同一個CPU廠商的不同產品使用的模塊都不一樣,CPU的驅動可以做到兼容,其他模塊的驅動就不行了。很多手機就因為CPU廠商不提供針對新版操作系統的驅動而無緣升級。

PS:PC裝OS X也比手機裝其他系統簡單多了。

PS2:如果一個WM 手機也能裝安卓,那說明這款手機的SOC也用在了安卓手機上,間接解決了驅動問題,就像MAC的CPU是Intel,Intel的PC裝MAC就比較方便一樣。

【王明哲的回答(32票)】:

1 硬件檢測

1.1 手機一般使用的是 ARM 架構。

由於 SoC 與其他設備(例如各種傳感器)的通信是使用 I2C 或 SPI 等總線通信的,操作系統無法檢測硬件的存在,因此在 ARM 上操作系統對硬件配置信息的獲取一般是通過 Device Tree 實現的。即在編譯操作系統內核時,在源代碼中寫明硬件端口與設備的對應關係。

由於主板在不同型號間往往是不同的,硬件布線是不同的,甚至硬件也是不同的,如果沒有針對該 hardware revision 重新編譯內核,就沒辦法使用 SoC 外的設備。

1.2 一般的計算機使用的是 x86 架構,對於硬件檢測一般使用 ACPI 或 UEFI ,而且硬件的總線通信有統一的協議,於是每個硬件可以向操作系統報告自己的存在。這時 Linux 如果有 LKM 的支持,可以動態加載內核模塊,或是直接調用靜態編譯進內核的模塊。

2 軟件

手機的硬件受限制,存儲空間一般都比較小,沒必要在裡面放置多餘的內核模塊。

3 運營商利益

運營商的合約機基本上會校驗內核的數字簽名,防止第三方內核的加載。因為獲得系統最高權限有時可以繞開運營商的限制。

【何明濤的回答(17票)】:

說到底是架構問題嘛,跟是電腦還是手機沒啥關係……說到底是架構問題嘛,跟是電腦還是手機沒啥關係……

【梁晉豪的回答(23票)】:

.

windows系統內部已經集成了大量的常用驅動,而手機rom不能通用最主要的原因也就在於缺少對不同硬件的兼容

而且不同手機的硬件也不同,小到適配不同內核、基帶,大到對實體按鍵、CPU的支持,還有不同機型特有的優化,都是要考慮的因素,除非你希望看到一個rom幾個G的大小,否則還是去相應的論壇找適配的rom吧。

==========

哦對了!有個不死的神機不能不提 —— HD2

據說它支持的系統包括:

Windows Mobile 6.5、6.1、5.1...os

Windows Phone 8、7.8、7.5、7(Mango)...os

Android 1.0、1.1、1.2、1.5、1.6、2.0、2.1、2.2、2.3、3.0、4.0、4.1、4.2、4.3、4.4...os

ios 4、5、6、7

Windows 95、98、XP、7、8(RT)...os

Linux os

ubuntu os

Mac os

MeeGo os

Flyme os

Miui 1.1、2.3.6...os

Web os

Firefox os

【KeenKwok的回答(8票)】:

現在的桌面PC或者筆記本電腦都是有統一標準的BIOS,系統的引導、硬件統一配置等等都是標準流程,各個系統只要符合標準就可以使用,而且像Windows這樣的系統還會內置大部分主流硬件的驅動程序,這樣就一張系統光盤就可以在不同配置的電腦上安裝使用。

但是手機硬件現在還是各個廠商會有不同,系統引導、硬件驅動等等都會有不同,不同的系統需要配合各種硬件的引導程序、硬件驅動。而且通常的手機系統受限於硬件的原因,不能像Windows一樣內置大量的硬件驅動程序(系統ROM要盡量精簡,減少ROM的佔用)。現在所說的做適配,主要是根據不同的手機硬件加入對應的驅動程序,然後根據不同的硬件(如屏幕分辨率、按鍵、支持的網絡類型等等)適當調整。

【王文劍的回答(2票)】:

不是不可以,只是你不會。。。。

【梁智榮的回答(1票)】:

可以的,關鍵是你會不會。

【AmyFu的回答(1票)】:

手機的操作系統是嵌入式的操作系統,嵌入式的操作系統有一個最大的特點,就是對每一個不同的硬件平台有不同的驅動子程序,不同的智能手機的硬件平台是不同的。所以它們要的驅動程序也是不相同的,可以根據需要而添加或去除。這就是嵌入式的最大特點,要在一個小的芯片上實現這麼多的功能,芯片的容量是有限的,就要求程序的最小化,並且固化在芯片上,這樣安全、可靠性高、運行速度快、成本低。

【張偉的回答(0票)】:

電腦你用PC裝個OSX試試,還不是和手機一回事。

【羅賓的回答(0票)】:

你所說的電腦應該是x86架構的兼容機,顧名思義,這些不同的計算機能安裝同一系統的原因就在於兼容,標準已經定了,所有的硬件廠商都按照這個標準生產部件。

【楊梓聰的回答(0票)】:

默默看了下手中的n880e,不知道說什麼。

————————————6.23更新

m.douban.com/note/24695

各路高手將相機刷成ios,計算器刷成安卓。各路高手刷機忙(#?Д?)

【田加菲的回答(0票)】:

可以自己做ROM或者找現成的啊,刷……

【Gintama郭的回答(0票)】:

總有一天我手上的計算器可以裝上mac系統的。

【朱利超的回答(0票)】:

我也感覺不出十年這個想法一定會實現的,數碼電子類的產品發展的太快了,還沒上手就被淘汰了

【伊小文的回答(0票)】:

這樣的話,你還讓不讓電腦活了

【邵瓊的回答(0票)】:

默默看了下我的戴妃

標籤:-手機 -米柚(MIUI) -Android開發


相關資源:





給我留言