GoogleのIoT向けOS “Fuchsia” をビルドしてみた

By | 2016年8月15日

GoogleがIoT向けとなる第三のOSを開発中とのニュースがありました。
名前は Fuchsia 。 フクシアと読むのでしょうか、wikipediaによると非常に鮮やかな赤紫色を指すそうです。色の名前なんですね。
Googleの説明にも、「Pink + Purple == Fuchsia (a new Operating System)」と書かれており、ピンクと紫を足してFuchsiaだ、ということなので色の名前で間違いないでしょう。

FuchsiaはAndroidなどで使われているLinuxカーネルではなく、LKという組み込み用カーネルを用いているとのことで、Yoktoすら重く感じるほどに小さい低性能なデバイス向けのRTOSであると思われます。おそらくセンサのようなモジュールレベルに対して組み込むことを意図しているのでしょう。環境は64bitのARM,x86がサポートされています。
LKはAndroidのブートローダにも使われているもので、軽量の駆動を目指すなら手堅い選択なのかもしれません。

素材は良さそうですのであとはパッケージ関連(通信プロトコル、フレームワーク)や開発環境が、マスを取れるかどうかに影響します。昨年発表されたファーウェイの「LiteOS」と競うIoT系OSのひとつになりそうで今後が楽しみです。

githubのミラーサイトはこちらです。
https://github.com/fuchsia-mirror/manifest

とりあえず早速ダウンロード、ビルドしてみました。

1. 環境準備
ubuntu 16.04 で試しました。最初に必要なパッケージのインストールです。

もしqemuが入ってなければインストールしておきます。

Fuchsiaはjiriというレポジトリ管理システムを利用しています。Androidでいうrepoのようなものです。jiriを用いてソースをダウンロードします。

これで各ソースをダウンロードしてくることになります。

2. ビルド
Fuchsiaはmakeに代わる高速なビルドシステムである ninja でビルドを行います。

もしターゲットCPUを64bitARMに変える場合は gen.py に –target_cpu=aarch64 のようなオプションを付けることで対応できます。たとえば下記のようにビルドすることになります。

だいぶ時間がかかりますがこれでビルドが完了するはずです。