
Linux kernel&application
文章平均质量分 78
zhanghuiliang
喜欢平平淡淡、键健康康的生活,和我爱的人一起。
展开
-
live555源代码简介
live555源代码简介liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。UsageEnvironment和TaskScheduler类用于事件的调度,实现异步读取事件的句柄的转载 2008-07-22 17:25:00 · 1687 阅读 · 4 评论 -
Video4Linux编程心得
1.什么是video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。2.Video4linux下视频编程的流程(1)打开视频设备:(2) 读取设备信息(3)更改设备当前转载 2008-10-20 15:33:00 · 4552 阅读 · 2 评论 -
FFMpeg SDK 开发手册
FFMpeg 中比较重要的函数以及数据结构如下:1. 数据结构:(1) AVFormatContext(2) AVOutputFormat(3) AVInputFormat(4) AVCodecContext(5) AVCodec(6) AVFrame(7) AVPacket(8) AVPicture(9) AVStream2. 初始化函数:(1转载 2008-09-22 17:14:00 · 1318 阅读 · 0 评论 -
使用gprof和oprofile查找性能瓶颈
有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序,OS等。为转载 2008-06-29 21:59:00 · 457 阅读 · 0 评论 -
Linux内核编译菜单中相关选项的意义
1. prompt for development and/or incomplete code/drivers 很多参考书上说这是那些开发人员认为还不是很稳定的功能,但是根据我的经验,这个是应该选的一个选项,因为现代的LINUX是建立在这些基础上的,所以应该可以回答Y,除非你只是想使用LINUX中已经完全定型的东西,但性能肯定不会好到哪,而且对系统特性的支持也不会好。 2. pro转载 2008-06-11 23:05:00 · 926 阅读 · 0 评论 -
Linux用户态与内核态的交互
参考文档 《Linux 系统内核空间与用户空间通信的实现与分析》 陈鑫 《在 Linux 下用户空间与内核空间数据交换的方式》 杨燚 理论篇 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与转载 2008-06-11 23:03:00 · 895 阅读 · 0 评论 -
Linux-2.6内核新特性
做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,首先让我们先了解一下2.6内核的新特性 一、01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持模块子系统发生了重大变化。 02.稳定性有所提高 为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时转载 2008-06-11 22:38:00 · 693 阅读 · 0 评论 -
Linux下的段错误产生的原因及调试方法
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一转载 2008-06-01 02:16:00 · 432 阅读 · 0 评论 -
Linux下RTP编程
流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议、IP电话等应用场合的技术基础。RTP是进行实时流媒体传输的标准协议和关键技术,本文介绍如何在Linux下利用JRTPLIB进行实时流媒体编程。 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频转载 2008-06-01 02:34:00 · 413 阅读 · 0 评论 -
GNU/Linux中解决多线程互斥同步问题
当解决多线程互斥同步的问题时,经常会有如下几个问题:1. 在一个给定的问题中,需要多少个Mutex,多少个Semaphore?有什么规律?2. 在对临界区加锁和等待信号量的顺序上有什么要求和规律?3. 什么样操作适合放在临界区,什么样的不适合?下面就生产者和消费者问题来分析一些这几个问题.下面是一个简单的实现程序:生产者向数组sharedArray中写入数据,而消费者从该数组中读取数据.#incl转载 2008-06-01 02:20:00 · 546 阅读 · 0 评论 -
linux下select调用的过程
Linux下select调用的过程:1.用户层应用程序调用select(),底层调用poll())2.核心层调用sys_select() ------> do_select()最终调用文件描述符fd对应的struct file类型变量的struct file_operations *f_op的poll函数。poll指向的函数返回当前可否读写的信息。1)如果当前可读写,返回读写信转载 2008-05-21 20:24:00 · 615 阅读 · 0 评论 -
EPOLL技术总结(一)
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __转载 2008-05-21 18:55:00 · 585 阅读 · 0 评论 -
Linux的共享内存技术
源代码是从别人的文章中抄过来的,不是原创,不过写得不错,主要是描述两个不同的进程从共享内存中存取数据的技术,我加了点分析:第一个是写数据:/***** testwrite.c *******/#include #include #include #include typedef struct{ char name[4]; in转载 2008-05-21 15:46:00 · 491 阅读 · 0 评论 -
udev-FAQ 中文翻译
原文出处 http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ中文翻译 王旭 http://gnawux.blogchina.com本文档遵循 GPL 2 及以后版本发布,修改、发布请保持许可证不变问: udev是什么? 它的目的何在?答: 看看那篇 OLS 2003 上的有关 udev 的文章吧,可以在 docs 目录里找到,翻译 2008-10-27 10:15:00 · 774 阅读 · 0 评论