摘要: 转载自:http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有位博友问了一个问题,我重新查阅了一些更权威的资料,才发现原来的文章中有很大的 阅读全文
posted @ 2012-09-26 19:11 mugua250 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 引用自:http://queniao.blog.51cto.com/10636/126564随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软件已经变得比以前更为重要。在本文中,您将学习如何在进行语句声明、赋值、位移、类型转换、字符串格式化以及更多操作时,防止出现可移植性缺陷。Linux 是可以使用 64 位处理器的跨平台操作系统之一,现在 64 位的系统在服务器和桌面端都已经非常常见了。很多开发人员现在都面临着需要将自己的应用程序从 32 位环境移植到 64 位环境中。随着 Intel® Itanium® 和其他 64 位处理器的引入, 阅读全文
posted @ 2012-09-26 18:59 mugua250 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 引用自:http://coolshell.cn/articles/5701.htmlSteve Yegge, Amazon的前员工,现任Google员工,其本来想在Google+上和Google的员工讨论一些关于平台的东西,结果不小心把圈子设成了 Public,结果这篇文章就公开给了全世界,引起了剧烈的反应。发布后很快他就马上把这篇文章删了,不过,互联网上早备份了下来——SteveY’s Google Platforms Rant。后来,Steve在其Google+上作了一些解释,大体是说他喝多了,而且又是在凌晨,所以大脑不清,文章中的观点很主观,极端且不完整,还有Google的PR对他很好, 阅读全文
posted @ 2012-09-26 18:56 mugua250 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/historyasamirror/article/details/6966672突然发现自己很久没有更新博客了。主要的原因还是这阵子特别懒,没有努力学习新的东西,光忙着每天的日常任务。佛曰:这样不好,不好...这些体会是基于一个这样的系统:它包含有十几个大小不一的模块,这些模块分布在不同的机器上,每个请求都需要这些模块的协作才能够完成。我不是太好意思称它为大系统或者分布式系统,因为它确实还差了那么点东西。但我也相信,任何一个真正的大系统/分布式系统也是从这么一个系统开始的。对于这样一个系统,消息通信模块,日志模块和监控模块是非常基础却至关重要的 阅读全文
posted @ 2012-09-26 18:45 mugua250 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/zhangxinrun/article/details/5869106静态库 静态库在编译的时候被固定在了可执行文件中,而不是放在系统的某个地方由ld.so加载。这种做法好的一面是可执行文件自己包含了所需的所有库文 件,并不依赖于系统中的其他代码,也不会出现库文件缺失的情况。你可以把这些代码复制给任何人,而它们保证可以工作。不好的一面就是可执行文件不必要的增 大了,而且不同的程序之间不能共享代码。习惯上,我们以后缀.a来标记静态库文件。 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删. 阅读全文
posted @ 2012-09-26 18:31 mugua250 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/zhangxinrun/article/details/5717867如何创建自增字段?SQLite 支持哪些数据类型?为什么能向 SQLite 数据库的整型字段中插入字符串?为什么 SQLite 认为表达式 '0'=='00' 为真?为什么 SQLite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键?为什么不能在 Linux box 中读取在 SparcStation 中创建的 SQLite 数据库?多个应用程序或者同一个应用程序的多个例程能同时存取同一 阅读全文
posted @ 2012-09-26 18:29 mugua250 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 一个共享库可供同一系统中的多个应用程序使用。共享库的性能会影响使用此共享库的应用程序,并且会影响整个系统。虽然共享库中的代码会直接影响运行进程的性能,但此处讨论的性能问题则涉及共享库的运行时处理。本节通过考虑各个方面(如文本大小和纯度)以及重定位开销,更详细地介绍了这种处理。分析文件有多种工具可用来分析 ELF 文件的内容。要显示文件的大小,请使用 size(1) 命令。$ size -x libfoo.so.159c + 10c + 20 = 0x6c8$ size -xf libfoo.so.1..... + 1c(.init) + ac(.text) + c(.fini) + 4(.ro 阅读全文
posted @ 2012-09-26 18:24 mugua250 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 最近几天手头事情比较忙,这个接上一篇:linux shell命令快捷获得系统帮助(一)[man-pages定义规范],如果有朋友对于linux系统帮助文件结构与定义感兴趣看下刚才那篇文章。 知道linux帮助文件(man-pages,手册页)一般放在,$MANPATH/man 目录下面,而且按照领域与语言放到不同的目录里面。 看了上一章,要找那个命令使用相关手册,只要我们按照领域区分,到对于目录去查看与命令对应的文件解压,cat file 就可以看到一篇详细的文档了。 但是与快速索引查找帮助相差太远了。linux有一个很好工具,就是man 它会按照系统设计帮助目录,在各个文档里面查询,并且显示 阅读全文
posted @ 2012-09-26 18:15 mugua250 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/chengmo/archive/2010/10/27/1862553.html刚学习linux有一份中文帮助手册该是多好事情。linux自带的帮助尽管有多种语言,目前各种发行版的linux基本没有中文帮助手册。打造个 适合自己中文手册还是很有意义的。配置过程其实比较简单,只需要知道中文包,然后放到man可以搜索到的目录中,基本就可以了。下面将分一下几步:下载开源的man-pages 中文手册包配置解压手册包测试安装中文包一、在个人工作目录安装中文帮助手册 这样优点是每个用户,登陆进去都可以有自己的语言版帮助手册。大家直接手册不会被相互调用, 阅读全文
posted @ 2012-09-26 18:14 mugua250 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/zhangchaoyang/articles/2683826.html关于I/O利用,不同的平台上都有相应的策略,比如select、poll、epoll、kqueue、devpoll、evport、win32。为libevent提供一组库函数,屏蔽了平台的差异性,底层还是调用的epoll、kqueue、devpoll等函数。libevent会使用优化的策略来选择使用哪个后端方法,以达到效率最高。创建event_basestruct event_base *event_base_new(void);event_base中存放你是监听是否就绪的 阅读全文
posted @ 2012-09-26 17:49 mugua250 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/chensichensi/article/details/5263132关于time-wait状态只有发起主动关闭的一方进入此状态。例外情况是双方同时关闭,这时都进入此状态在此状态中停留的时间是2MSL,MSL定义为30秒到2分钟,linux定义的是30秒,所以停留1分钟如果此状态下有数据达到,就重置该定时器。time-wait状态下按理对方关闭了连接,不会有数据到来的。下面是time-wait存在的必要性:对于主动关闭方,最后要发送一个ACK给对方确认关闭。而这个ACK包有可能丢失,所以设置一个等待时间,如果对方重传FIN包的话还可以在发送A 阅读全文
posted @ 2012-09-26 17:41 mugua250 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/25/1765424.html对称算法,是对DES算法的组合,指定3个KEY,运算3次DES,加密过程如下图所示:解密正好相反,依次使用key3,key2,key1,进行Decryption,Encryption,Decrpytion可能的输出结果:=============================================Default Algorithm info: System.Security.Cryptography.TripleDESCryptoServicePro 阅读全文
posted @ 2012-09-26 17:35 mugua250 阅读(7477) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/25/1765407.html一.DES对称算法1.key的大小KEY64bit,IV(初始化向量)64bit,block size(每次运算处理的字节数)64bit,key的实际使用时56bit,每个字节的最后一位是校验位,不参与计算2.加密模式既可以block cipher(分组加密,ECB模式),也可以productcipher(乘积加密,CBC模式)。分组加密就是每组分别加密,如果明文相同,得到的密文也会相同,乘积加密就是将上一次运算得到的结果,也就是密文,也参与到下一次运算当中,这 阅读全文
posted @ 2012-09-26 17:34 mugua250 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/07/07/1773086.html前面两部分分别讲解了如何在.net程序中使用SSL实现安全通信以及SSL的通信过程,并通过抓包工具具体分析了ssl的握手过程,本文通过一个demo来模拟ssl协议,在TCP之上实现自己的安全通信。创建证书为了实现安全的通信,必须使用证书对传输的数据进行加密,有两种方法可以得到证书,一是安装CA服务器,使用CA来发放证书,二是通过makecert.exe工具自己创建。创建服务器证书:cmd>makecert.exe -r -pe -n "CN=My 阅读全文
posted @ 2012-09-26 17:33 mugua250 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/07/02/1770208.htmlSSL建立握手连接目的:1.身份的验证,client与server确认对方是它相连接的,而不是第三方冒充的,通过证书实现2.client与server交换session key,用于连接后数据的传输加密和hash校验简单的SSL握手连接过程(仅Server端交换证书给client):1.client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)2.server回应ServerHello,指定版本,RN,选择C 阅读全文
posted @ 2012-09-26 17:31 mugua250 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/20/1761458.htmlSSL(Security Socket Layer)是TLS(Transport Layer Security)的前身,是一种加解密协议,它提供了再网络上的安全传输,它介于网络通信协议的传输层与应用层之间。为实现TCP层之上的ssl通信,需要用到数字证书。本文通过具体例子来说明如何使用数字证书来实现网络上的安全传输。需要用到.net提供的 SslStream, TcpListener, TcpClient, X509Certificate2,X509Store, 阅读全文
posted @ 2012-09-26 17:30 mugua250 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/11/1755837.htmlSecurity的基础就是加解密算法,算法是公开的,任何人都可以得到,而使用算法的 核心就是key,主要有private key和public key,而数字证书作为key的载体,在Security体系中自然起到关键的作用。本文将从证书的发放,回收,保存,使用方面对数字证书进行详细的介 绍。1.证书的发放与回收能否发放Certificate的机构称为CA,CA可以后多级,每一份certificate都含有发放该certificate的CA信息,每个CA也会有一张 阅读全文
posted @ 2012-09-26 17:29 mugua250 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.cnblogs.com/piyeyong/archive/2010/06/10/1744692.html要想实现在不安全的网络上的安全通信,需要考虑3个方面的问题:保密(Privacy),认证(Authentication),完整性(Integrity)。1.保密(Privacy)数据在网络传输的过程中,需要经过多个中间节点进行转发,因此,数据很容易就被截获,为了保证数据的保密性,就需要对数据进行加密传输,使用密文进行传输。如上图所示,明文数据(plaintext)经过加密算法(Encryption Algorithm)得到密文(ciphertext),在网络中传 阅读全文
posted @ 2012-09-26 17:28 mugua250 阅读(419) 评论(0) 推荐(0) 编辑
摘要: Linux上安装使用boost入门指导获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库1.获得boost下载boost_1_46_1.tar.bz2解压2.boost分布boost_1_46_1.........................boost根目录 boost/.....................................所有boost头文件 libs/........................................Tests,.cpps,docs等的库文件注意: .. 阅读全文
posted @ 2012-09-26 14:58 mugua250 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/historyasamirror/article/details/6827870安装RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境。从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,我下载的版本是 otp_src_R14B03.tar.gz 。然后:$ tar xvzf otp_src_R14B03.tar.gz$ cd otp_src_R14B03$ ./configure编译后的输出如下图:提示没有wxWidgets和fop,但是问题不大。继续 阅读全文
posted @ 2012-09-26 14:26 mugua250 阅读(1716) 评论(0) 推荐(0) 编辑