
linux
文章平均质量分 76
ljclx1748
这个作者很懒,什么都没留下…
展开
-
Linux系统对IO端口和IO内存的管理
Linux系统对IO端口和IO内存的管理一、I/O端口 端口(port)是接口电路中能被CPU直接访问的寄存器的地址。几乎每一种外设都是通过读写设备上的寄存器来进行的。CPU通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。二、IO内存转载 2012-09-09 11:52:23 · 623 阅读 · 0 评论 -
LINUX网络编程
(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我们的转载 2013-03-01 16:21:47 · 408 阅读 · 0 评论 -
linux消息队列
消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随转载 2013-03-20 13:54:18 · 727 阅读 · 0 评论 -
多目录项目makefile
(1)首先makefile文件的一些(红色字体是比较常用的)预定义变量含义 $* 不包含扩展名的目标文件名称。 $+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。 $第一个依赖文件的名称。 $? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。转载 2013-03-19 16:46:28 · 710 阅读 · 0 评论 -
typedef函数指针类型和函数类型
最近在看posix实时信号时,遇到一处函数是如此定义的:1typedef void sigfunc_rt(int, siginfo_t *, void *);在我常规理解里,一般定义一个函数类型都是这样定义的:1typedef void (*sighandler_t)(int);2sighandler_t signal(int signum, sighandler_t转载 2013-03-20 17:52:53 · 579 阅读 · 0 评论 -
GNU C与ANSI C
从《LINUX设备驱动开发详解》里面一字一句地打出来,放在这里,供大家分享! LINUX系统上可用的C编译器是GNU C编译器,它建立在自由软件基金会的编程许可的基础上,因此可以自由发布。GNU C对标准C进行了一系列的扩展,以增强标准C的功能。1、零长度数组GNU C允许使用零长度数组,在定义变长对象的头结构时,这个特性特别有用。例如:struct var_data转载 2013-03-21 14:28:20 · 558 阅读 · 0 评论 -
ggc扩展
扩展gccpointers编译器filestruct[cpp]view plaincopyprint?"FONT-FAMILY: Arial, Verdana, sans-serif; WHITE-SPACE: normal">转自候佩优快云博客,地址:http://blog.youkuaiyun.com/mydo/article/details/3738336转载 2013-03-21 14:20:01 · 891 阅读 · 0 评论 -
linux 消息队列实例讲解
在做linux多任务编程的时候,难免会碰到要使用IPC技术了,但是很多人都对这些技术只知其名,不知道如何使用。为了大家都能很好的学习Linux,本人不才,贴出了自己写的 消息队列 编程,用的是多线程,不是多进程,原理一样。以后有时间会后续把其他几个技术一一详解,并贴上代码。好了,废话不多说,进入下面的实例讲解。/*****************************************原创 2013-03-25 17:39:40 · 768 阅读 · 0 评论 -
linux中select()函数分析
Unix中的函数select和poll用来,支持Unix中I/O复用的功能,在Unix中I/O模型可以分为以一几种:(1)阻塞I/O(2)非阻塞I/O(3)I/O复用(select和poll)(4)信号驱动I/O(SIGIO)(5)异步I/O 其中,现在比较流行的I/O模型是阻塞I/O模型.阻塞I/O是当应用程序和内核交换数据时,由于内核还没有准备好数据,那么应用程序必转载 2013-01-07 15:50:02 · 386 阅读 · 0 评论 -
linux临时更改MAC地址
1.首先必须关闭网卡设备,否则会报告系统忙(siocsifhwaddr:device of resource busy),无法更改。命令是:#/sbin/ifconfig eth0 down 2.修改MAC地址,命令是:#/sbin/ifconfig eth0 hw ether 00:11:22:33:44:553.重新启用网卡,命令是:#/sbin/ifconfig转载 2013-03-28 12:13:35 · 2037 阅读 · 0 评论 -
alsa 音频库的移植
alsa 音频库的移植分类: linux嵌入式驱动开发 2010-04-07 17:125244人阅读 评论(1)收藏举报playbackaudio嵌入式测试linuxtimerAndrew Huangbluedrum@163.comalsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应转载 2013-04-18 15:06:22 · 809 阅读 · 0 评论 -
转 alsa录音放音执行流程详解
前言: linux中,无论是oss还是alsa体系,录音和放音的数据流必须分析清楚。先分析alsa驱动层,然后关联到alsa库层和应用层。 链接分析: core/pcm_native.c文件中.mmap = snd_pcm_mmap调用snd_pcm_mmap_data(substream, file, area);进一步调用substream->ops->mmap(s转载 2013-04-19 09:13:54 · 892 阅读 · 0 评论 -
ALSA声音编程介绍(译文)
[转]:http://hi.baidu.com/dillisbest/blog/item/819b1013b8cf075af919b8a9.html英文原文:http://www.linuxjournal.com/article/6735period(周期):硬件中中断间的间隔时间。它表示输入延时。声卡接口中有一个指针来指示声卡硬件缓存区中当前的读写位置。只要接口在运行,这个指针将循环转载 2013-04-19 09:48:26 · 977 阅读 · 0 评论 -
转自51cto关于 守护进程的描述
在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。一. 守护进程简介 守护进程,也就转载 2013-05-07 15:57:36 · 649 阅读 · 0 评论 -
dup和dup2
dup and dup2的剖析dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File转载 2013-05-07 17:57:53 · 538 阅读 · 0 评论 -
守护进程
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂转载 2013-05-07 14:48:02 · 652 阅读 · 0 评论 -
linux下各种文件解压命令
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.r转载 2013-03-13 11:53:40 · 731 阅读 · 0 评论 -
用setsockopt设置send(),recv()设置超时
在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制:在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的:int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,转载 2013-02-28 10:35:45 · 788 阅读 · 0 评论 -
busybox里的僵尸进程为何那么多
busybox里面的僵尸进程很多是有目共睹的,为什么呢?这要从僵尸进程的概念说起,所谓僵尸进程实际上就是没有人回收的进程,什么也没有了,只剩下 task_struct这个空壳子了,task_struct里面的字段都没有了,都被释放了但是task_struct本身还在,占据着 sizeof(struct task_struct)大小的空间,其空虚的task_struct仍然在全局的task_stru转载 2012-09-09 11:48:32 · 797 阅读 · 0 评论 -
Linux信号详解
linuxsignal 一 信号的种类可靠信号与不可靠信号, 实时信号与非实时信号可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于SIGRTMIN的都是非可靠信号.非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信转载 2012-12-26 17:57:03 · 575 阅读 · 0 评论 -
Linux线程信号
源地址:http://blog.youkuaiyun.com/copal/archive/2010/04/06/5454279.aspx1. 概念按照 POSIX, 异步 (外部) 信号发送到整个进程.所有线程共享同一个设置, 即通过 sigaction 设置的线程处置方法.每个线程有自己的信号掩码, 线程库根据该掩码决定将信号发送到哪个线程.由于Linux 线程实现上的独特性, 外部信号始终发送转载 2012-12-26 18:00:52 · 493 阅读 · 0 评论 -
linux信号量编程
信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源。信号量有一个复杂的编程接口。幸运的是,我们可以很容易的为自己提供一个对于大多数的信号量编程问题足够高效的简化接口。为了阻止多个程序同时访问一个共享资源所引起的问题,我们需要一种方法生成并且使用一个标转载 2012-12-29 16:55:57 · 479 阅读 · 0 评论 -
pthread_barrier_init,pthread_barrier_wait,pthread_barrier_destroy简介
pthread_barrier_init,pthread_barrier_wait,pthread_barrier_destroy简介pthread_barrier 系列函数在中定义,用于多线程的同步,它包含三个函数: --pthread_barrier_init() --pthread_barrier_wait() --pthread_bar转载 2012-12-30 11:28:02 · 2426 阅读 · 0 评论 -
pthread_kill函数 和 sigaction 函数
pthread_kill:别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。int pthread_kill(pthread_t thread, int sig);向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默转载 2012-12-30 14:34:20 · 679 阅读 · 0 评论 -
Linux多线程中使用信号-2
Linux 多线程应用中如何编写安全的信号处理函数转自:http://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/index.html?ca=drs-cn-0618周 婷 (zhouting@cn.ibm.com), 软件工程师, IBM 中国软件开发技术实验室刘 坚 (liujsh@cn.ibm.com),转载 2013-01-03 17:04:03 · 457 阅读 · 0 评论 -
信号屏蔽字在多线程环境下的应用
1. 信号屏蔽字和sigprocmask函数每个进程都有一个信号屏蔽字(signal mask),它规定了当前要阻塞递送到该进程的信号集。对于每个可能的信号,该屏蔽字中都有一位与之对应。进程可以调用sigprocmask函数来获取或设置这个信号屏蔽字。2. 信号的产生、递送、未决状态1)首先,当引发信号的事件发生时,为进程产生(generation)转载 2013-01-03 16:51:45 · 824 阅读 · 0 评论 -
v4l2
http://linuxtv.org/downloads/v4l-dvb-apis/一,什么是 video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己 下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/videoN下,N可转载 2013-01-29 14:44:38 · 2212 阅读 · 0 评论 -
linux字符设备文件的打开操作
2.7 字符设备文件的打开操作(1)作为例子,这里假定前面对应于/dev/demodev设备节点的驱动程序在自己的代码里实现了如下的struct file_operations对象fops:static struct file_operations fops = { .open = demoopen, .read = demoread, .write = d转载 2013-02-21 11:19:43 · 12941 阅读 · 1 评论 -
V4l2 Capture Sequence---part2
获得device的capability以后,可以根据应用程序的功能要求对设备参数进行一系列的设置,这些参数又分为两部分,一个是user contrl,还一个是extended control,下面先来讲对user contrl的一些参数进行设置。User control参数包含一个ID,以及相应的Type,下面对各个type进行简单的列举:ID TypeV4L2_CID_BASE/转载 2013-02-21 17:56:39 · 1067 阅读 · 0 评论 -
V4L2采集图像入门例子讲解
转自http://blog.youkuaiyun.com/crazyman2010/article/details/6055022,感谢作者分享1. 定义 V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程: 打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲区管理)->转载 2013-02-20 10:52:14 · 1245 阅读 · 0 评论 -
alsa 麦克风采集音频
Alsa是Linux高级音频接口。面对众多的音频设备,Alsa为Linux音频开发人员提供了一套标准的访问机制,使得音频开发变得十分容易。不信?下面我们就利用它编写一个简单的录音/播音程序,不过这需要你有一定的计算机语言基础。一个典型的音频程序应该具有以下结构:打开音频设备为设备设置读写参数向音频设备读/写音频数据关闭设备Alsa库为我们实现这些操作提供了丰富的接口。首转载 2013-02-24 14:07:26 · 5742 阅读 · 3 评论 -
PCM (digital audio) interface
PCM (digital audio) interface Although abbreviation PCM stands for Pulse Code Modulation, we are understanding it as general digital audio processing with volume samples generated in continuous转载 2013-02-26 18:10:46 · 6431 阅读 · 0 评论 -
setsockopt
浅析:setsockopt()1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuse转载 2013-02-27 17:23:06 · 909 阅读 · 0 评论 -
FFT后的物理意义
2012-03-07 10:26:30 美国力科公司北京代表处 马亦飞 FFT(Fast Fourier Transform,快速傅立叶变换)是离散傅立叶变换的快速算法,也是我们在数字信号处理技术中经常会提到的一个概念。在大学的理工科课程中,在完成高等数学的课程后,数字信号处理一般会作为通信电子类专业的专业基础课程进行学习,原因是其中涉及了大量的高等转载 2013-05-08 16:34:05 · 3942 阅读 · 0 评论