菜鸟程序猿的求知小屋

恒之以持远,莫忘初心。

linux设备驱动归纳总结

前言: (总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!) 前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。  我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版和《...

2017-02-15 16:20:02

阅读数 140

评论数 0

linux设备驱动归纳总结(三):4.ioctl的实现

linux设备驱动归纳总结(三):4.ioctl的实现 一、ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱...

2017-02-15 16:19:13

阅读数 319

评论数 0

linux设备驱动归纳总结(三):3面向对象思想和lseek

linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现 一、结构体struct file和struct inode 在之前写的函数,全部是定义了一些零散的全局变量。有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便...

2017-02-15 16:17:57

阅读数 159

评论数 0

linux设备驱动归纳总结(三):2open.close.read.write

linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write 一、文件操作结构体file_operations 继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的...

2017-02-15 16:17:03

阅读数 273

评论数 0

linux设备驱动归纳总结(三):1字符型设备之设备申请

linux设备驱动归纳总结(三):1.字符型设备之设备申请 操作系统:Ubunru 10.04 实验平台:S3C2440 + linux2.6.29内核 注:在今后驱动程序的学习中经常需要查看内核源代码,建议大家新加一个内核目录,去掉一些与S3C2440平台无关的代码...

2017-02-15 16:15:42

阅读数 162

评论数 0

linux设备驱动归纳总结(二):模块的相关基础概念

linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...

2017-02-15 16:14:20

阅读数 113

评论数 0

linux设备驱动归纳总结(一):内核的相关基础概念

linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一.linux设备驱动的作用 内...

2017-02-15 16:13:27

阅读数 357

评论数 0

小白的博客

http://blog.chinaunix.net/uid/25014876/cid-2370-list-1.html

2017-02-15 14:15:02

阅读数 82

评论数 0

排序算法复习——交换类排序

在交换类排序算法中,有冒泡排序和快速排序。 冒泡排序: 这个算法大家估计很熟悉了,不做介绍了。 这里有一个算法优化的地方,那就是设置标志位,如果在上一趟的比较当中,没有进行交换的话,就说明已经排好序了,不需要再进行排序了。 演练程序: #include...

2017-02-15 11:53:19

阅读数 86

评论数 0

查找 -数据结构

几种查找算法:顺序查找,折半查找,分块查找,散列表 一、顺序查找的基本思想:  从表的一端开始,向另一端逐个按给定值kx 与关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与kx 相同的关键码,则查找失败,给出失败信息。 说白了就是,...

2017-02-15 11:49:28

阅读数 66

评论数 0

八大排序算法

概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。          当n较大,则应采用时间复杂度为O(nlog2n)的排序方法...

2017-02-15 11:48:15

阅读数 68

评论数 0

了解Linux 内存使用

1. 用户进程内存结构 top 命令了解进程信息,其中包括内存方面的信息。 正在运行的程序,叫进程。每个进程都有完全属于自己的,独立的,不被干扰的内存空间。此空间,被分成几个段(Segment),分别是Text, Data, BSS, Heap, Stack。用户进...

2017-02-15 11:46:42

阅读数 133

评论数 0

硬盘的读写原理

硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;...

2017-02-15 11:30:11

阅读数 119

评论数 0

链表与数组的区别

链表和数组都可用来存放指定的数据类型。           首先分别介绍一下链表和数组。           链表的特性是在中间任意位置添加删除元素的都非常的快,不需要移动其它的元素。通常链表每一个元素都要保存一个指向下一个元素的指针(单链表)。双链表的话每个元素即要保存到下一个元素的指针,还...

2017-02-15 11:26:41

阅读数 82

评论数 0

Linux系统结构 详解

Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。  1. linux内核 ...

2017-02-15 11:24:56

阅读数 64

评论数 0

Linux 环境进程间通信(六) 套接字

一个套接口可以看作是进程间通信的端点(endpoint),每个套接口的名字都是唯一的(唯一的含义是不言而喻的),其他进程可以发现、连接并且与之通信。通信域用来说明套接口通信的协议,不同的通信域有不同的通信协议以及套接口的地址结构等等,因此,创建一个套接口时,要指明它的通信域。比较常见的是unix域...

2017-02-15 11:04:23

阅读数 215

评论数 0

Linux环境进程间通信(三)消息队列

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求...

2017-02-15 11:03:48

阅读数 158

评论数 0

Linux环境进程间通信(五): 共享内存(下)

系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。 1、系统V共享内存原理 进程间需要...

2017-02-15 11:02:54

阅读数 267

评论数 0

Linux环境进程间通信(五): 共享内存(上)

采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总...

2017-02-15 11:02:15

阅读数 184

评论数 0

Linux环境进程间通信(四)信号灯

一、信号灯概述 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型: 二值信号灯:最简单的信号灯形式,信号灯的值只能...

2017-02-15 11:01:29

阅读数 1275

评论数 0

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