class="post_content" itemprop="articleBody">
智能手机虽说是移动电话,但我们完全可以将其作为小型化的电脑来思考。这样一来也能够显示出智能手机 OS 的高性能。我们首先一起来回顾下智能手机 OS 的历史。 其实在很早之前就已经有这样的想法,即在像智能手机这样可以便利携带的小型电脑终端上运行 OS……
OS 的黎明期
大约20年前左右,在美国的拉斯维加斯举办的世界最大的电脑相关产品展示会“COMDEX”上,日本索尼公司开发的当时称之为“ MagicjLink ”的携带型信息终端吸引了很多的关注。这款终端并不仅仅是一款用来记笔记和日程规划的电子帐本,当时已经具备了通信功能还可以收发邮件和搜索信息。
图1:图片上部的是 MagidLink 设备,下面部分为键盘。液晶显示也是单色的。
MagicLink 是索尼公司的产品,但终端的本质是能够在这台终端上运行的 OS。这就是由美国的苹果公司的工程师们开发出来的称之为“MagicCap”的OS(图2)。因为在那个年代“通过OS商业交易是件大生意”,所以有各种各样的OS被发布。众所周知的 Windows 95 也是在那一年发布的。
图2:MagicCap OS 的显示画面。起动终端后就会进入图片所示的界面。包括电话和记帐以及笔记功能。用笔触摸就可以启动各个APP。其中的“In和Out”代表的是邮箱。
这款 OS 是由苹果的工程师开发,日本的制造商负责终端生产。
苹果的工程师只负责开发了OS,硬件部份是由日本的制造商等外部公司开发出来的。苹果公司还因此设立了“General Magic”这样的一家子公司。这家公司主要负责推进MagicCap的开发和为日本的制造商提供帮助。索尼公司和现在的松下以及三菱等公司以 MagicCap 终端的开发为名制造出了最初的一款产品即索尼公司的 MagicLink。
苹果公司的工程师开发的 MagicCap 作为“移动OS”是具有划时代意义的。但是 MagicCap 最终却以失败告终。因为这款终端根本卖不出去。硬件的处理能力和重量以及价格等等在当时都成为了问题。要知道那个时代网络还不是一般人可以使用的。
为 MagicCap 设想的网络和那个年代即1980年的电脑使用的网络是一样的。而网络和 Windows95 的爆发性普及却是在那之后的一年才开始的。
Android 之父
实际上在 General Magic 公司负责 MagicCap 开发的工程师中有一位叫作Andy Rubin的年轻人。
这名年轻人在 General Magic 公司解散一年之后创立了一家面向移动终端的OS开发的创业公司。和 General Magic 公司一样,硬件的开发交由外部公司,本公司集中精力于OS的开发。但是和 General Magic 公司只向自己的合作公司提供 OS 不同的是,Andy Rubin 的公司免费向其它公司提供OS和APP开发环境。
由 Andy Rubin 创立的公司正是现在的“Android”。后来这家公司被美国的 Google 公司收购,而 Android这 一公司名也就只能作为OS的名称而保留了下来。现在被称之为Android之父的Andy Rubin在公司被收购之后留在了 Google 公司并且负责 Android 业务(现在负责机器人的开发)。
iOS 之父
如果说 Android 之父是 MagicCap 的开发者 Andy Rubin,那么能称得上是“iOS之父”的又是谁呢?
实际上苹果公司在推出 MagicCap 终端的几年前就已经销售一款叫作“Newton”的小型终端。但是遗憾的不论是设备还是开发环境当时都非常昂贵最终没有普及开来。
现在的 iPhone 的OS“iOS”的先祖即不是来自苹果公司开发出来的Newton也不是来自苹果子公司开发出的 MagicCap,而是另有来源。是苹果的创始人 Steve Jobs。
General Magic 公司正在开发 MagicCap 的时代,作为苹果公司创始人的 Steve Jobs 从苹果公司离开,并且创立了“NeXT Computer”这家公司,并且开发出了一款叫作“NeXT”的高性能电脑。与此同时开发了一款叫作“NeXTSTEP”的OS。
NeXTSTEP 是通过叫作“ObjectOriented”的新型方法开发出来的一款 OS。NeXTSTEP 的 APP 通过“ Objective-C”这种新的编程语言来开的。 Objective-C 不仅可以使 APP 开发变得更加有乐趣而且性能非常高,是一种具有划时代意义的编程语言。
虽说从技术上来讲是绝佳的,但是结果却和 MagicCap一样,NeXT 电脑最终在商业上也没有获得成功。但是 NeXT 并没有消失,而是被苹果公司收购作为苹果公司的技术而被保留下来。
那个年代的 OS
那个年代的电脑不论是 Macintosh 还是 Windows 都尚不稳定,使用过程中会突然出现重启,电脑突然出现问题,软盘或硬盘出现故障导致数据无法读写的情况并不少见。不论是微软还是苹果公司都因此伤透脑筋。
故障最大的原因在于OS上的应用的运行结构。当时电脑用的OS还处于比较原始的状态。在电脑运行的所有软件只能一个一个地按顺序利用CPU。CPU 同时只能执行一个程序命令。
你可以想象一下只有一位收银员的超市的客户排队情形。把客人想象为 APP 和 OS,收银员是 CPU 就可以很好地理解了。某个应用在运行的时候包括OS在内的其它软件都得停止,等待 CPU 空闲下来。
并且当时的OS已经停在收营员的前面了,但是那些不受控制的APP却停不下来。这些不受控制的APP一直占用着CPU,导致OS本身不能使用CPU,OS自然也就无法运行。
微软计划通过开发一款叫作 Windows NT 的新型OS来处理这种故障。具体来讲就是通过采用“preemptive multitasking”这一结构来使系统达到飞跃性稳定。
简单来说“preemptive multitasking”就是通过在短时间内让所有的 APP 都强制停止,而让其它的APP运行的一种结构。以刚刚超市的例子来讲,“在收银员前面停留的时间设定为1人10秒,短时间之内立即就可以切换到其它人。”
也就是说在收银员处需要花1分钟以上的人必须要在收银员处按顺序排6次以上的队。这样一来虽然对于花时间长的人而言变得麻烦了,但是却不再会因为一个人不遵守规定而出现死机现象了。Windows NT就是采用这样的一种结构。
另一方面苹果公司希望通过采用 NeXTSTEP 的技术来强化 Macintosh 的OS。NeXTSTEP和Windows NT一样也采用了“preemptive multitasking”这一技术。而 NeXTSTEP 是以“UNIX”为基础开发出来的,而UNIX可以回应“preemptive multitasking”。NeXTSTEP 和 Windows NT 一样可以稳定地运行正是苹果公司收购NeXT的原因。就这样 Steve Jobs 再次回归苹果公司。
以 NeXTSTEP 为基础开发出来的 OS 叫和“Mac OS X”(图3)。而APP的开发使用“ Objective-C”这一点也因此保留了下来。而“Mac OS X”也因此作为 iPhone 的 OS 的基础而被采用,这样一来才产生了“iOS”。
图3: iPhone 搭载的“iOS”是以 Mac OS X 为基础产生出来的。而 Mac OS X 又是以 Jobs 创立的 NeXT Computer 的“NeXTSTEP”为基础产生的。
现在我们使用 iPhone 的时候,画面上能够看得到的部分,例如“设置”和 Home 画面等等都是在 Mac OS X 的基础上再次添加进去的,只不过是 iPhone 的表面的软件而已。
iOS 的本质部分是 jobs 亲自开发的现在仍在延续着的 NeXTSTEP 和 Objective-C。随着iPhone的普及Objective-C的知名度也变得很高。如果去书店查看关于编程类的书籍的话,一定可以看到很多很多的 Objective-C 的书籍呈现在那里。
苹果子公司的技术人员创造了 Android,而离开苹果公司后的乔布斯的技术成了iOS的来源基础。这多少让人觉得有些讽刺。这也是苹果一直将安卓列为侵权产品的缘由。苹果方面表示,Android 系统创始人 Andy Rubin 有关 Android 系统的理念之一诞生于他供职苹果期间。另外当时时任谷歌 CEO 的施密特为苹果董事会成员,乔布斯认为安卓系统赤裸裸剽窃苹果技术。HTC、三星等也都成为了苹果起诉的对象。