随笔分类 - 《linux 内核设计与实现》
摘要:进程地址空间,进程虚拟内存的管理。某个进程地址空间的全部区域可以以红黑树+链表的形式存放。 内核线程没有mm_struct没有进程地址空间,没有相关的内存描述符,这也是内核线程的真实含义--它们没有用户上下文。当一个进程被调度时,该进程的mm域指向的地址空间被装载到内存,PCB中的active_mm
阅读全文
摘要:虚拟文件系统作为内核子系统为用户空间程序提供了文件和文件系统相关的接口。VFS之所以能衔接各种各样的文件系统,是因为它定义了所有文件系统都支持的基本的,概念上的接口和数据结构。 Unix文件系统相关的抽象概念:文件,目录项,索引节点,安装节点。在Unix中,文件系统被安装在一个特定的安装点上所有的已
阅读全文
摘要:内核把物理页作为内存管理的基本单位,内核用一个page结构体表示内核中的每个物理页。 Linux把系统的页划分为区,形成不同的内存池,根据用途分配。区只是内核为了管理页而采用的一种逻辑上的分组。 一些分配释放相关函数 alloc_pages,该函数分配连续的物理页,返回一个指针指向第一个页的page
阅读全文
摘要:中断和中断处理 中断就是由硬件来打断操作系统,内核会随时响应中断。 中断处理程序就是普通的C函数,不过它们运行在中断上下文中(原子上下文)。中断不能被阻塞,这限制了它们所能做的事情。 上半部和下半部,中断处理程序是上半部,能够被允许稍后完成的工作会推迟到下半部。例子:网卡接受数据,拷贝最新的数据到内
阅读全文
摘要:进程管理 在现代操作系统中,进程提供两种虚拟机制,虚拟处理器和虚拟内存 PCB描述一个正在执行的程序:打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程。 在2.6以前的版本中,PCB直接放在内核栈的尾端,或者放一个pcb_info间接索引,这
阅读全文
摘要:下面几个特点是Unix强大的根本原因 Unix很简洁,Unix仅仅提供了几百个系统调用并且有一个非常明确的设计目的。 在Unix中,所有东西都被当作文件对待。 Unix的内核和相关的系统工具软件是用C语言编写而成--正是这个特点使得Unix在各种硬件体系架构面前都具有惊人的移植能力。 Unix进程创
阅读全文