现在的位置: 首页 > 综合 > 正文

对Chrome OS 仅有的一点了解

2012年07月12日 ⁄ 综合 ⁄ 共 5456字 ⁄ 字号 评论关闭

Google 迟早会出电脑操作系统这件事似乎是显而易见的,自从 Android 发布后我就确信这点:既然他们能够为手机开发一个操作系统,并且免费发布,有什么理由不能给 PC 做一个呢?
只不过我之前预计,Google 最终的 PC 操作系统将是把 Android 扩展到屏幕更大的设备上——就像苹果将 OS X 反过来应用到 iPhone 上那样。苹果将其 PC 操作系统削减到只剩下基本核心,然后在此基础上开发了一套全新的手持标准的用户介面库和应用程序接口。我假设中的 PC 版本的 Android OS 也继承了类似过程:将移动版 Android OS 的核心拿出来,然后在此基础上开发一套针对 PC 的用户介面库和应用程序接口。
所以,Google 宣布自己要做 Chrome OS 并不奇怪,奇怪的是他们的宣布方式:尽管 Google 官方博客的标题叫做「Google Chrome 操作系统出炉」,但事实上什么也没有出炉,甚至连一张截图都没有,更不用说视频演示或任何技术细节了。并且他们预期的发布时间为「2010 年下半年」,这简直可以用来当做放烟雾弹的样本教材。
我不知道具体的时间安排表,但为何现在——很明显八字还没一撇的时候,就要宣布?为何不是在 I/O ,六周前 Google 的开发者大会上?或者,为何不等到已准备好向开发者发布的时候?我喜欢事实、演示,最好是即将上市。我不喜欢空泛模糊的承诺。
作为原生软件的线上软件
这一点非常有趣而且野心勃勃,Chrome OS 的全部应用平台都将由线上软件组成。如果有一家公司愿意开发这样一个操作系统的话,它肯定是Google 。大多数最初对 Chrome OS 的评论都是完全积极的,但有一条怀疑的评论是关于「线上软件是唯一的软件」方面的。PCWorld.com 的尼克·米迪塔对 iPhone OS 在 1.0 时代和 2.0 之后进行了许多比较:   
无论用户还是软件开发者,都渴望所谓的「原生软件」——针对特定的操作系统而设计的软件。举个例子?比如 iPhone 。2007 年苹果的全球开发者大会(WWDC)上,苹果在谈论为一种 iPhone 开发应用的「相当完美」的办法:线上软件。当乔布斯在台上谈论线上软件的力量与潜力时,许多开发者和用户却在呻吟。他们想要的不只是线上软件,他们想要真正的应用——可以充分利用 iPhone 的软硬件技术的软件。
旁白:2007 年 WWDC 的主题演讲里,乔布斯在描述开发者可以为 iPhone 开发线上软件时说的不是「相当完美」;而是「非常完美的方案」。我当时称之为「大便三明治」。【注释一】
尼克说对了,不仅开发者,而且用户也都渴望原生的 iPhone 第三方应用。对Google 的 Chrome 来说,不同之处在于,线上软件将是 Chrome 操作系统的原生软件。推测一下,该系统里默认的所有 Google 应用都是我们已经知道的线上软件。这就是著名的「eating-your-own-dog-food」(吃你自己的狗食)的问题。苹果声称针对 iPhone 优化的线上软件是「非常完美的方案」,但它令人讨厌之处就在于,iPhone 没有一个内置应用是线上软件。它们全部采用 Objective-C 和 Cocoa Touch 编写而成——苹果自己的 iPhone 应用设定了很高的用户体验标准——这个高度是 Mobile Safari 里运行的线上软件所达不到的(并且仍将难以达到)。
Chrome OS 听上去更像是 Palm 的 WebOS ,而不是 iPhone OS 。而 Palm 还没有开始通知开发者使用 HTML、CSS 和 JavaScript 为其开发第三方线上软件,他们正关起门来为 WebOS 开发内置的应用。事实上,考虑到 Google 的线上软件中心化,并且还将一如既往,Palm 的 WebOS 本质上更「Google 化」而非 Android 化,后者平台上的原生软件是使用 Java 语言编写的。
关于 WebOS 值得注意的是,尽管 WebOS 应用是使用 HTML、CSS 和 JavaScript 编写,并且在 WebKit 框架内运行,但它能做的已经超出了常规的浏览器内运行的线上软件。运行时(runtime)暴露了针对 WebOS 环境特有的附加JavaScript 应用程序接口。常规的线上软件——「运行」是通过网页浏览器访问 URL 载入的——无法完成,比如访问硬件摄像头,或者在屏幕底部弹出类似的系统范围(system-wide)的工具的通知。或者,反过来,你也不能将一个 WebOS 应用拿到放在其他任何平台的浏览器里运行。「线上软件」和「使用网页技术编写的应用」两者之间有很大的潜在区别。如果你是一位程序员,我担保你能够明白;如果你不是,我担心你可能觉得两者之间只是语义上的细微差别。我能想到的最好例子是 Mac OS X 上的 Dashboard 挂件:它们都使用 HTML、CSS 和 JavaScript 编写,但它们不能在 Mac OS X 以外的其他任何平台上运行。
我推测 Chrome OS 会拥有特定的应用程序接口,让线上软件能够最佳化在Chrome 上运行。但谁知道呢?从 Google 官方的描述来看,Chrome OS 的「应用」听起来好像就是一个「网页」。它是否会支持,比如从摄像头输入照片或视频?再一次,我的推测是:会的。但怎样让这些数据存储到本地,或删除?Google 管理的服务器,传说中的「云」?但总会有一些数据需要存储到本地,因为在网页里上传视频(甚至一张全尺寸照片)有时都会很慢,而且成本很高。
驱动问题
因为 Windows 要在每一台「Windows PC」上运行,所以微软与绝大多数设备驱动开发商都进行了交易,但微软只为他们自己解决问题。微软的方式就是让所有设备都运行 Windows 。但没人说 Chrome OS 要在所有设备上运行,甚至「在大多数 PC 上运行」的说法也没有。如果 Google 说 Chrome OS 只支持专门为其设计的新的 PC(它们的硬件驱动都经过特别开发以保证与 Chrome OS 兼容),我一点也不会感到意外。Google 发布的信息少得可怜的 Chrome OS FAQ 中,只有关于硬件合作伙伴部分值得关注。
Chrome OS 不会只是「另一个版本的 Linux」
瑞赖·勒梅写的「谢谢你 Google,不过我们已经有 Ubuntu 了」(No Thanks Google, We\'ve Got Ubuntu) 是另一种对 Chrome 的典型反应:
Google 决定开发自己的 Linux 版本,再一次希望将 Linux 社区分裂,这只能被看做是鲁莽且自我强迫的行为。
相对于自己开拓道路,Google 希望在马克·夏陀沃思(Mark Shuttleworth)及其快乐的编码团队的出色工作的基础上找到一个杠杆支点,把自己的马拴在 Ubuntu 的马车上。
「Linux」意味着一个为不同人群准备的不同的东西。在准确的技术层面,Linux 不是一个操作系统。它是一个「内核」(kernel),可以用作操作系统的「核心」。但大多数人来说,Linux 意味着一个基于 Linux 内核的操作系统。为了作为桌面 PC 的操作系统来使用,所有 Linux 的分发版本都基于同样的东西:在古老的 X 视窗系统(X Window System)基础上的 Gnome 变更,或 KDE。
Ubuntu 几乎是当前所有 Linux 分发版本的塔尖,但它们之间的区别仅仅是概念化了同一个事物,它们之间唯一重要的区别仅在于是选择 Gnome 还是 KDE 。而且即便你选择了这两种不同的环境,在微软的 Windows 之后,它们只不过是概念上的模仿。整个 X Windows / Gnome / KDE 的「桌面 Linux」喧闹几乎没有吸引任何真正的关注。过去几乎没有人想要它们,现在不会有,未来也不会有。
在这一点上,我的理论很简单。早期 Gnome 和 KDE 很大程度上只是克隆了微软的 Windows 的用户界面。此后它们开始出现分歧,我想说的是,Ubuntu 默认的 Gnome 桌面从设计和易用性角度,很多方面都超过了微软的 Windows Vista 。但本质上它仍然是 Windows 的克隆——窗口内的菜单栏、窗口最大化/最小化/关闭按钮在右上角、菜单和按钮名称使用丑陋的单字符下划线。一眼看上去,它就像 Windows 安装了另一个主题而已。他们的想法是:如果你想要 Windows 用户去用 Gnome 或 KDE ,你就必须让它看上去像 Windows。但这并不是让人切换到新产品的好办法。人们不愿意更换到和当前几乎差不多,或者仅仅好那么一丁点的新产品。只有当新产品比现有的明显更好、好非常多,甚至好十倍的时候,他们才会毫不犹豫。
所以,我认为 Gnome 和 KDE 都遇到了神秘谷(uncanny valley)问题。创建一个模仿 Windows 的概念框架,他们难以做到与 Windows 有所不同,而如果没有明显的不同,他们就难以做到明显的更好。如果你想做一个比现有的好很多的产品,你就必须做出许多与众不同的地方出来。
无论 Chrome OS 最终是什么,它不会成为另一个 Linux 的版本。没错,他们使用的是 Linux 内核,但他们正在此基础上开发全新的东西。Linux 之于Chrome OS,就像是 BSD 之于苹果的 iPhone OS —— 也就是说,是最终用户根本看不到、闻不到、注意不到的东西。
任何使用 Linux 作为内核的操作系统,无论 TiVo 还是 Palm 的 WebOS ——都将其作为操作系统的底层(仅电脑科学可感知的范围),而完全放弃了它的用户界面系统。下面是 Google 声明中的原话:
它的软件架构很简单—— Google Chrome 运行在以 Linux 为内核的新的窗口系统里。
从用户角度来看,Chrome 的外观、运行和工作都将与 Windows 版的不同。这也是为何,Google 有机会去实现 Ubuntu 没有达到过的受欢迎程度。
古怪的名字
我明白,我将要说的话一定是对 Google 员工的诅咒。除了烟雾弹的强烈程度之外,Chrome OS 的发布还有一件事让我想起微软:名字。就像微软用 Windows 既代指 PC 操作系统,也代指在线线上软件套装——Google 也用 Chrome 来描述两种相差很大的东西。
一个网络浏览器与一个操作系统完全不同,即便这个操作系统只运行浏览器。Google 最近的一些行为开始误导普通人,让他们弄不清网络浏览器到底是什么。可以打赌,如果普通人都搞不清浏览器是什么,他们肯定对什么是操作系统更加困惑。把这两者都叫做 Chrome 并不有助于澄清这一问题。在 PC 上安装 Chrome 浏览器,如果你不喜欢可以卸载,系统会回到原来的样子。在 PC 上安装了 Chrome OS  ,如果你不喜欢,你也可以卸载,然后你就只剩下空白硬盘。我并不是说,人们想安装其中之一时会误安装成另一个;我只是想说,这两个完全不同的东西,应该拥有明显不同的名字。
「客户端-服务」 而非 「客户端-服务器」
电脑行业的历史上,曾经有很多的客户端-服务器(client-server)系统:有一些比较受欢迎,有些则不。所有这些系统背后的想法都是,你的用户们拥有很多的廉价客户端机器,它们连接到昂贵的服务器上,由服务器完成绝大多数实际计算。复杂的任务几乎完全在服务器这一端,而这些服务器由专业的技术专家管理。但单独的客户端机器,如果不能连接到网络,几乎毫无用处。
Chrome OS 在很多方面像是历史的轮回。线上软件很大程度上是由服务器端的代码组成,客户端这边运行相对较瘦 JavaScript 层。数据,同样也主要存留于网络上,而非客户端机器。
但这里有很大的不同。Chrome OS 机器不是关于瘦客户端连接到「一个」服务器。而是关于瘦客户端连接到「非常多」甚至「任何」服务器。关于 Chrome OS 目前可以确定的事情之一是:它能够与 Google 自己的线上软件良好工作。但网页是开放的,而且 Google 是网页开放标准的大力支持者。因此,每个人都将有机会为 Chrome OS 编写线上软件,并且可能与 Google 自己的线上软件一样好。
在抽象层面,这个概念有很多吸引人的地方。如果你所有的数据和软件都在网上,你也就没东西可备份了。如果你买了新电脑,也没有任何数据或文件需要转移。你只需登录另一台 Chrome OS 机器,然后里面就全是你的数据和软件了。
但在实际操作层面,它究竟能工作的多好呢?是否有可能用 Chrome OS 作为你唯一的电脑?如果不能,那么「第二台」电脑市场有多大?尤其是,1)当越来越多的人购买笔记本作为他们的最首选机器;2)当越来越来的人购买了iPhone 、Pre 和 Android 智能手机?我的答案是:这个市场并不很大。简而言之,Chrome OS 能通过「狗食测试」:这是一台 Google 自己的工程师会很想使用的机器吗?
对于任何新的系统或产品,如果它的创造者都不是很想使用,我就会持怀疑态度。比如 Gmail ,它是最好的网页邮件系统,因为它不是专门为「典型」的用户而设计,而是为包括参与开发的 Google 工程师在内的专家用户而设计。iPhone 几乎对任何人对足够简单,但猜猜开发了它的工程师和设计师都在用什么手机?
如果你在创造什么东西,刻意不给自己使用,而是为假想中的虚拟人使用,最终你通常都会造出一些愚蠢的东西。计算的未来,或许正沿着瘦客户端连接到网络存储和软件服务的方向前进,但我担心 Chrome OS 太瘦了。
---
【注释一】典出《南方公园》第一百一十九集。剧情描述学校需要选出一个新的吉祥物,校方给出「灌肠器」与「大便三明治」两个选择。作者此处以大便三明治讽刺苹果;在大部分开发者看来,原生 SDK 缺席的情况下,「给 iPhone 写线上软件」这个选择无异于大便三明治:宁缺毋滥之谓也。

抱歉!评论已关闭.