随笔分类 -  linux驱动及内核开发

摘要:Linux中断(interrupt)子系统之一:中断系统基本原理Linux中断(interrupt)子系统之二:arch相关的硬件封装层 Linux中断(interrupt)子系统之三:中断流控处理层 Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层 Linux中断... 阅读全文
posted @ 2015-04-16 19:55 静之深 阅读(293) 评论(0) 推荐(0)
摘要:自旋锁spin_lock和raw_spin_lockLinux内核spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析 http://blog.csdn.net/droidphone/article/details/7395983本文不打算详细探究spin_l... 阅读全文
posted @ 2015-04-16 19:51 静之深 阅读(973) 评论(0) 推荐(0)
摘要:Linux 线程模型的比较:LinuxThreads 和 NPTLGNU_LIBPTHREAD_VERSION 宏大部分现代 Linux 发行版都预装了 LinuxThreads 和 NPTL,因此它们提供了一种机制来在二者之间进行切换。要查看您的系统上正在使用的是哪个线程库,请运行下面的命令:$ ... 阅读全文
posted @ 2015-04-16 19:31 静之深 阅读(739) 评论(0) 推荐(0)
摘要:posix 线程(一):线程模型、pthread 系列函数 和 简单多线程服务器端程序一、线程有3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属于1:1模型。(一)、N:1用户线程模型“线程实现”建立在“进程控制”机制之上,由用户空间的程序库来管... 阅读全文
posted @ 2015-04-16 19:17 静之深 阅读(4080) 评论(0) 推荐(1)
摘要:linux上应用程序的执行机制执行文件是如何在shell中被"执行"的。本文中尽可能少用一些源码,免得太过于无聊,主要讲清这个过程,感兴趣的同学可以去查看相应的源码了解更多的信息。1.父进程的行为:复制,等待执行应用程序的方式有很多,从shell中执行是一种常见的情况。交互式shell是一个进程(所... 阅读全文
posted @ 2015-04-16 19:02 静之深 阅读(1279) 评论(0) 推荐(1)
摘要:Linux多线程编程和Linux 2.6下的NPTL在Linux 上,从内核角度而言,基本没有什么线程和进程的区别--大家都是进程。一个进程的多个线程只是多个特殊的进程他们虽然有各自的进程描述结构,却共享了同一 个代码上下文。在Linux上,这样的进程称为轻量级进程Light weight proc... 阅读全文
posted @ 2015-04-16 17:03 静之深 阅读(448) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/mxgsgtc/article/details/11909247 阅读全文
posted @ 2015-04-14 09:10 静之深 阅读(179) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/zhaoyl/p/3620204.html首先从OS设计原理上阐明三种线程:内核线程、轻量级进程、用户线程内核线程内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈... 阅读全文
posted @ 2015-04-13 00:40 静之深 阅读(410) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/yusiguyuan/article/details/12154823在《linux内核设计与实现》中第三章讲解了进程管理,在关于进程和线程的概念之间的区别还是由点模糊。书中说道: 进程就是处于执行期的程序。但进程并不仅仅局限于一段可执行程序代码。通常进程还... 阅读全文
posted @ 2015-04-13 00:19 静之深 阅读(3319) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/tigerjibo/article/details/8299686前言:从 内核的角度来说,它并没有线程这个概念。Linux把所有线程都当做进程来实现。内核并没有准备特别的调度算法或者定义特别的数据结构来表示线程。相反, 线程仅仅被视为一个与其他进程共享某些... 阅读全文
posted @ 2015-04-13 00:13 静之深 阅读(1359) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/huayuan/archive/2012/05/18/2507150.html1、中断: 通常被定义成一个事件,该事件改变处理器执行的指令顺序。这样的事件与cpu芯片外部电路产生的电信号相对应。2、中断的产生: 每个能够发出中断请求的硬件设备控制器都有一... 阅读全文
posted @ 2015-04-10 13:32 静之深 阅读(1296) 评论(0) 推荐(0)
摘要:http://www.ibm.com/developerworks/cn/linux/kernel/interrupt/软中断概况软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和" 信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对C... 阅读全文
posted @ 2015-04-10 13:28 静之深 阅读(457) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/tigerjibo/article/details/6412881kmalloc/kfree,vmalloc/vfree函数用法和区别1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.2>... 阅读全文
posted @ 2015-04-07 20:03 静之深 阅读(1111) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/yusiguyuan/article/details/23701519 阅读全文
posted @ 2015-04-04 23:15 静之深 阅读(937) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/weiqing1981127/article/details/8298585中断处理程序是被内核调用来响应中断的,它运行在中断上下文,中断处理程序是上半部,当接收到一个中断,它就立即开始执行,但只做有严格时限的工 作,例如对接收的中断进行应答或复位硬件,这些... 阅读全文
posted @ 2015-04-02 17:04 静之深 阅读(1288) 评论(0) 推荐(0)
摘要:http://blog.chinaunix.net/uid-14528823-id-4136760.html Linux中有多种栈,很容易弄晕,简单说明一下:1、用户态栈:在进程用户态地址空间底部,跟平时我们简单和理解的一样,就是虚拟地址空间中的一段,不多说~2、内核栈:跟用户态栈是独立的,在用户态... 阅读全文
posted @ 2015-04-02 16:42 静之深 阅读(1887) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/wang_yb/p/3899439.html 阅读全文
posted @ 2015-04-02 16:02 静之深 阅读(116) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/tq02h2a/article/details/4317211看了看linux 2.6 kernel的源码,下面结合代码来分析一下在X86体系结构下,互斥锁的实现原理。代码分析1. 首先介绍一下互斥锁所使用的数据结构:struct mutex {引用计数器1... 阅读全文
posted @ 2015-04-01 23:33 静之深 阅读(944) 评论(0) 推荐(0)
摘要:linux驱动的入口函数module_init的加载和释放 http://blog.csdn.net/zhandoushi1982/article/details/4927579void free_initmem(void){ if (!machine_is_integrator() && !... 阅读全文
posted @ 2015-03-24 13:52 静之深 阅读(582) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/riskyer/p/3221805.htmlEXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。2.6就必须用EXPORT_SY... 阅读全文
posted @ 2015-03-24 13:50 静之深 阅读(6998) 评论(0) 推荐(0)