问题标签 [microkernel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
111 浏览

linux - 内核如何管理虚拟内存

我只是想知道内核实际上是如何拒绝进程访问另一个内存区域的,例如,如果IP寄存器设置为0x41414141不是直接 cpu 指令,内核如何拒绝 cpu 访问物理内存中的该地址

另一个问题:

在调试应用程序时,我们看到的地址以及 libc 和共享库地址都在虚拟内存中,那么 cpu 如何访问不存在的内存?或者实际上内核如何在运行时告诉 cpu 该区域在物理内存中的位置

还有另一个问题,在 x86_32 arch syscalls issues by int 0x80 内核如何为自己保留一个软件中断号是如何发生的

0 投票
2 回答
114 浏览

openwhisk - 自定义 OpenWhisk Invoker 以使用微内核

我正在尝试自定义 OpenWhisk 以从 Invoker 而不是 Docker 调用微内核。目前是否正在努力添加此支持,或者包含我需要进行的更改的开发指南?我目前对代码的理解是,这将是一个实质性的项目。

编辑:为了更明确地提出这个问题,是否有关于如何摆脱容器概念的指导?还是将微内核视为抽象类型的容器会更好?

0 投票
1 回答
808 浏览

microkernel - seL4 和 Fuchsia 的内核在概念上有什么区别?

最初我认为 Fuchsia 是第一个广泛使用基于能力的安全性的内核,但看起来在 seL4 中它们也是主要的安全原语。

0 投票
1 回答
687 浏览

operating-system - Minix/Microkernel 中系统调用和内核调用的区别

从概念上讲,Minix 中的系统调用和内核调用有什么区别?

我有点理解像 Linux 这样的操作系统中的这种差异,但是在像 Minix 这样的微内核中呢?两种类型的调用是否相同?

0 投票
1 回答
143 浏览

windows - 为什么说 Windows NT 内核是混合模型?

根据 Wikipedia,Windows 内核是一种混合模型,这意味着它同时具有单片和微内核架构。

但是这两个定义是截然相反的:单体就是系统服务和核心功能都有一个共享的地方,微内核意味着没有一个共享的地方。

所以,我敢打赌,这意味着 windows 为某些共享空间,而对于其他系统服务和核心功能,它是分离的。

我正在尽力理解这一点,但这对我来说非常神秘,尽管我是一名专业的软件工程师。您是否有一个可能相关的示例,其中它是单片的并且它是微内核的?

和 Ubuntu 有什么相似之处,它与 Ubuntu 内核(据说是完全单片的)有多大不同?

0 投票
0 回答
104 浏览

c - 正确的过程和内存地址以在 sel4 微内核上设置 virtio-net 以太网设备

简而言之:

我正在尝试在 x86_64 虚拟机中运行 sel4 微内核,但无法使以太网接口正常工作。在 sel4 微内核上获得 Internet 连接(通过 vitio-net 以太网设备)的正确程序是什么?什么是正确的(内存)地址?

长版:

我已经使用 e1000 网络设备尝试了 camkes (picoserver) 示例,但无法让它们工作,所以我决定学习一些新东西并从头开始。此外,我决定使用 virtio-net(与 vhost 一起)而不是模拟 e1000 设备以获得更好的性能。我的计划是使用ethif_virtio_pci_init初始化一个eth_driver结构,然后将该结构传递给 picoTCP。现在我可以在 sel4 中找到 virtio PCI 设备,但我不确定如何正确访问它并ethif_virtio_pci_config_tethif_virtio_pci_init.

来自 libethdrivers virtio_pci.h 的一些信息:

所以ethif_virtio_pci_config_t我需要一个 uint16_t io_base 地址和一个指向 MMIO 基址的指针。

这是我到目前为止获得的信息:

据我了解,我现在需要将物理地址映射到虚拟地址。为此,我创建了一个 IO-mapper,但我不确定要映射什么。从 0x8000000 开始的整个 dma 区域还是只是 virtio 设备的地址?据我了解,新的虚拟地址将是我的 MMIO 基指针,但 uint16_t io_base 是什么?

到目前为止,这是我的代码,我不确定的部分在最后:

我读了很多关于 sel4 内核的文章,但我对 sel4 微内核(和 Linux 内核)的大多数概念仍然很陌生,所以我非常感谢任何提示和建议。我通常使用嵌入式、微控制器和更多“裸机”平台,想学习一些新的东西,但现在很多东西都很混乱。

0 投票
0 回答
24 浏览

c - 仅使用 Mach 和 Hurd 函数复制文件

我正在使用 Mach 开发 Debian GNU/Hurd。我被要求编写一个程序,给定两个参数(原始文件和目标文件),将一个文件复制到另一个文件中。我被要求只使用 Mach 和 Hurd 调用,例如mach_port_deallocate, mach_task_self, file_name_lookup, io_read, io_write

我是新开发的赫德,我真的迷路了,任何帮助都将不胜感激。

0 投票
1 回答
93 浏览

linux-kernel - Zircon 还是微内核吗?

Link1说“Zircon 由一个内核(/zircon/kernel 中的源代码)以及一小组用户空间服务、驱动程序和库组成”,但在早期,Link2声称“Zircon 由一个微内核组成以及一小组用户空间服务、驱动程序和库”。我很困惑,Zircon 还是微内核吗?</p>