一个隔开hal与langsys,用户态专用OS的设想

简介: 本文关键字:efi based os,native hosting oriented OS与 APP hosting oriented OS,将OS编程与硬件编程独立,将用户OS变为真正的APP空间。新dbcolinux和goblinux设计。

本文关键字:efi based os,native hosting oriented OS与 APP hosting oriented OS,将OS编程与硬件编程独立,将用户OS变为真正的APP空间。新dbcolinux和goblinux设计。

在《一个设想基于colinux,the user mode osxaas for both realhw and langsys》中,我们开始提到了一种用特定host/guest OS组合同时作装机和作app hosting for langsys的思路,主OS用来装机,guest os作用户空间的通用程序托管runtime/移殖层子系统/app容器/特定语言系统面向的开发运行langsys backend baas,—— 这种思路实际上是最初级的用双系统方案来解决分离传统OS和APP容器OS的思路。因为传统的docker式独霸业界的方式我始终无法完全接受,我想找到一个能用于本地实地远程装机运维,能用于开发和集成devops的虚拟化层面,这种层面要能用于legacy native方式,要以科学的集成方式在它应处在的层次,而不是现在docker和裸金属这样,高阶,仅用于云。

鉴于此,我一直在找这方面的案例和整合方法,一些努力在我们的后来的文章中被频繁提到,如在《兼容多OS or 融合多OS?打造实用的基于osxsystembase的融合OS管理器》《一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计》《去windows去PC,打造for程序员的碎片化programming pad硬件选型》中我们提到了其用于不同硬件平台融合和移殖子系统的用途部分,在《群晖+DOCKER,一个更好的DEVOPS+WEBOS云平台及综合云OS选型》《hyperkit:一个full codeable,full dev support的devops及cloud appmodel》中我们谈到了其用于appcontainer,devops和云架构,appmodel的部分。在《打造一个Applevel虚拟化,内置plan9的rootfs:goblin(1)》中,我们将其用到了具体APP(将plan9 rootfs集进app,treats os logic and app logic together,把file作为APP的逻辑)层。—— 以上其实都是结合使用二种one host/one guest或多种one host/multiple guests的架构,使之职责分离成硬件OS(传统OS)和APPOS的职责的具体过程,算是开头提到的那个初级思路的延伸。

最后,我在《DISKBIOS:统一实机云主机装机的虚拟机管理器方案设想》,《DISKBIOS:一个统一的混合OS容器和应用容器实现的方案设想(2)》希望将它整合成一个PE层。于是用了diskbios这个用词:它是从bios开始做起的。是通用高级BIOS。最后,我们在《一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计》《一个matepc,mateos,mateapp的goblinux融合体系设计》,《ubuntu touch: deepin pc os和deepin mobile os的天然融合》中提到了它用于第二PC的例子,—— 这都是选型研案,在整个《XAAS:the final all in one os》实践部分,我们在一步一步实现这样的一个系统:dbcolinux+goblinux。

新DBcolinux方向:dbcolinux based on efi

而如今,这种整合思路有了新的方向。

因为在《一个统一的bootloader efi设想:免PE,同时引导多个系统》中我们谈到这项工作可以做成EFI。那篇文章中我们还谈到EFI实际上可以发展为pe的替代,比如它可以发展内存管理相当于一个OS代替PE OS,更复杂化还可以集成hypervisor,这样做的好处是可以在一台PC上并行boot主OS和host os。同时作主PC和第二PC也可以自由分离。且可以用于云。同时不再需要另外的recovery。

其实在这个架构中,已经没有了HOST OS,所有的OS都是平等的。而且它还可以有另外一个天然的附带作用。—— 如果hypervisor足够简小。它可以以足够轻量化的方式本身成为一个可用于OS也可用于APP的架构。这样结合我们上面谈到的《hyperkit:一个full codeable,full dev support的devops及cloud appmodel》《打造一个Applevel虚拟化,内置plan9的rootfs:goblin(1)》。我们完全可以集进诸如hyperkit所用的虚拟机xhyve。这样,移殖层,融合,容器,applangsys backend baas,都可以以更简单和自然的方式达到了。

我们当然也可以组建传统的host/guest,我们也可以发展一个主OS。在这个主OS里组建复杂的OS生态系统。如vpnkit,datakit那样。做复杂的OS或容器集群。

新作用:goblin based on efi

还有一个更重要的特色,由于所有的OS都是用户态OS了。它分离了传统OS的职责。hal,mm等层面可以完全从用户态OS中分离出去,保留在那个efi os中。用户态的OS都是单一职责的app hosting os,这样的OS就是直接面向APP的了,可以叫APP OS。这样就降低了APP开发者的学习难度。也降低了通用编程学习新手的入阶难度— 因为它们从此不用再学习任何系统知识,处理任何系统编程。在APP os层面可以专心与一门语言绑定,或专心融入一种问题,或抽象方法,如plan9 all is file的理念,变成纯粹面向domain的专用OS。


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

qrcode.png

相关文章
|
4月前
|
Python
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
Python的`signal`模块提供了访问底层操作系统提供的信号机制的方式。信号是操作系统用来通知进程发生了某种情况(如用户按下Ctrl+C)的一种机制。
|
5月前
|
Linux Shell
蓝易云 - 【Linux-Day8- 进程替换和信号】
这两个概念在Linux系统编程和shell脚本编写中都非常重要,理解它们可以帮助你更好地理解和控制Linux系统的行为。
39 9
|
6月前
|
Unix Linux Shell
不同RTOS中POSIX接口的实现差异
本文探讨了在开发实时应用时使用POSIX API来实现跨平台和可移植性的策略。
91 1
不同RTOS中POSIX接口的实现差异
|
6月前
|
网络协议 Linux 数据处理
xenomai UDD介绍与UDD用户态驱动示例
Xenomai UDD(User-space Device Driver)是一种用户态设备驱动框架,允许用户态程序直接操作硬件,减少内核态切换和数据拷贝,提高实时性和性能。UDD与Linux的UIO(Userspace I/O)类似,主要区别在于中断处理,UDD基于RTDM和Xenomai调度,确保实时中断响应。示例展示了如何使用UDD进行GPIO操作,对比了UDD和RTnet在网卡收发包时的CPU耗时。UDD适用于中断少、重输出的场景,如GPIO输出和网络发包。
200 0
xenomai UDD介绍与UDD用户态驱动示例
|
6月前
|
存储 缓存 固态存储
Linux设备全览:从字符到块,揭秘每种设备的秘密
在Linux的世界里,设备是构成系统的基础,它们使得计算机能够与外界互动。Linux设备可以大致分为几种类型,每种类型都有其独特的特性和用途。🌌让我们一起探索这些设备类型及其特性。
|
存储 Shell Linux
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…
|
Linux 编译器 调度
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…-1
【Linux】Linux进程的理解 --- 冯诺依曼体系、进程描述符、状态、优先级、切换…-1
|
Linux 芯片
Linux 网络驱动 phy 读写寄存器调试方法
Linux 网络驱动 phy 读写寄存器调试方法
953 0
|
调度 监控 内存技术
进程描述和控制(os 笔记二)
进程描述和控制 ​ 计算机最初的主要任务之一就是高效的自动化我们的工作,完成用户交付的任务。而这种任务在计算机中的表示就是一个个的进程。从上一篇文章中描述的计算机的发展历史我们能发现,无论是单道批处理系统还是多道批处理系统,操作系统的目的都是围绕对进程的控制和调度,从而实现执行用户任务。
1118 0