為什麼每款 ARM 電腦都需要專門為它編譯的核心,而 x86 的可以通用?

時間 2021-05-05 22:40:40

1樓:

想做的話,fdt應該可以實現ARM通用核心(多個uImage,向前相容),但是系統就會變得很大很大,不符合 linux哲學

2樓:暗夜幽靈

x86從IBM-pc時代開始就是有統一標準的了,有個bios/uefi給你匯報記憶體等最基本的硬體狀態,而且介面都是統一的。

arm是各個廠商各顯神通,而且不同家的晶元對指令的支援也可能不同。這導致了通用型要差於x86,但也不是每個都必須單獨編譯,只是比x86通用性差了很多。

3樓:Biggee Lucloner

大家豆漿arm,我將就一下x86哈哈哈。

有這樣乙個東西。

看一下linux編譯的時候其實是有針對性的。如果選99,那就基本只有為數不多的晶元型別可以通用了。

4樓:PinkiePoi

在arm Android的世界,你認識GSI(通用系統就像),Project Treble

在x86的世界,你認識沒有UEFI/BIOS的Chromebook嗎

5樓:

也沒有每款電腦都需要專門編譯核心,比如centos arm64 版本,ubuntu arm64版本,安裝在各種中國產arm伺服器上那是敢敢的,還有docker、epel也是都可以從同乙個arm倉庫獲取軟體。armbian支援的應該還是arm7/arm8/arm32為主吧?arm64基本上都是通用的了。

而且arm64的程式是可以執行在安卓上的,你試試anlinux就知道了,它不是虛擬機器,而是利用安卓底層的Linux核心,打包相應的庫檔案,配置好了之後就可以執行arm64的liunx程式了。

6樓:

因為arm沒有bios這樣的東西去把硬體的特徵抽象之後用統一的介面訪問,所以大多數硬體都需要按照自己的需要稍微修改一下核心裡面的相關部分。

但是完全抽象之後又很臃腫,也不見得是好事

7樓:MebiuW

X86成功的乙個奧秘就是相容性,無論是說的是向前的歷史相容性,還是跨平台的相容性。 在X86上,軟體(作業系統)自己造成的相容性比硬體大得多。

X86 ISA的掌控者是Intel,AMD也是完整相容X86的。 ARM這邊,本身就不像X86一樣特別看重歷史相容性,新版本指令集可能會拋棄對老版本的支援。 其次,ARM的指令集,每個廠的子集選擇不盡相同,存在相容隱患。

最後乙個就是ARM這邊,大多是SoC,很多驅動是不相容的,有時候重新編譯不一定是因為指令集本身的問題。

8樓:Belleve

你可看下 80 年代裡「跑 MS-DOS、使用 x86、但不相容 IBM PC」的機種列表[1]:

the ACT Apricot by ACT

the Dulmont Magnum

the Epson QX-16

the Seequa Chameleon

the HP-150 by Hewlett-Packard and the later HP 95LX, HP 100LX, HP 200LX, HP 1000CX, HP OmniGo 700LX, HP OmniGo 100, and HP OmniGo 120.

the Hyperion by Infotech Cie used its own H-DOS OEM version of MS-DOS and was, for a time, to be manufactured by Commodore as its first PC compatible.

the MBC-550 by Sanyo had many differences, including non-interchangeability of diskettes and non-standard ROM location.

the DG-One by Data General was an early laptop with full 80x25 LCD screen that could boot some generic DOSes but worked best with their OEM version of MS-DOS, and had some hardware incompatibilities (especially in the serial I-O chip) as part of the compromise to reduce power consumption. Later models were more compatible with generic PC clones.

the DG/10 by Data General had two processors, one an Intel 8086, running a very-modified version of MSDOS (alternatively: CP/M-86) in a patented closely coupled arrangement with Data General's own microECLIPSE (the 8086 "invisibly" calling the microECLIPSE whenever it needed access to some peripherals, such as disks, while the 8086 had control over other peripherals such as the screen).

the 80186-based Mindset graphics computer

the Morrow Designs' Morrow Pivot

the MZ-5500 by Sharp

the Decision Mate V from NCR Corporation; its version of MS-DOS was called NCR-DOS

the MikroMikko_2 by Nokia

the NorthStar Advantage

the PC-9801 systems from NEC

the Rainbow 100 from DEC

the RM Nimbus by RM plc

the Tandy 2000 by RadioShack

the Texas Instruments

TI Professional

the Torch Graduate by Torch Computers

the Tulip System-1 by Tulip

the Victor 9000 by Sirius Systems Technology

the :YES by Philips was late on the market, ran DOS Plus and MS-DOS, but by using an 80186 it was incompatible with IBM's PC

the Z-100 by Zenith with an MS-DOS OEM version named Z-DOS

然而為什麼今天 x86 的機器看起來如此「一致」呢?因為 IBM PC 的複製品在 80 年代末打贏了個人電腦戰爭,還順便乾掉了 IBM……

9樓:eggfly

根據我的理解是因為PC機歷史原因,所謂"IBM PC相容機",後來逐步被"標準PC機"的說法取代。PC機這個概念是基於Intel x86架構並且包括了PCI匯流排南橋北橋等一系列PC機的相容標準的。換句話說Mac電腦其實是公認不屬於PC相容機的,雖然Mac電腦現在也用x86晶元。

回到你問的問題,雖然都是ARM架構,但是樹莓派還是Orange Pi的ARM晶元對應的外設IO的連線方式沒有統一標準,雖然驅動程式都是全的,原始碼也可能可以通用的,但是Linux核心編譯的時候需要的裝置樹配置不一樣,所以最後系統映象也會不一樣。

x86的linux裝置樹因為PC相容機,所以可以搞成一樣的,並且把常見的驅動一股腦都加進來了,所以x86的Linux發行版基本上映象就不需要區分那麼多。

10樓:Luv Letter

也沒有到「每款」的程度, 主要的原因還是 ARM 這邊雖然指令集和微架構都是相對統一的, 但是不像 x86 有著唯一的標準啟動實現(Legacy BIOS那套), 外加之後標準化的 UEFI. 不同廠家 SoC 中斷處理機制, 啟動機制都有不同.

但是現在也有好轉, ARM 伺服器廠家開始使用 SBSA 作為標準, 之前不相容 EFI 的 SoC(比如樹莓派)也有方案實現 EFI 相容層, 也有很多虛擬化的方案(比如 KVM)讓這些奇怪的 SoC 執行標準化的系統(包括 Windows).

為什麼不用ARM指令集做電腦晶元

勞資萬歲 Arm有先天缺陷的,手機是為了追求能耗無所謂,做後端精簡指令集就是比不過x86複雜指令集,就好像殘疾人打架打不過四肢健全的人一樣,國外marvell早就試過,行不通已經放棄了,國內的兩家arm廠商都是靠黨政機關和國企輸血過日子,沒辦法的辦法,沒有實際意義,蘋果是因為長時間經營有自己的閉環生...

為什麼電腦每次開機連線wifi都需要在Internet協議版本4屬性中改成自動獲得IP位址才能上網?

酥心餅乾 如果是同網段的話,IP位址不衝突的話,是不需要你來手動改成自動獲取的。你需要改成自動獲取的原因,很有可能是你和同網段的朋友Ip位址有衝突了。 譚宇君 我理解一下你的問題,字面意思解釋是,每次你電腦開機或重啟後,連Wi Fi都需要到internet設定裡面搗鼓一下,把IPv4設定成 自動獲取...

助聽器為什麼需要電腦除錯啊?

天津靜海陽姐 數字助聽器採用非線性放大線路,確實可以根據外界環境輸入麥克風的聲強,結合使用者的聽力損失情況自動匹配對不同頻率聲音放大的強弱。數字助聽器的放大標準是在大量聽力學實驗基礎上得出的普遍適合的平均資料,但是由於每個使用者對於聲音的感受差異不同,所以數字助聽器很難在一次除錯後滿足每乙個使用者的...