UTALI

みんなの役に立つ情報をどんどん公開していきます

ポストAndroid | Googleの新OS Fuchsiaの詳細に迫る

f:id:mochizuki_p:20170510132847p:plain

github.com

このFuchsiaはオープンソースのBSDライセンスで公開され、商用利用も可能な点が興味深い

中心となるMagentaカーネル

Fuchsiaで最も技術的に興味深い点は従来Androidで利用していたLinuxカーネルからの脱却を図っている点だ。

その代わりとなるのがGoogleが独自に開発しているMagentaカーネルである。

その公式となるGitHubレポジトリから興味深い記述を一つ挙げよう

Magenta syscalls are generally non-blocking. The wait (one, many, set) family of syscalls, ioport reads, and thread sleep being the notable exceptions.

Magentaのシステムコールは一般的にノンブロッキングです。システムコールやIOやスレッドのスリープはかなり例外的な現象です。

またMagentaカーネルの大部分はC言語で書かれている。これはLinuxカーネルと共通している点である。

Googleは将来的にChrome OSやAndroidで利用しているLinuxカーネルを脱却して、このMagentaカーネルに移行することを示唆している。

MozartやArmadilloなどのGUIも登場

すでにMozartやArmadilloというプロジェクト名を付けたUIキットが発表され、インターネット上には様々なデモが紹介されている。 これから分かるのはGoogleは将来のモバイル向けOSの中心軸とすべくFuchsiaを開発しているという点である。

ちなみにこのGUIは大部分がC++で記述されている。

背景にはJavaを巡るOracleとの係争も?

これの背景にはJavaのライセンスを巡るOracleとの法的係争があるのではと感じた。

それはOracleが2010年にGoogleがAndroidで利用しているJava言語について、37件のJava APIを不正にコピーしたとして訴訟を起こした件である。これについてはJava APIは米著作権法の保護対象になることで判決が確定した一方で、2016年5月に米カリフォルニア州サンフランシスコの地裁はAndroidでのJava APIの利用はフェアユースの範囲内であるとの判決を下したが、Oracleは控訴し、2017年5月現在に到るまで両者の抗争は続いている。

ちなみにAndroidOSはLinuxカーネル上でJavaの仮想マシンを動作させる構造になっている。

Androidは将来的にFuchsiaに置き換えられる?

おそらくGoogleがFuchsia OSの開発に注力している主要な動機は、このJavaを巡るOracleとの抗争にあるだろう。Googleは将来的にはFuchsiaをモバイル向けOSとしてリリースし、Javaに依存したAndroidから脱却する狙いがあると見える。

これはあくまで推測に過ぎないが、その時の開発言語はJavaから、Googleが開発しているGo言語やDartに置き換わるのではないかと考えている。

そうでなくても、AndroidはiOSに比較して動作性やUXの悪さがよく指摘されてきた。FuchsiaOSの開発によってGoogleはこれらの問題を一気に解決するつもりなのだろう。

Linuxとの比較

LinuxとMagenta Linux Magenta
ライセンス GPL-2 BSD-3

www.youtube.com