KVM原理简介——Linux 内核结构

操作系统内核设计一直分为两个阵营:单内核和微内核(性能和灵活性)

单内核(也叫宏内核)是指整个内核从整体上作为一个单独的大过程来实现,并且同时运行在一个独立的地址空间内。所有的内核服务都在这样的一个大的内核空间运行,内核之间的通信可以简单的实现为函数调用。如果使用单内核设计,每次对内核做出修改,都必须重新编译源代码,重新生成二进制文件。(简单高效,灵活性差)

微内核:功能被划分为多个独立的过程,每一个过程叫做一个服务器。多个服务器程序都运行在自己的地址空间,只有少量的核心的服务器运行在特权模式下,服务器之间的通信采用进程间通信机制。独立的服务器进程提高了系统的健壮性,但是进程间通信由于涉及内核空间和用户空间的上下文切换,其开销比函数调用大得多。

微内核被设计的尽量小,以方便内核的移植,当微内核本身被移植到新的平台时,就能够完成整个内核移植,因为其他服务依赖的是微内核,而不是直接依赖硬件。

Linux为了满足性能需要,采用了单内核,同时借鉴了微内核的精华:模块化涉及以及动态装在内核模块的能力(也就是说Linux内核是单内核与微内核混合的产物,Linux汲取了微内核的精华:其引以为豪的是模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。不仅如此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递)。除了进程切换、内存管理等核心内核功能,将大部分内核功能作为单独的内核模块涉及并实现,模块编译好后以单独的二进制文件的形式存在,内核在运行过程中,按照需求动态的加载并链接进入内核空间运行,对于不使用的模块还可以在运行的过程中动态卸载。既保证了内核的性能,也改进了传统单内核设计的灵活性。

KVM就是以内核模块的形式存在,为Linux内核增加了虚拟化的功能。

转载于:https://www.cnblogs.com/fengrenzw/p/3377896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值