这个问题说明了一切。当我说界面时,我的意思是用户完全与之交互。我具有丰富的C背景知识,并且足够了解基本的OS,但我不想重造该OS。使用Arch这样的Linux构建(或其他更好的方法),我想知道最合适,最广泛的方法成为操作系统的最低层。
我能想到的最接近的示例是Android Phone如何具有完全可用的界面以及由OS处理的用户权限,但这是经过修改的linux内核。修改内核是解决该问题的最佳方法,如果有的话,它可以用来建立诸如OpenGL之类的任何可视系统。
答案 0 :(得分:0)
在大多数系统上,一个人通过触发某种异常来访问操作系统。通常,处理器具有某种“触发调用系统服务的异常”指令。每个系统服务都由一个数字标识,该数字作为对异常的操作或作为寄存器值(取决于处理器)传递。
通常的做法是为每个设计为从某种高级语言调用的系统服务都具有包装功能。包装器将参数解包(通常在堆栈上),并使用这些参数设置硬件寄存器。然后,它触发异常以调用系统服务。这导致处理器进入保护模式并执行系统服务。系统服务完成后,包装程序将从硬件寄存器中提取返回值,然后将结果打包到调用方的返回参数中。