logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核中的PID散列表实例

开发平台:基于虚拟机的Ubuntu 11.04    内核源码:linux-2.6.38.8.tar.bz2    目标平台:ARM体系结构    参考文献:《深入Linux内核架构》      关于散列表的概念可以参考博文《散列表的基本概念及其运算》。    1、PID散列表    PID散列表是在系统启动过程中通过pidhash_init

linux内核移植到tiny6410(1)

话说生活实在无聊,无聊的我只剩下学习了。好吧。手里有一块儿6410的板子闲置着,不能浪费啊。就活动活动把linux内核移植上去,顺便再把驱动过一遍。        内核里有一个6410的smdk了,本来不想直接使用的,但是已经提供了,我就先省点儿事儿,回过头来再研究自己从头到尾自己构建板级结构。        bootloader使用的是u-boot,以前移植过,现在没有心情再次移植一遍,

linux内核部件之---设备驱动模型的基石kobject

之前我们分析了引用计数kref,总结了sysfs提供的API,并翻译了介绍kobject原理及用法的文档。应该说准备工作做得足够多,kobject的实现怎么都可以看懂了,甚至只需要总结下API就行了。可我还是决定把kobject的实现代码从头分析一遍。一是因为kobject的代码很重要,会在设备驱动模型代码中无数次被用到,如果不熟悉的话可以说是举步维艰。二是为了熟悉linux的编码风格,为以后分析

#list
linux内核组件分析之--设备驱动模型之bus

前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev

#list
linux内核组件分析之---设备驱动模型之driver

上节我们分析设备驱动模型中的device,主要是drivers/base/core.c,可以说是代码量最大的一个文件。本节要分析的驱动driver,就要相对简单很多。原因也很简单,对于driver,我们能定义的公共部分实在不多,能再sysfs中表达的也很少。本节的分析将围绕drivers/base/driver.c,但头文件仍然是include/linux/device.h和drivers/bas

实例解析linux内核I2C体系结构(1)

一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有:        ●    思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。第一种方法问题(对应第二种方法的好处)有:

#算法
linux内核组件之---设备驱动模型之device-driver

前面我们分析了device、driver、bus三种类型,主要是三者的注册与注销,在sysfs中的目录与属性文件创建等内容。本节就来详细分析下,在设备注册到总线上时,总线是如何为其寻找对应的驱动的;在驱动注册到总线上时,总线又是如何为其寻找对应的设备的。本节的实现代码集中在drivers/base/bus.c和drivers/base/dd.c中。先来回忆下,在device_reg

#list
linux内核input子系统解析

作者:刘洪涛,华清远见嵌入式学院讲师。       Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。    因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系

盘点Linux内核源码中使用宏定义的若干技巧(1)

在C中,宏定义的概念虽然简单,但是真要用好却并不那么容易,下面从Linux源码中抽取一些宏定义的使用方法,希望能从中得到点启发:1. 类型检查比如module_init的宏定义:点击(此处)折叠或打开#define module_init(initfn)                    \    static inline in

#linux
linux内核部件--又见链表之klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三者不同,但hlist和klist都可以看成是从list_head中发展出来的,用于特殊

#list#linux
    共 42 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择