随笔分类 - linux内核 / 浅显理解LINUX内核
如果只是看书,就像雁过无痕一样,终究一无所获;
看完书,把个人理解和章节大纲列出来,不仅可以作为笔记,还可以促使自己避免看书的时候走马观花。
参考:《深入理解LINUX内核》
摘要:1 内存和页框管理 RAM的某些部分永久分配给内核,用来存放内核代码和静态内核数据结构; RAM的其他部分称为动态内存,内存管理指的是这块部分内存的管理,不管是内核进程的内存申请还是用户进程。 2 页框 Linux使用4KB页框大小作为标准的分页单元; 页描述符struct page记录了页框的信息
阅读全文
摘要:1 Linux进程简介 Linux中,进程的优先级是动态的 Linux 2.6开始,内核是抢占式的 内核线程没有自己的地址空间,整个内核共享内核的虚拟地址 Linux采用对称多处理模型,每个CPU地位相同 2 进程分类 进程可以分为普通进程(包括交互式进程、批处理进程)、实时进程。 交互式进程和实时
阅读全文
摘要:1 内核抢占 定义:内核控制路径被其他内核进程抢占,称为内核抢占 条件:进程描述符thread_info的抢占计数器preempt_count字段<=0 && 中断打开 发生时机: 结束内核控制路径(通常是中断处理程序)时 异常处理程序调用preempt_enable()时 启用可延迟函数(软中断,
阅读全文
摘要:1 处理器探测异常 fault:可以被纠正,并不失连贯的执行;比如缺页异常 trap:发生后没有必要纠正和继续执行,调试时使用,可以认为是断点 abort:发生严重的错误,只能强制终止受影响的进程;比如assert? 2 硬件连接 设备 <== IRQ ==> 可编程中断控制器PIC <== INT
阅读全文
摘要:1 参考文档 6. 线程的定义与线程切换的实现 — [野火]RT-Thread内核实现与应用开发实战——基于STM32 文档 2 定义线程栈 RTOS中存在多线程和线程切换,没有进程的概念; 每个线程都有线程栈,通常是预先定义好的全局数组,存在RAM中。比如定义两个线程栈: /* 定义线程栈*/ r
阅读全文
摘要:1. 进程、线程,轻量级进程 1.1. 进程 进程是程序执行的一个实例,是担当分配系统资源(CPU,内存等)的实体 1.2. 轻量级进程 Linux没有线程,使用轻量级进程实现线程的POSIX标准库函数 Linux轻量级进程可以共享地址空间、打开的文件等,这样Linux中每个“线程”都可以被内核独立
阅读全文
摘要:1. 内存地址 逻辑地址、虚拟地址、线性地址、物理地址,它们是很绕的逻辑,有些和Intel绑定的概念,没有必要完全区分; 可以认为,地址包括:虚拟地址和物理地址两种。 1.1. 逻辑地址 程序编译后的地址 1.2. 线性地址 程序运行时的内存地址 1.3. 物理地址 内存总线上的地址 如果CPU没有
阅读全文
摘要:1. 名词解释 POSIX:Portable Operating Systems based on Unix SMP:Symetric Multiprocessor,对称多处理器 2. Linux的特点 单块结构的内核:每一个内核层都被集成到整个内核程序中 编译并静态连接的传统Unix内核:可以动态
阅读全文
摘要:1. 作用 Linux内核的“定时测量”主要有两个作用:① 获取时间日期 ② 定时人物。 2. 时钟和定时器电路 ① 实时时钟 RTC 独立电源(蓄电池)供电;Linux用来获取时间和日期 ② 时间戳计数器 TSC 和CPU频率绑定,每个时钟信号到来时+1 系统初始化期间算出CPU实际频率 便于测量
阅读全文