- 博客(260)
- 资源 (10)
- 收藏
- 关注
转载 Linux内核学习四库全书
原文出处:http://blog.csdn.net/21aspnet/article/details/6585602关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。Linux Kernel
2013-12-20 19:42:16 1151
转载 Linux网络编程必看书籍推荐
本文转载自http://blog.csdn.net/21aspnet/article/details/6694485 首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机
2013-12-20 19:39:14 1139
转载 C语言经典著作导读
本文转载自http://blog.csdn.net/21aspnet/article/details/6558619基础篇1.《写给大家看的C语言书(第2版)》原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: (美)Greg Perry [作译者介绍] 译者: 谢晓钢
2013-12-20 19:37:16 1202 1
转载 虚拟网卡 TUN/TAP 驱动程序设计原理
原文出处:http://www.ibm.com/developerworks/cn/linux/l-tuntap/简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡
2013-12-18 20:33:44 2966
原创 netfilter-libnetfilter_queue
Linux netfilter提供了数据的队列机制,而libnetfilter_queue为用户空间的接收、处理内核队列里缓冲的数据包的函数库。Libnetfilter_queue需要libnfnetlink、libmnl的支持,内核需要nfnelink_queue子系统地支持。Libnetfilter_queue提供的主要特性如下:Ø 接收内核数据包缓冲队列里的数据包Ø 决定
2013-12-09 22:22:29 6726
转载 理解 pkg-config 工具
文章出处:http://www.chenjunlu.com/2011/03/understanding-pkg-config-tool/你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的工作没有白费,多么清新的空气啊,你开始飘飘然了。
2013-12-09 20:18:57 876
原创 linux内核hmac-sha1使用
最近开发IPSec模块时,需要用到内核中hmac-sha1算法下面为hmac-sha1的简单使用方式#include #include #include #include #include #include static void hexdump(char *data, int len){ int i = 0; for(; i < len; i++){ if((len
2013-12-05 21:14:30 5572
转载 GCC编译优化指南
GCC编译优化指南作者:金步国原文出处:http://lamp.linux.gov.cn/Linux/optimize_guide.html版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下
2013-12-02 23:05:20 1559
转载 memset()的效率以及源码分析
void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset当作万能的初始化工具,例如:int arr[n];memset(arr,1,n*sizeof(int));这样得到的a
2013-11-26 20:56:35 1457
转载 广播域与冲突域详细解析
本文出自 “放羊的(hextwolf)---BLOG” 博客,请务必保留此出处http://hextwolf.blog.51cto.com/59501/29696广播域与冲突域有何区别? 广播域可以跨网段,而冲突域只是发生的同一个网段的。 以太网中,冲突域是由hub组织的。一个hub就是一个冲突域。交换机的每个端口都是一个冲突域。网段,又叫潜在冲突域。(不是俗称子网
2013-11-26 20:13:12 1744
翻译 结构体指针数组 vs 结构体数组
文章内容来自StackOverFlow,文章在这里。下面两个数组的区别是什么?1.struct mystruct *ptr = (struct test *)malloc(n*sizeof(struct test));and2.struct mystruct **ptr = (struct test *)malloc(n*sizeof(struct test *));
2013-11-18 20:00:48 3251
转载 网桥和交换机的工作原理及区别
本文转载自http://network.51cto.com/art/201107/277187.htm网桥和交换机区别在叙述前,我们先一起看两幅图:1.网桥的连接模式:(红点处为HUB)2.交换机连接模式:从图中可以看到,网桥只有2个输入/出端口,而交换机有8个。嗯,是的,一开始的时候(那时候只有HUB这种设备),由于硬件水平不是很发达,人们为了提高局域网效率,减少广播
2013-10-20 21:53:40 2713
原创 如何使用htonl实现long long 字节序的转换
今天同事问了一个关于如何将long long转换字节序,思考了一下先实现如下,经测试,好用!#include #includeunsigned long lon
2013-10-10 20:30:59 3917
原创 linux netfilter/iptables 架构分析及nelink的使用
本文主要介绍,分为三部分:1.linux netfilter/iptables组织架构,及其如何扩展netfilter模块。2.linux netlink机制及其使用方式。3.介绍内核模块的编写方法:内嵌到源码树构建;独立于源码树构建。
2013-09-29 11:14:37 4196
翻译 linux 网络协议栈-队列机制
Packet queues are a core component of any network stack or device. They allow for asynchronous modules to communicate, increase performance and have the side effect of impacting latency. This article
2013-09-28 11:51:04 3643
转载 CentOS Kernel Source Install
CentOS Kernel Source InstallMar 12th, 2012 | Comments CentOS kernel source install, first off if you are just trying to build something or compile a tool on CentOS then you probably only need
2013-09-23 15:29:38 5343
转载 Installing the Graphical Window System (X.org-X11) and the Default Desktop Environment on CentOS 6
Installing the Graphical Window System (X.org-X11) and the Default Desktop Environment on CentOS 6Posted 09-06-2011 at 01:12 PM by gearge Updated 11-26-2011 at 02:29 PM by geargeTags centos
2013-09-23 12:42:26 1566
原创 CentOS 5.2 man 手册使用问题
最近发现我是用的CentOS 5.2 的man手册使用出现了问题。为题现象为:使用man命令式,shell提示只用(END)其他的是么都没有了。而且在执行man命令时还提示如下的错误:/usr/bin/gtbl: symbol lookup error: /usr/lib/libstdc++.so.6: undefined symbol: _ZNSt8messagesIcE2idE, vers
2013-09-06 11:15:06 2112
翻译 GIPS-NetEQ 最大化语音质量、最小化延迟
GIPS NetEQ是一项专为IP电信系统开发的高级语音质量处理技术,其能够在大幅提高语音质量的同时,有效地减由于缓冲带来的延时影响。
2013-09-03 16:09:01 7886 1
转载 Netfilter分析
一、概述1. Netfilter/IPTables框架简介 Netfilter/IPTables是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。
2013-09-01 18:53:22 2571
原创 整数与各种进制之间的转换
1.整数转换为二进制#includevoid int2binary(int x){ char binary[32]; char i = 0, j = 0; while(x) { binary[i] = (x % 2); ++i; x = x >> 1; } for(j = i - 1; j >= 0 ; --j) { printf("binary:
2013-08-11 23:04:25 1374
原创 QQ 中所使用的GIPS语音技术
2004年12月9日,腾讯发布了QQ2004II正式版,新版在语音通话方面进行了很大的改善。后来笔者在不经意间发现QQ的版权信息中多出一段话:“本软件中使用的GIPS语音引擎和相关商标为Global IP Sound AB公司版权所有.Patens and Patens Pending, Global IP Sound Inc.”这是至今为止QQ第一次在版权声明中加入了第三方版权说明。
2013-08-03 22:41:38 4499
转载 进程地址空间的布局以及进程堆栈帧的结构
前言从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当函数返回时,相应的堆栈帧从堆栈中弹出。尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数返回地址这样的重要数据保存在程序员可见的堆栈中,因此也给系统安全带来了极大的隐患。历史上最著名的缓冲区溢出攻击可能要算是1988年11月2
2013-07-23 23:30:21 1906
原创 Ok6410裸板程序开发(1)-开发环境搭建
废话不都说,直接进去正题。本人的开发环境如下:@system:Ubuntu12.04@串口工具:minicom@交叉工具链:arm-linux-gcc4.3.2开发裸板程序时,没有选择Jlink,主要原因就是它不好用,而且还需要另需购买。本人开发依靠的是烧写有uboot的开发板,利用uboot的loady命令将程序直接拷贝到ram中,然后直接执行。虽然,不是完全意义上的裸板开
2013-07-07 21:39:40 1750
原创 C 程序设计语言-读书笔记
说来惭愧,上大学学的第一门计算机编程语言就是c语言。到现在也有将近五年的时间了,可是对于C语言的理解还是停留在表面之上,今天拜读了C语言的缔造者B.W.Kernighan、D.M.Richie编写的C语言程序设计才发现自己真的是从来没有好好学过C语言。废话少说,准备拜读完该书,然后再系统的学习C语言的其他经典巨著,算法C语言实现,Unix编程艺术。1.EOF关于getchar()和putc
2013-07-02 21:58:28 1269
转载 linux 修改命令提示符&ubuntu目录颜色个性化
1.linux 命令提示符个性化在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。 本文示范了如何使用粗体和彩色的文字。 相信每一位Linux使用者都要面对 Bash。 虽然第一眼看上去非常枯燥,但是又很多方法能够让你的 shell 足够的个性化。 shell 提示符的彩色增强让能够让你的 shell 独一无二, 而且
2013-06-16 20:36:42 5093
原创 WebRtc 音频引擎-linux demo
Google收购了著名的音频技术公司GIPS后,基于其强大的音频技术,实现了WebRtc的Voice Engine,即语音处理引擎。本文主要介绍WebRTC 中Voice Engine中音频技术相关的实现,并结合具体实例,介绍如何利用voice engine实现自己的VoIP音频处理引擎。本文主要介绍如何在linux下搭建一个可以自己调试的基于WebRTC的voiceEngine。1.Vo
2013-06-07 21:45:45 5512 3
原创 linphone mediastream2 分析-双向录音机
(转载请标明出处,请勿用于商业用途)http://blog.csdn.net/linux_embedded/article/details/8957482 linphone是一个轻量级voip客户端,linphone的架构设计十分的清晰,其底层音视频引擎mediastream2是一个独立的模块,基于它可以很容易的实现各种音视频的应用没。本文中所说的linphone 双向录音功能就是基于
2013-05-21 21:14:17 8023 3
原创 linux gdb-多线程调试
linux下应用程序的调试工具主要就是gdb,可能你已经习惯了IDE形式的调试工具。也许刚开始使用gdb作为调试工具,会有诸多的不变,但是一旦你学会了如何使用gdb你就会被其富有魔力的功能所吸引的,下面开始逐步的学习linux下gdb的使用方式。一直以来对于gdb在多线程调试方面的应用好奇,最近,由于项目需要,学习了linux下的gdb在多线程下的调试方法。下面就结合一个简单的案例介绍一下gd...
2013-05-05 21:18:07 14434 3
原创 Ubuntu 安装WebRTC
WebRTC为google开发的一套音视频引擎解决方案,通过这套方案可以轻松地实现应用间的音视频通信,下面主要介绍了如何在CentOS下安装WebRTC的过程。1.Depot Tools安装首先需要安装depot tools,安装步骤如下:首先,需要确认是否安装了git。通过git获取depot tool工具: git clonehttps://chromium.googlesou
2013-05-01 16:39:13 8639 1
原创 diff C && C++
1.函数声明为空的区别int func_void();对于C而言,上述函数表示func_void函数可以使任意个数、类型。如果要定义没有参数的函数,参数类型需为void类型对于C++而言,func_void()即是表示参数为空的函数。#includeint func(){ printf("liang\n"); return 0;}int m
2013-04-27 22:30:52 3018
原创 动、静态库编译顺序
具有依赖关系的动、静态库在编译时,要特别注意链接库的顺序(连接顺序从右到左),例如,程序foo.c 依赖库A、B。动态库、或静态库A依赖于静态库B,在编译连接的时候,顺序如下:gcc -o foo foo.c -lA -lB如果顺序颠倒的话,将会提示A库中找不到B库的关联信息,在编写具有多个具有依赖关系的静态库时,需要特别注意顺序问题!
2013-04-27 21:04:41 2183
原创 tcpdump原理之利用libpcap实现抓包
tcpdump原理之利用libpcap实现(转载请标明出处,请勿用于商业用途)http://blog.csdn.net/linux_embedded/article/details/8826429Linux 下赫赫有名的抓吧工具tcpdump,想必使用过的人都十分的清楚。但是,其实现的原理却很少人提及过,今天就tcpdump的实现原理做简单的介绍。tcpdump 首先利
2013-04-19 22:57:28 14424 1
转载 VoIP技术(5)--VoIP语音质量保证
5.VoIP语音质量保证策略影响通信的语音质量的因素很多。在VoIP系统中,虽然与电路交换系统在大多数情况下都是类似的,但也有其不少特殊的因素,如编解码类型、较长的时延、时延抖动、分组的丢失等。 考虑到传统的电信业务使用线路交换技术,而VOIP使用包交换技术,因此这也是VOIP技术与线路交换技术相比之下需要解决的问题。5.1 延迟和抖动VOIP在传输语音、视频等实时性要求
2013-04-17 22:31:31 5909
转载 VoIP技术(4)-G.729-G.723-iLBC-语音编码
4.4 算法—G.729分析在VoIP系统中应用最广泛的就是G.729和G.723.1两种。G.729编码是LPC参数编码,线性预测采用的是前馈型前向自适应技术,并使用预视提高合成模型的精度。预测模型系数根据当前帧和部分下一帧话音数据进行更新,G.729帧长为10ms,由2个子帧组成,预视5ms。由于采用的是前向型自适应技术,因此除了传送激励信号外,还需传送预测器系数。为了降低复杂度,G.72
2013-04-17 22:30:32 5010 1
转载 VoIP技术(3)-语音编码算法
4.语音编码算法原理与应用 4.1 波形编码算法基本原理语音编码主要有波形编码和参数编码两大类。波形编码就是根据语音信号波形导出相应的数字编码形式。最早的波形编码就是PCM,即ITU-T G.711A和ITU-T G.711μ,其编码速率为64kbit/s。 图9 自适应量化器PCM虽然能够提供相当好的语音质量,但要占用过高的网络带宽资源。这里主要讨论低速率
2013-04-17 22:29:26 3532
转载 VoIP技术(2)-RTP/RTCP/SRTP语音传输技术
3.语音传输技术 由因特网的七层架构来看,RTP协议是工作在UDP/IP协议之上的,如图6所示。 图6 在VoIP系统,在将编码语音数据交给UDP进行传输之前,要利用RTP/RTCP协议进行处理。RTP/RTCP协议实际上包含RTP协议和RTCP协议两部分。3.1 RTP协议RTP协议通常运行在UDP层之上,二者共同完成运输层的功能。UDP提供复用及校验和服务,也就
2013-04-17 22:28:19 4092
转载 VoIP(1)-基本原理和发展历程
VoIP(Voice Over Internet Protocol),即IP上传送语音,简单地说,就是实现了语音在IP上的实时传送,为了有效地利用IP带宽资源,通常在传送之前先要对语音数据进行压缩处理。真正的快速发展是在90年代以后,IP分组语音话音通信技术获得了突破性的进展和实际应用。1996年,ITU-T通过了著名的H.323协议,这一协议的推出,成为了VoIP的公共规范,极大地推动了VoIP
2013-04-17 22:25:26 9990 1
转载 算法 选择
每年一到要找工作的时候,我就能收到很多人给我发来的邮件,总是问我怎么选择他们的offer,去腾讯还是去豆瓣,去外企还是去国内的企业,去创业还是去考研,来北京还是回老家,该不该去创新工场?该不该去thoughtworks?……等等,等等。今年从7月份到现在,我收到并回复了60多封这样的邮件。我更多帮他们整理思路,帮他们明白自己最想要的是什么。(注:我以后不再回复类似的邮件了)。我深深地发现,对于
2013-04-06 21:27:45 1091
转载 VIM 简明攻略
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类史上最好
2013-04-06 18:42:18 894
TensorFlow实战Google深度学习框架(第2版)+源码
2019-03-18
二线城市的城程序员收入为什么这么低?
2022-11-09
坐标河北石家庄,有多少人在搞Linux呢?
2022-10-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人