Google为什么要从头开发一套新的操作系统Fuchsia?



Google为什么要从头开发一套新的操作系统Fuchsia?

Zach Supalla的公司Particle为物联网提供硬件工具包和开发者工具。他指出,对于这些小规模计算设备来说,Linux存在若干问题。

一是Linux对于这类应用来说太大了。即便Linux内核是模块化的,能够让开发者剔除不必要的部分,但最终仍会占据好几兆的空间。这意味着更难以把Linux内核塞进廉价的微控制器里面,从而让处理器成为必须,而后者往往大得多、贵得多且更耗能。

"全新的供应链这道鸿沟还没有跨越,这对制造提出了更高的品质要求,而且成本还得低很多," Supalla说。

另一个问题是Linux并不是"实时"的。跟ATM、医疗产品等单用途设备采用的嵌入式系统不同,Linux利用调度机制来处理大批任务。尽管这可以极大发挥通用计算机的性能,但也会导致需要精确定时的设备,比如说3D打印机或者汽车内部的许多电动控制系统出现问题。

"要想确保这玩意儿在确切的微秒时刻运行,你不会希望有个进程在那里决定什么时候跑什么东西," Supalla说。

Supalla说,对于物联网应用来说,像Linux这样的通用操作系统的安全性可能也会更低。其代码量更大,这意味着可能存在更多的安全漏洞需要处理或者通过防火墙或VPN锁定。

"运行实时操作系统或者嵌入式系统的价值之一在于,这些系统无需锁定任何东西," Supalla说:"它不需要运行一批你需要考虑的东西。除了你写的软件以外它不会运行任何东西。"

Supalla的推断是,Fuchsia是集两家之大成的一次尝试,在让应用和硬件通过操作系统进行通信方面Linux仍然处理得更好,而当今的一些嵌入式操作系统,比如FreeRTOS和ThreadX就没有前面提到的Linux的那些问题。

"他们可能既想要有Linux那种水平的抽象,又想获得RTOS的那种性能、小规模以及实时性," Supalla说:"这些都是非常有价值的东西,而且我认为从理论上来说是可以实现的。只是之前没做过而已。"

纵向扩展

如果Fuschia的目标只是小规模设备的话,可能就没那么值得关注了。但是Fuschia的开发者野心要比这大,他们宣称该操作系统可扩展到智能手机和桌面计算机上。理论上,这会使得Fuschia成为Google的Android和Chrome OS的直接替代方案。

为什么要这么做呢?据Supalla说,可能从头开始能够做出一个更高效的操作系统,这反过来又能支持更高效的服务器——对此Google一直都很感兴趣。他还指出桌面兼容性还可以模拟一次运行大量更小的设备,从而确保规模化运行。

"让一千台服务器每次都同时跑同样的软件应用,要比折腾一百万芯片跑起来更容易,所以这对测试更好。" Supalla说。

Dediu的理论不一样:一套新的操作系统可以让Google远离Android遭遇的知识产权授权问题。"因为这是一张白纸式的设计,不会碰到有人去找IP(知识产权)方面的麻烦,"他说:"这也许是一个合理的假设,因为Linux的确有一些棘手的IP问题。"

要记住的是,这也可能就是学术性的。Fuchsia的开发者说他们会完整记录并最终发布这套操作系统,但要走的路还很长,而且还不清楚Google会不会给予其充分的支持。Android生态体系已经很庞大(并且正在跟Chromebooks进行合并)。与此同时,Google还在扩展Android的某个版本到物联网设备,这个带嵌入式特性的版本叫做Brillo——Linux的缺点见鬼去吧,它正在成为一个成熟的平台,而不仅仅是一个简单的操作系统。

还有,Unix开始只是一个志愿者项目,并未得到贝尔实验室的承认;Linux Torvalds做Linux也只是自己的爱好。也许几十年后,我们会讨论起 Fuchsia 当初在 Google 内部不太被重视的事情。


Read full article from Google为什么要从头开发一套新的操作系统Fuchsia?


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts