搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
从前慢现在也慢
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
I.MX6U-ALPHA开发板(汇编 LED 灯实验)_正点原子m6ull拨码开关
2
搜索引擎3Dfindit.com让艰难的工程数据搜索变得简单
3
python3使用browsercookie库访问Cookie总结【谷歌浏览器访问失败,火狐正常】_browsercookie失效
4
PHP(9):将上传的Word文件保存到MS SQL Server数据库_上传word文件到数据库
5
利用openssl生成SM2公私钥对_openssl csr p10 sm2
6
Runes 生态一周要览 ▣ 2024.3.25-3.31|Runes 协议更新 BTC 减半在即_符文协议runes生态
7
【NLP】句法信息在机器翻译(machine Translation)的应用
8
2020年第十一届蓝桥杯省赛B组真题:回文日期_蓝桥杯 2020年省赛b组 回文日期
9
ERROR: Unable to determine org.gradle.api.plugins.AndroidMavenPlugin argument #1: missing parameter_org.gradle.api.plugins.mavenplugin
10
【Mo 人工智能技术博客】基于垃圾目标检测任务的YOLOv5初探_基于yolo的垃圾识别分类
当前位置:
article
> 正文
单内核(Monolithic Kernel或Macrokernel(宏内核))_单内核和宏内核
作者:从前慢现在也慢 | 2024-03-27 13:08:01
赞
踩
单内核和宏内核
单内核(Monolithic Kernel或Macrokernel(宏内核))
微内核(Microkernel kernel)
下面是我摘录《linux内核注释》的一部分:
Linux大部分都是单内核的
操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,这些术语定义如下:
l 微内核(Microkernel kernel)――在微内核中,大部分内核都作为独立的进程在特权状态下运行,它们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,如果在设计中有一个系统调用模块,那么就
必然有一个相应的进程来接收系统调用,并和能够执行系统调用的其它进程(或模块)通讯以完成所需任务。
在这些设计中,微内核部分经常只不过是一个消息转发站:当系统调用模块要给文件系统模块发送消息时,消息直接通过内核转发。这种方式有助于实现模块间的隔离。(某些时候,模块也可以直接给其它模块传递消息。)在一
些微内核的设计中,更多的功能,如I/O等,也都被封装在内核中了。但是最根本的思想还是要保持微内核尽量小,这样只需要把微内核本身进行移植就可以完成将整个内核移植到新的平台上。其它模块都只依赖于微内核或其它模
块,并不直接直接依赖硬件。
微内核设计的一个优点是在不影响系统其它部分的情况下,用更高效的实现代替现有文件系统模块的工作将会更加容易。我们甚至可以在系统运行时将开发出的新系统模块或者需要替换现有模块的模块直接而且迅速的加入系统。
另外一个优点是不需要的模块将不会被加载到内存中,因此微内核就可以更有效的利用内存。
l 单内核(Monolithic kernel)――单内核是一个很大的进程。它的内部又可以被分为若干模块(或者是层次或其它)。但是在运行的时候,它是一个独立的二进制大映象。其模块间的通讯是通过直接调用其它模块中的函数实现
的,而不是消息传递。
单内核的支持者声称微内核的消息传递开销引起了效率的损失。微内核的支持者则认为因此而增加的内核设计的灵活性和可维护性可以弥补任何损失。
我并不想讨论这些问题,但必须说明非常有趣的一点是,这种争论经常会令人想到前几年CPU领域中RISC和CISC的斗争。现代的成功CPU设计中包含了所有这两种技术,就像Linux内核是微内核和单一内核的混合产物一样。Linux内
核基本上是单一的,但是它并不是一个纯粹的集成内核。前面一章所介绍的内核模块系统将微内核的许多优点引入到Linux的单内核设计中。(顺便提一下,我考虑过一种有趣的情况,就是Linux的内核模块系统可以将系统内核转
化成为简单的不传递消息的微内核设计。虽然我并不赞成,但是它仍然是一个有趣的想法。)
为什么Linux必然是单内核的呢?一个方面是历史的原因:在Linus的观点看来,通过把内核以单一的方式进行组织并在最初始的空间中运行是相当容易的事情。这种决策避免了有关消息传递体系结构,计算模块装载方式等方面的
相关工作。(内核模块系统在随后的几年中又进行了不断地改进。)
另外一个原因是充足的开发时间的结果。Linux既没有开发时间的限制,也没有深受市场压力的发行进度。 所有的限制只有并不过分的对内核的修改与扩充。内核的单一设计在内部实现了充分的模块化,在这种条件下的修改或增
加都并不怎么困难。而且问题还在于没有必要为了追求尚未证实的可维护性的微小增长而重写Linux的内核。(Linus曾多次特别强调了如下的观点:为了这点利益而损耗速度是不值得的。)后面章节中的部分内容将详细的重新考
虑充足开发时间的效果。
如果Linux是纯微内核设计,那么向其它体系结构上的移植将会比较容易。实际上,有一些微内核,如Mach微内核,就已经成功的证明了这种可移植性的优点。实际的情况是,Linux内核的移植虽然不是很简单,但也绝不是不可能
的:大约的数字是,向一个全新的体系结构上的典型的移植工作需要30,000到60,000行代码,再加上不到20,000行的驱动程序代码。(并不是所有的移植都需要新的驱动程序代码。)粗略的计算一下,我估计一个典型的移植平均
需要50,000行代码。这对于一个程序员或者最多一个程序小组来说是力所能及的,可以在一年之内完成。虽然这比微内核的移植需要更多的代码,但是Linux的支持者将会提出,这样的Linux内核移植版本比微内核更能够有效的利
用底层硬件,因而移植过程中的额外工作是能够从系统性能的提高上得到补偿的。
这种特殊设计的权衡也不是很轻松就可以达到的,单内核的实现策略公然违背了传统的看法,后者认为微内核是未来发展的趋势。但是由于单一模式(大部分情况下)在Linux中运行状态良好,而且内核移植相对来说比较困难,但
没有明显地阻碍程序员团体的工作,他们已经热情高涨地把内核成功的移植到了现存的大部分实际系统中,更不用说类似掌上型电脑的一些看起来很不实际的目标了。只要Linux的众多特点仍然值得移植,新的移植版本就会不断涌
现。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/324351
推荐阅读
article
Linux
:
shell
命令运行原理
和
权限
的概念_a
linux
shell
和
linux
kernel
...
这篇文章主要讨论了
Linux
中
shell
命令的运行原理
和
权限
概念,包括文件类型、
权限
管理以及实际应用。同时介绍了粘滞位的...
赞
踩
article
linux
操作系统
基础知识(组成 |
Kernel
|
Shell
| 目录结构)_
linux
内核 ...
目录一、
linux
的组成1.1 组成结构1.2
Shell
与
Kernel
二、Linux
Kernel
2.1
linux
...
赞
踩
article
Linux
内核与
Shell
_a
linux
shell
和
linux
kernel...
前言 作为一名刚刚开始工作的小白,实习一段时间过后发现
Linux
真的很重要。能够熟练使用
Linux
不仅可以提高自己...
赞
踩
article
20220513-
rk3568
编译
linux4.19
的buildroot-2(
kernel
)_gha...
20220513-
rk3568
编译
linux4.19
的buildroot-2(
kernel
)rootroot@rootr...
赞
踩
article
Linux
Kernel
ccflags
/
Android
12 GKI_gki
内核
...
外部模块头文件的检索:当编译的目标模块依赖多个头文件时,kbuild对头文件的搜索位置有这样的规定:(1) 直接放置在 ...
赞
踩
article
git
下载
Android
kernel
源码
并进行编译_
android
kernel
/
arm64
.g...
一. 如何获取
Android
内核
源码
1 如果能够访问Google网站,则直接访问如下网站: https://sour...
赞
踩
article
如何将
linux
ko
档
copy
至
android
_
linux
kernel
ko
编译拷贝...
android
_
definintion.mak
_
linux
kernel
ko
编译拷贝
linux
kernel
ko
...
赞
踩
article
【ARM
Linux
系统
稳定性
分析入门及渐进 2 -- Kernel
Lockup
】_
linux
...
Softlockup用于检测
系统
调度是否正常,即软锁的情况,当发生Softlockup时,内核不能调度,但还能响应中断,...
赞
踩
article
【论文阅读】
LSKNet
:
Large
Selective
Kernel
Network
for
R...
这是南开大学在ICCV2023会议上新提出的旋转目标检测算法,基本原理就是通过一系列Depth-wise 卷积核和空间选...
赞
踩
article
Android
系统10
RK3399
init进程启动(十一)
内核
编译_
android
kerne...
配套系列教学视频链接: 安卓系列教程之ROM系统开发-百问100ask说明系统:
Android
10.0设备: FireF...
赞
踩
article
Android
/
Linux
内核
驱动
相关经典书籍大合集(
Linux
驱动
工程师必备)_
android
k...
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/articl...
赞
踩
article
全靠这份
Android
知识点PDF大全
,
详细
的
Android
学习指南
_
android
kernel
...
Android
系统庞大且错综复杂
,
今天小编将带领大家初探
Android
系统整体架构
,
一窥其全貌。引言本文作为Androi...
赞
踩
article
索骥馆-
编程语言
之《
Android
内核
剖析》扫描版[PDF]_
android
kernel
pdf
...
内容介绍: 《
android
内核
剖析》详细分析了
android
内核
的内部机制,包括窗口管理系统、activity管理系...
赞
踩
article
Memory
基础知识介绍_/sys/
kernel
/
debug
/
mali0
...
Memory
知识介绍目录一、内存分布二、Reserved
Memory
2.1 Reserverd
Memory
2.2 ...
赞
踩
article
从.Net到
Android
之八:
Android
宏
内核
和微
内核
_安卓
monolithic
kerne...
Android
刚学了点皮毛,突然中美之间发生贸易战争,突然Google被一纸禁令框住,然后我们就等待着鸿蒙系统的崛起。可...
赞
踩
article
OS之宏
内核
(
Monolithic
kernel
)
和
微
内核
(Micro
kernel
)详解_微
内核
和
宏...
内核
介绍Micro
kernel
:在Micro
kernel
中,大多数
内核
以特权状态作为独立的进程运行,它们通过消息传递进行...
赞
踩
article
相爱相杀
的
CP——初谈
Android
Kernel
与
Linux
Kernel
_
linux
kern...
当
Linux
社区决定将安卓踢出
Linux
Kernel
时,他注定犯下了一个大错。本是同根生,相煎何太急。这次我们来简单聊...
赞
踩
相关标签
linux
Shell
Linux 内核
c++
android
Android kernel
Android源码
Android内核编译
soft lockup
hard lockup
死锁
hung
hung task
论文阅读
目标检测
人工智能
Android系统
RK3399 内核
Linux Kernel
linux驱动
经典书籍
集合
Android
移动开发