流水恋歌
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux内核中用户空间栈和内核栈的区别
转自http://blog.youkuaiyun.com/bailyzheng/article/details/8015618 1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进转载 2012-11-30 09:29:41 · 2971 阅读 · 0 评论 -
Linux中的内存屏障
转自http://hi.baidu.com/_kouu/item/7a796014bdb6d78d88a956d9 内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的C转载 2013-06-16 16:45:43 · 838 阅读 · 0 评论 -
rmmod: chdir(/lib/modules): No such file or directory
针对飞凌6410中动态卸载驱动时候出现rmmod: chdir(/lib/modules): No such file or directory怎么解决?1.在文件系统目录中创建/lib/modules/3.0.1这个空目录2.查看/sbin中是否有rmmod,如果没有,静态编译如下代码,将生成的rmmod放入/sbin中 #include #include #includ原创 2013-04-21 19:37:55 · 1719 阅读 · 0 评论 -
Linux中的双向循环链表
转自 http://blog.youkuaiyun.com/yaozhenguo2006/article/details/7621551 链表是一种重要的数据结构,应用的非常广泛。链表分为单向链表与双向链表,一般的实现就是在结构体中内嵌指向下一个元素的指针。例如: [cpp] view plaincopyprint?struct name { int num;转载 2013-04-14 14:21:15 · 1282 阅读 · 0 评论 -
printk无法打印信息
转自http://blog.chinaunix.net/uid-25811099-id-326899.html 对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。 【原型】 int printk(const char * fmt转载 2013-04-21 19:28:08 · 1876 阅读 · 0 评论 -
Linux内核中的定时
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 系统定时器频率(节拍率)是通过静态预处理器定义的,也就是HZ,编写内核代码时,不要以为HZ值是固定不变的值。连续两次时钟的间隔时间叫做节拍,它等于节拍率分之一秒。高HZ有利于提供诸如poll和select函数运行的精度;有利于提高进程抢占的准确度;有利于获得更精细的解析度。但是高HZ也会减少处原创 2012-12-16 11:23:17 · 1348 阅读 · 0 评论 -
Linux内核总述
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 Linux内核1.Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程通信(IPC)五个子系统组成。1.1进程调度控制系统中的多个进程对CPU的访问,使得多个进程能在CPU中”微观串行,宏观并行”地执行。1.2内存管理的主要作用是原创 2012-12-27 14:04:53 · 1113 阅读 · 0 评论 -
Linux内核中的中断
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 中断处理程序是被内核调用来响应中断的,它运行在中断上下文,中断处理程序是上半部,当接收到一个中断,它就立即开始执行,但只做有严格时限的工作,例如对接收的中断进行应答或复位硬件,这些工作都是在所有中断被禁止的情况下完成。能够被允许稍后完成的工作会推迟到下半部去。 中断处理程序的注册是通过re原创 2012-12-15 11:48:25 · 2885 阅读 · 0 评论 -
Linux内核中的同步
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 如果一个进程正处于临界区时被非自愿抢占了,而且这个新调度的进程随后也进入同一个临界区,前后两个进程之间就会产生竞争,其实两者并不真是同时发生的,但它们相互交叉进行,所以叫做伪并发。如果有一台支持对称多处理器(SMP)的机器,那么两个进程就可以真正地在临界区中同时执行,这就叫真并发。并发产生的原原创 2012-12-14 08:58:59 · 2328 阅读 · 0 评论 -
Linux内核中的内存(三)
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 页高速缓存(cache)是Linux内核实现磁盘缓存,通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。页回写是将页高速缓存中的变更数据刷新回磁盘的操作。引入磁盘高速缓存的目的主要有两个:其一,访问内存速度比访问磁盘快的多;其二,临时局部原理。 读后备存储(正被缓存原创 2012-12-13 09:04:00 · 1201 阅读 · 0 评论 -
Linux内核中的内存(二)
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 内存除了管理本身的内存(物理内存)外,还必须管理用户空间中的进程的内存(虚拟内存),这个内存就叫进程地址空间。尽管一个进程可以寻址4GB的虚拟内存,但是这并不代表它就有权访问所有的虚拟内存,这些可以被访问的地址空间称为内存区域。如果一个进程访问了不在有效范围内的内存区域,或者以不正确的方式访问了有原创 2012-12-11 08:56:57 · 1239 阅读 · 0 评论 -
Linux内核中的内存(一)
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 页内核把物理页作为内存管理的基本单位,尽管处理器的最小可寻址单位通常为字节,但是MMU(内存管理单元,管理内存并把虚拟地址转换为物理地址的硬件)通常以页作为单位进行处理。大多数32位体系结构支持4KB的页,内核用struct page结构表示系统的物理页,这个page与物理页相关,而并原创 2012-12-10 08:51:12 · 1401 阅读 · 0 评论 -
Linux内核中的系统调用
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 系统调用是用户空间访问内核的唯一手段,除异常和陷入外,它们是内核唯一的合法入口。其实,应用程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用来编程。一般应用程序中的API调用 C库,C库再调用内核中的系统调用。在Unix中,最流行的应用编程接口是基于POSIX标准的,原创 2012-12-07 09:33:50 · 1731 阅读 · 0 评论 -
Linux内核中的进程(二)
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 进程是正在执行的程序代码的实时结果,是处于执行期的程序以及相关的资源的总称。线程是在进程中活动的对象,内核调度的对象是线程,而不是进程。对Linux系统而言,不区分线程和进程。进程提供两种虚拟机制:虚拟处理器和虚拟内存。线程之间可以共享内存,但每个都拥有各自的虚拟处理器。在Linux中,通过for原创 2012-12-06 09:05:50 · 1439 阅读 · 0 评论 -
Linux内核中的进程(一)
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 多任务系统可以分为:非抢占式和抢占式。Linux提供抢占式多任务模式。进程在被抢占之前能够运行的时间叫进程的时间片,Linux独一无二的公平调度程序本身并没有采用时间片来达到公平调度。Linux之前采用O(1)调度器,它对大服务器的工作负载很理想,但是对响应时间敏感的程序却有不足。在2.6.2原创 2012-12-05 10:03:41 · 1283 阅读 · 0 评论 -
内存屏障
转自http://blog.chinaunix.net/uid-9185047-id-445168.htmlhttp://hi.baidu.com/_kouu/item/7a796014bdb6d78d88a956d9言归正传,先解释下什么是内存屏障。内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完成对内存的写入操转载 2014-02-25 14:39:09 · 1297 阅读 · 0 评论