文档章节

微内核与单内核比较

twins
 twins
发布于 2014/06/12 14:33
字数 502
阅读 28
收藏 0
点赞 0
评论 0

1.单内核

    单内核也叫集中式操作系统。整个系统是一个大模块,可以被分为若干逻辑模块,即处理器管理、存储器管理、设备管理和文件管理,其模块间的交互是通过直接调用其他模块中的函数实现的。

    单内核模型以提高系统执行效率为设计理念,因为整个系统是一个统一的内核,所以其内部调用效率很高。

    单内核的缺点也正是由于其源代码是一个整体而造成的,通常各模块之间的界限并不特别清晰,模块间的调用比较随意,所以进行系统修改或升级时,往往“牵一发而动全身”,导致工作量加大,使其难于维护。

2.微内核

    微内核是指把操作系统结构中的内存管理、设备管理、文件系统等高级服务功能尽可能地从内核中分离出来,变成几个独立的非内核模块,而在内核只保留少量最基本的功能,使内核变得简洁可靠,因此叫微内核。

    微内核实现的基础是操作系统理论层面的逻辑功能划分。几大功能模块在理论上是相互独立的,形成比较明显的界限,其优点如下:

    1. 充分的模块化,可独立更换任一模块而不会影响其他模块,从而方便第三方开发、设计模块。

    2. 未被使用的模块功能不必运行,因而能大幅度减少系统的内存需求。

    3. 具有很高的可移植性,理论上讲只需要单独对各微内核部分进行移植修改即可。由于微内核的体积通常很小,而且互不影响,因此工作量很小。


© 著作权归作者所有

共有 人打赏支持
twins
粉丝 4
博文 92
码字总数 27330
作品 0
哈尔滨
程序员
【Linxu内核设计与实现】-第1章 Linux内核简介

第1章Linux内核简介 主要内容: 认识Linux内核与Linux操作系统 1.1 Unix的历史 (1)Unix的产生及发展。 (2)Unix强大的根本原因: 很简洁 所有东西都被当做文件对待 C语言实现,可移植性性...

fengyuwuzu0519 ⋅ 2017/12/12 ⋅ 0

13.3、linux kernel介绍

1、centos系统启动流程: post(检测硬件环境)--->bootloader(根据bios中的设置去查找从哪个设备启动,然后根据选择的设备上的mbr去引导grub的第一阶段,启动系统)--->加载内核(运行放置...

嘀充值成功 ⋅ 01/06 ⋅ 0

虚拟化三剑客专题-Hyper-V(上)

微软在2003年收购了推出虚拟化Virtual PC软件的Connectix公司标志着进入虚拟化领域,并在其后推出了Virtual Server服务器虚拟化软件。但是面对占据一大半市场份额的VMware/Xen等产品,微软对...

hardywang ⋅ 2015/12/22 ⋅ 0

微内核多任务分时图形化操作系统--ulios

ulios1是黒木的毕业设计课题,它是一个简单的单内核多任务分时图形化操作系统。由于设计的疏漏和时间的限制,已经无法继续一些更高级的开发了。 ulios2在ulios1的基础上进行了结构、算法的重...

匿名 ⋅ 2010/06/13 ⋅ 0

linux内核编译与系统调用日志收集系统调用

linux内核编译与系统调用日志收集系统调用 一.内核编译 Linux内核的体系结构是单内核的,但是充分的采用了微内核的设计思想,使得虽然是单内核,但是工作在模块化的方式下,并且这个模块可以...

苹果与牛顿 ⋅ 2017/11/23 ⋅ 0

Linux kernel 的设计是否已经过时?

Linux 多年来取得的成绩毋庸多言。但最近,redditor 上有人发起了一个话题,想知道 Linux 的内核设计是否已经过时,并得到了一些有趣的答案。 这位 RonisBR 的用户提问大致如下: Linux 是在...

王练 ⋅ 2017/05/15 ⋅ 34

驱动的定义、分类、安全性

以下内容源嵌入式课程的学习,如有侵权,请告知删除。 1、驱动的概念 狭义上,驱动程序专指操作系统中的用来操控硬件的代码。 2、linux体系架构 (1)分层思想; (2)驱动的上层是API(即应...

oqqHuTu12345678 ⋅ 2017/05/09 ⋅ 0

FreeRTOS 之 在Cortex-M中应用时的中断优先级设置

  由于不同的Cortex-M系列,其中断优先级是不一样的,所以事先搞清楚所用MCU的中断优先级有几种。在CMSIS 库中的头文件中可以查看优先级的数量   FreeRTOS的中断嵌套结构被分为两组,一组...

zcshoucsdn ⋅ 05/05 ⋅ 0

Windows和Linux设计和原理哪个系统更先进呢?

导读 作为一个写了多年C++/VC++代码,在Windows和Linux平台都做过开发的程序员,仅从操作系统内核的角度看,Windows无疑更先进一些。不说别的,Windows10上有WSL(Windows Subsystem for Lin...

问题终结者 ⋅ 06/07 ⋅ 0

windows中断请求级(IRQL)

windows是完全按照模块化设计的,那么它很重要的一个概念就是“交互”。在linux中,没有所谓的“交互”,如果非要对应一个,那么交互就是函数 调用,而windows的内核却不是这样简单。这也许就...

晨曦之光 ⋅ 2012/04/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 17分钟前 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 49分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部