《Linux内核设计与实现》读书笔记——Linux内核简介

基础

书中说明使用的内核源码版本:Linux 2.6.34

国内可以在如下网站下载内核的镜像:

http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/

什么是操作系统

操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。

这些部分包括内核、设备驱动程序、启动引导程序、命令行Shell或者其它种类的用户界面、基本的文件管理工具和系统工具。

 

Unix

Unix系统现在已经演化成一个具有相似应用程序编程接口(API),并且基于相似设计理念的操作系统家族。

Unix只有几百个系统调用并且有一个非常明确的设计目的。

Unix中所有东西都被当成文件对待(因此可以通过统一的接口进行操作,不过网络是个例外)。

Unix用C语言编写而成。

Unix的进程创建非常迅捷。

Unix提供了一套简单又稳定的进程间通信元语。

 

Linux

Linux借鉴了Unix的许多设计并实现了Unix的API,但是Linux没有直接使用Unix的源码。

Linux系统的基础是内核、C库、工具集和系统的基本工具(如登录程序和Shell)。

 

内核

通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。

内核运行在内核空间。

应用程序运行在用户空间。

应用程序通过系统调用来与内核通信。

应用程序通常调用库函数(比如C库),再由库函数通过系统调用接口,让内核完成不同的任务。

内核还负责管理系统的硬件设备,这利用了中断机制

当硬件需要和系统通信时,首先发出异步的中断信号,中断通常对应着一个中断号,内核通过这个中断号查找相应的中断服务程序来响应和处理中断。

中断服务程序在一个与所有进程都无关的、专门的中断上下文中运行。

Linux内核是单内核(宏内核),但是引入了模块化设计,抢占式内核,支持内核线程以及动态装载内核模块的能力。

内核并不区分线程和其它的一般进程。对于内核来说都一样,只是其中的一些(线程)共享资源而已。

 

应用、内核和硬件的关系

猜你喜欢

转载自blog.csdn.net/jiangwei0512/article/details/105962121
今日推荐