《Linux内核设计与实现》笔记-1-linux内核简单介绍

一、Linux内核相对于传统的UNIX内核的比較:

(1):Linux支持动态内核模块。

虽然Linux内核也是总体式结构,但是同意在须要的时候动态哦卸除(rmmod xxx)和载入内核模块(insmod  xxx.ko).

(2):Linux支持对称多处理(SMP)机制,虽然很多UNIX的变体也支持SMP。可是传统的UNIX并不支持这样的机制。

(3):Linux内核能够抢占(preemptive)。在Linux 2.4以及曾经的版本号都是不支持内核抢占的。在Linux 2.6以及以后就支持了。

(4):Linux内核不区分线程和进程的。对于内核,全部的进程都是一样的。仅仅只是当中的一些资源共享而已。

二、单内核和微内核的差别

         单体内核:大内核。将OS的所有功能都做进内核中,包含调度、文件系统、网络、设备驱动器、存储管理。

比方设备驱动管理、资源分配、进程间通信、进程间切换管理、文件系统、存储管理、网络等。

单体内核是指在一大块代码中实际包含了所有操作系统功能,并作为一个单一进程执行。具有唯一地址空间。

大部分UNIX(包含Linxu)系统都採用的单体内核。

       微内核:微内核与单体内核不同。微内核仅仅是将OS中最核心的功能增加内核,包含IPC通信、地址空间分配和主要的调度,这些东西处在内核态执行。如:WINCE系统。

而其它功能如设备驱动、文件系统、存储管理、网络等作为一个个处于用户态的进程而向外提供某种服务来实现。并且这些处于用户态的进程能够针对某些特定的应用和环境需求进行定制。有时,也称这些进程为server。

三、Linux内核版本号


四、Linux内核开发的特点

(1):内核编程时不能訪问C库。可是大部分C库函数在内核中都已经实现了。

(2):内核编程时必须使用GNU C。

(3):内核编程时缺乏像使用用户空间那样的保护机制

(4):内核编程时浮点数非常难使用

(5):内核仅仅有一个非常小的定长堆栈;内核栈非常小,长度固定,32位的内核栈是8KB,而64位的是16KB。

(6):因为内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发

(7):要注意可移植性的重要性


posted @ 2017-08-04 11:13  yfceshi  阅读(174)  评论(0编辑  收藏  举报