一 Linux内核的结构与组成
补充: 什么是单内核, 什么是微内核 ????虽然Linux 是参照Minix开发的, 但没有采用Minix微内核设计, 而是采用与Unix相同的单内核
(这句话的意思是Linux是单内核结构)
1. Linux的特点
(1) 采用模块化设计:保证每一个模块可以在不影响其他模块的情况下进行修改 (2)支持动态转载内核: 动态的加载或卸载部分内核代码 (3)支持内核线程 (内核线程把内核分成几个模块, 内核线程的调度又内核负责, 一个线程处于阻塞时, 不影响其他线程)2. Linux操作系统的结构
操作系统分为上层和下层
上层: 应用程序和工具软件 运行在用户空间
下层: Linux内核,运行在内核空间
3. 内核空间
4. 内核主要组件
(1) 初始化组件:
在bootloader 把linux 的内核加入到RAM中后, ——>Linux内核启动初始化组件——>内核的入口函数是start_kernel——> 完成与硬件平台相关的剩余初始化 和内核组件的初始化, 解析和处理bootloader传给内核的参数——> 初始化组件打开初始终端——> 启动init进程(系统所有进程的根进程)
Linux内核负责创建和终止进程, 并在进程间进行通信和同步Linux将运行在内核的任务叫 内核线程
将运行在用户空间中的任务 叫 进程
Linux 2,6 版本之前只支持用户态抢占, 之后的版本支持内核态抢占
(3) 内存管理器: 负责多个进程安全的共享主存空间 (4) 虚拟文件管理: “一切皆文件”, 是Unix/Linux的基本思想, 一切(普通数据文件, 程序文件, 目录, 字符设备, 块设备, 套接字 (5)网络接口: (6)进程间通信(IPC) (7) 可加载模块: 动态改变内核机制 (8) 设备驱动程序: 设备驱动程序运行在内核空间, 对硬件直接操作, Linux提供了大量的驱动程序Linux内核各组件的关系
由图可知, 处于中心的是进程调度, 其他字系统都要依赖该组件控制进程