Kernel 托管内核和虚拟机之间的差异

Kernel 托管内核和虚拟机之间的差异,kernel,virtual-machine,microkernel,amiga,Kernel,Virtual Machine,Microkernel,Amiga,我一直在阅读有关AROS的文章,尤其是托管版本。阿罗斯说了以下几点 从我所读到的关于虚拟机的内容来看,有两种类型:系统虚拟机和进程虚拟机。我知道AROS不是一个系统虚拟机,但是所有的过程虚拟机都像Java JVM、Mono、Python、Ruby等,它们都是特定于语言的。其中,AROS是一个在用户模式下运行的完整系统/平台,有点像用户模式Linux AROS hosted:操作系统中的操作系统 AROS最初是在基于Intel的Linux上开发的 电脑。不过,它可以在更多的机器和操作系统上运行。

我一直在阅读有关AROS的文章,尤其是托管版本。阿罗斯说了以下几点

从我所读到的关于虚拟机的内容来看,有两种类型:系统虚拟机和进程虚拟机。我知道AROS不是一个系统虚拟机,但是所有的过程虚拟机都像Java JVM、Mono、Python、Ruby等,它们都是特定于语言的。其中,AROS是一个在用户模式下运行的完整系统/平台,有点像用户模式Linux

AROS hosted:操作系统中的操作系统

AROS最初是在基于Intel的Linux上开发的 电脑。不过,它可以在更多的机器和操作系统上运行。 这听起来可能有点奇怪:一个操作系统运行在另一个操作系统之上,这很奇怪 模仿,对吗

AROS托管的一个很好的术语是“API仿真”。API是一个 应用程序程序员接口的三个字母缩写。平淡无奇 中文:API提供程序员可以使用的(C语言)函数 使用。AmigaOS API由Amiga调用的库负载组成 程序员可以用它来制作一个Amiga程序。阿罗斯模仿阿美加人 API:它试图提供与AmigaOS相同的库调用。阿美加 仿真器,如阿联酋;模拟Amiga计算机:处理器 连接硬件,一切。这有它的优点,比如 能够在不同的硬件上玩二进制Amiga游戏,并且 缺点,比如不能将模拟器用作“真正的”操作系统, 在“真实”处理器上。AROS托管运行在“真实”处理器上。但是 它不是一个“真正的”操作系统,除非你以这样一种方式运行它 需要Linux。这被称为“本地”AROS

AROS可以在Intel和Amiga计算机上本机运行,但并不完全如此 它也可以在Linux上运行。AROS库函数是用来运行的 在Linux下,首先在内部使用Linux内核和库调用。 这样,程序员就有机会为 首先是整个系统的实现,然后再去操心 技术细节在稍后的体育场。人们目前正在进行研究 使“本地”ARO更加可用。结果令人印象深刻 而且完全可以使用AROS native作为真实的(且仅限于此) IBM PC兼容机器上的操作系统

当然,AROS不仅仅是一个API仿真器。它还试图提供 替换所有AmigaOS 3.1系统软件,您还将 找到一些AROS附带的演示和游戏,只是为了说明这一点 它们起作用了——我们可能只占整个系统的77%,但我们 已经有地震了

从这些信息中,我了解到AROS kernel.resource在用作虚拟机时只是包装Linux内核的系统调用接口?还是我遗漏了什么

此外,还有其他类似AROS的系统吗

我想做一些像这样的东西,可以在很多操作系统上运行

(编辑注意:这个问题需要一个意见,因为我很固执己见……:

内核架构的分类没有物种甚至头发颜色那样严格。像(微|单片|虚拟)内核这样的术语比分类分区更模糊。这有助于向爱争论的极客出售啤酒

所有内核都呈现某种虚拟机。在UNIX中,它通常是用户模式指令集+执行各种操作的一组系统调用的解释+一些CPU作为线程。这个抽象机器可以执行其他规则,例如内存类型(堆栈、堆、文本)的位置和范围。在虚拟化内核中,它通常是整个指令集、一组CPU、内存和设备。在大多数情况下,对内存的访问由虚拟化内核(公共:hypervisor)仲裁,设备通过解释对它的访问在hypervisor中实现,系统指令由hypervisor模拟

但这两种(UNIX、hypervisor)都提供了虚拟机,只是具有不同的抽象。UNIX虚拟机可能有一个优先级的概念,通过这个概念,进程可以确定它在cpu或内存资源方面或多或少是有利的;而纯粹的虚拟计算机(hypervisor)将无法传达这样的概念

无论环境如何,在我的执行单元(进程、vm)内,我可能会选择制定自己的线程、进程、设备和交互的运行时概念。gvisor项目提供了这个概念的一个相当完整的实现,但即使是golang运行时也将golang程序与底层内核分离。对于倾向于将内核视为更具特权的共享库的C程序员来说,这是一个相当陌生的概念

所以,是的,你可以在内核下运行内核,直到你内心的愿望得到满足。linux的乐趣在于,如果你在谷歌上搜索,你可以找到如何构建一个使用qemu-*作为加载程序的容器,这样你的分区就可以在x86机器上运行arm bash,并无缝地运行arm和x86二进制文件。当你向你的朋友展示这个时,他们会取笑你

实际问题:

。。还是我遗漏了什么。。?AROS可以将自己嵌套在Linux环境中,这样它就不会将Linux环境泄漏给它的客户机。在此模式下运行内核通常称为托管。参见gvisor,了解如何在不成为根的情况下实现气密性

还有其他类似AROS的系统吗?不计其数

kernel.resource contains AROS microkernel. It's the lowest level component,
which is responsible for handling CPU and motherboard. For
hosted ports kernel.resource contains a virtual machine.