Linux Kernel(核)

可以说:The linux kernel is important in that it serves as the glue between the user and the computer hardware. The kernel is the operating system. 


Linux 操作系统的一个component 就是kernel(核)。  kernel 就像一座桥梁一样, 将我们这些user 和 计算机的硬件(例如RAM, CPU, 以及其他的一些例如键盘鼠标硬件资源) 联系起来了。  




user和操作系统的kernel的关系如下所示:



我们在user space中, 或者我们有一个shell application, 想kernel 发出request, 例如打印一个message到屏幕上, 或者从键盘中读取信息等等。 kernel 收到这些请求之后, 去和Hardware 交流,  通过这样, kernel 满足我们的请求, 最终完成任务。


在kernel内部, 有如下的组件:

process Scheduler(进程调度器), memory managers(内存管理器)(注意是内存(RAM), 不是硬盘), I/O Scheduler(输入输出调度器),  IPC(inter-process communications(进程之间的通信)),  Network services(网络服务), File system I/O。

process Scheduler: kernel 通过它使得CPU将时间均分为多个进程。

进程: Program that are actively running  in memory(即正在执行的程序。 或者更准确的说, 进程是一个被加载到内存中, 并且准备运行的程序)。 进程可能运行在单个电脑上, 也可能运行在由网络连接的多个电脑中。 

memory manager(内存管理器):  kernel通过这个组件管理shell,  为不同的applications 分配内存空间。 

 I/O sheduler : kernel 利用这个组件对输入输出设备进行管理。 例如键盘啊, 屏幕啊啥的。

IPC: IPC  module 含有a set of methods  for  the exchange of data among multiple threads in one or more porocesss(一个或者多个进程内部的多个线程之间交换数据信息的)。 例如当多个线程(multiple threading  )同时运行的时候, 需要保持同步(synchronization).。  总体来说, IPC module 中的methods 主要分为如下几种:

 message passing(消息传递)synchronization(同步)shared memory(共享内存), and remote procedure calls

Network services(网络服务): kernel 也提供用于网络服务的接口。 这样你就可以访问网络了。

File system I/O(文件系统输入输出): Linux的 kernel 具有一个Virtual File system(虚拟文件系统),    正是因为有个这个虚拟文件系统, 我们的kernel才能够同不同格式的文件交流(talk to) in a uniform manner。 也就是说, Linux kernel中的 Virtual File system 具有一层抽象, 这样我们就不用为不同格式的文件独特的的复杂性烦恼了。   所以虚拟文件系统对于Linux 十分的重要。  而且, 这个虚拟文件系统talks to device driver(设备驱动器), 然后device driver(一段程序, 即驱动程序) 再talk to Hardware(硬件).。 





关于kernel的工作情况, 如下:




user (human)在user space 或者shell applications 通过向kernel发送request(请求)  来talk to kernel。我们需要注意的是kernel工作的模式总是privileged mode, 即kernel 可以access any aspect of the computer at any time, 控制着所有的RAM, 而且可以和(talik to)与计算机以及与计算机相连的所有的硬件交流。 

但是我们的在user space, 或者shell application, 均不能talk to hardware, 例如键盘等等。 只能通过kernel 发送请求。 硬件通过中断和kernel交流。



我们可以下载kernel ,  网站是 www.kernel.org。

我们也可以在Linux 终端(terminal)输入:

uname -r 指令来查看kernel的version(版本)(单词r 代表release version):


3是major number

2是minor number。 如果这个数字是偶数, 则表示这个版本是stable的。 如果是奇数, 表明是实验的。 即处于development stage。 上述的版本是stable.

0表示revision number。


一旦我们获得了kernel的source, 可以解压缩到 /usr/src:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值