内核作为动态链接器范例?

问题描述 投票:1回答:1

我试图找出这个概念是否有名称,如果已经做了类似的事情:

您是否知道任何操作系统(或任何内核设计范例),其中user-land程序不使用通常的trap / interrupt / cpu-instruction技术发出系统调用,而是只要可执行文件是内核,内核就会充当运行时动态链接器。运行,以便内核加载可执行文件,找到未解析的系统调用,将它们附加到内核中正确的系统调用挂钩,然后运行可执行文件?

可以把它想象成可执行文件是存储在ROM芯片中的程序:系统加载ROM,插入所有未解析的钩子,然后启动该过程。我不是在考虑ROM程序,但我认为它澄清了这个想法。

编辑:我不是说应用程序在内核空间中运行。内核中的函数将在输入时切换到内核空间,并在返回应用程序时切换回用户空间。我的意思是关于“调用内核”的所有魔法都发生在内核中,因为内核和动态加载器是相同的。用户土地库只是觉得没有内核(用户土地库没有任何“调用内核”的方法,但是用户土地库中的某些功能的实现却缺失了,因为内核将在加载应用程序时将它们挂钩到内核代码。

linker operating-system kernel
1个回答
1
投票

对于编写在内核空间中运行的模块,它的工作方式大致相同。像设备驱动程序可以直接调用另一个模块

对于用户空间应用程序来运行内核函数 - 它是不允许的,并且主要用于保护。在像DOS这样的早期操作系统中没有任何保护,实际上可以从任何应用程序调用任何代码。 BIOS功能实际上存储在EEPROM芯片和应用程序中,知道映射的地址,可以调用它们。虽然不是很好。

我从事内核模式模块已有10年了。事情本来可以改变。

© www.soinside.com 2019 - 2024. All rights reserved.