ソフトウェア

Mozillaが「FirefoxをApple Siliconにネイティブ対応させるまでの苦難」を解説


2020年11月に登場した初のApple Siliconである「M1」は、従来のMacに搭載されてきたSoCに比べて、1ワットあたりのパフォーマンスが飛躍的に進化しており、テクノロジーメディア各社から絶賛に近い評価を得ました。そんなApple SiliconにFirefoxがネイティブ対応するまでの経緯について、ニューラルネットワークによるコンピューター囲碁プログラム「Leela Zero」の開発者としても名高いMozillaのジャン=カーロ・パスクット氏が解説しています。

Porting Firefox to Apple Silicon - Mozilla Hacks - the Web developer blog
https://hacks.mozilla.org/2021/01/porting-firefox-to-apple-silicon/

初のApple Siliconである「M1」を搭載したMacBook AirMac miniMacBook Proの登場は、Appleの開発力を世界に知らしめるものでした。多くのテクノロジー系メディアがApple Siliconについての賛辞を報じ、「コンピューティング革命」や「信じられない偉業」という単語まで紙面を賑わせました。

Appleの「M1」搭載Macレビューまとめ、「コンピューティング革命」や「信じられない偉業」など絶賛の嵐&今後のApple Siliconへの期待までてんこ盛り - GIGAZINE


パスクット氏によると、Mozillaはかなり古くからAppleがMacにArmベースのSoCを搭載することを予期していたそうです。2013年発売のiPhone 5sに搭載された「Apple A7」」は、「64-bit desktop-class architecture(64bitのデスクトップPCに匹敵するアーキテクチャ)」という触れ込みでデビューしており、当時からすでに「Mac向けのArmベースのSoC」の存在は業界で長らく噂されていたとのこと。

この噂が真実味を帯びだしたのが2018年のことで、AppleがiPhone XS、XS Max、XRに自社設計のArmベースSoC「Apple A12」を搭載したことがきっかけでした。A12は世界で初めて7nmプロセスを用いて商品化されたチップであり、テクノロジー系メディアのAnandTechは「デスクトップPCに匹敵するスペックで、電力効率では大幅に優れている」と報告。Apple A12の登場により、Mozillaは「Appleが近い将来Armアーキテクチャに移行するだろう」とみなしていたとのこと。

Firefoxにとって重要だったのは、「macOSのAPI」の問題です。新たなSoCの登場に伴ってmacOSのAPIも更新された場合、macOSのAPIを用いて動作するMac版Firefoxも大きな影響を受ける可能性が出てきます。Mozillaのプラットフォームチームは、前述のAnandTechの報道とAppleの過去のリリーススケジュールという2つの情報を元に、「『macOS 10.16』が9月か10月に登場するだろう」と2020年3月の段階で予測していたとのこと。


2020年6月22日、Appleは開発者向け会議WWDC 2020の中で、Apple Siliconの存在を正式に明かし、自社設計のArmベースSoCをMacに搭載すると公式に認めました。ただし、AppleはApple Silicon搭載Macの発売時期については「2020年末」とだけ述べました。

AppleがMacでも独自開発のプロセッサに移行する「Apple Silicon」を発表、iPhone&iPadのアプリがMacでも利用可能に - GIGAZINE


Mozillaは「2020年末」という発言やARMアーキテクチャへの開発者移行キットを搭載したMac miniを配送するという発表から、実際のApple Silicon搭載Macの発売日はクリスマス休暇よりもやや前になると予測。Appleはデバイスの発表と同時に発売をスタートする傾向があることから、出荷日は発売日の1カ月前、日付にして「11月10日」になると予測したとのこと。そして、Apple Silicon搭載Macは「11月17日」に発売され、予測がほぼ正しかったことが確認されました。

実際にFirefoxを64bitのArmアーキテクチャに移植する作業については、すでにAndroidとLinuxで64bitArmアーキテクチャを長年にわたってサポートしてきたため、「ほとんど必要がなかった」とのこと。従って、Apple Siliconにネイティブ対応するFirefoxを作り上げる最初のステップは、Firefoxのコードや依存関係、様々なサードパーティのビルドシステムを調査して、Apple Silicon搭載Macで適切な動作ができるかを調べることだったそうです。この過程において問題だったのは、Apple SiliconによるMozilla製プログラミング言語のRustのサポートは当時始まったばかりで、コンパイラに制限がかかっていたこととのこと。

その後、Mozillaは互換性のないCPU2種でソフトウェアを動作させることができるがソフトウェア容量が増える「Universal Binary」の採用を決定し、このUniversal Binaryを使うことでArmアーキテクチャのWindows版Firefoxに搭載されているDRMビデオデコーダーの流用に成功。NetflixやDisney+、Amazon Primeなどのビデオストリーミングサービスのネイティブ対応を実現しました。

こうした取り組みを続ける中で、AppleはmacOS Big Surのベータ版の配布を開始。このmacOS Big Surベータ版でも、複数の問題が見つかりました。その1つは「ネイティブで動作していないアプリケーションが別のアプリケーションを起動すると、そのアプリケーションは強制的に非ネイティブ動作になる」という仕様。Firefoxはアップデートされた際には、「ストレージ上のファイルを更新した後に、更新されたバージョンのFirefoxを起動する」という処理を行っており、この処理によって起動された更新後のFirefoxは前述の仕様により強制的に非ネイティブ動作となってしまうという問題が発生。このほかにも、一部のウイルス対策ソフトウェアがUniversal Binaryをマルウェアと誤認し、アップデートをインストールした瞬間にFirefoxが破損するというユーザーレポートも届いたとのこと。

Mozillaはアップデートによる非ネイティブ動作の問題については、専用ページを作成してユーザーに適切なインストール方法を通達するという手法を選択。ウイルス対策ソフトウェアの問題については、通常のサポートチャンネルで企業側と連絡を取ることができなかったため、「LinkedInでエンジニアを見つけ出して連絡する」という力業で対策しました。


こうした困難を経て、MozillaはApple Silicon搭載Macにネイティブ対応した「Firefox 84」の正式版を2020年12月6日にリリース。Apple Silicon対応問題に一区切りを付けました。

「Firefox 84」正式版リリース、Apple Silicon搭載デバイスでの動作速度が2倍以上に - GIGAZINE


パスクット氏は、2021年1月26日にリリースする予定の「Firefox 85」で将来的にグラフィックドライバーのバグなどを改善する予定だと述べ、「今後1年間でmacOS版Firefoxのエクスペリエンスをさらなる次元に押し上げることを楽しみにしています」とコメントしました。

この記事のタイトルとURLをコピーする

・関連記事
Appleが開発した「M1」チップはなぜ高性能なのか - GIGAZINE

M1搭載Mac miniの発売でAppleが日本のデスクトップPC市場のシェアトップに君臨 - GIGAZINE

「M1チップ搭載Macが絶対欲しい」とLinuxの生みの親リーナス・トーバルズが絶賛 - GIGAZINE

in ソフトウェア,   ハードウェア, Posted by log1k_iy

You can read the machine translated English article here.