- 博客(50)
- 资源 (9)
- 问答 (4)
- 收藏
- 关注
转载 RAMDISK块设备驱动程序
from: http://blog.163.com/hjw_vc/blog/static/1148310352009104952466/ram、loop、网络设备等驱动通常使用自己编写的make_request函数来处理bio结构,免去内核使用I/O调度器处理的麻烦。而像硬盘等这些有磁道、扇区的设备驱动则使用request函数,内核会提供 __make_request()函数并调用
2015-03-31 13:58:25 2343
转载 linux驱动入门博客
草根老师博客(程姚根):linux设备驱动:http://blog.chinaunix.net/uid/26833883/cid-196673-list-1.html
2015-03-30 10:01:50 580
转载 Linux 静态库与共享库的使用
from: http://blog.csdn.net/heyabo/article/details/11688517申明: 正如题如示,本篇讲的是Linux下是静态库与共享库,而Window下的动态链接库详细情况可见这篇文章:windows动态链接库 DLL 浅析。虽然原理,思想差不多,但是细节却各有不同。一、静态库1、概念:静态库指将所
2015-03-27 16:12:33 691
转载 虚拟机Ubuntu 14.04 内核升级 详细步骤
一,virtualbox中ubantu14.04中内核升级;进入virtualbox虚拟机ubantu14.04中,执行:uname -r,输出如下:3.13.0-321. 下载源码 www.kernel.org/pub/linux/kernel/v3.x/…,,比如下载到linux-3.14.tar.gz,大约100+M2.拷贝到/usr/src目录下,用 ta
2015-03-27 15:16:07 4577
转载 linux中秒字符设备驱动(宋宝华设备驱动开发详解第10章)
from: http://blog.sina.com.cn/s/blog_95268f5001015mqb.html1. secondchar.c:#include #include #include #include //建立自动设备节点要包含的头文件#include #include #include #include #include #include /
2015-03-26 10:16:48 1383
转载 在驱动中增加异步通知的例子
From: http://blog.csdn.net/wenhui_/article/details/6824411异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序就根本不需要查询设备的状态,这一点非常类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上一个进程接收到一个信号与处理器接收
2015-03-25 16:18:09 751
转载 Linux设备驱动中的阻塞与非阻塞I/O-ubantu14.04第四个驱动程序
阻塞和非阻塞I/O是设备访问的两种不同模式,驱动程序可以灵活的支持用户空间对设备的这两种访问方式本例子讲述了这两者的区别 并实现I/O的等待队列机制, 并进行了用户空间的验证基本概念:1> 阻塞操作 是指 在执行设备操作时,若不能获得资源,则挂起进程直到满足操作条件后再进行操作。被挂起的进 程进入休眠, 被从调度器移走,直到条件满足。2> 非阻塞操作
2015-03-25 14:28:53 1065 1
原创 ubantu14.04第三个使用文件私有数据的globalmem的设备驱动
1. 代码如下:#include #include #include #include #include #include #include #include #include //#include //找不到这个文件#include // for kmalloc and kfree function#include #define GLOBALMEM_SIZE 0
2015-03-24 14:32:31 1116
原创 ubantu14.04第二个memory驱动程序
1. mydm1.c:#include #include #include #include #include #include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL"); int devMajor = 224; // 主设备号用于内核把文件和它的驱动链接在一起stat
2015-03-24 09:35:18 736
转载 设备驱动基础0:设备模型之kobject,kset及其关系
from: http://www.cnblogs.com/image-eye/archive/2012/01/29/2330838.htmlLinux2.6以后的设备驱动,都是在设备模型的基础上构建的,因此,要编写linux下的设备驱动程序,不论是usb设备,pci设备等,都需要了解设备模型。设备模型的基础结构体主要是kobject,kset这两个结构体:struct kobject
2015-03-23 14:52:12 535
转载 设备驱动基础1:设备模型之总线,驱动,设备
ref: http://www.cnblogs.com/image-eye/archive/2012/01/29/2331254.htmlKobject,kset是设备模型的基本结构体,设备模型使用这两个结构体来完成设备的层次关系,但在实际的设备驱动编写中,我们基本上用不到kobject,kset这些结构体,是因为这些结构体又被嵌入到更大的结构体中,原因在于kobject,kset结构体只
2015-03-23 14:04:50 649
转载 使用 udev 高效、动态地管理 Linux 设备文件
概述:Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等。通过观察这些设备的内核设备名称,用户通常能知道这些是什么类型的设备,但是不知道哪一个设备是他们想要的。例如,在一个充斥着本地磁盘和光纤磁盘的设备名清单 (/dev/sd*) 中,用户无法找到一个序列号为“35000c50000a7ef67”的磁盘。在这种情况下,udev 就能动态
2015-03-23 12:54:51 1861
原创 ubantu14.04 32位下第一个hello world驱动程序
ubantu14.04 32位下第一个hello world驱动程序平台:ubantu14.04,内核版本: 3.13.0-32-generic编写驱动程序时,首先必须建立内核源码树,内核源码树我现在的理解就是整个linux内核源代码编译后的形式,即下载源码后,执行make编译后的形式,它是编译驱动的前提。ubuntu系统默认情况下是没有的。先前的内核只需要有一套内核头文件
2015-03-19 19:36:35 3323 1
转载 pygame学习笔记(4)——声音
转载来源:http://www.cnblogs.com/xiaowuyi/archive/2012/06/15/2550338.htmlpygame.mixer是一个用来处理声音的模块,其含义为“混音器”。游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分。1、pygame.mixer启动与初始化pygame.mixer.init():mixer的初始化。
2015-03-19 15:31:06 4954 2
转载 python项目练习十:DIY街机游戏-(香蕉,快走)
这个练习是一个小游戏程序,如果要是给它起个名字的话,应该叫:快躲,香蕉。主要的游戏内容就是,游戏开始会从屏幕上方不断随便的掉一些铁块,在屏幕下方有一个小香蕉是受你控制的,你需要不断的左右移动来躲避铁块。在你躲避完一定数量的铁块之后,就会进入下一关。下一关依然是让你躲铁块,不过铁块下降的速度就快了很多。在游戏中你可以按下任意键暂停,再次按则继续,按下ESC键退出。这就是全部的功能了,下面我们来看游戏
2015-03-19 14:59:03 3293 3
转载 2.6.15.5内核配置选项(Kernel Box) 完全手册
主目录 Code maturity level options --->代码成熟度选项 General setup --->常规设置 Loadable module support --->可加载模块支持 Block layer --->块设备层 Processor type and features --->处理器类型及特性 Power manage
2015-03-17 20:13:51 789
转载 Python socket模块编程 SocketServer框架
Python提供了两个基本的socket模块。一个是socket,它提供了标准的BSD Socket API;另一个是socketServer,它提供了服务器中心类,可以简化网络服务器的开发。 本文简要介绍socket模块包含的类及其使用。 1.开始了解socket模块前,先熟悉下Python的网络编程模块主要支持的两种Intent协议:TCP和UDP。TCP协
2015-03-17 10:29:59 26798 3
转载 python SQLite数据库简单操作
#!/usr/bin/pythonimport sqlite3# create databaseconn = sqlite3.connect('test.db') #不存在就创建后再打开print ("Opened database successfully")conn.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KE
2015-03-17 09:30:51 2706
原创 python,ipython,wxPython安装
安装python:sudo apt-get install python安装ipython:1. 下载ipython:ipython的源码下载页面为:https://pypi.python.org/pypi/ipython或者是到git页面下载:https://github.com/ipython/ipython/downloads假设我们下载的文件名为:ipython
2015-03-17 08:26:04 2112
原创 python中doctest自我测试(测试模块中的函数是否对)
#该文件名为mymod.pydef sum(x,y): ''' 此处为文档字符串 The sum of two numbers. >>> sum(1,3) 4 >>> sum(9,11) 20 ''' return x + yif __name__ == "__main__": #模块运行进行自我测试 im
2015-03-15 22:36:12 3856 1
原创 python中disutils打包与安装
python使用distutils打包和安装:1. 命令说明python setup.py --help-commands 输出命令说明python setup.py sdist 创建一个源码包发布 source distributionpython setup.py bdist 创建一个二进制包发布 binary distributionpython setup.py s
2015-03-15 20:44:18 5760
转载 Python局部变量与全局变量
局部变量你在函数定义中声明的变量,他们与在函数外使用的其它同名变量没有任何关系,即变量名称对函数来说是局部的。这叫变量的范围。所有变量都有它们被声明的块的范围,从名称定义的点开始。局部变量定义举例:x = 50def func(x): print('x等于', x) x = 2 print('局部变量x改变为', x)func(x)prin
2015-03-14 22:16:20 2476
原创 Python学习网站(简明python教程,The Python Tutorial,Python学习笔记,啄木鸟社区)
简明python教程(W3CSCHOOL):http://www.w3cschool.cc/python/python-tutorial.htmlThe Python Tutorial(英文): https://docs.python.org/3/tutorial/index.html,中文版:http://python.usyiyi.cn/python_341/tutorial/in
2015-03-14 22:14:48 3833
转载 Python装饰器
例子:''' '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行。 也就是说 @A def f(): 是非法的。 只可以在模块或类定义层内对函数进行修饰,不允许修修饰一个类。 一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。'''def outer(f):
2015-03-14 14:47:06 648
转载 Python3.4.3中yield 生成器
yield:生成器任何使用yield的函数都称之为生成器,如:Python代码 def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成器包含yield语
2015-03-14 10:45:19 13874
原创 精通shell编程第二版Sriranga Veeraraghavan著 卢涛notes
精通shell编程 第二版 Sriranga Veeraraghavan著 卢涛译notes:1. 工具如who和date等是以文件的形式存储在磁盘上的,只有在被请求时才加载到内存,加载后会在内存存在一段时间,以便下次执行更快。2. shell和date一样,也是存储在磁盘上的程序,shell在你登陆系统时就加载了,然后一直驻留在内存里,直到你退出系统。3. bash初始化
2015-03-13 14:38:06 1282
原创 shell函数库使用
函数库:函数库只包含函数的定义,脚本中既包含函数的定义也包括可执行的代码;使用函数库:. funcfile如:func.sh:#!/bin/bashprintHello(){ printf "hello\n" # exit 0}printWorld(){ printf "world\n"
2015-03-12 20:13:36 2027
转载 shell调试
用法:/bin/bash opt script在shell脚本第一个添加opt,如#!/bin/bash -vopt为:-n 读入所有命令,但不执行 可以进行语法检查-v 显示所有读入的行,冗余-x 在命令执行时显示它们的参数,通常被称作shell跟踪,执行跟踪在跟踪模式下,脚本的每一个命令都严格按它们被执行的形式打印出来,如:set -x; ls *.sh; set
2015-03-12 16:07:57 628
转载 shell中的信号处理
在unix里,可能发生的每一种类型的事件都是由一个独立的信号来描述,每一个信号都是一个小的正整数,如:名称 值 描述SIGHUP 1 控制终端发现被挂起或控制进程死亡SIGINT 2 键盘终端SIGQUIT 3 来自键盘的退出信号SIGKILL 9 杀死进程的信号SIGALRM 14 定时时钟中断SIGT
2015-03-12 14:46:15 9092
转载 shell脚本中局部变量
ref: http://blog.sina.com.cn/s/blog_683421a101013w8f.html在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。例1:
2015-03-11 14:12:34 980
转载 linux中的(),(()),[],[[]],{}的作用
linux中的(),(()),[],[[]],{}的作用:ref: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1196028&page=1()命令组.在括号中的命令列表, 将会作为一个子shell来运行.在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的. 父进程, 也就是脚本本身, 将
2015-03-11 11:47:51 17879 1
转载 Shell编程中Shift的用法
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不
2015-03-11 11:14:47 692
转载 linux 冒号:的用途
目录(?)[-]用途说明常用参数使用示例示例一 参数扩展示例二 清空文件示例三 脚本注释占位符本文链接:http://codingstandards.iteye.com/blog/1160298 (转载请注明出处) 用途说明我们知道,在Li
2015-03-11 11:06:38 2151
原创 shell流控制与循环
shell流控制与循环:1. if-else流控制:if list1; then list2elif list3; then list4elif list5; then list6else list7fishell中返回0表示为真,非0为假例子:#!/bin/bashread -p "请输入一个整数A: " A
2015-03-10 16:09:53 492
原创 shell学习手册网站
shell手册:http://www.yiibai.com/shell/http://www.w3cschool.cc/linux/linux-shell-process-control.html
2015-03-10 16:07:45 692
原创 shell编程例子
一,9*9乘法表:方法1:#!/bin/bashLINE_NUMS=9m=1n=1while [ ${m} -le ${LINE_NUMS} ]do n=1 while [ ${n} -le ${m} ] do let result=${n}*${m} echo -n "${n}"*"${m}"=$result echo -n " " let n=
2015-03-10 10:53:20 662
原创 shell中引用
引用:关闭对特殊字符含义的解析处理被称为引用,实现方法有三种:1. 使用反斜线(\) 转义,单独的反斜线通常用于实现其后字符的引用,当反斜线置于一个普通的字符前,如n和t,所得到的字符串称为转义序列,\n和\t实现换行和tab格式echo \abs\3输出abs3,普通字符转义当作本意处理2. 使用单引号('),单引号引起来的所有特殊字符都将失去它们的特殊含义,当作本意来处理
2015-03-10 10:32:41 726
转载 shell中的置换
shell中变量的测试与替换 在某些时刻我们经常需要判断某个变量是否存在,若变量存在则使用既有的设置,若变量不存在则给予一个常用的设置。 (1)变量未被设置或者内容为空,则替换为新的内容. new_var=${old_var-content} 范例一:测试一下是否存在 username 这个发量,若不存在则给予 username 内容为 root
2015-03-10 08:59:12 1067
转载 *exec,source和fork的区别*
exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。在说明exec和s
2015-03-09 19:56:35 781
转载 shell变量
在shell中有3种变量:系统变量,环境变量和用户变量,其中系统变量在对参数判断和命令返回值判断时会使用,环境变量主要是在程序运行时需要设置,用户变量在编程过程中使用量最多。1。系统变量常用的系统变量变量名 含义$# 命令行参数的个数$n $1表示第一个参数,$2表示第二个参数,以此类推
2015-03-09 19:10:48 1431
Hadoop的Eclipse插件,MapReduce
2014-04-08
华科考研历年机试C语言实现_无题目只有代码实现_不完整
2014-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人