新聞中心
Fuchsia是Google主要為IoT、手機及個人電腦開發(fā)的下一代操作系統(tǒng)。它與之前的Android、Chrome OS、Brillo等操作系統(tǒng)相比,一個顯著的特點是它沒有基于linux內(nèi)核,而是采用了微內(nèi)核的Magenta(基于Little kernel)。Linux經(jīng)過二、三十年的發(fā)展,今天無論是嵌入式設(shè)備還是分布式服務(wù)器,都有它的身影。但它起源于desktop時代,經(jīng)過這么多年的活躍開發(fā)今天已儼然成為“大而全”的通用型內(nèi)核。雖然可以通過裁剪、定制、增強滿足IoT的基本功能,但時至今日種類多樣的IoT設(shè)備在功能性、實時性、功耗、內(nèi)存、性能上都提出了新的要求,而Fushcia就是Google繼基于Android的Brillo之后嘗試開發(fā)全新OS的產(chǎn)物。

本文以x86-64平臺為例,備忘下在Ubuntu 16.04中的setup過程。
1. 安裝build依賴的包:
sudo apt-get install golang git-all build-essential curl texinfo libglib2.0-dev autoconf libtool libsdl-dev
2. 下載源代碼:
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
jiri import fuchsia https://fuchsia.googlesource.com/manifest
jiri update
等命令結(jié)束后Fuchsia的主要源代碼就下載下來了。大約為5G左右,可以看到,和Android N動輒50G+的代碼量相比,它算是很輕量級的了。
3. Build toolchain:
首先build llvm相關(guān)的toolchain:
./scripts/build-toolchain.sh
盡管網(wǎng)站上說了會很慢,但還是被慢到了。尤其是會非常吃資源,按鍵都過很久很久才有反應(yīng)。導(dǎo)致第一次build時以為機器hang住了。。。
將環(huán)境變量SRC設(shè)置為Fuchsia源代碼的根目錄,比如/home/jzj/source/fuchsia,然后下載和編譯gcc系toolchain:
cd $SRC
git clone https://fuchsia.googlesource.com/third_party/gcc_none_toolchains toolchains
cd toolchains
./doit -a 'arm aarch64 x86_64' -f -j32
3. Build system:
首先編譯kernel和sysroot:
./scripts/build-sysroot.sh
然后編譯系統(tǒng),不加參數(shù)默認是for x86-64平臺:
./packages/gn/gen.py
./buildtools/ninja -C out/debug-x86-64
如有ccache環(huán)境加速build可以在gen.py時加上--ccache參數(shù)。
4. 編譯Qemu
如果想在真機上搞的話這步就不用了。Qemu主要是用于在模擬器中跑Fuchsia。當(dāng)然,因為這里跑的是x86-64,和開發(fā)機平臺一樣,所以是當(dāng)虛擬機用的。其實如果比較懶的話直接裝現(xiàn)成的也行:
apt-get install qemu-kvm qemu-system-x86
否則可以按官方流程下載源碼編譯:
cd $SRC
git clone https://fuchsia.googlesource.com/third_party/qemu
cd qemu
./configure --target-list=arm-softmmu,aarch64-softmmu,x86_64-softmmu
make -j32
sudo make install
5. 運行
在模擬器中啟動Fuchsia:
./scripts/run-magenta-x86-64 -x out/debug-x86-64/user.bootfs -m 2048 -g
啟動完成進入MXCONSOLE:
默認有4個console實例,用Alt+Fx切換。如要退出系統(tǒng)可用Alt+a x。現(xiàn)在可以在console中執(zhí)行各種命令了,比如:
mojo:shapes
可以看到運行結(jié)果:
分享名稱:Ubuntu16.04下搭建Fuchsia開發(fā)環(huán)境
本文鏈接:http://fisionsoft.com.cn/article/dpchgdd.html


咨詢
建站咨詢
