linux内核的功能包括:内存管理、进程管理、文件管理、设备管理。
-
内核的功能:内存管理
- 内存分配调用:包括静态分配方式、动态分配方式
- 内存保护:通过使用界限寄存器或存储保护键,确保每个程序在自己的内存空间运行,互不干扰。
- 地址映射:实现程序的逻辑地址和存储器物理地址之间的映射功能。
- 内存扩充:操作系统具有请求调用功能和置换功能。从逻辑上扩充物理内存,允许比物理内存更大的程序在机器内运行。
-
内核的功能:进程管理
- 进程控制:包括进程创建、进程撤销、进程阻塞、进程唤醒
- 进程协调:由于进行运行的异步性,因此进程同步的任务是对进程运行的协调:包括进程互斥和进程同步这两种方式。
- 进程通信:完成同一个相同的任务时,主要完成同一台机器上不同进程间通信 和不同机器上进程间的通信。
- 进程调度:操作系统按照一定的规则对等待运行的多个程序进行调度,以保证每个程序都有机会得到运行,并最终完成。
-
内核的功能:文件管理
- 文件存储空间的管理:为每一个文件分配必须要的外存空间,为提高外部存储空间的利用率,系统应设置相应的数据结构,用于记录文件存储空间的使用情况
- 目录管理:为了方便对用户的文件进行管理,对文件系统中建立一定结构的目录结构,同时要求快速的目录查询手段。
- 文件的读、写管理和存取控制:利用一定的系统调用对文件进行读写操作。同时,为防止系统中的文件被非法访问和窃取,文件系统中不需提供有效的存取控制功能。
-
内核的功能:设备管理
- 缓冲管理:管理各种类型的缓冲区,如字符缓冲区和块缓冲区,以缓和CPU和I/o速度不匹配的矛盾,最终达到提高CPU和I/o设备的利用率,从而提高系统吞吐量的目的。
- 设备分配:根据用户I/o请求,为其分配所需要的设备
- 设备处理:又称为设备驱动程序,任务是实现cpu和设备控制器之间的通信
- 设备独立性和虚拟设备: 一方面保证用户程序独立于物理设备,另一方面保证多个进程可以并发的共享同一个设备。
-
linux操作系统编程
- 操作系统用户接口:
- 命令接口:以命令形式呈现在用户前面,方便用户直接或间接控住自己的作业
- 程序接口:为应用程序使用系统功能而设置,是应用程序获取操作系统服务的唯一途径。由一系列系统调用组成,每一个系统调用都是古一个能完成特定功能的子程序
- 图形接口:为了图形化的操作界面,将各种应用程序和文件,直观的表示出来。
- 操作系统用户接口:
-
系统调用
- 系统调用是内核提供的程序接口,是应用程序和硬件设备之间的中间层
-
进程在内核中的组织:
- 进程在内核中的组织形式:进程控制块(PCB)
- 进程id,用户id,进程状态,调度信息,文件管理,虚拟内存管理,信号(进程间通信机制),时间和定时器。
<
- 进程在内核中的组织形式:进程控制块(PCB)