|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇简单介绍内核相关的基本概念。
6 C; X0 F- I7 C' M7 r! ]& `9 l# k# ^: l% d! ~& x) T+ i& b
主要内容:
6 y0 n8 x( ?% p' W2 z5 x6 d
0 U0 n# m: S+ w单内核和微内核' V+ \- v1 U! z \+ u; f$ z+ A
内核版本号
+ B" V5 H S8 [ F2 {- w a
6 G) d' A# t" j4 S8 M4 u4 p0 U8 w4 Y8 U# n
1. 单内核和微内核
- c) l+ s2 q1 F6 _ H 4 g1 p4 Y) `$ ^$ b7 R
原理% v" Y2 S9 D& E0 S6 p" O, W6 r
9 ?; e2 Y8 a# L+ y. h" e' F2 }$ P
优势
' z0 v0 K4 ?( _# @ D+ j l: M0 u7 z4 E
劣势
4 {6 G6 T, I: A- H" {1 k
: p: l% q( w, ^4 H单内核
- a' V* h7 g y" E! M/ |+ `
4 Q' ~2 Q3 e- y- Z( W) N/ j! N整个内核都在一个大内核地址空间上运行。 % N l4 V$ a v u* W0 w
1. 简单。$ m- f$ g9 m+ o) _ A4 n
2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。 一个功能的崩溃会导致整个内核无法使用。
) w: a7 Z w, F5 Q2 M6 C+ A8 K微内核
! j, U5 n1 G# l: R# b) T' ~# e7 m7 W
7 f9 P0 l% |( Y" F2 s4 i+ X2 \内核按功能被划分成各个独立的过程。每个过程独立的运行在自己的地址空间上。 1. 安全:内核的各种服务独立运行,一种服务挂了不会影响其他服务。 内核各个服务之间的调用涉及进程间的通信,比较复杂且效率低。/ `5 J W$ L+ q' I) @- q5 h
0 }- B$ `9 U# j, F7 b: H
3 g9 m; R) e$ c7 N) vLinux的内核虽然是基于单内核的,但是经过这么多年的发展,也具备微内核的一些特征。(体现了Linux实用至上的原则)
% B( f& q3 A# c- f2 d1 @7 Q: E
5 i$ G) d* a7 w+ }/ u3 K% M主要有以下特征:0 w3 H" i3 o; x, Q1 X
& `0 d6 Q( V# ~& e支持动态加载内核模块
* |: V. ]0 E/ E2 r" J7 C! [! z支持对称多处理(SMP)$ ]7 R" h9 e" z& M' [9 i* B9 K
内核可以抢占(preemptive),允许内核运行的任务有优先执行的能力
* {1 c: K2 h( l不区分线程和进程( @& X7 d9 @& P% K% c% l
2. 内核版本号; y& P* j; Y- a9 j
内核的版本号主要有四个数组组成。比如版本号:2.6.26.1 其中,
0 x7 k. d9 k d ]& a. V' y9 Q$ M! [$ A% a0 w6 V* P
2 - 主版本号
2 P1 y: n6 S* p, C1 z
" t1 @, d, K% h7 B% v! ?' ?6 - 从版本号或副版本号
4 ^/ g3 e1 C4 [' e# ~% Q$ T# f9 g3 }+ G
26 - 修订版本号+ N+ W; @! Y* U7 f. _: Q6 e
# a) u; `* ^6 d1 - 稳定版本号
, Y" }) ~) n+ t8 m" N: S; T
1 e, h2 h# T1 V/ L/ G副版本号表示这个版本是稳定版(偶数)还是开发版(奇数),上面例子中的版本号是稳定版。) s! g! u5 d5 m, }- v7 x/ Z% n
- u3 ^+ l/ l7 A
稳定的版本可用于企业级环境。5 |: k9 `3 u: [8 K" J
3 ]$ ^. F$ c. \1 s# ~* [; x1 \3 |
修订版本号的升级包括BUG修正,新的驱动以及新的特性的追加。
' j \' y6 V5 G# t' o( s$ K
) x" ~- |+ P! j7 B7 \: N稳定版本号主要是一些关键性BUG的修改。
0 W$ s9 f# g1 r5 p$ d9 {" l0 ?$ Q+ J' R9 x I, A+ q
|
|