linux内核结构

  承接上文,上文大概的介绍了什么是Linux内核,本节简单介绍一下linux内核的结构,对linux内核有个整体的印象,然后在分模块学习。操作系统是所有应用程序生长的河床,它帮我们屏蔽各种硬件的细节,并且抽象出各种系统调用供应用开发人员来使用。

这个图比较清晰了,是书上的一张图,我们可以看到整个Linux内核可以分为4层:

  • 驱动管理层,驱动并管理外部一些硬件设备,例如磁盘、网卡等。
  • 工具层,内核抽象出一些通用组件便于自己使用,例如并发管理中的一些锁、per-cpu变量等工具,另外还有中断机制,也给进程管理、信号处理等提供了基础功能。
  • 系统能力层,操作系统的功能包括进程管理、内存管理、文件系统、I/O管理、网络等,这些功能都是基于工具层和驱动管理层提供的能力来构建的。
  • 系统调用接口层(syscall),给应用程序开发人员提供相关接口。因为系统调用的使用成本较高,参数也比较多,需要对内核有较多了解,所以,又抽象出一些libc等库函数来封装系统调用,应用开发人员一般都是通过libc等库来与内核打交道的。

  我们接下来会把重点放在工具层和系统能力层。