转自:http://imtx.cn/archives/1372.html
昨天从早到下午,我花了半天的时间把Chrome OS(确切地说是开源的Chromium OS,为方便起见以下只称Chrome OS)的源码从官方网站获取过来,然后根据官方的教程编译了出来。一边编译,我还一边研究Chrome OS的架构,可以说对它的整体已经有一定的了解了,这也为以后的Hack打下了基础。
很多人说Chrome OS在天朝不会有前途,就因为我们那破网速和破墙。话是这么说,但是Chrome OS只是Google的系统,Chromium OS还是属于我们的,我们可以发挥最大的自由来hack它。我关心的是能基于Chromium OS我能做出什么不同于一般发行版的有趣的东西来,没有一个顺畅的网络,没有Google,照样可以玩转它。
好了,废话到此。
先简单的提下Chrome OS的概要吧!
标准的Linux(Ubuntu)
与前天我的预言一样,Chrome OS确实是基于标准Linux内核及GNU组件,拥有标准X+SliM登录界面+Google Window Manager(基于Clutter创建,类似于Moblin的3D效果)的Linux桌面操作系统。不同的是,Google决定将其打造成网络操作系统,不支持本地硬盘数据,不支持本地应用程序。
我在其开发环境中看到,Chrome OS是基于Ubuntu 9.10 Karmic开发版的,因为其开发环境中的/etc/issue.net告诉了我:Ubuntu karmic (development branch)
这意味着,到时我可以直接给Chrome OS装上Ubuntu 9.10的软件包,比如我可以装上openvpn,然后系统就可以畅通无阻了。
精简的环境
Chrome OS拥有极快的启动速度,一般十秒就可以上网了。为什么做的这么快呢?因为它大大精简了启动流程,传统的服务+自启动程序都被消减掉——当然还有dbus服务,X服务和WM自启动程序。
虽然精简了大多数服务和相关组件,但是Chrome OS用的依然是Ubuntu开的upstart init机制,看来这个工具的优秀已不用多说了,因为Fedora发行版也在用。当然也用例外,比如Moblin就没在用。
默认情况下,Chrome OS进入桌面,只会有两个重要的服务,一个是Window Manager(管理窗口),基于Clutter,另一个则是Chrome Shell(我命名的)。
WM是用Clutter+GTKMM写的,其他多数组件也是用C++写的。Google似乎混用了gtk和gtkmm,不过影响不大,GTK+的应用将对整个GNOME桌面及GNU/Linux世界有个比较好的示范和促进作用,GNOME 3的未来也是光明的。
另外,我觉得Chrome浏览器从一开始设计成“多进程”就是为了现在的OS准备的,“多进程”+“沙盒”技术,足以构建一个强大、稳固的桌面操作系统了。
dbus通讯机制
因为桌面极度简约,网络配置、电源管理等都被集成到了浏览器的标题栏上,它们通过dbus技术与底层的工具来通讯。比如网络控制组件来自ConnMan开源项目(由Intel和NOKIA赞助)。
因此理论上只要你编写一个dbus的接口程序,你可以与任意的底层应用程序交互,从而在Chrome OS增加你需要的功能。
受限的硬件支援
Chrome OS目前只包含了xserver-xorg-video-intel的驱动,这意味着NVIDIA和ATi等显示止的朋友将无法体验Chrome OS。尽管它可以在VMware中启动,但是体验效果会很差,跟在虚拟机里玩Moblin一样。
据说Chrome OS还不支持硬盘,不过好在支持U盘,我已经成功将镜像烧至U盘,然后在上网本中体验成功,可以说很多东西在虚拟机里玩是体验不到的。
——————
嗯,就随便说这些好了,Chrome OS现在只是开发版,相信明年正式发布时会更成熟,就像Android刚公布时和1.0正式发布时,改善是相当明显的。
如何烧进U盘在上网本上体验呢?
准备好一台上网本(推荐EPC 1008HA,官方认证,还有DELL MINI,HP MINI等也行),还有一个2GB以上的U盘(不包括2GB,因为我失败了好几次)
使用git工具,把我提取出来的chrome编译脚本clone下来:http://github.com/tualatrix/tools/tree/master/chrome/scripts/,里面有一大堆乱七八糟的东西,保留chrome/scripts目录就行了。
下载下面两个镜像(分别是MBR和ROOT根文件系统),放置在同一目录,感谢骨头兄提供的服务器和带宽
http://u.srt.cn:88/mbr.image
http://u.srt.cn:88/rootfs.image
然后放入U盘,进入刚才下载的脚本目录(chrome/scripts),像这样执行命令,应该就能把镜像烧进你的U盘了:
./image_to_usb.sh –from=/home/tualatrix/Download/chromeos/ –to=/dev/sdb
烧好后,就可以直接用它来启动电脑了。但愿一切顺利!
如果有什么问题,请在这里反馈。
注:经证明这些编译脚本是不够用的,请下载完整的Chrome OS源码。