自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (12)
  • 收藏
  • 关注

转载 Linux内核wait_queue深入分析

前几天在看驱动的时候碰到了等待队列,上网去搜了一下,再结合代码看了一下,深有体会.在 kernel 里,wait_queue 的应用很广,举凡 device driver,semaphore 等方面都会使用到wait_queue 来 implement。所以,它算是 kernel 里蛮 基本的一个数据结构。首先,我们得明白,linux中的所有的进程都由task_struct这个结构管

2008-11-30 16:43:00 1155

转载 Linux内核的等待队列

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。 在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)

2008-11-30 16:39:00 1141

转载 Linux设备驱动编程之阻塞与非阻塞 2

+还有一个与设备阻塞与非阻塞访问息息相关的论题,即select和poll,select和poll的本质一样,前者在BSDUnix中引入,后者在SystemV中引入。poll和select用于查询设备的状态,以便用户程序获知是否能对设备进行非阻塞的访问,它们都需要设备驱动程序中的poll函数支持。  驱动程序中poll函数中最主要用到的一个API是poll_wait,其原型如下:

2008-11-30 15:56:00 658

转载 Linux设备驱动编程之阻塞与非阻塞 1

阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作。非阻塞操作的进程在不能进行设备操作时,并不挂起。被挂起的进程进入sleep状态,被从调度器的运行队列移走,直到等待的条件被满足。  在Linux驱动程序中,我们可以使用等待队列(wait queue)来实现阻塞操作。waitqueue很早就作为一个基本的功能单位出现在Linux内核里了,它以队列为基础

2008-11-30 15:47:00 654

原创 如何编写Linux设备驱动程序

Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序,获得了一些经

2008-11-30 14:53:00 469

原创 Linux设备驱动程序设计实例

Linux系统中,设备驱动程序是操作系统内核的重要组成部分,在与硬件设备之间建立了标准的抽象接口。通过这个接口,用户可以像处理普通文件一样,对硬件设备进行打开(open)、关闭(close)、读写(read/write)等操作。通过分析和设计设备驱动程序,可以深入理解Linux系统和进行系统开发。本文通过一个简单的例子来说明设备驱动程序的设计。  1、程序清单  #ifndef __KER

2008-11-30 14:09:00 729

原创 Linux内核对I/O端口的管理实现

本文主要从内核实现的角度分析Linux 2.4.0内核IO子系统中对IO端口资源的管理的实现原理。本文是为那些想要深入分析Linux的IO子系统的读者和设备驱动程序开发人员而写的。 几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式

2008-11-28 15:14:00 906

转载 Linux下PCI设备驱动程序开发基本框架

PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。一、PCI总线系统体系结构PCI是外围设备互连(Peripheral ComponentInterconnec

2008-11-27 14:02:00 593

原创 PCI驱动程序实现

1. 关键数据结构PCI 设备上有三种地址空间:PCI的I/O空间、PCI的存储空间和PCI的配置空间。CPU可以访问PCI设备上的所有地址空间,其中I/O空间和存储空间提供给设备驱动程序使用,而配置空间则由Linux内核中的PCI初始化代码使用。内核在启动时负责对所有PCI设备进行初始化,配置好所有的PCI设备,包括中断号以及I/O基址,并在文件/proc/pci中列出所有找到的PCI设

2008-11-27 13:42:00 921

原创 对container_of的理解

在学习Linux驱动的过程中,遇到一个很好玩的内核函数,准确的说是一个很好玩的宏,叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:439/**440 * container_of - cast a member of a structure out to the containing structure441 * @ptr:       

2008-11-26 15:07:00 1534 1

原创 linux process fork related

to demonstrate the underlying principle of the unix api fork and fork-related contents(wait waitpid) etc, i wrote these two pieces of code as following , both of which repersented my personal understa

2008-11-23 13:41:00 578

原创 linux中wait系统调用

系统中的僵尸进程都要由wait系统调用来回收,下面就通过实战看一看wait的具体用法:wait的函数原型是:#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status);进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进

2008-11-23 13:15:00 684

转载 50 of the most important python module

python 50 满足所有功能的模块Graphical interface wxPython http://wxpython.org Graphical interface pyGtk http:/

2008-11-22 17:00:00 588

原创 python os模块

Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。下面列出了一些在os模块中比较有用的部分。它们中的大多数都简单明了。os.sep 可以取代操作系统特定的路径分割符。os.name字符串指示你正在使用的平台。比如对于Wind

2008-11-22 16:58:00 551

转载 struct device结构体(2.6.23)

一、定义:linux/include/linux/device.h 407struct device { 408 struct klist klist_children; 409 struct klist_node knode_parent; /* node in sibling list */ 410

2008-11-22 13:27:00 661

原创 kobject.h源码详解(2.6.16)

  1/*   2 * kobject.h - generic kernel object infrastructure.   3 *   4 * Copyright (c) 2002-2003      Patrick Mochel   5 * Copyright (c) 2002-2003      Open Source Development Labs   6 *   7 * This f

2008-11-22 13:24:00 850

翻译 kobjects,ksets and subsystems

kobjects,ksets and subsystems(from linux device driver)内核通常用kobject 结构将各个对象连接起来组成一个分层的结构体系。 parent 是指向另外一个kobject 结构(分层结构中上一层的节点)的指针,主要用途是在 sysfs 层次中定位对象. 一个 kset 是嵌入到相同类型结构的 kobject 的集合。但 struct ko

2008-11-22 13:22:00 936

原创 字符设备驱动 架构分析

Char Device Driver相关数据结构:struct cdev {        struct kobject kobj;        struct module *owner;        const struct file_operations *ops;        struct list_head list;        dev_t d

2008-11-22 11:26:00 759

转载 linux tty basic conception

基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。2> pty(虚拟终端):但是如果我们远程telnet到主机或使用

2008-11-20 18:33:00 574

转载 TTY终端设备文件接口的基本结构

TTY终端设备文件接口的基本结构basic conception :终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:1.串行端口终端(/dev/ttySn

2008-11-20 16:28:00 1518

转载 Linux设备模型之tty驱动架构分析

一:前言Tty这个名称源于电传打字节的简称。在linux表示各种终端。终端通常都跟硬件相对应。比如对应于输入设备键盘鼠标。输出设备显示器的控制终端和串口终端.也有对应于不存在设备的pty驱动。在如此众多的终端模型之中,linux是怎么将它们统一建模的呢?这就是我们今天要讨论的问题.二:tty驱动概貌Tty架构如下所示:500)this.width=500;" border=

2008-11-20 16:24:00 784

转载 内核模块编译说明

一、编写hello.c文件利用vi编辑器,我们键入下面的代码,并保存为hello.c文件。/** * hello.c * ------Test for kernel module */ #i nclude #i nclude                                 MODULE_LICENSE("MYGPL")

2008-11-20 11:11:00 4127

所有关于长尾理论的资料

所有关于长尾理论的资料,非常全 all the valuable theories about long tail, please value it

2008-12-21

第三代移动通信的安全研究

3G china mobile

2008-04-30

赢在中国:马云点评创业.pdf

赢在中国:马云点评创业

2008-03-10

Understanding the Linux Kernel, 3rd Edition

Understanding the Linux Kernel, 3rd Edition

2008-02-11

ipv6 specification

ipv6 specification

2008-02-11

UNIX环境高级编程.pdf

UNIX环境高级编程.pdf

2008-02-09

Shell学习笔记.doc

Shell学习笔记.doc

2008-02-09

Linux Device Driver

Linux Device Driver

2008-02-05

基于Netfilter的网络用户认证系统

基于Netfilter的网络用户认证系统

2008-02-05

基于Linux环境的网络安全防火墙和入侵检测系统的研究

firewall , linux , security

2008-02-05

netfilter

linux netfilter iptables

2008-02-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除