Linux Kernel
文章平均质量分 85
昵称什么都是浮云
这个作者很懒,什么都没留下…
展开
-
深入理解Linux内核day02--进程
看的第二天,还是要好好学习下操作系统相关的,为后面写驱动做准备。进程 进程是任何多道程序设计的操作系统中的基本概念。通常把进程定义为程序执行的一个实例。 该节将首先介绍进程的静态特性,然后描述内核如何进行进程切换。 进程、轻量级进程和线程 进程是程序执行时的一个实例。你可以把它看作充分描述程序以及执行到何种程度的数据结构的汇集。 从内核原创 2016-04-27 17:39:45 · 1499 阅读 · 0 评论 -
深入理解Linux内核day09--系统调用
系统调用 操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等等)进行交互提供了一组接口。 Unix系统通过向内核发出系统调用(system call)实现用户态进程和硬件设备之间的大部分接口。 POSIX API和系统调用 让我们先强调下应用编程接口(API)与系统调用之间的不同。前者只是一个函数定义,说明了如何获得一个给定的服务;而后者是原创 2016-05-05 14:13:10 · 1703 阅读 · 0 评论 -
深入理解Linux内核day08--进程线性地址空间
进程地址空间 内核中的函数以相当直截了当的方式获得动态内存: 1.__get_free_pages()和alloc_pages()从分区页框分配器中获得页框。 2.kmem_cache_alloc()和kmalloc()使用slab分配器为专门或通用对象分配快。 3.vmalloc()和vmalloc_32()获得一块非连续的内存区。原创 2016-05-05 10:45:31 · 2989 阅读 · 0 评论 -
深入理解Linux内核day07--内存管理
内存管理 RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构。 RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。 因此,现在所有多任务操作系统都在尽力优化对动态内存的使用,也就是说,尽可能做到当需要时分配,不需要时释放。原创 2016-05-04 14:22:46 · 1120 阅读 · 0 评论 -
深入理解Linux内核day06--进程调度
进程调度 Linux和任何分时系统一样,通过一个进程到另一个进程的快速切换,达到表面上看来多进程同时执行的神奇效果。 调度策略 传统Unix操作系统的调度算法必须实现几个互相冲突的目标:进程响应时间尽可能快,后台作业的吞吐量尽可能高,尽可能避免进程的饥饿线性,低优先级和高优先级进程的需要尽可能调和等等。 决定什么时候以怎样的方式选择一个新进程运行的这组规原创 2016-05-03 14:30:27 · 2570 阅读 · 0 评论 -
深入理解Linux内核day05--定时测量
定时测量 很多计算机化的活动都是由定时测量(timing measurement)来驱动的,这常常对用户是不可见的。例如,当你停止使用计算机的控制台以后,屏幕会自动关闭,这的归因于定时器,它允许内核跟踪你按键或移动鼠标后到现在过了多少时间。 Linux内核必需完成两种主要的定时测量,我们可以对此加以区别: 保存当前时间和日期,以便能通过time(),ftime原创 2016-04-29 15:56:56 · 4160 阅读 · 0 评论 -
深入理解Linux内核day04--内核同步
内核同步 你可以把内核看作是不断对请求响应的服务器,这些请求可能来自在CPU上执行的进程,也可能来自发出中断请求的外部设备。 内核如何为不同的请求提供服务 为了更好的理解内核代码是如何执行的,我们把内核看作必须满足两种请求的侍者:一种请求来自于顾客,另一种请求来自数量有限的几个不同的老板。 对不同的请求,侍者采用如下的策略: 1、老板提原创 2016-04-29 12:13:13 · 5026 阅读 · 0 评论 -
深入理解Linux内核day03--中断和异常
中断和异常 中断(interrupt)通常被定义为一个事件,该事件改编处理器执行的指令顺序。这样的事件与CPU芯片内部外部硬件电路产生电信号相对应。 中断通常分为同步中断(synchronous)中断和异步(asynchronous)中断: 同步中断是当指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。原创 2016-04-28 16:09:30 · 4778 阅读 · 0 评论 -
深入理解Linux内核day01--内存寻址
内存寻址内存地址: 逻辑地址: 段+偏移量 组成 线性地址: 可用来表达4GB的地址 (也称虚拟地址) 物理地址: 用于内存芯片级内存单元寻址。他们与微处理器地址引脚发送到内存总线上的电信号相对应 内存控制单元(MMU) 通过一种称为分段单元的硬件店里把一个逻辑地址转换为线性地址,接着通过分页单元的硬件电路把线性地址转换成一个物理地址。原创 2016-04-26 18:43:17 · 2935 阅读 · 0 评论 -
深入理解Linux内核day10--信号
信号 信号在最早的Unix系统中即被引用,用于在用户态进程间通信。内核也用信号通知进程系统所发生的事件。信号已有30多年的历史,但只有很小的变化。 信号的作用 信号(signal)是很短的消息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,以此来标识信号。在标准信号中,对参数、信息或者其他相随的信息没有给与关注。 名字前缀为SIG的一原创 2016-05-05 18:04:12 · 1425 阅读 · 0 评论