linux

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 2 3 4 5 6 ··· 8 下一页

2012年9月11日

摘要: 有好多朋友问到怎么制作rpm包,可不可把其它服务器上编译好的软件目录复杂到其它服务器上直接应用等等。。。这里做个简单的介绍,高级复杂的不会。此方法是通过编写spec文件,使用rpmbuild来完成一个rpm的打包。以nginx为例进行介绍制作平台:centos 5.x X86_64四步走:第一步:建立目录结构-mkdir /usr/src/RedHat/{SOURCES,SPECS,BUILD,RPMS,SRPMS} -p相关目录介绍:/usr/src/RedHat/SOURCES #存放源代码、补丁等文件 /usr/src/RedHat/SPECS #存放用于管理rpm制作进程的spec文件 阅读全文
posted @ 2012-09-11 19:59 h13 阅读(2259) 评论(0) 推荐(0) 编辑

摘要: 转自:http://www.linuxidc.com/Linux/2011-10/44623.htm前言之前读了关于顺序一致性和缓存一致性讨论的文章,感觉豁然开朗。对linux内核中出现的种种同步和屏障,想做一点总结。缓存一致性之前一直认为linux中很多东西是用来保证缓存一致性的,其实不是。缓存一致性绝大部分是靠硬件机制实现的,只有在带lock前缀的指令执行时才与cache有一点关系。(这话说得绝对,但我目前看来就是这样)我们更多的时候是为了保证顺序一致性。-所谓缓存一致性,就是在多处理器系统中,每个cpu都有自己的L1 cache。很可能两个不同cpu的L1 cache中缓存的是同一片内存 阅读全文
posted @ 2012-09-11 19:36 h13 阅读(1242) 评论(0) 推荐(0) 编辑

2012年9月10日

摘要: 作者:刘洪涛,华清远见嵌入式学院金牌讲师,ARM ATC授权培训讲师。看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解。先从函数注册引出问题吧。一、中断注册方法在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id)irq 阅读全文
posted @ 2012-09-10 20:19 h13 阅读(969) 评论(0) 推荐(0) 编辑

2012年9月8日

摘要: 转自:http://bbs.hiapk.com/thread-852499-1-1.html不用在意剩余内存的大小。其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程, 阅读全文
posted @ 2012-09-08 19:09 h13 阅读(892) 评论(0) 推荐(1) 编辑

摘要: 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。 一、通常情况 先来说说free命令: 引用 [root@server ~]# free -m total used free shared buffers cached Mem: 249 163 86 0 10 94 -/+ buffers/cache: 58 191 Swap: 511 0 511 其中: 引用 total 内存总数 used 已经使用的内存数 f... 阅读全文
posted @ 2012-09-08 19:07 h13 阅读(18471) 评论(0) 推荐(0) 编辑

2012年8月19日

摘要: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信号与一个函数对应,每当接收到这个信号就会调用相应的函数。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是异步通知个人认为,异步通知类似于中断的机制,如下 阅读全文
posted @ 2012-08-19 14:35 h13 阅读(1628) 评论(0) 推荐(1) 编辑

摘要: 【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号,signal,sigaction,kill,sigqueue,settimer,sigmask,sigprocmask,sigset_t1信号本质软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上 阅读全文
posted @ 2012-08-19 14:14 h13 阅读(107497) 评论(4) 推荐(26) 编辑

2012年8月8日

摘要: find . -name *.png | xargs rm -fr 阅读全文
posted @ 2012-08-08 13:42 h13 阅读(589) 评论(0) 推荐(0) 编辑

2012年8月1日

摘要: 转自:http://blog.csdn.net/linweig/article/details/5515928 YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。其中的Y,U,V几个字母不是英文单词的组合词,Y代表亮度,uv代表色差,u和v是构成彩色的两个分量。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用. 阅读全文
posted @ 2012-08-01 22:57 h13 阅读(4381) 评论(0) 推荐(0) 编辑

2012年7月29日

摘要: 转自:http://blog.csdn.net/lmm670/article/details/6080998 用过linux的哥们都知道,linux所有的设备都是以文件的形式实现的,要访问一个设备,我们只需要以open、read、write的形式对设备的进行操作就可以了。在linux系统的/dev目录下,罗列了当前系统支持的所有设备。运行ls /dev一下,着实吓了一大跳,[root@localhost ~]# ls /devadsp full midi ram9 tty15 tty42 ttyS3agpgart fuse mi... 阅读全文
posted @ 2012-07-29 22:39 h13 阅读(5456) 评论(0) 推荐(1) 编辑

2012年7月26日

摘要: Author:Jiujin.hong转载请说明出处:http://blog.csdn.net/hongjiujing orwww.linuxforum.net嵌入式linux版块tslib背景:在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。tslib插件:pthres 为Tslib 提供的触摸屏灵敏度门槛插件;variance 为Tslib 提供的触摸屏滤波算法插件;deji 阅读全文
posted @ 2012-07-26 23:17 h13 阅读(938) 评论(0) 推荐(0) 编辑

2012年7月15日

摘要: 摘录几篇android研发日志1 http://blog.csdn.net/linweig/archive/2010/06/01/5640697.aspxFirmware 加载原理分析----分析的比较透彻,我在wifimodule调试时遇到的问题几乎跟这个一样,不过我采取了另外一个方法,直接用kernel的read和write了,没有使用request_firmware,有空小结下。前言前段时间移植wifi驱动到android的内核上,发现firmware的加载始终出错,问了几个人,都不是很了解,没办法,只好自己研究一下。原理分析从本质上来说,firmware需要做的事情包括两件:1,通知用 阅读全文
posted @ 2012-07-15 22:27 h13 阅读(7977) 评论(0) 推荐(0) 编辑

2012年7月12日

摘要: 体验决定深度,知识决定广度。你的人生是什么呢?一、关于工作与生活 我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了,问题来了,当这些经理... 阅读全文
posted @ 2012-07-12 23:40 h13 阅读(673) 评论(0) 推荐(0) 编辑

2012年7月4日

摘要: 多核编程中的负载平衡难题作者:周伟明相关文章链接:多核编程中的锁竞争难题多核编程的几个难题及其应对策略(难题一)OpenMP并行程序设计(二)OpenMP并行程序设计(一)双核CPU上的快速排序效率前面多核编程中的锁竞争难题这篇文章中讲过一个多核编程中的串行化的难题,这篇文章中再来讲解一下多核编程中的另外一个难题,就是负载平衡方面的难题。多核CPU中,要很好地发挥出多个CPU的性能的话,必须保证分配到各个CPU上的任务有一个很好的负载平衡。否则一些CPU在运行,另外一些CPU处于空闲,无法发挥出多核CPU的优势来。要实现一个好的负载平衡通常有两种方案,一种是静态负载平衡,另外一种是动态负载平衡 阅读全文
posted @ 2012-07-04 23:42 h13 阅读(847) 评论(0) 推荐(0) 编辑

2012年6月28日

摘要: 转自:http://blog.chinaunix.net/u1/49093/showart_1910189.html这个问题有很多人问过,我看了下Linux得内核代码,原因如下:(当然我不能保证一定对,如果有牛人理解得更好,欢迎指正)1、 中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程打断,如果在 中断context中休眠,则没有办法唤醒它,因为所有的wake_up_xxx都是针对某个进程而言的,而在中断context中,没有进程的概念,没 有一个task_struct(这点对于softirq和tasklet 阅读全文
posted @ 2012-06-28 14:57 h13 阅读(3487) 评论(0) 推荐(0) 编辑

2012年6月26日

摘要: 在编写设备驱动程序的时候,如果要想把设备内存映射到用户空间,那需要我们实现mmap,通过看ldd3上面的介绍,对实现mmap有了一点了解.书上介绍主要是利用int remap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr,unsigned long pfn, unsigned long size,pgprot_t prot) 函数或者int io_remap_page_range(struct vm_area_struct *vma, unsigned long virt_addr, unsigned long ph 阅读全文
posted @ 2012-06-26 10:56 h13 阅读(2239) 评论(0) 推荐(0) 编辑

2012年6月21日

摘要: 内核的dma一般在平台初始化的时候已经分配好了。但是对于一些有内部dma的硬件ip,比如usb ip、video加速ip,他们可能由ip厂商封装好的,没办法绑定到cpu端,这时候在内核使用dma就要注意了,因为dma只认识物理地址哦。当然,办法还是有的,look:以下来自:http://blog.csdn.net/zjujoe/archive/2009/05/15/4189612.aspx这两天在做 DMA 相关开发, 遇到一对分配 dma buffer 的函数,dma_alloc_coherent 与 dma_alloc_writecombine。 不知其区别。 google 一下也没有得到 阅读全文
posted @ 2012-06-21 16:04 h13 阅读(1529) 评论(0) 推荐(0) 编辑

2012年6月19日

摘要: 《程序员》杂志的编辑约我写一篇命题作文,想了几天都无从下手不知道写什么才好。在这篇文章里,我不打算将创业的艰辛与喜悦重新回忆一遍,我确实不想去误 导大家,因为我所处的年代是一个物质缺乏的年代,成功相对来说要容易得多。每个人的成长经历都有其个性化的东西,每个人的成功创业经验虽然有一些可以遵循 的普遍规律,但一般来说都很难复制,成功需要不断地创新。对于今天很多的年轻人来说,一味注重技术至上的观念刻骨铭心,其实很多时候努力并非一定有回报。事实上,有不少出类拔萃的人才往往做出来的产品就是卖不 掉,因为设计者压根儿就不了解用户的需求和心理以及产品功能的恰当定义,而总想在同事及其老板面前卖弄自己的技术和产 阅读全文
posted @ 2012-06-19 00:08 h13 阅读(615) 评论(0) 推荐(0) 编辑

2012年6月17日

摘要: GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__是用来设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。__attribute__语法格式为:__attribute__ ((attribute-list))其位置约束为:放于声明的尾部“;”之前。1 设置函数属性(Function Attri 阅读全文
posted @ 2012-06-17 19:12 h13 阅读(1083) 评论(0) 推荐(1) 编辑

摘要: 所有的内核代码,基本都包含了include/linux/compile.h这个文件,所以它是基础,涵盖了分析内核所需要的一些列编译知识,本博就分析分析这个文件里的代码:#ifndef __LINUX_COMPILER_H#define __LINUX_COMPILER_H#ifndef __ASSEMBLY__首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编译汇编代码的时候,由编译器使用-D这样的参数加进去的,gcc会把这个宏定义为1。用在这里,是因为汇编代码里,不会用到类似于__user这样的属性(关于 __user这样的属性是怎么回子事,本博后面会提到),因为这样 阅读全文
posted @ 2012-06-17 18:43 h13 阅读(2572) 评论(0) 推荐(0) 编辑

2012年6月8日

摘要: 转自:http://www.dzsc.com/data/html/2010-1-27/81710.html作者:刘洪涛,华清远见嵌入式学院讲师。 四、在内核里写i2c设备驱动的两种方式 前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapter方式(LEGACY)”和“Probe方式(new STyle)”。 (1) Adapter方式(LEGACY) (下面的实例代码是在2.6.27内核的pca953x.c基础上... 阅读全文
posted @ 2012-06-08 11:23 h13 阅读(1519) 评论(0) 推荐(0) 编辑

摘要: 本文转自:http://www.dzsc.com/data/html/2009-12-22/81040.html作者:刘洪涛,华清远见嵌入式学院讲师。 一、概述 谈到在Linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。 第一种方法的好处(对应第二种方法的劣势)有: ● 思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。 第一种方法问题(对应第二种方法的好处)有: ● 要求工程师不仅要对I2C设备的操作熟悉,而且要熟悉I2C的适配器操... 阅读全文
posted @ 2012-06-08 11:21 h13 阅读(1541) 评论(0) 推荐(0) 编辑

2012年6月7日

摘要: 串联分压的原理: 在串联电路中,各电阻上的电流相等,各电阻两端的电压之和等于电路总电压。可知每个电阻上的电压小于电路总电压,故串联电阻分压。并联分流的原理: 在并联电路中,各电阻两端的电压相等,各电阻上的电流之和等于总电流(干路电流)。可知每个电阻上的电流小于总电流(干路电流),故并联电阻分流。 分压原理 R1:R2=U1:U2 分流原理 R1:R2= I 2:I 1 串联电路中分压原理:U1:U2=R1:R2 并联电路中分流原理:I1:I2=R2:R1 阅读全文
posted @ 2012-06-07 16:20 h13 阅读(4823) 评论(0) 推荐(0) 编辑

2012年6月6日

摘要: workqueue,中文称其为工作队列,是一个用于创建内核线程的接口,通过它创建的内核线程来执行内核其他模块排列到队列里的工作,创建的内核线程被称为工作者线程。要理解工作队列的实现,重点在于理解相关的三个数据结构的含义及关系。1 表示工作队列类型的数据结构:struct workqueue_struct/** The externally visible workqueue abstraction is an array of* per-CPU workqueues:*/struct workqueue_struct {struct cpu_workqueue_struct *cpu_wq; 阅读全文
posted @ 2012-06-06 09:11 h13 阅读(8138) 评论(0) 推荐(0) 编辑

2012年6月4日

摘要: 单解:VDD:电源电压(单极器件);电源电压(4000系列数字电 路);漏极电压(场效应管)VCC:电源电压(双极器件);电源电压(74系列数字电路);声控载波(Voice Controlled Carrier)VSS:地或电源负极VEE:负电压供电;场效应管的源极(S)VPP:编程/擦除电压。详解:在电子电路中,VCC是电路的供电电压, VDD是芯片的工作电压:VCC:C=circuit 表示电路的意思, 即接入电路的电压, D=device 表示器件的意思, 即器件内部的工作电压,在普通的电子电路中,一般Vcc>Vdd !VSS:S=series 表示公共连接的意思,也就是负极。有些 阅读全文
posted @ 2012-06-04 09:56 h13 阅读(687) 评论(0) 推荐(0) 编辑

2012年5月30日

摘要: MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱 动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。我将CFI接口的MTD设备分为四层 (从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。 一、Flash硬件驱动层:硬件驱动层负责在init时驱动Flash硬件,Linux MTD设备的NOR Flash芯片驱动遵循CFI接口标准,其驱动程.. 阅读全文
posted @ 2012-05-30 14:16 h13 阅读(4651) 评论(0) 推荐(0) 编辑

摘要: 转自:blog.163.com/cupidove/blog/static/1005662Linux 内核提供了两个注册中断处理函数的接口:setup_irq和request_irq。这两个函数都定义在kernel/irq/manage.c里。这两个函数有什么样的区别呢?先看看setup_irqSetup_irq通常用在系统时钟(GP Timer)驱动里,注册系统时钟驱动的中断处理函数。下面举个列子, 如s3c2410 timer驱动:/* arch/arm/mach-s3c2410/time.c */static struct irqaction s3c2410_timer_irq = { . 阅读全文
posted @ 2012-05-30 11:25 h13 阅读(4549) 评论(1) 推荐(2) 编辑

2012年5月21日

摘要: IBM工程师培训的时候,讲到了一个IC设计前端、后端的概念,虽然我们参赛的内容主要是做应用,但面临读研方向的选择,还是到网上找了点资料,了解了一下。在EDNChina论坛上有一篇帖子:什么是IC前端设计和后端设计?区别有是什么?http://bbs.ednchina.com/?url=http%3A//bbs.ednchina.com/ShowTopic.aspx%3Fid%3D6456%26page%3D2问题:我是刚刚接触这方面不久,所以迫切想了解一下: 1.什么是大家常的IC前端设计和后端设计?他们之间的区别是什么? 2.做前端设计和后端设计需要掌握哪些最基本的工具和知识呢?比如多手机或 阅读全文
posted @ 2012-05-21 20:17 h13 阅读(13210) 评论(0) 推荐(1) 编辑

2012年5月11日

摘要: 转自:http://blog.csdn.net/zxjhh/article/details/6377238引言 SPI4.2总线(SystemPacket Interface,系统间数据包接口)是一种速度高达10 Gb/s的芯片间互连总线,主要应用于ATM信元传输、POS(Packet Over SONET/SDH,基于SONET/SDH的包传输)和10 Gb/s以太网等高端场合。特别在通信领域,很多高端处理器和网络处理器,如Intel公司的IXP2800、Cavium公司的多内核处理器CN58xx系列、NetLogic公司的XLR732、BrOAdcom的BCM1480,几乎都集成了SPI. 阅读全文
posted @ 2012-05-11 10:40 h13 阅读(2848) 评论(0) 推荐(1) 编辑

2012年5月7日

摘要: ... 阅读全文
posted @ 2012-05-07 22:32 h13 阅读(285) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页