既然有了Android 谷歌为何还要从零开始开发新操作系统

上周,谷歌员工做了一件让人看不明白的事:他们低调地宣布正在开发一款操作系统,从理论上来说,这款操作系统将成为谷歌Android的竞争对手。

这款开源操作系统代号为Fuchsia,可以搭载在各种轻量级、单一目的的设备上,例如ATM机和GPS设备,同时也支持PC。不过与Android不同,Fuchsia没有基于Linux内核,也并非衍生于当代其他PC或手机操作系统。实际上,这是从头开始的一项工作。

谷歌并未透露,将利用Fuchsia去做些什么。Fuchsia仍处于早期发展阶段,有可能只是一次尝试。不过,谷歌有着充分的理由,“重启”一个沉寂数十年的软件开发领域。

“外壳坚硬”的内核

你可能不太清楚自己手机、平板电脑和笔记本的某些方面:这些设备操作系统的“内核”非常古老。Android使用了Linux内核,这一内核起源于1991年。Mac OS X、iOS,以及其他苹果平台基于Unix内核,Unix于1969年发源于AT&T贝尔实验室。Windows计算机采用的是可以追溯至1993年的Windows NT内核。

内核的目的是管理操作系统的最底层。内核处理来自键盘等硬件设备的请求,调度计算任务,以及管理文件系统和内存。由于内核的存在,如果一款应用想要调用打印功能,那么开发者并不需要知道打印机的具体型号。

对于一个追求完美的行业来说,Unix、Linux和Windows NT等内核的存在很矛盾。不过业内知名分析师霍拉斯·德迪乌(Horace Dediu)指出,在最底层,计算方式与数十年前相比并没有不同。例如,当前Windows计算机采用的芯片与第一代IBM PC中的英特尔处理器一脉相承。从这种意义上来说,内核是通用的。

德迪乌表示:“我们仍在使用同样的架构,计算的概念没有变化:寄存器、门电路、晶体管。因此,我们没必要研究更好的内核。内核已得到充分的发展。”

或许,这就是大部分业内人士的想法。然而目前,我们正在将传感器和计算元件集成至更多设备,例如将普通家居设备变为智能家居,让所有一切都联网(即物联网)。Fuchsia背后的逻辑或许在于,古老的内核,例如Linux,不适用于这些新生设备。因此,开发者正在构想更现代化的内核。(这里的内核本身名为Magenta,而Magenta又基于谷歌的另一项实验LittleKernel。)

来自Particle的扎赫·苏帕拉(Zach Supalla)指出,Linux给这些小型计算设备带来了问题。Particle提供物联网硬件套装和开发者工具。

一方面,对这些应用来说,Linux的规模太大。尽管Linux内核是模块化的,开发者可以剥离不需要的组件,但最终这仍需要以MB计算的存储空间。这意味着,Linux内核很难被用在廉价的微控制器上。如果想要使用Linux内核,那么开发者必须选择尺寸更大、价格更贵、能耗更高的处理器。

苏帕拉表示:“市场需要质量更好、价格更低的产品,但这样的需求尚未被满足。”

另一方面的问题在于,Linux并不是“实时”操作系统。与ATM机、医疗产品,以及其他单一目的设备中的嵌入式操作系统相比,Linux采用调度算法来管理多任务。尽管这可以使通用目的设备的性能最大化,但也给需要精确定时的设备,例如3D打印机,以及汽车发动机控制,带来了问题。

苏帕拉指出:“如果你想要确保,这些任务有着微秒级的时间精度,那么你不会希望让计算机来决定何时处理哪一任务。”

对物联网设备来说,类似Linux的通用目的操作系统也不太安全。这样的操作系统代码很多,这意味着很可能有更多信息安全漏洞需要解决,或是需要通过防火墙和VPN进行锁定。

苏帕拉表示:“运行实时操作系统或嵌入式操作系统的价值之一在于,你不需要做任何锁定。你不需要太担心这些系统。除了自己编写的软件之外,这些操作系统无法运行任何东西。”

苏帕拉猜测,Fuchsia的目标是将Linux的优点和当前嵌入式系统,例如FreeRTOS和ThreadX,结合在一起。在支持应用和硬件通过操作系统去通信方面,Linux仍要好于绝大多数系统。

他表示:“他们或许希望借鉴Linux的某些抽象概念,以及RTOS的性能、大小和实时性。这将很有价值,我认为从理论这是可以做到的,只是之前没有人去做。”

规模的扩大

如果Fuchsia仅瞄准小型设备,那么可能不是那么值得关注。不过,Fuchsia的开发者有着更远大的目标。他们表示,这一操作系统也将可以用于智能手机和PC。从理论上来说,这将成为谷歌Android和Chrome OS的直接竞争对手。

那么,这样做的动机是什么?苏帕拉认为,从头开始开发将带来更高效的操作系统,而这样的操作系统也可以提升服务器的效率。这是谷歌长期以来一直关注的问题。他还表示,对PC的支持意味着,开发者可以同时模拟运行大量小型设备,确保这些设备的规模化运转。

苏帕拉表示:“你可以搭建数千台服务器,每台服务器都同时运行软件应用的数千个拷贝。因此,对PC的支持意味着更适合测试。”

德迪乌则有着不同看法。谷歌这一新操作系统将解决困扰谷歌已久的Android知识产权授权问题。他表示:“由于这是全新的设计,因此不会存在有争议的知识产权。这是个合理的假设,因为Linux的知识产权问题很复杂。”

不过,这一切都还停留在理论上。Fuchsia的开发者表示,他们最终将发布这一操作系统及相关文档,不过这可能还有遥远的距离。目前尚不清楚,谷歌是否会向这项工作投入资源。Android生态系统已非常庞大(并且正在与Chromebook融合)。与此同时,谷歌也在基于Android开发物联网操作系统,即Brillo。这正在形成一个完整的平台,而不仅是简单的操作系统。

最初,Unix只是贝尔实验室的志愿者项目,没有得到任何组织的认可。而林纳斯·托瓦尔德斯(Linus Torvalds)最初开发Linux时也只是将其当作一个副业。或许未来几十年后,我们也可以对Fuchsia如何发源于谷歌侃侃而谈。(李丽)

以上文章由短网址转载

时间: 2024-08-06 16:05:25

既然有了Android 谷歌为何还要从零开始开发新操作系统的相关文章

【读书笔记-《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)

3.9 TabSpec与TabHost TabHost类官方文档地址:http://developer.android.com/reference/android/widget/TabHost.html Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多. <?xml version="1

从零开始开发Android版2048 (五) 撤销的实现

本篇的内容是,在前一篇的基础上加入了撤销的功能.撤销其实就是将当前的用户界面恢复到这次滑动值前的样子.我实现撤销的主要原理是,将每次滑动后界面上的格子和对应的数字记录下来,当然还有分数,把这些数据写入一个栈中,然后点击撤销操作的时候,将栈顶pop掉,读取下一个栈中的对象,并根据对象中存储的数据重新绘制界面. 下面是我用于存储每次界面情况的类,在这个类中保存了界面中主要的三个数据,空白格.数字格和当前的分数. package com.example.t2048; import java.util.

【读书笔记-《Android游戏编程之从零开始》】3.Android 游戏开发常用的系统控件(Button、Layout、ImageButton)

3.1 Button Button这控件不用多说,就是一个按钮,主要是点击后进行相应事件的响应. 给组件添加ID属性:定义格式为 android:id="@+id/name",这里的name是自定义的,不是索引变量."@+"表示新声明,"@"表示引用,例如:"@+id/tv" 表示新声明一个id,是id名为tv的组件:"@id/tv" 表示引用id名为tv的组件. 给按钮添加点击事件响应  想知道按钮是否被

【读书笔记-《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建

简单的记录下笔记,具体可百度! Android SDK (Software Development Kit)- Android 软件开发工具包,用于辅助Android 操作系统软件开发,是开发Android 软件.文档.范例.工具的一个集合.Android NDK (Native Development Kit) - 类似 Android SDK,可用C/C++语言编写Android程序. developer.android.com - 可查阅到 Android SDK. 开发指南.API说明等

取代Android?聊聊谷歌的Fuchsia新操作系统

最近,一款由谷歌开发,被称为 Fuchsia 的操作系统在网上曝光.Fuchsia 是在去年 8 月就进入了 GitHub 项目,但谷歌对此非常低调,像操作系统这样的重量级项目,却没有官方的宣传和说明介绍.网上的介绍称这个操作系统采用了代号为 Magenta[一种给给的洋红色] 的微内核设计 [MicroKernel],是一种实时操作系统 [real-time OS].在谷歌官方介绍出现前,网上已经有了大量的「解毒」:例如说 Fuchsia 是用来取代 Android 高性能操作系统,兼容 An

【读书笔记-《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)

Android 中常用的计量单位Android有时候需要一些计量单位,比如在布局Layout文件中可能需要指定具体单位等.常用的计量单位有:px.dip(dp).sp,以及一些不常用的pt.in.mm.下面详细介绍下这些计量单位之间的区别和联系.in:英寸(长度单位):mm:毫米(长度单位):pt:磅/点,1/72英寸(一个标准的长度单位):sp:全名 scaled pixels-best for text size,放大像素,与刻度无关,可以根据用户的字体大小就行缩放,主要用来处理字体的大小:

【读书笔记-《Android游戏编程之从零开始》】5.Android 游戏开发常用的系统控件(ProgressBar、Seekbar)

3.7 ProgressBar ProgressBar类官方文档地址:http://developer.android.com/reference/android/widget/ProgressBar.html 在Android应用开发中,ProgressBar(运行进度条)是比较常用到的组件,例如下载进度.安装程序进度.加载资源进度显示等.在Android中提供了两种样式来分别表示在不同状态下显示的进度条,下面来实现这两种样式.默认进度条是圆形,通过style属性来指定系统进度条的大小:sty

【读书笔记-《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)

3.4 EditText EditText类官方文档地址:http://developer.android.com/reference/android/widget/EditText.html EditText继承TextView,所以EditText具有TextView的属性特点,下面主要介绍一些EditText的特有的输入法的属性特点android:layout_gravity="center_vertical":设置控件显示的位置:默认top,这里居中显示,还有bottomand

Android游戏编程之从零开始pdf

下载地址:网盘下载 <Android游戏编程之从零开始>主要系统地讲解了Android游戏开发,从最基础部分开始,让零基础的Android初学者也能快速学习和掌握Android游戏开发.<Android游戏编程之从零开始>一共8章,内容包括Android平台介绍与环境搭建.Hello,Android!项目剖析.游戏开发中常用的系统组件.游戏开发基础.游戏开发实战.游戏开发提高篇.Box2d物理引擎.物理游戏实战.随书光盘包括全书65个项目源代码.<Android游戏编程之从零