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 で試しました。最初に必要なパッケージのインストールです。
1 |
$ sudo apt-get install golang git-all build-essential curl |
もしqemuが入ってなければインストールしておきます。
1 2 |
$ sudo apt-get install -y qemu-kvm libvirt0 libvirt-bin virt-manager bridge-utils $ sudo apt-get install qemu-system-arm qemu-efi |
Fuchsiaはjiriというレポジトリ管理システムを利用しています。Androidでいうrepoのようなものです。jiriを用いてソースをダウンロードします。
1 2 3 4 5 |
$ curl -s https://raw.githubusercontent.com/vanadium/go.jiri/master/scripts/bootstrap_jiri | bash -s fuchsia $ cd fuchsia $ export PATH=`pwd`/.jiri_root/scripts:$PATH $ jiri import fuchsia https://fuchsia.googlesource.com/manifest $ jiri update |
これで各ソースをダウンロードしてくることになります。
2. ビルド
Fuchsiaはmakeに代わる高速なビルドシステムである ninja でビルドを行います。
1 2 |
$ ./packages/gn/gen.py --target_cpu=x86-64 $ ./buildtools/ninja -C out/debug-x86-64 |
もしターゲットCPUを64bitARMに変える場合は gen.py に –target_cpu=aarch64 のようなオプションを付けることで対応できます。たとえば下記のようにビルドすることになります。
1 2 |
$ ./packages/gn/gen.py --target_cpu=aarch64 $ ./buildtools/ninja -C out/debug-aarch64 |
だいぶ時間がかかりますがこれでビルドが完了するはずです。