Linux内核源码阅读-块设备驱动
开始 fs 模块之前,我发现如果对块设备/字符设备的驱动程序不了解的话,读 fs 代码时会困难重重。为了简化问题,本文及之后的 fs 模块都将只记录关于块设备(特指硬盘)的代码
Minix 1.0 文件系统
下一个模块将是 fs(file system) 文件系统模块,在开始阅读源码之前,先对 Linux 0.11 中使用的 Minix 1.0 文件系统有个大致的概念,这对之后的代码阅读会有很大的帮助
Linux内核源码阅读-mm
mm 是 Linux 0.11 内存管理的模块,一共两个文件 memory.c 与 page.s,本文先继续探讨写时复制技术的后半部分,再介绍 mm 模块的其他函数
Linux内核源码阅读-kernel(五)
本文初探了写时复制(Copy On Write)技术,该技术在 Linux 系统创建子进程时(fork)被使用到
Linux内核源码阅读-kernel(四)
这一期的内容比较轻松,主要是搞懂 exit.c 的代码,其中涉及到有关内存管理的函数也不深入,等到了 mm 模块再做分析
Linux内核源码阅读-kernel(三)
本文介绍了 Linux 的信号机制,在内核中,该机制由 signal.c 文件实现,故本文也分析了 signal.c 文件中的一些关键函数
进程间通信方式
本文就 Linux 中常见的几种进程间通信方式(无名/有名管道、消息队列、共享内存、信号量)展开讨论,介绍其原理及API,每种通信方式都附上了一个代码实例帮助理解
Linux内核源码阅读-kernel(二)
本文讨论了 main 中调用的 time_init 与 sched_init 函数,由此引出了对应的文件 mktime.c 与 sched.c,故顺带阅读了两个文件中的关键函数
Linux内核源码阅读--kernel(一)
上一篇文章说到 main.c 完成了所有的初始化并打开了登录 shell,现在就来具体分析每个初始化函数的实现细节
Linux内核源码阅读--初始化主程序
main 函数调用一堆初始化函数对内存、陷阱门、块设备、字符设备、tty、时间、进程调度、缓冲区、硬盘、软驱进行初始化,并完成进程 0 的创建,从内核态切换为用户态