EDA365电子论坛网
标题:
Linux内核设计与实现之内核简介
[打印本页]
作者:
pulbieup
时间:
2020-9-16 17:51
标题:
Linux内核设计与实现之内核简介
本篇简单介绍内核相关的基本概念。
" G: q" T( `) _' Q$ x
. x7 d/ Z% N/ j1 k; G0 V
主要内容:
* [% v' L* z h) e0 X, d% _
, n. w: W, U" f
单内核和微内核
3 f8 ]$ B6 U$ V% X' s6 z# A9 y
内核版本号
* a6 a. k" M) o7 M* V% `* B7 B
8 U, k3 c& g! Y2 J4 F$ S6 M/ B
. M- ?- D' C# g) T
1. 单内核和微内核
% K# m- ^# U. _8 G4 i$ i9 i
: _' W& Z1 m# m' s8 `! b5 N
原理
" y+ {5 L6 @! R* @3 s( N U
1 s% X0 p6 r7 a" v3 T1 B I7 O
优势
# j5 V6 O* a8 ]
# ^: k6 g( g. q3 j% `$ g: k
劣势
, J3 T- \9 N+ w* O; e! m
, `; r% v7 }( {! t3 ?& I- h3 G
单内核
1 }7 Y8 H+ F* P$ W8 M$ c% |
' b( r" o0 c9 ]# X4 I' D1 G
整个内核都在一个大内核地址空间上运行。
8 Z; o- T& l9 ~; X+ m% |6 g
1. 简单。
$ H% c- j; ?* [+ Q( A
2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。 一个功能的崩溃会导致整个内核无法使用。
# Y! b3 A, a5 {; [
微内核
6 C3 ~( h/ T6 M7 f1 Z( _
" @" ^4 b. J& x
内核按功能被划分成各个独立的过程。每个过程独立的运行在自己的地址空间上。 1. 安全:内核的各种服务独立运行,一种服务挂了不会影响其他服务。 内核各个服务之间的调用涉及进程间的通信,比较复杂且效率低。
* w6 T* [) {6 d5 N1 \
& h$ h+ [6 m5 U) Q: i& j
* X6 X" \! `, K( E) n
Linux的内核虽然是基于单内核的,但是经过这么多年的发展,也具备微内核的一些特征。(体现了Linux实用至上的原则)
4 L$ g A& S U
6 k. b! |$ H* p2 b+ ^
主要有以下特征:
' p# a' e8 i e' r7 A v
) _/ h; E' p" K) j A$ ]
支持动态加载内核模块
+ {9 ]; S( d7 q
支持对称多处理(SMP)
7 S' i* Y! Q2 n9 u" r9 x
内核可以抢占(preemptive),允许内核运行的任务有优先执行的能力
% t; E, X4 c; v; N
不区分线程和进程
! l5 |# _( t" J( g
2. 内核版本号
9 Y3 o. u8 A: \! Q P4 c; t* P
内核的版本号主要有四个数组组成。比如版本号:2.6.26.1 其中,
! _( L3 y- a) n+ o& X
k0 L G. X9 o. _
2 - 主版本号
6 }. W/ R2 C4 z; V' S* H2 W
; s1 I' n0 P( L* y$ Z, H( g
6 - 从版本号或副版本号
~" _' F. V" x7 b& ]
0 d3 U/ g c* L+ P1 M0 O
26 - 修订版本号
* A& k. o6 M8 z. f/ n( \* X
+ R& a& ]# n& c! r7 w! \
1 - 稳定版本号
, K* w3 c9 c& X$ k( O0 s6 K- p
0 K6 B; ` d, Y, z
副版本号表示这个版本是稳定版(偶数)还是开发版(奇数),上面例子中的版本号是稳定版。
2 Y& l- M5 q6 m
# V" V# D% R# z% d% g+ q) s7 a
稳定的版本可用于企业级环境。
- r! ^5 F& i' x+ i( I0 g" N
& s! W6 h1 A+ u+ z; v- `
修订版本号的升级包括BUG修正,新的驱动以及新的特性的追加。
! k# j: Z6 x) z
0 w6 k: [, `; ^6 C @
稳定版本号主要是一些关键性BUG的修改。
1 V, k1 s$ ?; ]) i' _0 X; ?2 V# v
' }& A% I% o) s. J
作者:
plug
时间:
2020-9-16 18:49
高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。 一个功能的崩溃会导致整个内核无法使用。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2