BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Apple Siliconへの移植 - Firefoxの場合

Apple Siliconへの移植 - Firefoxの場合

原文(投稿日:2021/01/24)へのリンク

Apple Siliconの導入によってmacOS開発者たちは、自分たちのプログラムを新しいCPUに移植する必要に迫られている。しかしながら、複雑なプログラムでは、FirefoxのエンジニアマネージャであるGian-Cario Pascotto氏の説明するように、これがかなりの難行になる可能性があるのだ。

Apple Rosetta 2バイナリ変換テクノロジによって、macOS用の既存プログラムの大半は修正の必要なく、新たなプラットフォーム上で動作することが保証されているが、この方法では新CPUの特性をフルに活用することはできない。さらに、M1への移行が完了したとAppleが考えた時には、数年前のPowerPCからIntelプラットフォームへの移行時に使用されたオリジナルのRosettaがそうであったように、新OSからRosetta 2が削除されるものと思われる。

一般論として、プログラムをApple Siliconに移行するための最初のステップは、コードをARM 64プラットフォーム用にコンパイルする作業になる。macOSとiOSの両方をサポートしているプログラムであれば、通常これは大きな問題にはならないだろう。Appleの提供するiOSデバイスはすべて、ARM64アーキテクチャを使用しているからだ。しかしながら、Firefoxにはこれが当てはまらなかった。Appleによって課せられた制限のため、FirefoxのiOSバージョンはWebKitのラッパに多少手を加えたものになっていて、Firefox独自のエンジンは使用されていないのだ。ただし、AndroidおよびLinux用のARM64バージョンがすでにあったため、これは大きな問題ではなかった。

64bit ARMサポートがすでにコードベースに含まれていたので、最初の作業は、Firefoxのすべてのコードと依存関係、さまざまなサードパーティビルドシステムが、Macの搭載するARMチップの持つ新しいアイデアを正しく処理できることを確認する、というものになりました。

懸念のひとつは、Pascotto氏の説明によれば、これは、Servoやその他の重要部分を含むFirefoxのコア部分で必要となる、Apple Silicon用のRustコンパイラでの作業が可能になるどうかだ。Rustコンパイラが使用可能になれば、Firefoxコードベースの低レベルの詳細部分に加えて、JavaScriptやC++など他言語の呼び出し規約やインターフェースに関連して必要になるクレートの適用と修正が可能になる。

Firefoxにおいて複雑性の原因となる領域のひとつは、HuluやDisney+、Amazon Primeなどのサービスが使用する、ビデオストリーミングフォーマットの扱いだ。この処理では、これらのサービスを利用する場合にオンデマンドでダウンロードされる、ソース非公開のプロプライエタリなDRMソフトウェアの使用が必要になる。Apple Siliconへの移植に際して、これらのコーデックが都合よく用意されるという期待はできないので、Firefoxチームでは、既存のx64コーデックをRosettaエミュレーション下で使用可能にするという、独自のアプローチに頼ることにした。

ARMバージョンのWindows用Firefoxで使用したテクニックを活用することにしました。DRMビデオデコーダは現在でも別プロセスとして動作しているので、プロプライエタリなコードをユーザシステムからサンドボックス隔離することは可能です。

最後に残った作業領域は、macOSの最新バージョンであり、廃止機能や後方非互換性の多いmacOS Big Surへの対応だった。

このようにして、Apple Siliconへの移行に関するおもな技術的ハードルすべてに対応したことにより、MozillaはApple Siliconサポートを最初に発表したグループの一員になった。とは言うものの、安定版への道がそれほど平坦なものではないことは明らかだ。Pascotto氏の説明によれば、アプリケーションの更新プロセスも、Firefoxのエンジニアたちが克服しなければならないハードルのひとつだった。また、Big Surのグラフィックスドライバ関連のバグを回避するため、当初のバージョンではWebRenderが無効になっていた。そしてついに、昨年12月にリリースされたFirefox 84では、Apple Siliconのネイティブサポートが公式に使用可能になったのだ。

Pascotto氏はここで取り上げた内容以外にも、Apple Sillicon上のFirefoxに関する今後の計画やパフォーマンスの検討など、詳細な情報について述べているので、興味があれば一読を勧める。

この記事に星をつける

おすすめ度
スタイル

BT