7

我一直在阅读 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.

根据我对虚拟机的了解,有两种类型的系统虚拟机和进程虚拟机。我知道 AROS 不是系统虚拟机,但所有进程虚拟机都类似于 Java JVM、Mono、Python、Ruby 等。它们都与特定语言接缝。AROS 似乎是一个在用户模式下运行的完整系统/平台,类​​似于用户模式 ​​Linux。

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

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

AROS 托管的一个很好的术语是“API 仿真”。API 是 Application Programmer's Interface 的三个字母的首字母缩写词。简而言之:API 提供程序员可以使用的(C 语言)函数。AmigaOS API 包含大量库调用,Amiga 程序员可以使用这些库调用来制作 Amiga 程序。AROS 模拟 AmigaOS API:它尝试提供与 AmigaOS 相同的库调用。Amiga 模拟器,例如阿联酋;模拟 Amiga 计算机:处理器、连接的硬件,一切。这有它的优点,比如能够在不同的硬件上玩二进制 Amiga 游戏,也有它的缺点,比如不能在“真实”处理器上将模拟器用作“真实”操作系统。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这样的系统吗?

我想做这样的东西,可以在许多操作系统上托管。

4

1 回答 1

0

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

内核架构的分类不像物种甚至头发颜色那样严格。像(微|单片|虚拟)内核这样的术语比分类分区更模糊的描述。这有助于将啤酒卖给有争议的极客。

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

但是这两个(UNIX,管理程序)都呈现虚拟机,只是具有不同的抽象。UNIX 虚拟机可能有一个优先级的概念,即一个进程确定它应该或多或少地优先使用 CPU 或内存资源;而纯虚拟计算机(管理程序)将无法传达这样的概念。

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

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

实际问题:

..还是我错过了什么..?AROS 可以将自己嵌套在 Linux 环境中,不会将 Linux 环境泄露给它的客人。在这种模式下运行内核通常称为托管。请参阅 gvisor 示例,了解您可以如何做到这一点,甚至无需成为 root。

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

于 2019-03-08T14:23:45.417 回答