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

zei*_*tue 7 kernel virtual-machine microkernel amiga

我一直在阅读AROS,尤其是托管版本.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.
Run Code Online (Sandbox Code Playgroud)

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

AROS托管:操作系统中的操作系统?

AROS最初是在基于Intel的计算机上运行的Linux上开发的.但它可以运行在更多的机器和操作系统上.这可能听起来很奇怪:运行在其他操作系统之上的操作系统,这是仿真,对吧?

AROS托管的一个很好的术语是"API仿真".API是Application Programmer接口的三个字母的缩写.用简单的英语:API提供程序员可以使用的(C语言)函数.AmigaOS API包含一系列库调用,Amiga程序员可以使用它来制作Amiga程序.AROS模拟AmigaOS API:它尝试提供与AmigaOS相同的库调用.Amiga仿真器,如阿联酋; 模拟Amiga计算机:处理器,连接的硬件,一切.这有其优点,例如能够在不同硬件上播放二进制Amiga游戏,以及它的缺点,例如无法在"真实"处理器上将模拟器用作"真实"OS.AROS托管在"真正的"处理器上运行.但它不是"真实的" 操作系统,除非你以不需要Linux的方式运行.这被称为"原生"AROS.

AROS可以在Intel和Amiga计算机上本机运行,但不如在Linux上运行.AROS库函数首先在Linux下运行,内部使用Linux内核和库调用.这样,程序员就有机会首先关注整个系统的实现,并在以后的体育场中打扰技术细节.人们正在努力使"原生"AROS更加有用.结果非常令人印象深刻,完全可以将AROS-native用作IBM PC兼容机器上的真实(且唯一)操作系统.

当然,AROS不仅仅是一个API模拟器.它还试图为所有AmigaOS 3.1系统软件提供替代品,你也会发现AROS附带的一些演示和游戏,只是为了表明它们有效 - 我们可能只占整个系统的77%,但我们已经有Quake运行了!

从这些信息中可以看出,当用作虚拟机时,AROS kernel.resource只是包装了Linux内核的系统调用接口?或者我错过了什么

另外还有像AROS这样的其他系统吗?

我想制作一些可以在许多操作系统上托管的东西.

mev*_*ets 0

(编辑注意:这个问题征求意见,因为我固执己见......):

\n\n

内核结构的分类并不像物种甚至头发颜色那样严格。像(微|单片|虚拟)内核这样的术语比分类分区的描述更加模糊。这有助于向好争论的极客推销啤酒。

\n\n

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

\n\n

但这两者(UNIX、虚拟机管理程序)都提供虚拟机,只是抽象不同。UNIX 虚拟机可能有优先级的概念,进程据此确定它应该或多或少地优先获得 CPU 或内存资源;而纯虚拟计算机(管理程序)则无法传达这样的概念。

\n\n

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

\n\n

所以,是的,您可以在内核下运行内核,直到满足您的愿望。Linux 很有趣,如果你通过 google 搜索一下,你可以弄清楚如何构建一个使用 qemu-* 作为加载器的容器,这样你的分区就可以在 x86 机器上运行arm bash并无缝运行arm和x86二进制文件。当你向你的朋友展示这个时,他们会取笑你。

\n\n

实际问题:

\n\n

..或者我错过了什么..?AROS 可以将自身嵌套在 Linux 环境中,不会将 Linux 环境泄露给来宾。在这种模式下运行内核通常称为托管。请参阅 gvisor 的示例,了解如何在不成为 root 的情况下做到这一点。

\n\n

还有其他类似AROS的系统吗?无数。

\n