- 博客(148)
- 资源 (5)
- 收藏
- 关注
转载 Linux .a文件.o文件.la文件.lo文件和.so文件
.o 就相当于Windows里的obj文件 .a 是好多个.o合在一起,用于静态连接 .so 是shared object,用于动态连接的,和dll差不多 .o文件是链接文件,.a是静态库文件,靠.o文件生成,作为一个库为外部程序提供函数,接口。生成.o文件:gcc -c test.o test.c生成.a文件:ar cqs test
2013-06-30 21:34:01
2261
转载 Linux 网卡如何支持TSO GSO指南
来源链接:http://gavin1992.gotoip2.com/papperdetails_tech.php?pid=11 1.什么是TSO GSO TSO是tcp segment offload的缩写,GSO是 generic segmentation offload 的缩写。 详细解释参看http://en.wikipedia.org/wiki/La
2013-04-03 11:44:03
3037
1
转载 优化屏障(Optimization barrier)第二讲
1. gcc编译的大致过程可以看到,gcc优化主要分两大部分:Tree优化和RTL(Register Transfer Language)优化;前文所说的指令调度(Instruction scheduling)即为RTL优化的一部分。2. 从RTL指令调度出发,追寻Optimization barrier的踪迹还是从实验出发,实验代码如下:
2013-04-01 20:25:43
1073
转载 优化屏障(Optimization barrier)第一讲
1. 编译优化导致编译器指令重排要想理解Optimization barrier,先要理解Compiler Instruction Reorder,即编译器指令重排。编译器指令重排是编译优化的结果,以gcc来说,它不知道为我们的代码默默做了多少事情,看看那整屏的优化选项就明了了。本文以ubuntu下的gcc 4.4.3为实验,来逐步分析Optimization barrier的作用
2013-04-01 20:25:01
1481
转载 自动生成Linux下Makefile全攻略(下)
下面再来看看多个源文件的例子。 如何写用code1.c, code2.c生成 prog1的configure.in和Makefile.am。首先建立一个项目文件夹testproj。在testproj下建立dir1目录。 [kang@node16 kang]$ mkdir testproj [kang@node16 kang]$ mkdir dir1
2013-03-20 22:43:42
631
转载 自动生成Linux下Makefile全攻略(上)
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序
2013-03-20 22:42:22
512
转载 Generic Netlink HOW-TO based on Jamal's original doc
An Introduction To Using Generic Netlink===============================================================================Last Updated: November 10, 2006Table of Contents 1. Introduction 1.1. Doc
2013-03-10 18:46:18
728
转载 为什么在中断上下文中不能休眠?
这个问题有很多人问过,我看了下linux得内核代码,原因如下(当然我不能保证一定对,如果有牛人理解得更好,欢迎指正)1. 中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程打断(这点对 于softirq,tasklet也一样,因此这些bottom half也不能休眠),如果在中断context中休眠,则没有办法唤
2013-03-10 16:45:31
727
转载 进程上下文和中断上下文
[原文:http://blog.chinaunix.net/u3/93613/showart_1907687.html]进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事的两个概念。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器
2013-03-10 16:44:23
571
转载 Open vSwitch作为openflow交换机的启动方法
启动NOX控制台: ./nox_core -v -i ptcp:6633 pyswitch1. 加载open vswitch 模块: insmod datapath/linux-2.6/openvswitch_mod.ko 2. 增加一条数据通路: ovs-dpctl add-dp dp0 3. 将该数据通路与接口进行关联
2013-03-03 14:30:13
1648
2
转载 open vswitch研究:ovs的安装和使用
通过git clone git://openvswitch.org/openvswitch下载ovs代码到本地,运行boot.sh,如果遇到提示autoconf版本过低,可以去找最新的autoconf m4等rpm包安装或者通过yum update更新,也可以去下一个较新的包自己装下,e.g. http://ftp.gnu.org/gnu/autoconf/autoconf-2.6
2013-03-03 14:29:31
841
转载 虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap
2013-03-01 15:51:10
521
转载 Linux的TUN/TAP编程
TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。原理简介TUN/TAP 虚拟网络设备的原理比较简单,他在Linux内核中添加了一个TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备
2013-03-01 15:47:36
585
转载 Ubuntu 9.10下安装Eclipse CDT 6.0
安装步骤如下:1. 安装Jre, Jdksudo apt-get install sun-java6-jresudo apt-get install sun-java6-jdk2. 安装Eclipsesudo apt-get install eclipse安装完eclipse后,还需要安装以下两个包,否则安装CDT将失败:sudo apt-get install e
2013-02-26 15:29:37
353
转载 无界面环境下安装eclipse
1、添加这个源:deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse。2、sudo apt-get update 3、sudo apt-get install sun-java6-jdk 然后就会出现下载安装sun-java6-jdk。。。有点久 当下载完成时,就会有 说明成功了。^_^
2013-02-26 14:42:40
409
转载 PuTTY + Xming 远程使用 Linux GUI
在家里的PC上用VMWare做了一个Oracle Enterprise Linux虚拟机做数据库,虚拟机OEL没启用图形界面,因此需要在PC上装一个X Window Server才能使用GUI。 看Wiki系统地了解了一下X Window System。X Window System(常被简称为X11或X),是一套基于X display protocol的windowing syst
2013-02-24 22:31:09
568
转载 Remote X Tutorial
In this class, we're using the open source, UNIX-like operating system known as Linux for all of our development. For most, the transition from developing in Visual Studio or Eclipse to developing i
2013-02-24 22:30:20
470
转载 linux namespace
Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,LXC(Linux conta
2013-01-25 17:18:06
1095
转载 netlink socket编程实例解析
开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯
2012-12-26 16:01:39
922
转载 LINUX netlink机制
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),防火
2012-12-26 15:59:19
531
转载 MII接口
简介MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等。下面对它们进行一一介绍。 MII接口
2012-11-13 09:38:31
870
转载 使用PHP处理POST上传时$_FILES数组为何为空
在做一个简单的表单上传测试时,服务端的php脚本中,$_FILES数组为空;这样就不能获取从浏览器上传的信息.什么原因呢? 通过Google,找到下面这个web: php上传文件$_FILES数组为空的解决办法 在测试时遇到的情况,属于文中描述的第一种原因,即:上传文件的表单中未设置属性 enctype="multipart/for
2012-11-10 08:04:12
3353
转载 Thinkphp常用系统变量指导
Thinkphp常用系统变量指导除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。系统变量:包括server、session、post、get、request、cookie 一、thinkphp变量的定义规
2012-11-07 17:24:13
579
转载 VS2010 Boost编译安装
1.下载安装包boost 1_46_0 http://www.boost.org/users/news/version_1_46_0 选择下载 windows 或 unix 版本2.解压缩到D:\boost 目录下3.编译bjam (1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio
2012-11-06 11:10:15
524
转载 vs2012-vs2010使用stlport库的配置
在编译完成stlport后,就打开vs2012(本人已经安装10及12,打sp1补丁)配置stlport库:由于要经常使用此库,所以建议在全局属性配置比较好点目录配置:包含目录与库目录方法:菜单栏->视图-属性管理-“Debug|win32-Microsoft.Cpp.Win32.user”属性-VC++目录——目录配置包含目录:D:\OpenSou
2012-11-05 22:18:52
1235
转载 VC++2010下编译STLport,Boost
最近在想向Boost转移,努力掌握Boost代码的过程中,STLport版本:5.2.1Boost版本:1.4.6.1 (1.4.7.0,1.4.9.0也OK)编译器Visual Studio2010STLPort的编译,选择Microsoft Visual Studio 20010下面的Visual Studio Tools下面的命令行环境编译工具,Visual
2012-11-05 22:17:36
1032
1
转载 vs2010 使用STLport-5.2.1
下载地址: http://sourceforge.net/projects/stlport/ 下载后解压,假设目录为:D:\STLport,接下来就该编译它了:1.在开始菜单中找到VC 命令行工具,接下来切换到D:\STLport\STLport-5.2.1目录。2.可以运行configure –help看看编译选项,用MSVC编译器编译的话,输入以下命令:c
2012-11-04 15:15:09
772
转载 安装MPLS-TE示例
ubuntu 无eth0今天装 ubuntu 10.10,能上网,ifconfig正常,有线、无线、lo都在,但/etc/network/interfaces 中却没有eth0,只有lo。不知怎么回事,查了一圈,下面的解决方法有效:1. sudo rm /etc/udev/rule.d/70 -persistent-net.rules,然后重新启动。2. sudo vi /etc/
2012-10-29 20:48:53
1079
转载 数据中心服务器接入部署的布线方式
服务器机柜布线方式的差异数据中心机房平面布局通常采用矩形结构,为了保证制冷效果,通常将 10 至 20 个机柜背靠背并排放置成一行,形成一对机柜组(又称为一个POD)POD中的机柜都采用前后通风模式,冷空气从机柜前面板的吸入并从后部排出,由此在机柜背靠背摆放的POD中间形成 “热通道”,相邻的两个POD之间形成“冷通道”。热通道正对CRAC(机房空调),热空气沿热通道流回CRAC,
2012-10-23 23:42:51
1588
转载 EMC中国研究院: 网络虚拟化-正在进行的网络变革
编者注:这是一篇来自周伦 EMC中国研究院云基础构架实验室高级研究员的文章。]A revolution has started to free data center networks fromthe tyranny of inflexibility, complexity, vendor stranglehold, and high costs.It’s time to de
2012-10-23 23:05:39
1001
转载 高性能数据中心网络的流量收敛设计
在数据中心网络领域,性能、规模似乎永远没有边界,是业界技术人员、设计者们不断追求与创新的目标。从1G速率骨干网的应用、10G速率骨干网的普及,到40G/100G以太网标准的制定和颁布, IT领域同样有着更高、更快、更强法则。但是有了高速的转发技术,并不意味着就可以实现高性能,高性能网络设计是一个系统化的工程,需要考虑网络流量收敛比、网络设备性能、网络设备缓存等多种因素。本文将重点阐述高性能数据中心
2012-10-20 20:02:34
3084
转载 Thinkphp常用系统变量指导
Thinkphp常用系统变量指导除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。系统变量:包括server、session、post、get、request、cookie 一、thinkphp变量的定义规
2012-10-15 15:05:12
360
转载 同步/异步与阻塞/非阻塞的区别
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的
2012-10-13 14:16:51
317
转载 Python线程指南
1. 线程基础1.1. 线程状态线程有5种状态,状态转换的过程如下图所示:1.2. 线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程"print"负责从前往后读取列表并打印。那么,可能线程"set"开始改的时
2012-10-07 15:44:51
546
转载 关于placement new操作
如果我是用new分配对象的,可以显式调用析构函数吗?可能不行。除非你使用定位放置new,否则应该 delete 对象而不是显式调用析构函数。例如,假设通过一个典型的 new 表达式分配一个对象: Fred* p = new Fred(); 那么,当你delete它时,析构函数 Fred::~Fred() 会被调用: delete p; // 自动调
2012-10-06 19:31:40
455
转载 关于set_new_handler
当运算符new找不到足够大的连续内存块来为对象分配内存时将会发生什么?一个称为 new-handler的函数被调用。对于new-handler的缺省动作是抛出一个异常。然而,如果我们在程序里用堆分配,至少要用“内存已用完”的信息代替 new-handler,并异常中断程序。用这个办法,在调试程序时会得到程序出错的线索。通过包含NEW. H,然后以我们想装入的函数地址为参数调用set
2012-10-06 19:12:00
482
转载 侧边栏高度随主栏高度改变
需要实现这么一个效果:主内容比较多,而且内容高度不固定,侧栏内容比较少,但是为了美观需要高度跟随主内容高度改变,以达到底部对齐的效果首先想到的是在右侧栏上添加height:100%;的样式,但是外层上如果不明确写明高度,这个100%是不会被侦测到的,而在外层上写一个高度的话,ie6不会出问题,但是ie7和ff会严格实现这个高度,所以当设定的高度被超出就会出现问题.后来发现一
2012-09-25 15:31:49
1694
转载 xargs 用法
如果你曾经花了许多时间在Unix命令行上,那么或许你已经见过xargs了,如果你还没听过xargs,那就先让我来解释下,xargs是一个从标准输入或许参数并执行命令的程序。常见使用我常常见到将find和xargs组合使用以对find返回的文件列表执行某些操作。更新:根据Twitter和hacker news上的反馈,find是个很强大的命令,它自己也有-exec和-delete这样的参
2012-09-24 22:12:26
480
转载 php5.2解决zendoptimizer
笔者添加的提醒:还是使用php5.2.*安装队zend optimizer的支持吧,自己亲身经历是血的教训啊!!下面是从一位仁兄那里了解的一些东西。为了安装shopex,本来打算用php5.3.10,结果悲催的发现Zend Optimizer不支持php5.3.x只得放弃。具体原因如下php5.3以上的版本不再支持Zend Optimizer,但是shopex之类的网站必须要高版本的Z
2012-09-19 10:19:41
3201
转载 PHP VC9/VC6 TS/NTS版本之间的区别
PHP在现在是越来越流行了,不过我们在php官网(http://www.php.net/downloads.php)下载php的时候,可能会遇到一个问题,windows下的php有VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe等多个版本。那么这些版本有什么区别呢?
2012-09-19 10:15:03
1022
深入分析Java Web技术内幕
2018-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人