- 博客(27)
- 资源 (52)
- 收藏
- 关注
转载 如何使用 epoll? 一个 C 语言实例
#include #include #include #include #include #include #include #include #include #include #define MAXEVENTS 64static intmake_socket_non_blocking (int sfd){ int flags, s; flags = fc
2013-03-28 16:24:07 748
转载 网络协议栈(1)从tcp的connect开始
一、基本结构内核中网络模块有眼花缭乱的数据结构,而且从名字和功能上看还没啥差别,所以对代码的理解还是有不小影响的。这里就是一个网络的开始阶段,然后尝试以这个为入口,看看系统中的网络的相关模块和功能实现。1、socket 根据 毛德操 《linux情景分析》下册863页有一个比较合理的解释:“socket和sock是同一个事物的两个方面。不妨说,socket结构是面向进程和
2013-03-27 17:18:03 946
转载 kernel socket 实例
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2013-03-27 16:49:41 1321 1
转载 linux socket 阻塞 listen
首先在创建socket,,然后绑定什么就不说了,,,然后listen 监听前面创建的socket(你可以把listen当然是后台运行的监控一样)listen语句之后一般会有accept。这个是接受连接请求的。当监听到有连接请求来的时候,,,accept就会 重新创建一个socket(注意,该socket才是真正用来通信的)。。。。。。。到这里楼主可明白了。。。。前面自己创建的s
2013-03-27 13:30:50 4722
转载 timer
times: 用来统计进程及其子进程执行所消耗的CPU时间。常见用法是在不同地方调用两次这个函数,从而可以计算出进程或子进程在这两次调用之间消耗了多少CPU时间。time: 返回当前相对于 Epoch (在linux/unix里,这个时间一般指 1970年1月1日0点0分0秒)所经过的秒数。 常见用法是在不同地方调用两次这个函数,从而可以计算这两处调用之间系统时间过了多少秒。gett
2013-03-19 10:05:01 714
原创 添加linux内核驱动
1.将内核驱动.ko放入/lib/modules/3.2.0-23-generic/kernel/drivers$ 目录下2.执行depmod -a来解决依赖(扫描driver下的驱动依赖关系),命令执行完成后,会自动生成modules.dep 和modules.alias。dep为依赖关系。3.更新当前kernel的initramfs(ram file system 取代了ram dis
2013-03-18 16:08:14 923 1
转载 内核程序,makefile分析(转自CSDN)
内核模块----linux内核的整体结构庞大,其中包含的组件也很多,如何使用需要的组件?1--把所有的组件都编译进内核文件,即zImage,bzImage,但这样会导致两个问题:一是生产的内核文件过大,二是,如果要添加或删除某个组件要重新编译整个内核。内核模块机制---提供一种机制能让内核文件(zImage,bzImage)本身并不包含某组件,而是在该组件需要被使用的时候,动态的添加到
2013-03-18 15:50:20 850 1
转载 socket通信的几个关键步骤
转自点击打开链接面向连接的socket通信就像与对方打电话,首先需要通过电话建立一个连接,连接建立好之后,彼此才能双向通信。它有几个关键步骤服务器端通常以守护进程的方式实现:1: 创建守护进程2:获取或注册服务3:创建socket并绑定地址4:开始监听5:接收客户端连接请求6:进行数据传输客户端1:获取或注册服务2:创建socket3:发
2013-03-14 10:49:56 1219 2
转载 玩转c链表 链表模板list.h
转自点击打开链接代码#ifndef __C_LIST_H#define __C_LIST_Htypedef unsigned char u8;typedef unsigned short u16;typedef unsigned int u32;typedef unsigned long size_t;#define offset
2013-03-14 08:56:53 1614 1
原创 名人博客收录
陈莉君绝影 疯狂的程序员陈皓 酷壳平凡的程序员 一步一步写算法 超牛Mr.Right的专栏 :把内核的每个函数用法都做了简单的步骤总结冯青华的专栏 linux内核 网络编程 c高级编程http://www.oschina.net/开源中国kernel apilinux内核部件分析推荐资料eros的linux平台技术资料库 有交流qqLI
2013-03-13 17:32:34 983
转载 workqueue
7.6. Workqueues转自Workqueues are, superficially, similar totasklets; they allow kernel code to request that a function becalledat some future time. There are, however, some significant differen
2013-03-13 16:57:54 885
转载 Linux中的工作队列
http://www.cnblogs.com/wwang/archive/2010/10/27/1862202.htmlLinux中的工作队列Linux 的并发可管理工作队列机制探讨
2013-03-13 15:18:37 556
转载 linux 常用命令及技巧
linux 常用命令总结: 一。 通用命令: 1. date :print or set the system date and time 2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等) 3. passwd: print or set the system date and time (用passwd -h查看) 4. log
2013-03-12 15:29:18 862
原创 beyond compare 使用时的tab与空格转换
tab与空格转换在tools -> File Formats ,左下角有一个Edit file format default 选中Text Format, 在第三个选项卡Misc中调整tab是否用空格代替,重启bcompare,ok啦
2013-03-12 15:17:21 15294
转载 sk_buff结构 及操作函数 pull等,讲解较准确
7.1. sk_buff结构在Linux内核的网络实现中,使用了一个缓存结构(struct sk_buff)来管理网络报文,这个缓存区也叫套接字缓存。sk_buff是内核网络子系统中最重要的一种数据结构,它贯穿网络报文收发的整个周期。该结构在内核源码的include/linux/skbuff.h文件中定义。我们有必要了解结构中每个字段的意义。一个套接字缓存由两部份组成:·
2013-03-11 15:19:46 1501
转载 linux协议栈skb操作函数
转自http://linux.chinaitlab.com/administer/842245.htmlstatic inline unsigned char *skb_pull_inline(struct sk_buff *skb , unsigned int len){ return unlikely(len > skb->len ) ? NULL : _
2013-03-11 14:46:24 2764 2
转载 skb_put(skb,len)和skb_push(skb,len)的区别
skb_put() 增长数据区的长度来为memcpy准备空间. 许多的网络操作需要加入一些桢头, 这可以使用skb_push来将数据区向后推, 为头留出空间. 请参见下图: ---------------------------------------- | head | data | | ----------------------------------------
2013-03-11 14:31:47 10715
转载 linux内核学习笔记之——list_for_each_entry
http://bbs.chinaunix.net/thread-1981115-1-1.htmlhttp://blog.chinaunix.net/uid-14114479-id-2932024.html
2013-03-11 11:38:28 774
转载 linux驱动问题讲解--dev_queue_xmit
1. 凡是调用dev_queue_xmit的对象都是一个网络设备。 解答:这个思路是错误的。因为dev_queue_xmit是有网络设备无关层调用的函数,调用对象调用该函数之后,函数会判断skb中的dev字段,根据这个字段指示的设备调用该设备的发送函数hard_start_xmit来对skb进行转发。 2. 凡是由dev_queue_xmit调用hard_start_xmit发
2013-03-11 11:19:34 2896 1
转载 linux驱动开发的经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rd Edition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了。但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的。除了这本Jonathan Corbet,Gre
2013-03-11 10:36:39 1198 1
转载 CONFIG_NR_CPUS num_online_cpus
#define NR_CPUS CONFIG_NR_CPUSCONFIG_NR_CPUS是内核被配置支持的CPU个数,而实际设备的CPU个数是在系统启动过程当中去动态监测的。也就是说你配置系统支持32个CPU那么CONFIG_NR_CPUS就等于32,而num_online_cpus()则是当前设备激活可调度的CPU个数。如果我们配多少系统就认为有多少个CPU那
2013-03-11 09:31:13 6894
转载 linux内核wait_queue深入分析
转自http://www.cnblogs.com/xmphoenix/archive/2011/11/20/2256419.htmlhttp://www.cnblogs.com/xmphoenix/archive/2011/11/20/2256417.htmlhttp://www.cnblogs.com/xmphoenix/archive/2011/11/20/2256422.html
2013-03-11 09:10:31 810
转载 sk_buff
http://www.cnblogs.com/iceocean/articles/1594160.htmlhttp://simohayha.iteye.com/blog/556168
2013-03-06 08:59:24 667
转载 epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2013-03-04 10:07:50 419
内核分析—中断
2013-02-21
Google_C++编码规范_中文.pdf
2012-10-15
memcached_allocator_slab_langwan
2012-08-22
Memory System on Fusion APU
2012-06-29
AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide
2012-06-28
Git-2.14.1-64-bit.exe
2017-09-22
Onvif对接Rtsp实时媒体流(基于live555)
2017-09-22
RFC2326(RTSP) 中文版
2013-05-09
RFC3550中文版 (RTP/RTCP)
2013-05-09
Google C++编程风格指南.pdf
2013-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人