Linux 内核简介

Linux内核简介.

Linux与其它类Unix内核的比较

  • 宏内核: 基于模块,弥补了部分宏内核的劣势
  • 模块按需装载
  • 内核线程
  • 多线程支持: 轻量级进程
  • 抢占式
  • 多处理器支持
  • 文件系统

操作系统基本概念

功能

  • 与硬件交互
  • 为应用程序提供执行环境

多用户系统

  • 并发
  • 独立

进程

  • 程序执行的一个实例

内核体系结构

  • 宏内核+模块
  • 模块: 一个目标文件,代码可在运行时链接到内核或从内核解除链接

Unix文件系统

硬链接和软链接

  • 作用:文件共享使用
  • 硬链接
    • 一个inode号对应多个文件名
    • 不能给目录创建硬连接
    • 同一文件系统中的文件才能创建硬链接
  • 软连接
    • 文件数据块中存放的内容是另一文件路径名的指向

文件类型

  • 普通文件
  • 目录
  • 符号链接
  • 面向块的设备文件
  • 面向字符的设备文件
  • 管道和命名管道
  • 套接字

文件描述符和索引节点

  • 索引节点:标示文件
  • 包含的内容
    • 文件类型
    • 与文件相关的硬链接个数 
    • 文件长度
    • 设备标示符
    • 索引节点号
    • 文件拥有者的UID
    • 文件的用户组ID
    • 时间戳(索引节点状态改变时间,文件最后访问时间,文件最后修改时间)
    • 访问权限和文件模式

访问权限和文件模式

  • 文件用户
    • 文件所有者
    • 同组用户
    • 其他用户
  • 三种权限
    • 执行

Unix内核概述

用户态和内核态

  • 用户态切换到内核态的几种方式
    • 系统调用
    • 正在执行进程的CPU发出异常信号(除0,内存缺页)
    • 外围设备向CPU发出中断信号(键盘输入,I/O操作完成)
    • 内核线程被执行

进程实现

  • 进程描述符
    • 程序计数器(PC):下一条指令的地址
    • 栈指针(SP)寄存器:进程上下文
    • 通用寄存器
    • 浮点寄存器
    • 处理器控制寄存器
    • 内存管理寄存器

可重入内核

  • 可重入函数:只能修改局部变量
  • 可重入内核:可重入函数,非可重入函数+锁机制

同步和临界区

  • 非抢占式内核
  • 禁止中断
  • 信号量
  • 自旋锁

信号和进程间通信

进程管理

  • 僵死进程: 父进程执行完wait调用前,子进程结束后,成为僵死进程
  • 进程组和会话

内存管理

  • 虚拟内存
  • 内存分配
  • 告诉缓存

设备驱动程序