Linux 内核学习 — 实验环境
编译环境 这里选择轻量级的 Lubuntu,版本为19.10。 oslab环境搭建 感谢 Wangzhike提供开源的一键配置环境。 安装包下载 git clone https://github.com/Wangzhike/HIT-Linux-0.11.git 环
编译环境 这里选择轻量级的 Lubuntu,版本为19.10。 oslab环境搭建 感谢 Wangzhike提供开源的一键配置环境。 安装包下载 git clone https://github.com/Wangzhike/HIT-Linux-0.11.git 环
虚拟文件系统作为内核子系统,为用户空间程序提供文件和文件系统相关操作的接口。系统中各文件系统依赖虚拟文件系统共存并协同工作。通过 vfs , 用户空间
内核的内存分配相比用户空间来说相对较为困难,主要是因为内核本身不能奢侈的使用内存,而且一般不能睡眠,处理内存分配错误也比较棘手。 页 内核将物理
内核中有很多基于时间驱动的函数,如调度程序中运行队列进行平衡调整或对屏幕进行刷新等。时间管理中需注意相对时间和绝对时间的差别以及周期性事件和
在进行多线程编程时,我们要特意留意共享数据的保护,防止并发访问时多个线程同时操作 导致的结果不一致性。 Linux 2.0 开始内核开始支持 SMP. 所以内核可以在同一
内核为处理中断提供了中断处理程序机制,这是内核必不可少的一部分。但仍然存在一些局 限: 中断程序异步执行,可能打断其它重要代码的执行;因此中断处
三个作用 为用户空间提供硬件抽象接口 保证系统稳定和安全 使每个用户程序运行在虚拟系统中 系统调用 定义一个系统调用(以 getpid() 为例): SYSCALL_DEFINE0(getpid) { return task_tgid_vnr(current); // return current->tgid } SYSCALL_DEFINE0 是
进程调度 进程是程序的运行态的表现形式 进程调用是确保程序有效工作的内核子系统 多任务 并发交互的执行多个进程的操作系统 抢占式 : 由调度程序决定什么时