【专题】Linux 内核详解

2010-05-21 topic kernel

基本概念

介绍下 Linux 内核相关的内容。

  • 内核编译 简单介绍如何手动编译内核。
  • 硬件启动 从内核加电之后,简单介绍如何从硬件加载启动。
  • 启动过程 通过 GRUB 启动之后,然后开始加载内核,再次简单介绍。
  • 内核模块 简单介绍下 Linux 中的内核模块编写,包括了内核签名机制的配置。
  • 调度系统 与内核的进程调度相关的内容,还可以参考 进程切换
  • 系统调用 系统包括了用户态和内核态,内核态用于执行一些权限较高的任务。
  • 中断处理 在很大程度上解放了 CPU,提高了 CPU 的执行效率,弥补了 CPU 与外设运行速度之间的差距。

VFS

  • 功能简介 Linux 的设计理念,一切皆文件,而 VFS 是所有文件系统的入口抽象。
  • Write API 介绍 VFS 提供的不同 API 调用方式。
  • IO 调度器 内核提供了多种 IO 调度方式,可以根据不同的场景进行配置。

进程相关

一些与 Linux 中进程相关的内容,包括了优先级、状态等信息。

  • 进程执行 与进程相关的操作,主要是执行命令 API、守护进程等。
  • 内核实现 简单介绍进程相关的东西,如进程创建、优先级、进程之间的关系等。
  • 进程状态 介绍不同的进程状态,以及一些常见的异常处理方法。
  • 退出编码 进程可以正常或者异常退出,通过退出码可以分成几类。
  • 优先等级 优先级以及 nice 值的相关介绍,以及查看方式。
  • PID 分配 主要介绍内核中 PID 的分配方法以及源码实现。

信号相关

  • 线程使用 线程中一般在指定线程同步方式处理。
  • 信号机制 进程间通信机制中唯一的异步通信机制。
  • 信号安全 在信号处理函数中一般会打印日志,但也同时引入了死锁的风险。

内存管理

  • 物理映射 x86 中逻辑地址到物理地址的映射关系,包括了具体的实验。
  • 用户空间 用户空间的内存管理,包括了内存的布局、内存申请等操作。
  • 内核空间 包括了内核中与内存相关内容,包括了初始化、内存分配等。

Cache

  • Cache VS. Buffer 介绍两者的基本概念,并通过实验进行测试验证。
  • Cache 能否回收 正常大部分对 Cache 可以回收,但是仍有部分是无法回收的。

其它

  • OOM Killer 提高内存的使用效率采用过度分配内存机制。
  • 共享内存 Linux 中与共享内存相关的内容。
  • 常用技巧 简单介绍下内核中与内存相关的内容,以及常见的故障处理。
  • 映射文件 也就是 mmap() 函数的使用方法。
  • 内存监控 简单介绍下 Linux 中与 Memory 监控相关的内容。

其它

  • Hang 也就是处于 D 状态的进程,主要分析其出现的原因。
  • Inotify 文件变化通知机制,可以基于事件的方式进行处理。
  • Timer 内核中与时间相关的内容。