【发布时间】:2018-06-11 13:11:12
【问题描述】:
我正在尝试查找是否有此概念的名称,以及是否已经做过类似的事情:
您是否知道任何操作系统(或任何内核设计范例),其中用户级程序不使用通常的陷阱/中断/cpu 指令技术发出系统调用,而是内核在任何时候都表现为运行时动态链接器运行可执行文件,以便内核加载可执行文件,定位未解析的系统调用,将它们附加到内核中适当的系统调用挂钩,然后运行可执行文件?
将可执行文件想象成存储在 ROM 芯片中的程序:系统加载 ROM,插入所有未解决的钩子,然后启动进程。我不是在考虑 ROM 程序,但我认为它澄清了这个想法。
编辑: 我并不是说应用程序在内核空间中运行。内核中的函数进入时会切换到内核空间,返回应用程序时会切换回用户空间。我的意思是所有关于“调用内核”的魔法都发生在内核中,因为内核和动态加载器是同一回事。用户级库就像没有内核一样(用户级库没有任何方法可以“调用内核”,但是缺少用户级库中某些功能的实现,因为加载应用程序时,内核会将它们挂钩到内核代码)。
【问题讨论】:
-
Windows 操作系统使用类似的东西(参见informit.com/articles/article.aspx?p=22442)
-
@xmojmr:很有启发性!非常感谢您指出这一点。也许我在想一个非常相似的方法,但我需要更详细地阅读这篇文章。
标签: linker operating-system kernel