• 21
  • Nov

本来这篇文章是要昨天写的,不巧昨天的魂被I9勾走了,因此拖到了今天。

昨天从早到下午,我花了半天的时间把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根文件系统),放置在同一目录,感谢骨头兄提供的服务器和带宽

然后放入U盘,进入刚才下载的脚本目录(chrome/scripts),像这样执行命令,应该就能把镜像烧进你的U盘了:

./image_to_usb.sh --from=/home/tualatrix/Download/chromeos/ --to=/dev/sdb

烧好后,就可以直接用它来启动电脑了。但愿一切顺利!

如果有什么问题,请在这里反馈。

注:经证明这些编译脚本是不够用的,请下载完整的Chrome OS源码。

Tags: Chrome OS.

» You can leave a comment.

9 Pingbacks

20 Comments

  1. 幽隱之賢

    純支持下。

  2. Linux的发展要靠博主这样的强人啊。

  3. 昨天两个文件就下载完了..原来只有上网本才能体验...期待后续版本更新。

  4. 哈哈哈,开始下下来玩一玩。虽说没有上网本,我就直接在我的386机子里玩吧。

  5. 只用这个脚本不行啊……缺很多东西……
    ./common.sh: line 78: /home/iven/tools/src/third_party/shflags/files/src/shflags: 没有那个文件或目录
    ./image_to_usb.sh: line 31: DEFINE_string: command not found
    ./image_to_usb.sh: line 33: DEFINE_string: command not found
    ./image_to_usb.sh: line 34: DEFINE_boolean: command not found
    ./image_to_usb.sh: line 37: FLAGS: command not found

    • Jelly

      You must get depot_tools source code and set the path to PATH environment variables and synchronize the latest source code using gclient sync command.

  6. xinzhi

    rootfs.image下载链接也指向了mbr.image。

  7. TX主席啊,为什么不事先在“./image_to_usb.sh”加“--to=~/chromeos.img”导出为映像呢?经gzip压缩后才300M而已。

  8. bjnews

    大牛,等待hack以后能实机装一下

  9. 为了周围的童鞋。我只好折腾一下了

  10. tw

    键盘缝隙多容易脏 请问支持触摸吗

  11. 其实chrome就够了~~

  12. 文章很不错,转载了

  13. VictorHu

    链接有用吗?

  14. xinvi

    敢问Chrome咋念,黑黑

  15. Liufu

    chrome
    [krəum](可肉母)
    n. 铬
    vt. 镀铬
    另外单独做词根这个词还有色彩的意思,比如monochromatic就是单色的意思。现在能明白Chrome的图标为什么是那个样子了吧。

Leave a Comment