- 博客(36)
- 资源 (16)
- 收藏
- 关注
转载 C语言sscanf函数的总结
http://blog.csdn.net/gzshun/article/details/7081736/***************************************************** ** Name : sscanf.c ** Author : gzshun ** Version : 1.0 ** Date
2013-07-31 14:47:11 828
转载 /proc/uptime
http://blog.csdn.net/zhangfn2011/article/details/8804611uptime命令是用来查询linux系统负载的!用法:直接输入uptime即可.另外还有一个参数 -v是用来查询版本的[root@ localhost]$ uptime –V procps version 3.2.7以下显示输入uptime的信息:04:0
2013-07-31 11:32:17 772
转载 内存字节对齐详解
http://blog.csdn.net/arethe/article/details/2548867一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
2013-07-31 09:47:49 463
转载 DMZ及其设置相关
一,什么是DMZDMZ(Demilitarized Zone)即俗称的非军事区,与军事区和信任区相对应,作用是把WEB,e-mail,等允许外部访问的服务器单独接在该区端口,使整个需要保护的内部网络接在信任区端口后,不允许任何访问,实现内外网分离,达到用户需求。DMZ可以理解为一个不同于外网或内网的特殊网络区域,DMZ内通常放置一些不含机密信息的公用服务器,比如Web、Mail、FTP等。这样
2013-07-30 13:34:39 1649
转载 C/C++中的NULL
NULL表示空指针,用于表示一个无效的指针,它的值为0(早期C语言的实现中可能有非0空指针,现在已经不用)。对指针置NULL即标记指针无效,可以通过判断指针是否等NULL而防止指针的非法访问。 NULL在C/C++标准库中被定义为一个宏,一般为: #define NULL ((void*)0) /*C中的“标准”写法,NULL被替换为一个void*类型的指针右值,值等于0;由
2013-07-26 10:43:58 652
转载 关于udelay(); mdelay(); ndelay(); msleep();
在Linux Driver开发中,经常要用到延迟函数:msleep,mdelay/udelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的.mdeday还忙等待函数,在延迟过程中无法运行其他任务.这个延迟的时间是准确的.是需要等待多少时间就会真正等待多少时间.而msleep是休眠函数,它不涉及忙等待.你如果是msleep(10),那实际上延迟的时间,大部分时候是要多于1
2013-07-26 09:52:19 956
转载 epoll详解
http://blog.csdn.net/xiajun07061225/article/details/9250579什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44
2013-07-15 17:04:51 567
转载 linux下关于结构体stat的一些应用
http://blog.csdn.net/xiakan008/article/details/5903879 前言: 初学Linux编程,相信很多朋友都和我一样,对于在Linux中如何获得文件相关属性,如文件大小、最后访问(读)时间、最后修改(写)时间、创建时间或最后更改(属性更改)时间等等存在着疑虑,花了点时间探究了下,发现其中的知识点挺多的,不是想象中的那么简单,
2013-07-15 16:44:43 532
转载 nginx 服务并发过10万的linux内核优化配置
http://michaelkang.blog.51cto.com/1553154/1074318以下linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一下,如有那位高人看到配置上有问题,请给与指出!# Controls the use of TCP syncookies#表示开启重用。允许将TIME-WAIT sockets重新用于新
2013-07-15 15:22:57 494
转载 内核中的同步与任务调度
http://www.kerneltravel.net/jiaoliu/001.htm内核中的同步与任务调度本文作者:康华:计算机硕士,主要从事Linux操作系统内核、Linux技术标准、计算机安全、软件测试等领域的研究与开发工作,现就职于信息产业部软件与集成电路促进中心所属的MII-HP Linux软件实验室。如果需要可以联系通过kanghua151@msn.com联系他。
2013-07-15 15:21:44 627
转载 linux异步IO编程实例分析
http://rdc.taobao.com/blog/cs/?p=1583#more-1583在Direct IO模式下,异步是非常有必要的(因为绕过了pagecache,直接和磁盘交互)。linux Native AIO正是基于这种场景设计的,具体的介绍见:KernelAsynchronousI/O (AIO)SupportforLinux。下面我们就来分析一下AIO编程的相关知
2013-07-15 14:52:45 3764
转载 Linux native AIO与eventfd、epoll的结合使用
在前面的示例libaio_test.c和native_aio_test.c中,可以看到对磁盘aio请求(本文的aio都指此类)的使用有阻塞等待,这明显之处为对io_getevents()函数(当然,其它函数,比如io_submit()也有一定程度的阻塞)的调用,它会等待并获取已完成的io请求,如果当前没有或少于指定数目的io请求完成,那么就会等待直到timeout。io_getevents()
2013-07-15 14:50:26 3646
转载 nginx 0.8.x稳定版对linux aio的支持
本文链接地址: nginx 0.8.x稳定版对linux aio的支持前几天nginx的0.8.x正式成为stable,然后看了下代码,发现0.8加入了linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的,而在nginx
2013-07-15 14:45:33 1877
转载 使用异步 I/O 大大提高应用程序的性能
http://www.ibm.com/developerworks/cn/linux/l-async/简介: Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生
2013-07-15 14:38:55 635
转载 Linux下高并发socket最大连接数所受的各种限制
http://blog.csdn.net/guowake/article/details/66157281、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
2013-07-15 14:25:10 577
转载 中断下半部的处理
http://www.cnblogs.com/wang_yb/archive/2013/04/23/3037268.html在前一章也提到过,之所以中断会分成上下两部分,是由于中断对时限的要求非常高,需要尽快的响应硬件。主要内容:中断下半部处理实现中断下半部的机制总结中断下半部的实现中断实现示例 1. 中断下半部处理那么对于一个中断,如何划分上下两部分呢?哪些处理放在上
2013-07-15 14:10:34 567
转载 Linux 2.6中断下半部机制分析
http://blog.csdn.net/yicao821/article/details/6670683 Linux 2.6中断下半部机制分析作者:流星摘要 本文主要从使用者的角度对Linux 2.6内核的下半部机制softirq、tasklet和workqueue进行分析,对于这三种机制在内核中的具体实现并未进行深入分析,倘若读者有兴趣了解,可以直接阅读Linux内核
2013-07-15 14:09:38 404
转载 linux 网络编程:epoll 的实例
http://blog.csdn.net/shanshanpt/article/details/7383400在前面已经经过了PPC、TPC、select之类( TPC就是使用进程处理data,TPC就是使用线程处理 ),前面两个的缺点大家应该都是知道的是吧,对于select( 其实poll和他差不多 ),缺点是能同时连接的fd是在是不多,在linux中一般是1024/2048,对于很大的服务
2013-07-12 14:50:17 2693
转载 Linux中select poll和epoll的区别
http://blog.csdn.net/big_wang5/article/details/9295405在Linux Socket服务器端编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加入了epoll之后,在高性能服务器领域得到广泛的应用,现在比较出名的nginx就
2013-07-12 11:39:41 670
转载 linux内核主要模块图
http://blog.csdn.net/yming0221/article/details/6293988下图清楚的表示了linux内核的主要模块图。
2013-07-11 17:47:58 775
转载 关于vmlinux,vmlinuz,bzImage,zImage的区别和联系
http://blog.csdn.net/yming0221/article/details/6558754vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vm
2013-07-11 17:41:02 513
转载 linux驱动的等待队列
在Linux驱动程序中,可以使用等待队列(wait queue)来实现阻塞进程的唤醒。wait queue很早就作为一种基本的功能单位出现在Linux内核里了,它以队列位基础数据结构,与进程调度机制紧密结合,能够用于实现内核中异步事件通知机制。等待队列可以用来同步对系统资源的访问。(信号量在内核中也依赖等待队列来实现). Linux-2.6提供如下关于等待队列的操作: (1
2013-07-11 17:20:54 684
转载 Linux 进程状态
http://blog.csdn.net/tianlesoftware/article/details/6457487Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 在下文将对进程的R、S、D、T、Z、X 六种状态做个说明。 PROCESS STATE CODES Here are the
2013-07-11 14:10:27 544
转载 kmalloc vmalloc kzalloc malloc 和 get_free_page()
http://www.360doc.com/content/11/1201/10/1317564_168823219.shtmlkmalloc vmalloc kzalloc get_free_page()是内核空间申请内存空间函数malloc是用户空间申请内存函数 一 ,kmalloc() 与 kfree() 和get_free_page的区别1,用于申请较小的、连续的物理
2013-07-10 08:58:31 416
转载 关于kmalloc、vmalloc及kmap
http://blog.csdn.net/gxfan/article/details/27234551、 kmalloc()是内核中最常见的内存分配方式,它最终调用伙伴系统的__get_free_pages()函数分配,根据传递给这个函数的flags参数,决定这个函数的分配适合什么场合,如果标志是GFP_KERNEL则仅仅可以用于进程上下文中,如果标志GFP_ATOMIC则可以用于中断上
2013-07-10 08:55:51 592
转载 kmalloc/kfree,vmalloc/vfree函数用法和区别
http://blog.csdn.net/tigerjb/article/details/6412881kmalloc/kfree,vmalloc/vfree函数用法和区别1.kmalloc1>kmalloc内存分配和malloc相似,除非被阻塞否则他执行的速度非常快,而且不对获得空间清零.tiger说明:在用kmalloc申请函数后,要对起清零用memset()函数对申请
2013-07-10 08:53:26 444
转载 关于ISR中清除中断源的问题
http://www.amobbs.com/thread-4565349-1-1.html一直对中断服务程序中是不是要清除中断源标记疑惑。照理看见书上写的是要清的。但是自己看过的一些代码里确实是没清的。自己也曾经在 三星的一些mcu上试验过不清除的话,明明只有一次中断,却会反复的来。在马潮老师http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=847
2013-07-08 15:41:33 2515
原创 边沿触发与电平触发
两种外部中断触发方式,两种各有优缺点:边沿触发:优点:程序编写简单,不会出现按键按下后就不断的触发中断的情况。设置方法如下:缺点:仅限于仿真中应用,实际应用中,无法防止误触按键的情况。并且按键只能局限于一下一下的按,不能出现长短按键的形式电平触发:优点:通过软件的编写可以防止实际生活中误触按键的情况。基本思路就是在进入中断后先等待,一段时间后再次检测,看
2013-07-08 15:31:01 3602
转载 c语言中的全局数组和局部数组
今天在A一道题目的时候发现一个小问题,在main函数里面开一个int[1000000]的数组会提示stack overflow,但是将数组移到main函数外面,变为全局数组的时候则ok,就感到很迷惑,然后上网查了些资料,才得以理解。对于全局变量和局部变量,这两种变量存储的位置不一样。对于全局变量,是存储在内存中的静态区(static),而局部变量,则是存储在栈区(stack)。这里,顺便普
2013-07-03 09:35:33 5136
原创 tftp上传与下载
上传:在windows下打开tftp进入uboot下setenv serverip PC机IP地址sf空格 probe空额 0sf read 0x82000000 0x100000 0x380000 /*读flash到内存*/tftp 0x82000000 kernel.bin 0x380000 下载:在windows下打开tftp进入uboot下
2013-07-02 15:19:57 603
转载 linux驱动学习之异步通知
http://blog.csdn.net/fontlose/article/details/8257201 异步通知是设备状态改变后主动通知应用程序,这样应用程序就不需要阻塞或查询设备了。应用通过信号来处理内核的异步通知,上次使用poll select来查询设备的可读状态,下面这个例子类似,不同的是当设备有数据时主动通知应用去读数据。 应用的C代码很简单,主要设置对信号的处理方式
2013-07-02 09:21:04 523
转载 小白学Linux之module_param()函数学习
http://blog.csdn.net/tigerjb/article/details/6025305module_param()的学习一.module_param1.为什么引入 在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则可通过module_param()来传递命令行参数.2. module_param宏是Linux 2.6内核中新增的,该
2013-07-01 14:39:22 514
转载 misc_register、 register_chrdev 的区别总结
http://blog.csdn.net/lanmanck/article/details/4713978参考:http://longer.spaces.eepw.com.cn/articles/article/item/60415http://imganquan.org/blog/?p=350 网上找的,归纳一下: 杂项设备(misc device)杂项设
2013-07-01 11:32:09 579
原创 linux驱动中地址空间转换
在linux kernel 中,物理地址是不能直接使用的,必须通过转换才可以。转换分为两种, 静态和动态。静态就是下面那种,不过,静态的地址转换,还需要在kernel 初始化的时候作映射。 动态映射是使用 ioremap 函数 。#define SL2312_GPIO_BASE 0x4D000000 #define IO_ADDRESS(x) (((X)&0x0
2013-07-01 11:10:44 2832
转载 phys_to_virt(),ioreamp(),IO_ADDRESS() 的区别
http://blog.csdn.net/linxi_hnh/article/details/8509213针对IO_ADDRESS()函数(静态映射(map_desc)方式):ioreamp();动态映射方式:我们来看看s3c2410是怎么定义map_desc结构体的(即上面s3c2410_map_io函数内的s3c2410_iodesc)。/* ar
2013-07-01 10:42:29 7811
原创 海思3516中断初始化
如果要产生中断,且避免假中断,则必须按照下面的初始化顺序:步骤 1 配置GPIO_IS,选择边沿触发或电平触发。步骤 2 配置GPIO_IEV,选择下降沿/上升沿触发和高电平/低电平触发。步骤 3 如果选择边沿触发,需配置GPIO_IBE,选择单沿或双沿触发方式。步骤 4 保证GPIO 数据线在以上操作过程中保持稳定。步骤 5 向寄存器GPIO_IC 写0xFF,清中断。
2013-07-01 10:15:39 4679
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人