第一章 Linux内核简介
1. 操作系统和内核
操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具。
用户界面是操作系统的外在表现,内核才是操作系统的内置核心。
在系统中运行的应用程序通过系统调用来与内核通信,如图所示。应用程序通常调用库函数再由库函数通过系统调用界面,让内核代其完成各种不同的任务。一些库调用提供了系统调用不具备的许多功能,在那些较为复杂的函数中,调用内核的操作通常只是整个工作的一个步骤而已。例如,printf函数,它提供了数据的缓存和格式化等操作,而write只不过是其中的一个动作,还有些库函数与系统调用是一一对应的,比如,open库函数与open系统调用。还有些库函数根本就不需要直接调用系统级的操作,例如strcpy()。
1)当运行于用户空间,则执行用户进程
2)运行于内核空间,处于进程上下文,此时内核代表某个特定的进程在内核空间执行。
3)运行于内核空间,处于中断上下文,此时与任何进程无关,内核代表硬件处理某个特定的中断。