- 博客(35)
- 资源 (3)
- 收藏
- 关注
转载 收录 Uboot 详解
本博客转载于:http://blog.chinaunix.net/uid-26813001-id-3279194.html我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 在PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(Main Boot Record,主引导记录)中的Bootloade
2014-12-30 15:31:29 1125
转载 Linux下USB驱动基础
本博客转载于:http://blog.chinaunix.net/uid-9185047-id-445196.htmlUSB是主机和外围设备之间的一种连接。USB最初是为了替代各种各样的不同的接口的低速总线而设计的。(例如:串口,并口,键盘连接等)。它以单一类型的总线连接各种不同类型的设备。USB拓扑机构不是以总线方式的。而是一棵由几个点对点的连接构成的树。连接线由
2014-12-28 20:13:46 1084
转载 网卡驱动程序设计
本博客转载于:http://blog.163.com/sunshine_linting/blog/static/4489332320118203737560/Linux网络体系架构需要掌握的知识点:1. Linux的协议栈层次2. Linux的网络子系统架构 协议栈:Linux的优点之一在于它丰富而稳定的网络协议栈。其范围从协议无关层(例如通用 so
2014-12-23 11:15:23 1008
转载 Linux网络体系结构
本博客转载于:http://blog.csdn.net/fover717/article/details/4301637一 内核结构 按功能,Linux内核可以划分为5个不同的部分,每一部分处理一项明确的功能,同时又向其他内核组件提供这项功能。这种结构也反映到内核的源代码上——这5部分都形成了自己的子树。 1进程管理2内存管理3文件系统4设备驱动程
2014-12-23 10:52:38 1678
转载 Linux内核module_param的使用
本博客转载于:http://blog.csdn.net/dysh1985/article/details/78020801.定义模块参数的方法:module_param(name, type, perm);其中,name:表示参数的名字; type:表示参数的类型; perm:表示参数的访问权限; 2. 数组类型模块参数的定义:用逗号
2014-12-22 20:33:37 920
转载 linux常用命令详解
本博客转载于:http://blog.chinaunix.net/uid-26180298-id-3152746.htmlLinux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作、文件存Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在L
2014-12-18 17:00:22 1141
转载 LDD3源码分析之内存映射
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7452289 [作者:刘昊昱]本文分析LDD3第十五章介绍的内存映射模块simple。 一、simple模块编译在2.6.32-38-generic-pae内核下编译simple模块时,会遇到一些问题,下面列出遇到的问题及解决办法。执行make编译simp
2014-12-18 16:42:34 900
转载 LDD3源码分析之与硬件通信&中断处理
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7447950 [作者:刘昊昱 ]本分析LDD3第9和第10章的示例代码short。short涉及的主要知识点有通过I/O端口或I/O内存操作设备寄存器及设备内存,注册中断处理函数处理中断。本来第9和第10章的代码应该分别进行讨论,但是因为short的代码相互关联比较紧
2014-12-18 16:39:45 967
转载 LDD3源码分析之vmalloc
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7417174 [作者:刘昊昱]一、scullv编译本文分析LDD3第8章中与vmalloc函数相关代码,对应源码是examples/scullv目录下的相关文件。这里首先说明一下,scullv的代码有两部分,一是main.c,另一部分是mmap.c,其中mmap.
2014-12-18 16:37:54 971
转载 LDD3源码分析之按页分配内存
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7417042 [作者:刘昊昱 ]一、scullp编译本文分析LDD3第8章中按页分配内存相关代码,对应源码是examples/scullp目录下的相关文件。这里首先说明一下,scullp的代码有两部分,一是main.c,另一部分是mmap.c,其中mmap.c
2014-12-18 16:35:46 728
转载 LDD3源码分析之slab高速缓存
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7415466 [作者:刘昊昱 ]本文分析LDD3第8章中关于使用slab高速缓存的代码,对应的源码在scullc目录下。另外,在较新的内核下编译scullc时会遇到一些错误,本文最后给出了解决这些错误的方法。 一、scullc源码分析首先介绍一下slab相
2014-12-18 16:32:47 873
转载 LDD3源码分析之时间与延迟操作
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7412931 [作者:刘昊昱]本文分析LDD3第7章的示例程序jit.c和jiq.c,并给出了解决编译jiq.c文件时出现的错误的方法。 一、jit.c文件分析jit.c程序是一个综合性的演示程序,涉及操作时间和延迟的各种技术。为了使程序代码最少,jit使用动
2014-12-18 16:29:56 869
转载 LDD3源码分析之访问控制
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7407700 [作者:刘昊昱]一、访问控制设备的注册本文分析LDD3第6章介绍的设备文件访问控制的实现,涉及的代码主要在access.c文件中,但是作为分析的起点,我们还是要看一下main.c文件中的scull_init_module函数,在该函数中,有如下语句:
2014-12-18 16:26:43 802
转载 LDD3源码分析之llseek分析
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7402857[作者:刘昊昱] 本文分析LDD3第6章的llseek函数。 一、用户空间的lseek函数要理解驱动中llseek函数的实现,必须先清楚对应的用户空间中lseek函数的用法,lseek函数函数原型如下:[cpp] view plainc
2014-12-18 16:24:26 830
转载 LDD3源码分析之异步通知
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7401418 [作者:刘昊昱]一、异步通知机制的实现本文分析LDD3第6章中的异步通知机制。通过使用异步通知机制,应用程序可以在指定的I/O操作可执行时,收到一个信号,而不需要不停的使用轮询来查询设备。要使用异步通知机制,对于用户空间程序来说,需要执行如下步骤
2014-12-18 16:22:16 823
转载 LDD3源码分析之poll分析
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7400037 [作者:刘昊昱]本文分析LDD3第六章介绍的scullpipe设备是如何实现阻塞I/O的。另外,我发现scullpipe的实现代码有一个问题,在文章的最后,对这个问题进行了说明,并给出了修正代码。 一、scullpipe设备实现阻塞I/O分析s
2014-12-17 17:28:25 822
转载 LDD3源码分析之阻塞型I/O
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7395057 [作者:刘昊昱]本文分析LDD3第六章介绍的scullpipe设备是如何实现阻塞I/O的。另外,我发现scullpipe的实现代码有一个问题,在文章的最后,对这个问题进行了说明,并给出了修正代码。 一、scullpipe设备实现阻塞I/O分析s
2014-12-17 17:25:55 1033
转载 LDD3源码分析之简单休眠
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7388163 [作者:刘昊昱]本文分析LDD3第六章中关于简单休眠的示例代码sleepy.c。首先列出sleepy.c的完整代码:[html] view plaincopy 1/* 2 * sleepy.c -- the wr
2014-12-17 17:23:21 820
转载 系统调用手册
本博客转载于:http://blog.chinaunix.net/uid-23670869-id-2391634.html一、进程控制fork 创建一个新进程clone 按指定条件创建子进程execve 运行可执行文件exit 中止进程_exit 立即中止当前进程getdtablesize 进程所能打开的最大文件数getpgid 获取指定进程组标识号
2014-12-17 10:32:58 734
转载 linux系统移植和根文件系统制作
本博客转载于:http://blog.chinaunix.net/uid-26524139-id-3051743.html1.1 Linux内核基础知识在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起。1.1.1 Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefi
2014-12-16 21:36:29 997
转载 LDD3源码分析之ioctl操作
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7386254 [作者:刘昊昱]本文分析LDD3第六章中关于ioctl操作的代码,并编写测试程序对ioctl功能进行测试。 一、ioctl操作驱动程序中ioctl函数的函数原型如下:int (*ioctl)(struct inode *inode, st
2014-12-16 21:04:30 873
转载 LDD3源码分析之并发与竞态
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7383653 [作者:刘昊昱]本文分析LDD3第五章并发与竞态相关代码,本章代码涉及两个内容,一个是信号量,另一个是completion。 一、scull中信号量的使用在scull_write函数中有如下代码片断:[cpp] view p
2014-12-16 20:59:34 724
转载 LDD3源码分析之调试技术
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7383563 [作者:刘昊昱 ]本文分析LDD3第四章相关代码,主要是使用/proc文件系统(包括seq_file接口)进行调试操作,即在/proc目录下生成/proc/scullmem和/proc/scullseq文件,用户可以通过这些文件获得scull设备相关信
2014-12-16 20:54:33 742
转载 LDD3源码分析之字符设备驱动程序
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7383313 [作者:刘昊昱]本文是对LDD3第三章驱动代码的分析记录。LDD3的scull源码是一个综合性的驱动程序,内容涵盖了第三章到第六章的内容,初学者在学习过程中可能会有一定困难,这里仅分析LDD3第三章涉及的相关代码。在本文的最后,列出了在2.6.32内核上编
2014-12-16 20:43:36 872
转载 LDD3源码分析之hello.c与Makefile模板
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7382956 [作者:刘昊昱]一、hello.c文件分析 这个程序非常简单,它的目的是向我们展示Linux模块编程的架构,而Linux设备驱动程序的开发方法,就是利用了Linux模块编程。首先来分析一下这个程序。对于任何一个模块程序,不论是简单如这个
2014-12-16 20:07:10 803
转载 LDD3源码分析之时间与延迟操作
本博客转载于:http://blog.csdn.net/liuhaoyutz/article/details/7412931[作者:刘昊昱]一、jit.c文件分析jit.c程序是一个综合性的演示程序,涉及操作时间和延迟的各种技术。为了使程序代码最少,jit使用动态的/proc文件方式。按照惯例,我们从模块初始化函数jit_init开始看:[cpp] view pla
2014-12-15 21:37:35 799
转载 ldd3源码jiq.c编译出现的问题
此博客转载于:http://blog.csdn.net/makethyme/article/details/6940203本人使用的环境是uname -r 为2.6.35.6-45.fc14.i686编译中,首先碰到的就是现在头文件已经不存在,搜索看看就知道这么解决了。另外一个就是中一些函数和结构体已经改变了:extern int schedule_delayed_wo
2014-12-15 21:29:27 711
原创 《Linux内核设计与实现》——设备与模块
一、设备类型 1、在Linux以及所有Unix系统中,设备被分为以下三类: 1)、块设备。 2)、字符设备。 3)、网络设备。 2、块设备通常缩写blkdev,它是可寻址的,寻址以块为单位,块大小随设备不同而不同;块设备通常支持重定位操作,也就是对数据的随机访问。 3、字符设备通常缩写为cdev,它是不可寻址的,仅提供数据的流式访问,
2014-12-01 10:19:58 919
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人