两个操作系统
Firefox OS的深入
前面写过一篇firefox os的初步介绍,当时还在怀疑会不会有相关产品面世,现在看来这个担心是多余了。最近在考虑实现一个只有浏览器的操作系统,自然而然就想到了firefox os,然后对它能不能在x86上面run很是感兴趣,然后有了下面的认识。
首先,它能不能在x86上run?它是支持x86的,但是目前没有很可靠的包;甚至它针对x86 cpu的emulator都还不能正常运行,arm的已经可以用了。
为什么呢?理应没有什么难度才对。这个就深入的扯到它的底层了。
前面讲过,firef OS其实linux内核+浏览器Gecko。但是,进一步了解之后,得出结论,这个浏览器是专门移植过的,具体有多少修改不知道,但是,可以肯定的是firefox os有专门为这一平台写了makefile。因为在这一平台上,Gecko是独占整个平台的,所有,有很多资源是可以直接获取的,而不需要考虑和其它程序共享的问题。比如,Gecko可以获取底下平台的display frame buffer;在其它平台上,它是办不到的。
firefox给这个底层的平台起了个名字,叫做Gonk。某种程度上,我们可以把它叫做一个操作系统,因为,它包括了kernel+HAL等,基本上具备来安装应用的能力。等等……firefox os的HAL实现大部分是和Android一样的!大部分!为什么我会觉得是全部一样也没关系?好吧,google是在这个HAL+kernel之上搞了个JAVA虚拟机,mozilla是又添加了一些自己的东西,起了个名字叫Gonk,然后,在它之上实现了一个WEB浏览器(Gecko Runtime)。
Gecko is supported by the actual SO, Gonk. Gonk is a very simple distribution of GNU/Linux and it holds the Hardware Abstraction Layer or HAL placed between the device hardware and Gecko. Gonk translates low level hardware access to C++ interfaces and Gecko offers these interfaces to developers in form of JavaScript standard APIs.
至于还有个叫Gaia的。。。Gecko Runtime里面什么都有了,为什么需要一个Gaia?
eyeOS
这个是另一个神奇的产品。。。云桌面操作系统。
这个奇葩的系统,在我知道它的时候,大家都说它是开源的,但是等我要深入了解的时候。。。呵呵,人家已经转为商业了,据说为了这个,社区闹的老不开心。。。居然只是老不开心,不会有什么道德、法律的惩罚吗?不过似乎没人在乎这个,至少它的客户没有,比如IBM。
eyeOS的重要依托技术是SPICE。no,这里的SPICE不是用来电路仿真那个,是RedHat公司的一个虚拟显卡技术。唔,这玩意就是为云桌面而生的,额。。。或者,红帽子一直就在它的服务器里面使用这一技术,试想,为一家企业提供IT服务,人家真的care你用的什么技术吗?不会。重要的是体验,使用的流畅才是王道。所以你看,如果你的client不行,它会把一部分rendering的工作放到服务器上来运行;相反,client很强大,那就不用server来忙这块了,做好该做的就好。
SPICE是在服务器端实现了一个虚拟显卡,系统把一张张picture输入给它,但是它的输出不是在某个monitor,而是系统low level的显示指令,然后通过网络发送给client。而EyeOS则是把这些数据转成了Javascript!!!好吧,事实上,它用的是PHP,我的意思是,它用Javascript在浏览器上恢复了这样一张张picture。在server看来,每一个client端的浏览器都是一个显示器,因为javascript也是可以负责输入的,所以,输入也不是什么问题;这样就完成了把输入输出都重定向到client端的工作。据说,它的桌面甚至可以通过3G网络跑起来,目前实现的app有office 套件,邮件客户端,局域网聊天工具等。
不管怎么样,用户体验很好就对了。