自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

转载 Linux系统运维/正则表示法/6-1

什么是正规表示法简单的说,正规表示法就是处理字串的方法,他是以行为单位来进行字串的处理行为,正规表示法透过一些特殊符号的辅助,可以让使用者轻易的达到『搜寻/删除/取代』某特定字串的处理程序!假设你发现系统在启动的时候,老是会出现一个关於 mail 程序的错误, 而启动过程的相关程序都是在 /etc/init.d/ 底下:『grep 'mail' /etc/init.d/*』grep 就

2016-03-06 11:59:23 484

转载 Linux系统运维/Bash/5-6-管道命令

管线命令 (pipe) [root@www ~]# ls -al /etc | less这个管线命令『 | 』仅能处理经由前面一个命令传来的正确信息,也就是 standard output 的信息,对于 stdandard error 并没有直接处理的能力。那么整体的管线命令可以使用下图表示:图 6.1.1、 管线命令的处理示意图也就是说,管线命

2016-03-06 11:12:39 491

转载 Linux系统运维/Bash/5-5-数据流重定向

什么是数据流重导向什么是数据流重导向啊?这得要由命令的运行结果谈起!一般来说,如果你要运行一个命令,通常他会是这样的:standardoutput 与standard error output简单的说:标准输出指的是『命令运行所回传的正确的信息』而标准错误输出可理解为『 命令运行失败后,所回传的错误信息』1.    标准输入  (stdin) :代码为 0 ,使用2.

2016-03-06 01:30:57 415

转载 Linux系统运维/Bash/5-4-Bash操作环境

路径与命令搜寻顺序命令运行的顺序可以这样看:1.     以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』;2.     由 alias 找到该命令来运行;3.     由 bash 内建的 (builtin) 命令来运行;透过 $PATH 这个变量的顺序搜寻到的第一个命令来运行。bash 的进站与欢迎信息: /etc/issue, /etc/mo

2016-03-05 23:37:02 440

转载 Linux系统运维/Bash/5-3

alias, unaliashistory HISTSIZE [root@www ~]# history [n][root@www ~]# history [-c][root@www ~]# history [-raw] histfiles选项与参数:n   :数字,意思是『要列出最近的 n 笔命令行表』的意思!-c  :将目前的 shell 中的所有 history

2016-03-05 21:42:57 326

转载 Linux系统运维/Bash/5-2

变量的取用与配置:echo, 变量配置守则, unset变量的取用: echo[root@www ~]# echo $variable[root@www ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@www ~]# echo ${PATH}

2016-03-04 20:34:30 295

转载 Linux系统运维/Bash/5-1

bash 主要的优点有底下几个:命令编修能力 (history):~/.bash_history 记录的是前一次登陆以前所运行过的命令, 而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!命令与文件补全功能: ([tab] 按键的好处)[Tab] 接在一串命令的第一个字的后面,

2016-03-04 17:46:49 404

转载 Linux系统运维/vi的额外功能/4

区块选择(Visual Block)区块选择的按键意义v字符选择,会将光标经过的地方反白选择!V行选择,会将光标经过的行反白选择![Ctrl]+v区块选择,可以用长方形的方式选择资料y将反白的地方复制起来d将反白的地方删除掉多档案编辑

2016-03-03 00:36:08 353

转载 Linux系统运维——vi的使用技巧——3

vi 的使用基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』。 这三种模式的作用分别是:一般模式:编辑模式:i, I, o, O, a, A, r, R指令列命令模式:: / ? 一般模式可与编辑模式及指令列模式切换, 但编辑模式与指令列模式之间不可互相切换一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代

2016-03-02 23:46:18 373

转载 Linux系统运维——文件查找——2

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。一.find命令基本格式:find  path

2016-03-02 22:47:52 285

转载 Linux系统运维——文件解压缩——1

把常用的tar解压命令总结下,当作备忘:tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属

2016-03-02 22:05:02 311

原创 Linux系统运维——0

工作一年半,重新选择行业,重构生活方式;

2016-02-29 17:11:46 353

转载 指针学习

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函

2013-08-20 22:17:17 523

原创 机器学习链接

1.http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html2.http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html

2013-05-21 23:02:00 485

转载 Linux 内核文件系统与设备操作流程分析

Author:  sinisterEmail:   sinister@whitecell.orgHomepage:http://www.whitecell.org 本笔记对 linux kernel 的文件系统操作以及设备操作进行了分析,主要是针对 ext3 文件系统的 open 流程的分析,目的是为了解答心中的几个疑问:1、一个文件的操作流程,系统是如何把 struct fil

2013-03-01 14:22:41 370

转载 基于V4L2 的视频驱动开发1-2

作者: 华清远见 刘洪涛 编写基于 V4L2 视频驱动主要涉及到以下几个知识点:l         摄像头方面的知识要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类型等。l         Camera 解码器、控制器如果摄像头是模拟量输出的,要熟悉解码器的配置。最后数字视频信号进入 camera 控制器后,还要熟悉camera 控制器的操

2013-02-22 16:12:10 481

转载 v4l2驱动浅析

选自《v4l2研究进展》 作者lapset简介:本文所附代码是根据v4l2官方文档以及demo(capture.c)修改而来,纯粹为学习交流之用,请勿使用在商用场合。地址:由于官方网的域名有敏感词汇,所以请google一下。一 ,操作流程简单看   二 模块概要分析 以下是所附代码所涉及到的全局变量,摆出来只是参考,具体修改的话请自行安排。

2013-02-22 16:09:37 549

转载 writing an alsa driver 中文

writing-an-alsa-driver(编写一个ALSA驱动)翻译稿 第一章编写一个ALSA驱动(by Takashi Iwai)0.3.6版本翻译:creator sz111@126.com翻译这篇文章主要是为了学习ALSA驱动,因为感觉ALSA是Linux音频发展方向,所以下决心仔细看看,但是中文资料太少,就想翻译一份奉献给广大初学并且英文不好的朋友。不过自己的英

2013-01-08 15:56:06 933

转载 ALSA SOC架构

从下到上,依次是ALSA driver、ALSA lib、ALSA application:ALSA application包括aplay、arecord,他们属于ALSA utils的工具。这些工具用于测试驱动非常的好。ALSA lib提供诸如打开,关闭,播放的函数库。ALSA driver是后来才加入了对SOC的支持,并且将hardware audio codec的控制

2013-01-05 11:26:50 683

转载 uevent分析(转载) (2011-04-11 18:17:55)

1.kobject, ktype, ksetkobject代表sysfs中的目录。ktype代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。kset包含了subsystem概念,kset本身也是一个kobject,所以里面包含了一个kobject对象。

2012-12-25 16:58:25 394

转载 工作队列(workqueue)

项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。郁闷的是,运行时总报错“Scheduling while atomic”,网上搜了一下:"Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spin

2012-12-25 14:27:48 659

转载 android 耳机监测驱动

转自:http://embed.chinaitlab.com/J2ME/877029.html   最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家。    我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.java以及HookSwitchObserver.java,    它们会直接读取/

2012-12-13 20:28:12 723

转载 块设备驱动编写总结

块设备与字符设备的区别1、 从字面上理解,块设备和字符设备最大的区别在于读写数据的基本单元不同。块设备读写数据的基本单元为块,例如磁盘通常为一个sector,而字符设备的基本单元为字节。所以Linux中块设备驱动往往为磁盘设备的驱动,但是由于磁盘设备的IO性能与CPU相比很差,因此,块设备的数据流往往会引入文件系统的Cache机制。2、 从实现角度来看,Linux为块设备和字符设备提供了两

2012-12-12 21:46:02 442

转载 RamDisk块设备驱动实例开发讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、块设备基本概念扇区(Sectors):任何块设备硬件对数据处理的基本单位。通常,1个扇区的大小为512byte。块(Blocks):由Linux制定对内核或文件系统等数据处理的基本单位。通

2012-12-12 21:07:12 519

转载 块设备层分析3

以上均是IDE总线上设备的通用接口,直到do_request开始才执行特定设备的驱动,如CD,HD, floppy等IDE设备。我们来看一下ide-disk:1、 首先是设备的初始化操作。IDE设备接口static ide_driver_t idedisk_driver = {       .gen_driver = {              .owner

2012-12-12 21:05:13 381

转载 块设备层分析2

三、块设备驱动层块设备的关系图如图2,一个分区或一个硬盘都可能是block_device,它一个硬盘只有一个gendisk结构,且有可能有多个分区hd_struct。 图2我们来看一个IDE硬盘设备的驱动,在此我们不关心IDE总线的驱动,只是将其执行路线列出来。static int ide_init_queue(ide_drive_t *drive)

2012-12-12 21:04:25 531

转载 块设备层分析1

一、综述图1是块设备操作的一个分层实现图。当一个进程调用read读取一个文件时,内核执行如下一个过程:首先,它通过VFS层去读取要到的文件块有没有已经被cache了,这个cache由一个buffer_head结构读取。如果要读取的文件块还没有被cache,则就要从文件系统中去读取了,这就是文件系统的映射层,它通过一个address_space结构来引用,然后调用文件系统读函数(readpage

2012-12-12 21:03:24 608

转载 硬盘的扇面、磁道、扇区

扇面:Cylinder/磁道:Track   / sectors扇区:Sector  / head CHS:Cylinder、Head、Sector/Track,示意图如下: Cylinder柱面数表示硬盘每面盘面上有几条磁道,编号是从0开始,最大为1023,表示有1024个磁道。Head磁头数表示磁盘共有几个磁头,也就是几面盘面,编号从0开始,最大为255,表示有25

2012-12-12 20:45:27 1319

原创 设备驱动的分层思想

linux内核虽然完全由c语言编写,但却频繁用到面向对象的分层设计思想。在设备驱动方面,往往为同类的设备设计一个框架,框架的核心层实现了通用操作,如果具体设备需要具体操作,可以进行重载。1.重载的一般实现:int core_func(struct xxx_dev *dev,...){ if(dev->func) return dev->func(...); /*核心层的实现*

2012-12-12 16:40:48 890

转载 bio与块设备驱动

bio与块设备驱动   系统中能够随机访问固定大小数据片(chunk)的设备被称作块设备,这些数据片就称作块。块设备文件都是以安装文件系统的方式使用,此也是块设备通常的访问方式。块设备的访问方式是随机的,也就是可以在访问设备时,随意的从一个位置跳转到另一个位置。块设备的访问位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要

2012-12-12 15:17:38 528

转载 看块设备驱动部分的笔记

转自:http://bbs.chinaunix.net/thread-2050601-1-1.html对于块设备,首先明确几个基本的概念:扇区(Sectors): 通常是512 bytes.  是硬件设备传输数据的基本单位.块(Blocks):     通常是1, 2, 4, 8, .... 个扇区,并且小于一个page.   是内核(VFS和文件系统)传送数据的基

2012-12-12 10:17:26 376

转载 临界区的并发控制

一、并发与竞态      并发指多个执行单元同时、并行被执行,而并发的执行单元对共享资源(全局变量,静态变量)的访问则容易导致竞态。     几种情景:1、对称多处理器(SMP)的多个CPU     2、单个CPU进程与抢占它的进程 3、中断与进程之间   访问共享资源区的代码区域称为临界区(critical sections).对临界区的保护方法:中断屏蔽,原子操作,自旋锁和

2012-12-12 09:46:50 980

转载 s3c2410时钟信号:FCLK、HCLK和PCLK;clk_get_rate()

s3c2410 有三个时钟FLCK 、HCLK 和PCLK (这3个时针都是核心时针)s3c2410 芯片有这么一段话: FCLK is used by ARM920T ,内核时钟,主频。 HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt contro

2012-12-11 19:06:17 678

原创 platform_bus,platform_driver,platform_bus

一、platform_bus总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。Platform总线是2.6 kernel中最近引入的一种虚拟总线,主要用来管理CPU的片上资源,具有更好的移植性,因此在2.6 kernel中,很多驱动都用platform改写了。/linux/device.h

2012-12-11 16:27:35 748

原创 内核定时器

在linux设备驱动编程中,可以利用linux内核中提供的一组函数和数据结构来完成定时触发工作或者完成某周期性的事物。struct time_list{ struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsigned long data; struct tim

2012-12-07 10:55:56 578

原创 直接内存访问--DMA

DMA数据传输:DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统。每一种体系结构DMA传输不同,编程接口也不同。数据传输可以以两种方式触发:一种软件请求数据,另一种由硬件异步传输。在第一种情况下,调用的步骤可以概括如下(以read为例):(1)在进程调用 read 时,驱动程序的方法分配一个 DMA 缓冲区,随后指示硬件传送它的数据。进程进

2012-12-05 11:09:38 7608 1

转载 linux中直接 I/O 机制的介绍

转自 http://www.ibm.com/developerworks/cn/linux/l-cn-directio/在介绍直接 I/O 之前,这一小节先介绍一下为什么会出现直接 I/O 这种机制,即传统的 I/O 操作存在哪些缺点。缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O

2012-12-04 21:06:06 634

原创 内存映射

1.地址类型用户虚拟地址物理地址总线地址内核逻辑地址            kmalloc()分配的内存区域内核虚拟地址            vmalloc()分配的内存区域在中,宏__pa()/__va()可以进行逻辑地址和物理地址之间的转换。但只对低端内存页有效。 2.物理地址和页PAGE_SIZE       PAGE_SHIFT 3.高端与低端

2012-12-03 23:02:11 463

原创 内存管理

1.在linux系统中,进程的4GB内存空间一般分为用户空间(0~3)G和内核空间(3~4)G.内核空间中,从低地址到高地址依次为:物理内存映射区隔离带vmalloc虚拟内存分配器隔离带--------------------------------896M高端内存映射区专用页面映射区保留区2.内存存取2.1 用户空间内存分配函数mall

2012-12-03 19:21:48 445

转载 Linux Platform Device and Driver

以下内容转自:http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.htmlhttp://blog.chinaunix.net/space.php?uid=20648784&do=blog&id=1592839platform是一个虚拟总线,相比PCI,USB,它主要用于描述SOC上的资源。platform所描

2012-11-23 10:56:21 528

空空如也

空空如也

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

TA关注的人

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