Linux 内核
北半球校尉
热爱技术
展开
-
Linux内核开发 — 进程调度
本节简单介绍内核开发中,进程调度的相关知识点。 什么是进程调度 进程调度就是在已经就绪的进程中选择一个最合适的进程执行的过程。 7.2 进程调度策略 实时类调度策略 非实时类调度策略 7.3 进程调度时机 7.3.1主动式抢占 当前进程因为需要等待资源等原因主动放弃执行权限,主动要求切换到原创 2014-09-09 10:51:40 · 970 阅读 · 0 评论 -
Linux 内核开发—内核简介
内核简介—本文主要介绍Linux 内核的构成、如何编译和配置内核,最后简单介绍了Linux 中的内核模块。原创 2014-08-25 22:29:37 · 1253 阅读 · 0 评论 -
Linux内核开发 — 进程控制
本章主要是以代码的角度分析进程的定义、状态、数据结构等概念。 进程的定义 进程是一段运行的程序,他是一个动态的可执行实体。而程序是代码和数据的集合,代码是一个静态的实体,程序是可以供多个进程使用,比如相同的应用程序可以在不同的计算机上运行而产生多个进程。 进程四要素 进程四要素主要是针对代码中对线程、进程的区别而言: l 有一段程序供其执行 l 有进程专原创 2014-09-09 09:32:45 · 1127 阅读 · 0 评论 -
Linux 内核开发 - 内核定时器
时间差的度量 系统的定时器硬件以固定的频率产生时钟中断,产生始终中断的间隔以HZ 常量来决定,通常在50~1200之间,x86默认是1000,HZ可以根据不同的内核来配置。 Linux 采用jiffies (unsigned long)来对时钟中断进行计数,每当发生时钟中断时jiffies的值将+1,因此jiffies就记录了系统开机以来的时钟中断总次数。在驱动开发过程中经常会使用时钟中断来计原创 2014-08-30 22:26:45 · 1071 阅读 · 0 评论 -
Linux 内核开发 - 内存管理
1.1什么是内存管理 内存管理是对计算机内存进行分配和使用的技术。内存管理主要存在于多任务的操作系统中,由于内存资源极其有限,需要在不同的任务之间共享内存,内存管理的存在就是要高效、快速的非配内存,并在适当的时候回收和释放内存,以保各个任务正常的执行。最常见的内存管理机制有:段式内存管理和页式内存管理。 1.2内存中的地址 早期的16位计算中,寄存器的位宽只有16位,为了能访问到1M Bit原创 2014-08-30 21:59:26 · 1001 阅读 · 0 评论 -
Linux 内核开发 - 进程空间
1.1 虚拟内存 Linux 是一个多任务的系统,如果每个任务都独立的占用内存,则实际的物理内存将很快消耗殆尽,实际上对于前台正在运行的任务来说,所需要要的内存并不多,很多任务基本不需要运行,也就没有必要一直占用内存,虚拟内存技术采用硬盘来充当一部分内存,当内存不足时就将不需要在内存中使用的数据搬移到硬盘中去,当任务需要运行时又将硬盘中的数据搬回物理内存。 虚拟内存技术不仅起到了保护操作系统的原创 2014-08-30 22:11:30 · 1077 阅读 · 0 评论 -
Linux 内核开发 - 内核链表
传统链表 链表是一种常用的数据结构,将通过指针的方式将一系列的数据节点连接成一条数据链,相对于数据,链表的灵活性很到,大不需要事先制定数据量,可以高效的动态删除和增加数据节点。不过相对于数据,链表在访问数据节点需要增加额外的计算,而且组织链表需要消耗内存。 传统的链表节点包括数据域和指针域,由指针建立与另外数据节点之间的关系。按照链接的形式可以分为单向链表、双向链表、循环链表。原创 2014-08-30 22:23:43 · 859 阅读 · 0 评论