
02. Linux Kernel Study
文章平均质量分 81
rstevens
Linux,Network,Linux Kernel,football,soccer,snooker,pool,billiards,足球,台球
展开
-
在用户空间发生中断时,上下文切换的过程
所谓上下文切换,实质就是寄存器堆的切换过程。这其中一部分需要硬件来切换,一部分需要软件来处理。当在用户空间发生中断时,首先由 x86 CPU 从硬件角度进行处理,然后才是 linux 内核的处理。当中断处理完毕,返回到用户空间时,最后的步骤也是交给 CPU 硬件来处理的。1、 X86 CPU 对中断的硬件支持CPU 从中断控制器取得中断向量根据中断向量从 IDT 中找原创 2006-05-06 18:59:00 · 2608 阅读 · 0 评论 -
睡眠与唤醒(草稿)
睡眠与唤醒 (草稿)1. 调用 nanosleep() 以后发生了什么?nonosleep() 是一个系统调用,在内核中对应的是 sys_nonosleep()sys_nonosleep: 创建一个定时器struct hrtimer_sleeper { struct hrtimer timer; struct task_struct *task;};void hrtimer原创 2007-09-27 20:32:00 · 1210 阅读 · 0 评论 -
Linux 2.4 内核学习笔记: 信号
Linux 2.4 内核学习笔记: 信号版权申明1. 标准信号与实时信号0-31 这 32 个信号称为标准信号。从 32 到 63 之间的 32 个信号称为实时信号。可以通过 man 7 signal 查看对“标准信号”和“实时信号”详细的描述。2. 信号排队每个进程拥有一个信号等待队列。在 task_struct 中有一个 struct sigpending pe原创 2007-09-27 20:24:00 · 1238 阅读 · 0 评论 -
Linux内核的时钟中断机制(2)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.2 Linux内核对RTC的编程 MC146818 RTC芯片(或其他兼容芯片,如DS12887)可以在IRQ8上产生周期性的中断,中断的频率在2HZ~819转载 2007-09-28 15:33:00 · 1086 阅读 · 0 评论 -
Linux内核的时钟中断机制 (3)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.3 Linux对时间的表示 通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第转载 2007-09-28 15:34:00 · 1947 阅读 · 0 评论 -
Linux内核的时钟中断机制 (4)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.4 时钟中断的驱动 如前所述,8253/8254 PIT的通道0通常被用来在IRQ0上产生周期性的时钟中断。对时钟中断的驱动是绝大数操作系统内核实现time-原创 2007-09-28 15:36:00 · 1868 阅读 · 0 评论 -
Linux内核的时钟中断机制 (6)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.6 内核定时器机制 Linux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过 run_ol转载 2007-09-28 15:45:00 · 1071 阅读 · 0 评论 -
Linux内核的时钟中断机制(1)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart第七章 Linux内核的时钟中断 (By 詹荣开,NUDT) Copyright © 2003 by 詹荣开 E-mail:zhanrk@sohu转载 2007-09-28 15:26:00 · 1441 阅读 · 0 评论 -
Linux内核的时钟中断机制 (7)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.7 进程间隔定时器itimer 所谓“间隔定时器(Interval Timer,简称itimer)就是指定时器采用“间隔”值(interval)来作为计时方式转载 2007-09-28 15:54:00 · 1086 阅读 · 0 评论 -
拨云见日 关注七项Linux内核发展方向
拨云见日 关注七项Linux内核发展方向转自: http://news.youkuaiyun.com/n/20071101/110151.html对于一个Linux的企业用户来说,它的内核开发可能显得过于复杂了,有许多人在维护不同的代码,而且有更多志愿者在提交代码,这种乱花渐欲迷人眼式的“热闹”景象却让我们很难看清未来将有什么样的新功能。 就其本身而言,Linux的发展没有路线图。为了对Lin转载 2007-11-01 14:25:00 · 1099 阅读 · 0 评论 -
Linux内核的时钟中断机制 (8)
转自: http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.8 时间系统调用的实现 本节讲述与时间相关的syscall,这些系统调用主要用来供用户进程向内核检索当前时间与日期,因此他们是内核的时间服务接口。主要的时间转载 2007-09-28 15:55:00 · 2299 阅读 · 0 评论 -
Linux内核的时钟中断机制 (5)
转自 http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart7.5 时钟中断的Bottom Half 与时钟中断相关的Bottom Half向两主要有两个:TIMER_BH和TQUEUE_BH。与TIMER_BH相对应的B转载 2007-09-28 15:42:00 · 1113 阅读 · 0 评论 -
Linux 实时技术与典型实现分析, 第 1 部分: 介绍
转自: http://www.ibm.com/developerworks/cn/linux/l-lrt/part1/Linux 实时技术与典型实现分析, 第 1 部分: 介绍杨燚 (yyang@ch.mvista.com), 计算机科学硕士本系列文章分两部分,第 1 部分阐述了实时的概念、衡量实时性的指标,详细地分析了嵌入式系统对 Linux 实时性的需求以及 Linux 在实时性方转载 2007-09-24 16:50:00 · 1243 阅读 · 0 评论 -
C与脚本的混合编程
C与脚本的混合编程(以前写的一篇小文章)在linux上写程序、做网管的人,或多或少都会几种脚本。脚本语言灵活的变量类型、强大的正则表达式处理能力,再加上linux系统本身的管道、重定向以及丰富的命令行工具,让你编程起来游刃有余。 而C语言固然有种种优势,但不可否认,很多场合下,用脚本语言更为方便,比如我们将举例说明的对配置文件的处理。 先看看我们示例程序的任务: 假设我们有一个用c写的程序原创 2006-05-07 01:14:00 · 1223 阅读 · 0 评论 -
深入分析 Linux 内核链表
深入分析 Linux 内核链表本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删转载 2006-05-08 17:45:00 · 1163 阅读 · 0 评论 -
Linux 内存管理:缺页异常的几种原因
Linux 内存管理:缺页异常的几种原因版权申明给定一个线性地址,MMU 通过页目录表、页表的转换,找到对应的物理地址。在这个过程中,如果因某种原因导致无法访问到最终的物理内存单元,CPU 会产生一次缺页异常,从而进入缺页异常处理程序。总结一下,缺页异常的原因有以下几种: 1、导致缺页异常的线性地址根本不在进程的“虚存区间”中,段错误。(栈扩展是一种例外情况)2、地址在“虚存区原创 2007-08-27 20:18:00 · 2182 阅读 · 0 评论 -
图解 Linux 内存管理 -- 高端内存的映射方式
Linux 内存管理 -- 高端内存的映射方式版权申明高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核原创 2007-08-29 17:43:00 · 3159 阅读 · 0 评论 -
Linux 内存管理:与文件相关的内存映射
从 /proc/[pid]/maps 可以看到,程序的数据段会被映射为一个单独的区间,而且是可读写的。因而自然有这样的疑惑:当修改一个全局数据的时候,会影响到程序的 image 文件么?答案肯定是不会,那么这种映射和将一个普通的文件映射到内存中,而且希望通过操作内存来改动这个文件,有什么区别?这就是文件内存映射的两种方式:共享和私有当以 share 的方式映射一个文件时,对内存的操原创 2007-08-27 20:22:00 · 1522 阅读 · 0 评论 -
内核中的 likely() 与 unlikely()
内核中的 likely() 与 unlikely()在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等价于 if(value) if(unlikely(value)) 也等价于 if(value)也就是说原创 2007-09-24 15:33:00 · 12547 阅读 · 6 评论 -
Linux ultra-scalable O(1) Scheduler 软实时概要分析
转自: http://www.linuxfans.org/nuke/modules.php?name=News&file=article&thold=-1&sid=2368Linux ultra-scalable O(1) Scheduler 软实时概要分析Author : balancesli Email : balancesli@thizlinux.com.cn 1.序言转载 2007-09-24 16:19:00 · 1210 阅读 · 0 评论 -
Linux 2.6 调度系统分析
转自: http://www.ibm.com/developerworks/cn/linux/kernel/l-kn26sch/Linux 2.6 调度系统分析杨沙洲 (pubb@163.net), 国防科技大学计算机学院, 2004 年 4 月2004 年 4 月 01 日本文从 Linux 2.4 调度系统的缺陷入手,详细分析了 Linux 2.6 调度系统的原理和实现转载 2007-09-24 16:17:00 · 1040 阅读 · 0 评论 -
Linux 2.4调度系统分析
转自: http://www.ibm.com/developerworks/cn/linux/kernel/l-k24sch/Linux 2.4调度系统分析杨沙洲 (pubb@163.net)国防科技大学计算机学院2004 年 3 月 09 日本文详尽地分析了Linux 2.4内核中调度系统的工作原理,特别是i386体系结构下SMP系统的调度表现。通过对2.4调度系统实现原理及转载 2007-09-24 16:15:00 · 1178 阅读 · 0 评论 -
Linux 2.4.30 内核文件系统学习(多图) 1 : 关键数据结构
Linux 2.4.30 内核文件系统学习(多图) 1: 关键数据结构版权申明1. 概述 根据以前学习内核源码的经验,在学习文件系统实现之前,我大概定了个目标:1、 建立一个清晰的全局概念。为将来需要研究代码细节打下坚实基础。2、 只研究虚拟文件系统 VFS 的实现,不研究具体文件系统。为什么选择 Linux 2.4.30?因为可以参考《Li原创 2007-10-14 23:46:00 · 7689 阅读 · 1 评论