本文讲述在Linux环境下fushia系统的编译环境搭建(系统ubuntu 14.04);
Fuchsia是Google主要为IoT(物联网)、PC以及移动端开发的新一代只能操作系统。与之前的Android、Chrome OS、Brillo等操作系统相比,区别之一就是它没有基于linux内核,而是采用了微内核的Magenta(基于Little kernel)。Linux经过二、三十年的发展,今天无论是嵌入式设备还是分布式服务器,都有它的身影。但它起源于desktop时代,经过这么多年的活跃开发今天已俨然成为“大而全”的通用型内核。虽然可以通过裁剪、定制、增强满足IoT的基本功能,但时至今日种类多样的IoT设备在功能性、实时性、功耗、内存、性能上都提出了新的要求,而Fushcia就是Google继基于android的Brillo之后尝试开发全新OS的产物。
按照谷歌给出的fushia系统环境搭建提示,这里一步步记录我在自己机器上搭建的过程;
- 首先,安装编译需要的工具:
sudo apt-get install golang git-all build-essential curl
上述安装的编译工具不完全,编译过程中报错;我的机器上进行了一下额外包的安装:
sudo apt-get install texinfo libglib2.0-dev autoconf libtool libsdl-dev flex bison
- 其次,下载源码
curl -s https://raw.githubusercontent.com/fuchsia-mirror/jiri/master/scripts/bootstrap_jiri | bash -s fuchsia
cd fuchsia
sudo cp .jiri_root/bin/jiri /usr/local/bin
sudo chmod 755 /usr/local/bin/jiri
执行下面命令进行代码同步(我使用hosts,上不了谷歌的同学可以使用laod分享的hosts):
jiri import fuchsia https://fuchsia.googlesource.com/manifest
jiri update
同步完成大概快几个G;
第三步,编译fushia的工具链:
在源码顶层目录下执行脚本开始编译(如果编译依赖 的工具没有安装完全会在此时报错,按照错误提示安装所需工具):./scripts/build-toolchain.sh
这个过程比较慢,如果你的机器比较好的话那还好(内存、cpu要好点);
编译完成之后的工具链默认放在out/toolchain目录下;此时工具链编译完成;
- 第四部,更新代码继续编译
如果后期你更新了代码需要再次编译的话执行:
jiri update
clean 掉之前的build 重新rebuild工具链
./scripts/build-toolchain.sh -c