|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇简单介绍内核相关的基本概念。
0 _% }% T+ l, @2 i' X2 G" u! y5 J5 X% s2 K6 S8 l" I" J# R
主要内容:& L0 r3 `$ O; @6 `% ^' X
5 A3 q! F$ p' X# k- p' f
单内核和微内核
$ m4 t! Z" K# S& S内核版本号. ^$ B" y" D" w3 E' T- Q
/ H) Y8 M" G0 B0 Q" y' m5 G \
) e) E2 `" q+ P$ l. }: G& V1. 单内核和微内核. ~( V+ v5 F$ K& }1 M
$ ~: a' m1 E" ^ @, H" ^6 z! w
原理" @: z4 q3 @! @: P( z6 ^
3 d0 x- e% X: S7 W优势+ O) Z' J9 _# R) }0 J
$ K# D. W. ]' ?5 |! [劣势
9 l: |7 G( H& J
1 m4 q" h- x7 t7 o单内核+ `& Q. `: T3 C; ^, {8 A
* l3 Y# c$ {! m整个内核都在一个大内核地址空间上运行。
! n, v. w. D- e0 r1. 简单。7 u3 b. @3 G& ]# g% c
2. 高效:所有内核都在一个大的地址空间上,所以内核各个功能之间的调用和调用函数类似,几乎没有性能开销。 一个功能的崩溃会导致整个内核无法使用。2 u$ o0 F) X6 K" @$ \( P* E% V: q2 n0 n
微内核6 v* c5 H! i* M. H3 K4 `
8 b0 P& f7 X( ^* {! N内核按功能被划分成各个独立的过程。每个过程独立的运行在自己的地址空间上。 1. 安全:内核的各种服务独立运行,一种服务挂了不会影响其他服务。 内核各个服务之间的调用涉及进程间的通信,比较复杂且效率低。
5 Q) J+ m# u; X
! s/ E) V) @; A. F0 p' m+ n$ R+ u: T: W" Z
Linux的内核虽然是基于单内核的,但是经过这么多年的发展,也具备微内核的一些特征。(体现了Linux实用至上的原则)/ L0 L7 s. a, C) O2 ]% Q+ C
4 x; f5 j* M! y+ Z. _主要有以下特征:
$ Y" M) r7 M3 Z- z
1 I) B u( F }! R) y. c支持动态加载内核模块
/ V# J$ w* G" x B& J B支持对称多处理(SMP)8 @, n$ ^0 c U
内核可以抢占(preemptive),允许内核运行的任务有优先执行的能力
9 {# X2 S4 B# r) {不区分线程和进程
5 x/ R1 H* s4 |8 ^: F N2. 内核版本号& u: {, M0 e0 H$ V- Y
内核的版本号主要有四个数组组成。比如版本号:2.6.26.1 其中,
' M) F$ u/ k) _
! g! E$ h7 } S$ x; \: e2 - 主版本号$ F" F- `$ E, [" P) R a0 s
: V! q. A: D5 a5 P* ^
6 - 从版本号或副版本号5 e8 G& ?2 [! X, T0 s1 M
( V& F* A* H0 }/ O2 c: `" L& R6 T9 W26 - 修订版本号9 \" t/ N2 m* h9 S0 q) @ a% u2 V
) ?% T) I% u5 T1 P& z% T1 - 稳定版本号4 Y; s$ s" o+ w( D
! }. c9 Z m2 n
副版本号表示这个版本是稳定版(偶数)还是开发版(奇数),上面例子中的版本号是稳定版。
# V3 z: P! q1 k1 g! B1 ~! P" T, y7 B3 [: e) H& b& W! z; W2 {
稳定的版本可用于企业级环境。' e, V% w0 v: v7 q5 o4 u+ C" W
3 B& L, }* X8 ]0 }/ q
修订版本号的升级包括BUG修正,新的驱动以及新的特性的追加。
0 ~3 N A; ?/ N$ k9 ]' `
# r7 v1 P! L" j# z% U( ]稳定版本号主要是一些关键性BUG的修改。# w. ?' a6 O5 u# z7 e# P( N
6 U: w9 ^: b8 p. a1 |
|
|