linux kernel 札记
文章平均质量分 80
代码阅读中的一些体会,热爱开源,乐于分享!
mostmark
这个作者很懒,什么都没留下…
展开
-
利用qemu进行内核源码级调试
=================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20=================================概要:看kernel代码的时候,变量多了,就记不清楚了,尤其是读内存部分代码的时候,传来传去,常常不知道改成什么样子了,内存布局到底变成什么了,也原创 2012-02-03 15:45:07 · 13240 阅读 · 4 评论 -
linux设备模型之spi子系统
相比于前面介绍的i2c子系统,spi子系统相对简单,和i2c的结构也很相似,这里主要介绍一下平台无关部分的代码。先概括的说一下,spi总线或者说是spi控制器用结构体struct spi_master来表述,而一般不会明显的主动实现这个结构而是借助板级的一些信息结构,利用spi的模型填充,存在板级信息的一条链表board_list,上面挂接着板级spi设备的描述信息,其挂接的结构是struct boardinfo,这个结构内部嵌入了具体的板级spi设备所需信息结构struct spi_board_info,原创 2011-05-22 16:22:00 · 4546 阅读 · 1 评论 -
linux设备模型之i2c子系统
===============================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20=============================== I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂原创 2011-05-20 00:00:00 · 3235 阅读 · 2 评论 -
linux设备模型之platform
platform可以说是内核抽象出来的一条虚拟总线平台,内核开发者原意是想把硬件层次上的结构关系用软件抽象模拟出来,但是对一些硬件,这样做往往不太合适,例如对于片上soc,外围设备的控制器都集成在处理器上,如果过度的剥离抽象,会使得原本物理上紧密的结构而在软件上变成的偏于独立,因此有了platform,对于联系紧密的soc这往往再合适不过,另外对于从soc上直接引出的引脚,难于独立出来,都可以利用platform来表述。 有了前面关于bus,driver,device的理解,platf原创 2011-05-18 14:18:00 · 2615 阅读 · 6 评论 -
linux设备模型之bus,device,driver分析二
===============================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20=============================== 上篇分析了bus,driver的注册过程,这篇主要分析device的注册,并总结给出个流程图。三、device的注册 还是照例先看一下device原创 2011-05-17 16:40:00 · 6070 阅读 · 4 评论 -
linux设备模型之bus,device,driver分析一
===============================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20=============================== 内核的开发者将总线,设备,驱动这三者用软件思想抽象了出来,巧妙的建立了其间的关系,使之更形象化。结合前面所学的知识,总的来说其三者间的关系为bus有两条链表,分别用于挂接设备和驱动,指定了其自身bus的device或者driver最后都会分别连接到对应原创 2011-05-17 02:15:00 · 5784 阅读 · 1 评论 -
关于linux设备模型kobject,kset,ktype
--------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20-------------------------------------------------------- 一、sysfs文件系统下的每个目录对应于一个kobj,k原创 2011-05-16 15:52:00 · 5479 阅读 · 3 评论 -
linux中断之下半部
一、概要 中断是内核不可缺少的一部分,但是中断处理程序本身存在一些局限性, a.中断方式以异步方式执行并且有可能会打断期待其他重要代码,甚至包括其它中断处理程序的执行,因此为了避免被打断的代码停止的时间过长,中断处理程序应该执行得越快越好。 b.如果当前有一个中断处理程序在运行,在最好的情况下(如果设置了SA_INTERRUPT),与该中断同级的其它中断会被屏蔽,在最坏的情况下原创 2012-03-19 23:03:27 · 2063 阅读 · 0 评论 -
linux内核同步之相关概念
摘要:说明一下同步相关的几个概念1、临界区:访问和操作共享数据的代码段2、同步原因:用户空间之所以需要同步,是因为用户程序会被调度程序抢占和重新调度,这会造成对临界区的再次访问,这样就会产生竞争。严格意义上这不是真正的并发,仍然是串行,我们可以称之为伪并发,在smp上,则会真正的出现两个进程在临界区中同事执行,也就是真并发3.造成并发执行的原因: a.中断:原创 2012-03-14 11:41:13 · 1452 阅读 · 0 评论 -
linux同步之相关工具
=================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20=================================摘要: 以前文为基础,看一下kernel中相关的同步工具;1.原子操作 原子操作可以保证指令以原子方式执行,执原创 2012-03-13 14:34:20 · 1513 阅读 · 0 评论 -
linux同步之spinlock
=================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_A20=================================简单浏览一下spinlock,以arm为例,一、spincklock结构:include/linux/spinlock_t原创 2012-03-11 18:50:17 · 3151 阅读 · 0 评论 -
linux内存模型之buddy(伙伴)系统二分配与释放
===================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_A20===================================一、摘要 最重要的还是分配与释放,下面看一下相关的几个函数;分配函数: 1.alloc_pages(gfp原创 2012-03-08 22:33:20 · 3677 阅读 · 0 评论 -
linux内存模型之buddy(伙伴)系统三从bootmem到buddy的过渡
===================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_A20=================================== 摘要: buddy基本模型建立起来后,bootmem也将要退出历史舞台了,boomem管理的内存都要过渡到buddy中,同样高端原创 2012-03-08 20:03:49 · 4704 阅读 · 1 评论 -
linux内存模型之buddy(伙伴)系统一概览及相关数据结构
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_A20==================================一、摘要 前面说过的bootmem分配器只不过是早期内存分配的一种方法,linux最终底层是以伙伴系统为模型,伙伴系统的基本原创 2012-03-07 00:28:13 · 3366 阅读 · 0 评论 -
linux内存模型之bootmem分配器<二>
-----------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20----------------------------------------------------------- 简介:介绍一下上文遗留的两个结构memblo原创 2012-02-02 23:15:36 · 3246 阅读 · 0 评论 -
linux内存模型之bootmem分配器<一>
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20==================================简介:bootmem分配器是系统启动初期的内存分配方式,在耳熟能详的伙伴系统,slab系统建立前内存都是利用bootmem分配器来原创 2012-02-02 18:24:44 · 3831 阅读 · 0 评论 -
linux设备模型之mmc,sd子系统<三>
-----------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20-----------------------------------------------------------####看一下重要的卡扫描函数,mmc_r原创 2012-02-01 22:55:02 · 6061 阅读 · 2 评论 -
linux设备模型之mmc,sd子系统<二>
-----------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20-----------------------------------------------------------继续上一篇文章,先看一个重点结构,平台相关,真正对原创 2012-02-01 18:31:16 · 3249 阅读 · 0 评论 -
linux设备模型之mmc,sd子系统<一>
------------------------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20------------------------------------------------------------sd卡driver最关键的是host部分,原创 2012-02-01 14:41:32 · 4615 阅读 · 1 评论 -
linux启动流程导读(arm为例)<二>
==============================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20/article/details/7220389==============================================进入init/main.cstart_ke原创 2012-01-30 18:21:58 · 2794 阅读 · 1 评论 -
linux启动流程导读(arm为例)<一>
==============================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20/article/details/7220389==============================================以arm为例,分析一下kernel的启动过程;原创 2012-01-30 18:10:36 · 4196 阅读 · 1 评论 -
linux中断导读之--处理流程
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20==================================前面大致把处理流程都稍代说了,这里总结下大概过程,跳过前面的已经说过的中断汇编部分,asm_do_IRQ ----handle_IRQ原创 2012-01-30 14:28:43 · 1315 阅读 · 1 评论 -
linux中断导读之--注册部分
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20==================================前面介绍了中断的初始化代码,稍带着执行流程也过的差不多了这里看下我们经常碰到的中断的注册,看看和前面是怎么关联起来的,也就是request_i原创 2012-01-30 14:21:12 · 1994 阅读 · 1 评论 -
linux中断导读之--初始化<2>
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20==================================继续上一篇,看一下中断向量表初始化部分:代码在init/main.c-start_kernel/setup_arch(&command_line)原创 2012-01-30 13:03:49 · 1933 阅读 · 1 评论 -
linux中断导读之--初始化<1>
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_a20==================================看一下linux中断部分,分为三部分,初始化,处理流程以及注册流程。先看第一部分初始化:在======= init/mai原创 2012-01-30 11:47:53 · 3665 阅读 · 2 评论 -
linux设备模型之led子系统
时代不同了,连led都成子系统了,针对内核提供的通用模型,分析一下,好久没写文章了也! 代码位于drivers/leds下,看一下Makefile 模型文件主要是:# LED Coreobj-$(CONFIG_NEW_LEDS) += led-core.原创 2011-07-11 16:24:43 · 3103 阅读 · 3 评论 -
linux设备模型之input子系统
==================================本文系本站原创,欢迎转载!转载请注明出处:http://blog.csdn.net/gdt_A20==================================摘要:input子系统是kernel中比较简单的一个子系统,主要用来管理输入设备(触摸屏,键盘等等),个人感觉可以作为driver原创 2012-03-11 22:17:42 · 4103 阅读 · 0 评论