您需要了解有关Google在Chrome OS(也称为Project Crostini)中长达一年的秘密开发Linux应用程序功能的所有信息。简而言之,这是一种在Chrome OS上运行常规Linux应用程序而又不影响安全性或启用开发人员模式的方法。官方设置(尚不可用)指出 它是“在Chromebook上运行Linux工具,编辑器和IDE 。”
Crostini是数年开发的结晶,使该功能能够足够安全地运行以满足Chrome OS的高安全性标准。要了解为什么它只是出现,最好看看之前发生的事情。
以Crostini为背景-Chrome操作系统的黑暗时代
在Android应用程序出现之前,脱机功能的方式已不多,更不用说Chrome OS中有用的生产力应用程序了。为什么有理智的人会购买Chromebook?“这只是一个网络浏览器,”这是所有Chromebook评论的结尾。Chrome网上应用店数量不多,但选择的应用程序却很少,而且很少更新。喜欢冒险的人可以尝试使用称为ARC Welder的工具运行Android应用程序,但这是命中注定的,并且性能很差。
为了解决离线限制,沮丧的用户要么擦除了Chrome操作系统并安装了Linux,要么使用开源工具Crouton在Chrome操作系统内核之上设置了同时运行的桌面环境[例如Ubuntu Unity]。
运行替换的GNU / Linux发行版或Crouton需要一定的专业知识,并且经常布满错误-两种选择都不是特别用户友好或安全的。按下错误的键,您将擦拭设备或将其砌成砖,如果您未对Crouton环境进行加密,则任何来宾用户都可以访问它。
Android应用程序集成,开创先例
Android应用程序于2016年登陆Chrome操作系统,是离线功能的巨大飞跃,但启用此功能不只是即插即用。它可以在重视安全性的OS上运行的唯一方法是,如果将其有效地沙盒化。
Chrome OS开发人员选择的新颖解决方案是容器化,这是将应用程序捆绑为独立的可执行程序包的一种方式。他们使用容器并进行了多次调整,设法使完整的Android环境及其所有依赖项都可以在容器中运行,与其他在相同内核上运行的Chrome OS分开。
但是,通常不会在考虑桌面/笔记本电脑外形尺寸的情况下开发Android应用。将Chrome OS的糟糕触摸体验添加到组合中,如果应用程序完全可以工作,那么您的工作效率将令人沮丧。
到目前为止,虽然Android应用程序有助于弥合生产力差距,但仍然有大量的完整桌面应用程序库向往。与最初的Android问题一样,仅打开运行Linux应用程序的功能将增加Chrome OS的攻击面,因为恶意应用程序可以访问主机OS上的所有内容。因此,这一次开发人员在他们已经从Android中学到的知识之上,设计了尽可能孤立的Linux应用程序功能。
纵深防御
顾名思义,Crosstini就像Crouton,但与其在Chrome OS旁边没有不安全的用户空间,不如在它们之间留有两堵墙。首先是Termina VM,这是Chrome OS KVM(基于内核的虚拟机)实现。该虚拟机启动后,它将放置第二个墙-一个容器-然后它具有您实际要运行的应用程序。因此,当您要运行成熟的Klondike桌面应用程序时,它将在容器内部VM中运行。
从非技术角度来看,开发人员尚未使面向公众的文档特别容易理解,但是从我的非官方外行阅读中,Chrome OS的软件架构现在可能看起来像这样[请注意:所有工作都是我自己完成的,绝对不是Chrome操作系统小组的正式文件,可能完全不真实,请不要伤害我]: