如何看待 macOS Sierra 代碼中發現新增的 ARM 處理器,以及要求提交中間代碼一事?

(標題增加「提交中間代碼」;換了一張更明確的圖片,來證明的確是 Sierra)

  • 這行代碼的含義,以及 app store 要求提交中間代碼的目的?
  • 蘋果是否真正有著「自行設計 Mac 的 CPU」 的打算?為什麼?

  • 蘋果自行研發的處理器會是什麼樣?

  • 此舉會對 intel 和蘋果的未來有著什麼樣的影響?(目前 Intel 與 Apple 各自團隊的實力區別,以及這樣是不是個好選擇)

(希望蘋果工程師可以匿名來解釋一下目前的情況)

--------------

http://www.cnbeta.com/articles/544635.htm

未來的 Mac 電腦會搭載 ARM 架構的晶元,英特爾晶元將會被取代?這個懸念近年來一直「困擾」著蘋果用戶,近日據來自荷蘭 TechTastic.nl 的消息暗示,這種「可能」或許會在不久的將來成為事實。據悉,有國外網友在 macOS Sierra 的系統內核代碼中發現了未來 Mac 會搭載 ARM 架構晶元的潛在可能。不過對於 macOS Sierra 為何添加了對 ARM 技術的支持,這的確讓人難以捉摸。

從 2005 年開始,所有的 Mac 都搭載英特爾晶元。根據代碼暗示,蘋果可能從今年開始準備讓 Mac 操作系統支持 ARM 晶元。目前,開發者已經無法向蘋果提交完全編譯的二進位文件,而是需要遞交中間代碼,蘋果將使用中間代碼為特定的處理器架構生成二進位文件。這意味著如果未來 Mac 開始採用 ARM 架構處理器,開發者不需要重新提交現有的代碼,也不需要為了讓他們的應用可以在 ARM 架構的硬體中本地運行而添加具體的代碼。報道推測,這也是最近 App Store 大清理的原因之一。

而 macOS Sierra 的內核代碼顯示支持 ARM Hurricane,目前ARM現有的藍圖並沒有提到 Hurricane CPU,所以這可能是蘋果 ARM 架構 CPU 的內部代碼名稱。從 A7 晶元開始,蘋果就開始為這些定製的 CPU 取名,例如 A7 叫 Cyclone(旋風),A8 叫 Typhoon(颱風),A9 則使用了 Twister(龍捲風)的代號。

A10 Fusion 是蘋果首款兼容 ARM 的移動晶元,它搭載了四核心,兩個用於處理高性能任務,兩個用於處理高能效。早在 2012 年,就有消息稱蘋果可能會在未來的 Mac 電腦中使用 ARM 架構處理器。


瀉藥。更早的時候那可是更豐富……

#define CPU_TYPE_VAX ((cpu_type_t) 1)
#define CPU_TYPE_ROMP ((cpu_type_t) 2)
#define CPU_TYPE_NS32032 ((cpu_type_t) 4)
#define CPU_TYPE_NS32332 ((cpu_type_t) 5)
#define CPU_TYPE_MC680x0 ((cpu_type_t) 6)
#define CPU_TYPE_I386 ((cpu_type_t) 7)
#define CPU_TYPE_X86_64 ((cpu_type_t) (CPU_TYPE_I386 | CPU_ARCH_ABI64))
#define CPU_TYPE_MIPS ((cpu_type_t) 8)
#define CPU_TYPE_NS32532 ((cpu_type_t) 9)
#define CPU_TYPE_HPPA ((cpu_type_t) 11)
#define CPU_TYPE_ARM ((cpu_type_t) 12)
#define CPU_TYPE_MC88000 ((cpu_type_t) 13)
#define CPU_TYPE_SPARC ((cpu_type_t) 14)
#define CPU_TYPE_I860 ((cpu_type_t) 15) // big-endian
#define CPU_TYPE_I860_LITTLE ((cpu_type_t) 16) // little-endian
#define CPU_TYPE_RS6000 ((cpu_type_t) 17)
#define CPU_TYPE_MC98000 ((cpu_type_t) 18)
#define CPU_TYPE_POWERPC ((cpu_type_t) 18)
#define CPU_ARCH_ABI64 0x1000000
#define CPU_TYPE_POWERPC64 ((cpu_type_t)(CPU_TYPE_POWERPC | CPU_ARCH_ABI64))
#define CPU_TYPE_VEO ((cpu_type_t) 255)

然而除了PPC和X86用過哪個呢?

這個是還沒用x86的時候的machine.h,在80年代machine.h已經加入了arm這個type,x86也加入了,還在更新子項目,也就是CPU類目,但是實際上x86卻是在接近20年後的事……所以,不要想搞個大新聞……


剛才看到這個 特地去看了頭文件 還做了實驗 現在把結果貼出來.

首先打開Mac下的machine.h頭文件 發現事實上從ppc一直到intel還有hurricane全部都是有的.... 這基本上否定了特意加上hurricane是為了兼容arm的猜想.

為了進一步確認這個頭文件內容的問題,寫了一個簡單的iOS程序來探測iOS上的頭文件中有沒有intel cpu的定義.

這倆是在一個iOS 10設備上運行的結果:(autolayout崩壞不要在意...)

以下是iOS 9設備上運行的結果:

.

這樣的結果很明確地說明,iOS和macOS在這個頭文件上是統一的. iOS設備有這些架構,自然macOS的頭文件裡面也有.

關於提交中間代碼的問題:個人認為是為了更方便地開發新的crossplatform,從而給macOS和tvOS吸引更多的開發者.

關於其它的問題.....不是蘋果的人沒有可靠的消息... 那就說說自己的看法吧.

個人以為,Mac換用arm晶元是遲早的事情,但不是現在.

使用intel處理器無疑是降低了蘋果對Mac產品線的控制,導致Mac的新品還要受到intel的制約.同時隨著最近的MacBook的出現,Mac產品線輕量化的發展的趨勢是毋庸置疑的. 這樣的背景下,intel處理器功耗大、發熱快的缺點就相對突出. 這兩年arm的處理器在性能方面的突破使得intel的優勢越來越少. 筆者之前做過一個測試,A9處理器在功率只有酷睿雙核(2010年)的約1/20的情況下,單核性能接近甚至在某些地方超越了後者。

然而目前arm的處理器性能仍然有一些差距.如果拿兩個A9X作為新MacBook的處理器,筆者認為沒有任何問題,但Mac中還有工作站級的產品,A系處理器離intel的xeon還有比較大的差距. 更換處理器應該還是要整個產品線都換,這樣的話可能要再等幾年,等到A系處理器性能完全趕超intel了.

至於intel...筆者認為,它在桌面電腦中的地位還是會保持一段時間,就好像ms,不過最後可能就會成為晶元的代工廠....


Trump當選總統後的補充:

最近瘋傳Apple製造迴流美國,SoC代工也會使用Intel,未來5年將是美帝的天下,預測1998年亞洲金融危機將會重現。。。

---

原答案:

A10 Fusion"s microarchitecture is Hurricane

但是換ARM是大勢所趨,未來Android的程序可以在ChromeOS筆記本裡運行,Windows程序可以在Surface平板電腦裡運行,那麼蘋果未來也急需一個途徑讓iOS Apps在Mac上運行,目前Mac程序太少了。

然後蘋果推出超長待機時間便攜ARM筆記本,連續工作24小時,待機1周,計算能力可以不用很強,因為大部分工作會遷移到雲端完成。這就把iPhone - iPad - iMac的軟體鏈打通了。蘋果還可以自建cloud,像Sony/Amazon一樣推出流媒體遊戲、軟體和視頻。軟體雲化是大趨勢,看看Adobe的開發計畫就知道了。

Mac Pro等還繼續用intel,等ARM成熟後再轉。

Windows x86兼容也不是大問題。目前蘋果有原裝MS Office 2016,重新編譯就能上ARM,並且微軟也不是intel,不會特別為了x86而抵抗到底。微軟未來也會集成Ubuntu,開放.NET,Windows程序轉成ARM也不是問題。

最近intel迫於壓力開放7nm工藝給某個大客戶製造ARM處理器,說不定就是這個。以前ARM性能低,因為工藝不行,總落後intel幾代,未來的7nm/5nm,ARM和x86工藝相同,再來比較性能不遲。處理器設計問題也簡單,Apple市值世界第一大,有好幾百億美元現金,還是美國公司,SP 500指數,在intel對面設點挖人就行了,intel在90年代就是這麼對付DEC的。目前Apple Austin分部猛招人,他們就是做處理器設計的。


等ARM能耗比達到X64 五倍的時候,應該才會換吧。


你看到的真的是macOS Sierra的源碼? 只是Darwin的吧?iOS也是基於Darwin的吧?


估計 Apple 也注意到了自家 Mac 產品的銷量受到了「用戶對於 Intel 新平台的期許」的負面影響、且這負面影響在近幾年越演越烈(尤其是 MacBook Pro 產品線)。而現在 Apple 的獲利渠道越來越偏重自消費市場,故做出這種決定絲毫不令我奇怪。

眼下恐怕那些都在等待 Skylake MacBook Pro 機種的人們都需要想想自己的 MacBook Pro 升級是否有意義了…

…畢竟每個人對 x86-64 Only 的應用和 BootCamp 都有不同程度的依賴、直接導致對「跨架構遷移工作環境」是否可以接受的問題。

論及這樣遷移的唯一好處,恐怕是 iOS 平台現有的 ARM64 海量應用資源得以救濟 macOS 吧。

# EOF.


僅僅是新增欄位不說明問題,因為前幾代Ax晶元的架構名(Swift、Cyclone、Typhoon、Twister)也早在前代OS X代碼里了(wp7小吧主挖掘的資料)。這說明蘋果早就開始內部測試macOS移植到自家晶元的情況,但不能說明未來什麼時候做轉換。

重要的是macOS的代碼提交方式轉變。如果現在蘋果強制要求開發者提交中間代碼,那麼原因就只能是為架構轉換做準備了。iOS也有提交中間代碼的可選項,但那是為了讓應用在無需重新編譯的情況下可以儘快適應蘋果每年發布的新一代晶元,這個選擇只是一個推薦;Mac平台的CPU架構本來更新很慢,為了一點點的編譯器優化就強制開發者提供中間代碼並不合邏輯。由此推理,現在這樣做的確是為不久的將來的大計劃打基礎了。


怎麼說呢。從成本性能來說,IPHONE7的A10 cpu性能跟X86的i5處理器應該差不多了。A10成本30美金,I5怎麼著也得100多美金。如果筆記本台式機用A10這種移動處理器未來也不是不可能。但是X86上面的代碼是無價的。如果換處理器的全部重新編譯,有些可能還真用不了。幾十年的積累讓X86處理器的價值不能簡單的看性能和成本,還得考慮生態環境。所以從這個角度說,短期內應該mac不會用arm處理器。


短時間內不可能,自家U在桌面上還成不了氣候。

然而換成自家U是遲早的事兒。


未來的ipad pro將有可能為ipad越獄?


推薦閱讀:

如何評價 A10X Fusion 性能?
可以推薦一些學習微機原理,單片機,嵌入式或者FPGA的經典書籍,可以少走彎路?
ARM 和 x86 架構相比,各自的發展前景怎麼樣?
X86和ARM架構的處理器能效差異為什麼會這麼大?
關於手機晶元,台積電、ARM、三星、蘋果、MTK 是什麼關係?

TAG:macOS | 蘋果公司AppleInc | 英特爾Intel | ARM | 中央處理器CPU |