https://blog.csdn.net/TommyMusk/article/details/80714364
大纲:理解Linux内核最好预备的知识点
Linux内核的特点
Linux内核的任务
内核的组成部分
哪些地方用到了内核机制?
Linux进程
Linux创建新进程的机制
Linux线程
内核线程
地址空间与特权级别
虚拟地址与物理地址
特权级别(Linux的两种状态)
系统调用
设备驱动程序、块设备和字符设备
网络
文件系统
模块和热插拔
注:本文为《深入Linux内核架构》 的学习笔记
理解Linux内核最好预备的知识点:
懂C语言
懂一点操作系统的知识
熟悉少量相关算法
懂计算机体系结构
Linux内核的特点:
结合了unix操作系统的一些基础概念
Linux内核的任务:
1.从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。
2.从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。
3.内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。
4.内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。
内核实现策略:
1.微内核。最基本的功能由中央内核(微内核)实现。所有其他的功能都委托给一些独立进程,这些进程通过明确定义的通信接口与中心内核通信。
2.宏内核。内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。
内核的组成部分:
1.用户空间(在“地址空间与特权级别”小节会详细介绍):
应用程序:
C库
2.内核空间(在“地址空间与特权级别”小节会详细介绍):
核心内核
设备驱动程序
硬件
详细可参考图1
图3 文件系统的额外软件层
参考文献:
[1]Wolfgang Mauerer.《深入Linux内核架构》 Wolfgang Mauerer著 郭旭译 人民邮电出版社
标签:简介,虚拟地址,空间,内核,Linux,进程,内存
来源: https://blog.csdn.net/weixin_45596274/article/details/100635747