分类:
2006-03-30 14:54:36
2.5 Operating system invocation and protection
有两种方法调用系统服务:
Ø 一个进程可能做系统调用
Ø 用户可以对一个运行中的命令解释器发命令来导致进程做系统调用。当收到用户命令后,解释器通过系统调用来创建进程,要分配内存与加载代码,分配处理器时间。
系统调用向上层提供可控的OS访问机制,而要保证整个系统安全稳定地运行,就要防止应用程序故意或者偶然地看到不该看的东西,或者做不该做的事情。很早的时候,这样的问题是不被考虑的。但多用户系统中,防止用户越权就是个必然的问题了。这是个硬件与软件结合的问题
/* 关于Linux kernel方面的一点东西:
从Intel 80x86开始支持四种不同的运行模式,但现在的Linux kernel(2.4)只用了其中的两级,0级为核心态,3级为用户态。cs寄存器(代码段寄存器)中有两位用来指明当前CPU的特权级别。*/
2.6 Operating system structure
随着系统规模的增大,人们开始考虑将系统功能分层做抽象,每层调用低层的接口并向高层提供服务(听起来像网络模型…)。然而,一些实践的系统中,比如THE (Dijkstra, 1968) ,并没有严格的层次结构,因为这样划分确实比较困难。但总的来说,至少系统的一部分还是有层次结构的。
Open operating system structure(1979)
è minimal kernel/lightweight kernel/microkernel
Advantages:
(1) The system configuration can be tailored for dedicated servers.
(2) It is easier to engineer and maintain.
(3) The services are easier to engineer, tune, update and maintain.
(4) The time spent executing the kernel can be bounded.
(5) The kernel provides efficient basic mechanisms; policies are expressed flexibly at user level. Programmers can control the relative priorities of user-level software.
Potential disadvantage: A given service will respond more slowly.