五千年(敝帚自珍)

主题:【原创】浏览器是怎么变成操作系统的 -- 美人他爹

共:💬233 🌺560
全看分页树展 · 主题 跟帖
家园 【原创】【1】非传统的Chrome OS

【1】非传统的Chrome OS

浏览器是操作系统吗?严格说来不是。

传统意义上的操作系统,是指硬件与应用软件之间的隔离层,它的任务是,1. 提供给软件调用和控制硬件设备的标准命令集,这样软件就不用担心同一类型但是由不同厂商生产的硬件设备的命令集有什么不同,从而简化了软件开发的难度,2. 在多个软件同时调用和控制硬件设备时,协调这些软件占用硬件设备的时间长短以及谁先谁后的优先级,从而避免多个软件竞争使用硬件时,可能产生的冲突。

从这个定义出发,浏览器是应用软件,而不是操作系统,甚至不是操作系统的一部份。但是为什么Google最近推出的Chrome OS,把浏览器Chrome作为操作系统的一部份呢?原因在于如何定义应用软件。

很多应用软件都是遵循MVC范式,M=Model,指的是Data,V=View,指的是UI,C=Control,指的是业务处理逻辑。Data有三个来源,1. 电脑本地存储系统,应用软件程序可以通过文件系统的APIs,来读取这些数据,2. 网络服务器,通过给应用软件指定URL,来获取相应数据,3. 在使用应用软件时,用户输入的数据,或者在运行应用软件的过程中,应用软件生成的数据,作为中间结果,被应用程序重新调用。至于UI和Control,对于传统意义的应用软件开发来说,这两者都由软件开发者通过编写程序的方式来实现。

大多数UI部分的程序开发,繁琐而且雷同。为了简化UI部分的程序开发,一个思路是把雷同的程序编写成函数库,应用开发者只需要调用函数库的APIs,而不需要重复实现这些函数库。譬如Java Swing就是这种思路的范例。

另一个思路是浏览器,UI的开发者不写程序,而是写HTML和CSS。程序描绘的是过程,控制电脑先做什么后做什么,每一步怎么做。而HTML和CSS描绘的是结果,包括图片和文字的布局,以及字体颜色等等的渲染效果。至于先画什么,后画什么,调用哪个函数库去布局去渲染,这些工作交给浏览器去自动完成。

对于Chrome OS来说,应用软件指的是,UI部分由HTML+CSS定义的非传统意义的软件。这样的软件,离不开浏览器去读解HTML+CSS,去自动规划如何实现目标的步骤,以及自动实施这些步骤。对于这样的非传统意义的软件来说,作为隔离硬件和软件的操作系统,自然应该包含浏览器。

换而言之,Chrome OS不是传统意义上的操作系统。它与传统意义的操作系统的分水岭,表面上看在于是否把浏览器当作操作系统的一部份,但是实质问题是Chrome OS支持的应用软件,不是传统意义上的应用软件,至少Chrome OS提倡的应用软件的模范,不是传统意义上的应用软件。

关键词(Tags): #关于ChromeOS的东拉西扯通宝推:渡泸,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河