linux内核
文章平均质量分 91
li_boxue
这个作者很懒,什么都没留下…
展开
-
第二讲 内存管理
本讲讲述内存管理方法。本讲包含三个方面的内容: 首先物理内存是内存管理的基础,要解决如何对其有效管理的问题,因此第一部分讲述页框管理。然后是高端内存管理的三种机制:永久内核映射、临时内核映射和非连续内存区管理。最后内核如何处理以字节为单位的内存请求?这是第三部分内存区管理的内容。主要讲述slab分配器。原创 2015-09-24 20:52:36 · 1728 阅读 · 0 评论 -
《Linux内核分析》第六课笔记
读书是一个由厚读薄,再由薄读厚的过程。孟宁的《Linux内核分析》在课上把繁杂庞大的Linux内核抽像出主脉络,本文试图探索第六课中创建进程这一主题迷途幽径。同时本文也是《第四讲 进程管理 》的补充。一般操作系统都有类似于create_task()之类的API来凭空创造出进程。Linux沿袭自Unix,采用了另一种思路,即fork+exec。所有进程都先由一个现有进程复制而来,再改变一些属性形成新进原创 2016-03-30 18:48:25 · 2055 阅读 · 0 评论 -
《Linux内核分析》第二课笔记
在孟宁老师的网易云课堂《Linux内核分析》第二课上,基于Linux3.9.4内核打了一个小补丁,在其上运行了一个小的调度程序来展示进程切换的基本原理。本文来简单分析一下这个补丁,将其简易版本的进程管理与Linux标准方法做了简单对比。原创 2016-03-05 19:56:22 · 788 阅读 · 0 评论 -
《Linux内核分析》第四课笔记
在孟宁老师的网易云课堂《Linux内核分析》第四课上,简单讲述了系统调用的基础知识。其中有几个问题课程中没有详述。本文对这几个问题进行展开描述。原创 2016-03-16 19:03:36 · 800 阅读 · 0 评论 -
Linux内核学习计划
前一阵儿开始学习Linux内核,开始之后逐渐发现这是一个庞大的计划,需要极大恒心。因此开通这个博客,记录学习笔记,督促自己坚持下去。学习资料主要来源于两本书:《深入理解Linux内核》、《Linux内核源代码情景分析》,以第一本为主。还参考了一些其他资料,在具体遇到时再一一标注。原创 2015-09-14 22:28:07 · 751 阅读 · 0 评论 -
第五讲 中断、异常和信号
在第一讲中提到过异常的分类,根据同步或异步产生、无意或故意产生以及最终的的返回行为可以分为四类。但不管是哪种,CPU的响应过程基本一致。即CPU根据中断向量,在内存中找到相应的服务程序入口并调用该服务程序。中断向量和中断处理函数内内核定义。处理方法也不尽相同。对于异常,一般是抛出一个信号给当前进程,因此在本讲的最后将涉及信号相关的内容。原创 2016-01-05 20:53:01 · 3860 阅读 · 0 评论 -
第四讲 进程管理
本节我们先讨论进程的一些静态特性,然后描述进程的创建和撤销。最后研究内核如何切换进程。原创 2015-11-29 22:18:05 · 1027 阅读 · 0 评论 -
第三讲 进程地址空间
本讲讲以线性区为基础讲述与进程地址空间相关的内容。首先介绍进程地址空间的概念,然后介绍用于描述进程地址空间的内存描述符,以及其中最重要的线性区的概念。内核对进程线性区与物理地址的映射处理在缺页异常处理程序中完成,因此之后插入对的详细解读。最后是进程地址空间的创建和删除过程,以及特殊线性区——堆的管理。原创 2015-10-28 21:03:07 · 5903 阅读 · 0 评论 -
第一讲 内存寻址
引子一段代码:#include <stdio.h>int foo;void main(){ foo = 100; printf("%d\n",foo);} 问题:变量foo存放在内存的什么位置,printf又在什么位置,CPU如何访问(修改)它们?原创 2015-09-14 22:46:32 · 7901 阅读 · 0 评论 -
《Linux内核分析》第五课笔记
孟宁老师的《Linux内核分析》第五课内容与授课大纲上有出入,实际上继续在讲系统调用。前文《Linux内核分析》第四课笔记中已经提前分析了本课的主要内容,这里再做一些补充。原创 2016-03-22 23:34:02 · 653 阅读 · 0 评论