第1章Linux内核简介
主要内容:
- 认识Linux内核与Linux操作系统
1.1 Unix的历史
(1)Unix的产生及发展。
(2)Unix强大的根本原因:
- 很简洁
- 所有东西都被当做文件对待
- C语言实现,可移植性性强
- 进程创建迅速
(3)广泛应用于嵌入式设备、集群之中。
1.2追寻linux足迹:Linux简介
(1)1991诞生,吸引了很多开发者对Linux初期代码进行修改和完善。
(2)被广泛移植到ARM,X86-64等体系结构之上。应用于手表,服务器之上。
(3)Linux是*公开的软件。
(4)Linux系统的基础是内核、C库、工具集、系统基本工具(shell)。
(5)Linux指的是Linux内核。
1.3 操作系统和内核简介
(1) 操作系统的定义:
在整个系统中负责完成最基本功能和系统管理的那些部分。这些部分指
- 内核
- 设备驱动程序
- 命令行shell
- 用户界面
- 文件管理工具
- 系统工具
(2) 内核是管理者或者说是操作系统的核心
(3) 内核组成
- 响应中断的中断服务程序
- 管理进程的进程调度程序
- 内存管理程序和网络
- 进程间通讯及系统服务程序
(4)内核空间
内核独立与应用程序,处于系统态,拥有受保护的内存空间和访问硬件的所有权限。这种系统态和被保护起来的内存空间,成为内核空间。
(4) 内核通讯方式
应用程序通过系统调用来于内核进行通讯。
(5) 内核管理系统的硬件设备。
硬件触发中断-》打断内核执行-》内核通过中断号查找并执行中断服务子程序。
内核可以终止所有中断,也可以有选择的终止某个中断号的中断。中断服务程序不在进程上下文中执行,他们在一个与所有进程都无关,专门的中断上下文中执行,目的是为了尽快的做出中断响应。
(6) 处理器在任意时刻的活动概括为以下三者之一。内核运行几乎所有情况都处于以下三个状态之一。
- 运行于用户空间,执行用户进程。
- 运行于内核空间,处于进程上下文,代表某个特定的进程执行。
- 运行于内核空间,处于中断上下文,与任何进程无关,处理某个中断。
1.4 Linux内核与传统Unix内核的比较
(1) Linux可以运行在不支持MMU的嵌入式设备中。
(2) 操作系统
- 单内核
- 微内核
(3) Linux是一个单内核,内核运行在一个单独的内核空间地址上。
(4) Linux内核与传统Unix内核差异
- Linux支持动态加载内核模块
- Linux支持对称多处理机制(SMP)
- Linux内核可以抢占
- 线程支持
- 设备模型和热拔插事件
- *
1.5内核版本
(1)内核版本分 稳定,和处于开发中
(2)内核开发阶段
试验新特性-修复-审定-BUG修复-推出稳定版
1.6 Linux内核开发社区
1.7 小结
(1)学习对象:
内核开发、驱动开发、学习Linux操作系统。
(2)多看内核源码。