MicroKernel & Exokernel 操作系统未来可能的发展

MicroKernel 

可以叫做微内核,有人认为传统的monolithic kernel 提供的东西太多,我们可以给内核减负。

最典型的例子就是L4


micro kernel (图中的kernel)只提供最简单的服务,比如IPC (inter process communication), scheduling, address space

 剩下的都交给Server 去处理,Server 类似于传统的monolithic kernel 比如Linux, 但是需要改动,L4 把它改为L4Linux. 源代码修改,此外他们还修改了Windows XP (windows 并非完全的不开源,在授权的情况下可以看到源代码). 修改的目的,很简单:以前Server talks to hardware directly, 现在多加了一层 Kernel (L4),它处理所有的hardware interrupt, 然后作为message 传递给server, server 再传递给software.

比如浏览器process 需要一个network packet。 收到packet 以后,L4 作出interrupt,传给Server(比如L4Linux),Server 再与L4,通过IPC 请求packet内容,L4会map到L4Linux的address space,Server 再传给Software(e.g. Firefox). 

再比如page fault(由于内存容量有限,有些内容被暂时swap 到硬盘,application 想用的时候发现不在了,就产生page fault) 产生,首先处理interrupt的是Kernel, Kernel sends IPC to L4Linux, L4Linux从自己manage的physical memory 里面分一个page出来,给application,并更新自己的shadow page table(不是真正的page table) .L4Linux 产生一个返回值告诉L4, 已经完成。L4 updates its true hardware page table.


Micro Kernel 从设计之初的想法应该是高效的,反映速度快,因为很多东西都由user space(MicroKernel 可以有许多server,每一个Server都是user space)自己处理, user 甚至可以设计自己的File System, 而且使用IPC 非常简单。

最明显的特点是因为MicroKernel is light weighted,code 少,错误几率少。

但是缺点也很明显:IPC带来的overhead 很大,事实是micro kernel 比monolithic kernel 速度慢。

MicroKernel 类似于 Virtual Machine Hypervisor (比如:Xen, VMware ESXi), 但是他们的出发角度不同。Microkernel,还是Kernel,而hypervisor 目的在于把所有的hardware都抽象化,用户(Linux,Windows)根本不知道有Hypervisor的存在。(VMware上面的Virtual Machine 代码完全不需要修改,Xen 上面的需要修改,但是VM速度快)。

一个MicroKernel, 承载许多user level (Server),可以在上面快速切换,速度比Virtual Machine 快,在服务器上应该会得到广泛的应用。

Hypervisor , MicroKernel, Monolithic 区别:

http://www.perseus-os.org/content/pages/Hypervisor.htm


ExoKernel:


ExoKernel, 最大的特点是反应速度快。

传统的OS library 都是自己定义的, software 只能按照规则使用,OS会设计一些general 的system call 满足所有的application需求。但是有些Library 可能不能很好的适应这些library,想要使用自己的Library 更好的使用硬件 (比如:database, browser 都需要一些特殊的system call,OS不能很好的完成)

ExoKernel 打破常规决定让software 自己写library, 而它只负责管理(like a multiplexer)。这样给了application 自由度。

现在有趋势,所着互联网发展,browser 应用越来越广泛,地位非常重要,browser 为了达到最高的性能,会设计比如file system, cache.


另外著名的Windows NT(Windows XP Windows 7,Windows 8..)Mac OS属于Hybrid Kenrel(Micro & Monolithic),它们比Micro 多了device driver,application IPC 等。常用的OS,只有Linux属于Monolithic。 


Reference: 

[1] The  Performance  of p-Kernel-Based  Systems

[2] http://wiki.osdev.org/Microkernel

[3] Exokernel: An Operating System Architecture for Application-Level Resource Management

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目前主流的操作系统架构主要有以下几种: 1. 单体式架构(Monolithic Architecture):这种架构下,整个操作系统的所有功能模块都运行在同一个内核空间中,如传统的WindowsLinux操作系统。这种架构简单直接,但由于所有模块都在同一个内核空间运行,容易导致性能和稳定性问题。 2. 微内核架构(Microkernel Architecture):这种架构将操作系统的核心功能和服务进行分离,只保留最基本的功能在内核中,其他功能通过进程或者服务运行在用户态。常见的微内核操作系统有QNX和L4。 3. 外核架构(Exokernel Architecture):外核架构将内核的功能进一步裁剪,只提供硬件和资源的抽象接口,应用程序可以直接管理和控制硬件资源。这种架构提供了更高的灵活性和性能,但也增加了应用程序的复杂性。例子包括Xen和Barrelfish。 4. 虚拟化架构(Virtualization Architecture):这种架构通过虚拟化技术,在一台物理机上同时运行多个虚拟机,每个虚拟机可以独立运行一个操作系统。常见的虚拟化平台有VMware和VirtualBox。 5. 容器化架构(Containerization Architecture):这种架构将应用程序及其所有依赖项打包成一个容器,容器可以在不同的操作系统上运行,并且具有良好的隔离性和可移植性。常见的容器化平台有Docker和Kubernetes。 以上是目前主流的操作系统架构,不同的架构适用于不同的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值