一个设想:基于colinux,去厚重虚拟化,共盘直接文件系统安装运行的windows,linux-阿里云开发者社区

开发者社区> 开发与运维> 正文

一个设想:基于colinux,去厚重虚拟化,共盘直接文件系统安装运行的windows,linux

简介: 关键字:uniform windows,linux diskbios,虚拟机作为装机系统,元操作系统host,共用盘windows,linux设计。。diskbios,带iaas的云装机。。

关键字:uniform windows,linux diskbios,虚拟机作为装机系统,元操作系统host,共用盘windows,linux设计。。diskbios,带iaas的云装机。。

在《除了LINUX,我们真的有可选的第二开源操作系统吗》中的未尾说过,windows起码有一个先天优势是它整合图形到内核,这当然不仅是发布方式上的区别(windows整块地发布交到用户手里,而linux厂商各自为政,内核和桌面分别发布生态碎片化),还可能是导致更深层的区别发生的地方(比如渲染性能和游戏生态,而windows2008后才有类xming的remoteapp) —— 可综上,一定程度上它的确直接导致了linux依赖太多专业的配置,好用的linux发布版太少。都不及windows那样“亲民”的现象。根本上,windows,linux这二者分歧从生态的开始处就过大,除了界面,使用的文件系统都不一样,文件系统这种鸿沟尤其巨大,导致从装机阶段开始不同的磁盘格式不能共存一区(forget the virtual filesystem or image),进而导致了后来体验等一系列后来难题。这二者鸿沟是天生就巨大而存在的。——- 这是它们的哲学和选择问题 。

可,之于用户,我们总希望有一套统一的从头开始的体验方案,至少,我们希望有一致的可安装到的文件系统而不致于要分二个区安装不同的OS处理复杂的硬盘分区和互访问题。我们还希望天生集成界面拥有图形文件浏览器的装机和使用环境,能直接以统一直观的方式操作计算机本身和最重要的文件资源,然后视需求使用不同的操作系统(windows,linux只是一个内核导致的区别而已,如果能共存并同时运行,那么即使linux不能拿来玩游戏开开服务器程序也是好的,合理共存才是大流。),这就有点虚拟机as装机系统的味道了。——- 更科学使用PC,在PC资源允许范围内,使不同的OS完全可以像安装应用一样被安装进来且运行多开运行,这个考虑的诞生是无比自然的,这就要求一套统一的装机和容器/虚拟方案。

没有一个平坦的统一入口反而正是win系,unix系的最大区别,我们的工作是提出一套方案,让windows,linux从入口变得体验平坦,统一,包括上面说到的图形集成发布和统一的文件系统,都可能是我们要解决或集成的对象:
图形问题好解决,往linux集成就够了。
从装机端,搞一个共用的文件系统出来。。这个umsdos已经做过了。然而方案并不完善。

至于共用,有龙井核心这样的方案,或WINE或CYGWIN这样的东西,这些都是OS内部集成层面的,虚拟/虚拟机和多开OS,才是我们这里谈到的外部全局,“PC装机”级相关的那些问题。
这些虚拟多开方案有像COLINUX这样的往实机同时安装不同的操作系统这种自然,简单原始的方案,和现在虚拟机,和基于虚拟机和云计算下的IAAS一样的方案。前者colinux将是我们要采取的。

虚拟机or colinux?

虚拟机有虚拟机的缺点,IAAS也是如此,iaas中,必然的一步,是将传统的os分裂成虚拟子计算单元的os部分。分布式运算从OS环境开始的计算,称为云计算,它往往与kvm,qmeun,vmware,hyperv等虚拟机方案结合使用。

云计算基本就是一个将本地计算能力虚拟化的过程,比如平台虚拟化iaas,语言后端虚拟化baas+baas,应用容器虚拟化docker,甚至库中间件化,software+api服务化saas+microservie app化 … —-其中的平台和应用虚拟化是重头,在不同层级有不同实现,然而它们都属于过设计,单生态和虚拟化的问题就是:使一切步入单生态,不断虚拟化的”怪圈”。

而很多单生态设计有问题,比如java langsys,同理,有很多虚拟化,比如iaas,paas,(docker,虚拟机,vboot,vm langsys,云端软件系统,)都是过设计,不当设计,会导致问题。。虚拟化这种东西,除非有好的封口,否则不宜做在用户层,要封好做在用户不可见的系统层,要么干脆不做虚拟,因为始终会导致问题。“不要过早优先”始终是编程界的格言,编程其实是语言系统作为软件的应用的过程,这句话的底音依然是:各软件抽象应该合理推迟到它们应该处在的地方,不要过早地替用户下决论。

所以,关键是如何去“整合”。

而回归整合才是本质,抽象不应提出新的中间层,而是掩埋旧中间层的过程。colinux这种才是从原始的方案着手,是“在入口处提出更多平坦化”和非厚重虚拟化方案。

我们要达成的方案:去虚拟,尽量平坦,推迟面向虚拟的集成

我们要解决的问题有三:

1,我们要能在PC终端机上,物理实机,VPS上,和虚拟过一次的云主机上,不具备VT的任意机器上,IAAS母机上,都具备像安装应用一样安装OS的能力。

colinux完全可以是hadoop+kvm之类的东西,甚至openstack的iaas,paas,所幸它用的不是vm技术。而且,最新版的colinux特性支持的操作系统除了windows系列,居然还多了个Linux 2.6.x,它支持linux as host

可它居然用了windows为元系统且只运行于32下。。这就尴尬了。。64位能裂变出32位的子系统,32位甚至不能用尽4G的内存。。还是linux hosting windows好啊。。而不是反过来。。
2,为了在入口处足够平坦化,将虚拟化这种非到必要不必做的方案推迟到用户或后来,我们要保证linux/windows文件系统要共盘,最好像安装程序一样安装到同一个盘的不同目录。这样就解决了统一装机和以后多系统共享数据的问题。

umsdos还是不够好用的。然而这是一个很好的项目,我不知道它为什么在linux内核中被放弃了。反向使windows具备能安装到ext2的能力也是一个考虑方向。在umsdos这样的方案达成后,可以使colinux直接mount文件夹从中启动。
3,making colinux to be the meta os,not only the hosting os:

未来可能会做一个diskbios装机核心,以colinux为基础作为metaos,使windows也可以作为colinux的guest os。

————————

如果以上1,2,3最终能形成一个diskbioslinux装机系统的东西,或虚拟平台,那么它支持任意环境的多OS多开,对于应我之前提出的anti应用虚拟化enginx,它是anti平台OS虚拟化方案。而基于qtcling的langone可以使不同语言共享一个运行时和一个生态,用的也是anti语言虚拟机的方案,这三者共同组成1ddsoft demo series的基础建设部分(平台,语言,应用)。都是为了解决业界不断过设计导致的问题而提出的。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章