09 2012 档案

摘要:转载自:http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有位博友问了一个问题,我重新查阅了一些更权威的资料,才发现原来的文章中有很大的 阅读全文
posted @ 2012-09-26 19:11 mugua250 阅读(147) 评论(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 阅读(650) 评论(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 阅读(202) 评论(0) 推荐(0) 编辑
摘要:转载自:http://blog.csdn.net/historyasamirror/article/details/6966672突然发现自己很久没有更新博客了。主要的原因还是这阵子特别懒,没有努力学习新的东西,光忙着每天的日常任务。佛曰:这样不好,不好...这些体会是基于一个这样的系统:它包含有十几个大小不一的模块,这些模块分布在不同的机器上,每个请求都需要这些模块的协作才能够完成。我不是太好意思称它为大系统或者分布式系统,因为它确实还差了那么点东西。但我也相信,任何一个真正的大系统/分布式系统也是从这么一个系统开始的。对于这样一个系统,消息通信模块,日志模块和监控模块是非常基础却至关重要的 阅读全文
posted @ 2012-09-26 18:45 mugua250 阅读(145) 评论(0) 推荐(0) 编辑
摘要:转载自:http://blog.csdn.net/zhangxinrun/article/details/5869106静态库 静态库在编译的时候被固定在了可执行文件中,而不是放在系统的某个地方由ld.so加载。这种做法好的一面是可执行文件自己包含了所需的所有库文 件,并不依赖于系统中的其他代码,也不会出现库文件缺失的情况。你可以把这些代码复制给任何人,而它们保证可以工作。不好的一面就是可执行文件不必要的增 大了,而且不同的程序之间不能共享代码。习惯上,我们以后缀.a来标记静态库文件。 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删. 阅读全文
posted @ 2012-09-26 18:31 mugua250 阅读(341) 评论(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 阅读(496) 评论(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 阅读(587) 评论(0) 推荐(0) 编辑
摘要:最近几天手头事情比较忙,这个接上一篇:linux shell命令快捷获得系统帮助(一)[man-pages定义规范],如果有朋友对于linux系统帮助文件结构与定义感兴趣看下刚才那篇文章。 知道linux帮助文件(man-pages,手册页)一般放在,$MANPATH/man 目录下面,而且按照领域与语言放到不同的目录里面。 看了上一章,要找那个命令使用相关手册,只要我们按照领域区分,到对于目录去查看与命令对应的文件解压,cat file 就可以看到一篇详细的文档了。 但是与快速索引查找帮助相差太远了。linux有一个很好工具,就是man 它会按照系统设计帮助目录,在各个文档里面查询,并且显示 阅读全文
posted @ 2012-09-26 18:15 mugua250 阅读(337) 评论(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 阅读(335) 评论(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 阅读(497) 评论(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 阅读(219) 评论(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 阅读(7493) 评论(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 阅读(657) 评论(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 阅读(279) 评论(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 阅读(362) 评论(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 阅读(824) 评论(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 阅读(711) 评论(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 阅读(438) 评论(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 阅读(270) 评论(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 阅读(1720) 评论(0) 推荐(0) 编辑
摘要:合理使用消息队列(Messaging Queue)可大幅降低网络系统架构的耦合度和复杂度,让各集成部件拥有更灵活的自主弹性。同时异步处理机制在高性能和高可靠性上也有极佳的表现,是一种较理想的集成解决方案。在 ActiveMQ、ZeroMQ、RabbitMQ 之间徘徊许久,最终还是选择 RabbitMQ。ZeroMQ 和 RabbitMQ 都支持开源消息协议 AMQP,不过 ZeroMQ 暂时不支持消息持久化和崩溃恢复,且稳定度稍差。1. 基础概念AMQP 有四个非常重要的概念:虚拟机(virtual host),交换机(exchange),队列(queue)和绑定(binding)。 虚拟机: 阅读全文
posted @ 2012-09-26 13:31 mugua250 阅读(571) 评论(0) 推荐(0) 编辑
摘要:原文来自 http://www.thegeekstuff.com/2011/03/linux-performance-monitoring-intro/comment-page-1/#comment-103583 1、CPU 2、内存 3、I/O 4、网络 1、CPU 应该理解CPU运行的主要参数: 阅读全文
posted @ 2012-09-26 13:20 mugua250 阅读(301) 评论(0) 推荐(0) 编辑
摘要:AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何遵守此数据格式的工具,其创建和解释消息,都能与其他兼容工具进行互操作。AMQP规 阅读全文
posted @ 2012-09-26 13:10 mugua250 阅读(1280) 评论(1) 推荐(0) 编辑
摘要:AMQP协议作者: langyu来源: JavaEye发布时间: 2010-09-20 17:46阅读: 936 次原文链接 全屏阅读 [收藏] 当前各种应用大量使用异步消息模型,并随之产生众多消息中间件产品及协议,标准的不一致使应用与中间件之间的耦合限制产品的选择,并 增加维护成本。AMQP是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语 言等条件的限制。 当然这种降低耦合的机制是基于与上层产品,语言无关的协议。AMQP协议是一种二进制协议,提供客户端应用与消息中间件之间异步、安全、高效地交互。从整体来看,AMQ... 阅读全文
posted @ 2012-09-26 11:48 mugua250 阅读(263) 评论(0) 推荐(0) 编辑
摘要:突然发现自己的英语能力很差, 文档 看的云里雾里,在安装 RabbitMQ 集群的时候遇到了很大的麻烦。安装 RabbitMQ 的集群环境,首先得来讲如何安装非集群环境Step1 :安装 Erlang 啥是 Erlang? Look –> http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 下载 Erlang 的 SRC - otp_src_R13B04.tar.gz./configure --prefix=/usr/local/erlangmakemake installStep2: 安装 Python... 阅读全文
posted @ 2012-09-26 11:38 mugua250 阅读(790) 评论(0) 推荐(0) 编辑
摘要:目录(?)[+]第1章 概述1.1. 本文档的目标这份文档定义了高级消息队列协议,这个协议使得遵从该协议的客户端应用和消息中间件服务器之间能够互相通信。为了完全实现互操作性,我们还定义了消息中间件服务的标准行为。我们面对这个领域有经验的技术读者,同时还提供了足够的规范和指南,一个合适的技术工程师可以根据这些文档在任何硬件平台上用各种编程语言来构建遵从该协议的解决方案。1.2. 专利AMQP的设计目标之一是它的概念都来自于现有的、无产权阻碍的、广泛推行的标准——比如由互联网工程任务组和万维网颁布的标准。因此,我们相信仅用众所周知的一些技术就能够实现AMQP服务,比如现有的开源网络程序和电子邮件路 阅读全文
posted @ 2012-09-26 11:31 mugua250 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:SIGHUP信号与控制终端--------------------------------------------------------------------------------------------------------------------------------------------------unix中进程组织结构为 session 包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相 阅读全文
posted @ 2012-09-25 19:38 mugua250 阅读(1807) 评论(0) 推荐(0) 编辑
摘要:MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。linux MTU调整1、找到服务器的MTU值使用netstat -i 来查看MTU的值[root@asterisk ~]# netstat -i Kernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-. 阅读全文
posted @ 2012-09-25 19:25 mugua250 阅读(1604) 评论(0) 推荐(0) 编辑
摘要:介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… 好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。读者对象 这个文档是一个指南,而不是参考书。如果你刚开始 socket 编程并想找一本入门书,那么你是我的读者。但这不是一本完全的 socket 编程书。平台和编译器 这篇文档中的大多数代码都在 Linux 平台PC 上用 GNU 的 gcc 成功编译过。而且它们在 H... 阅读全文
posted @ 2012-09-25 19:21 mugua250 阅读(1225) 评论(0) 推荐(2) 编辑
摘要:这是一个linux常见命令的列表。那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝。所有的命令已在Fedora和Ubuntu下做了测试命令描述•apropos whatis显示和word相关的命令。 参见线程安全•man -t man | ps2pdf - > man.pdf生成一个PDF格式的帮助文件which command显示命令的完整路径名time command计算命令运行的时间•time cat开始计时. Ctrl-d停止。参见sw•nice info运行一个低优先级命令(这里是info)•renice 19 -p $ 阅读全文
posted @ 2012-09-21 11:47 mugua250 阅读(274) 评论(0) 推荐(0) 编辑
摘要:一、初始化输入gdb进入gdb调试环境。或者直接输入gdb + progfile来加载文件。注意该文件是使用gcc(或g++)编译得到的。为了使 gdb 正常工作, 必须使你的程序在编译时包含调试信息,编译时必须使用-g参数来。或者进入gdb环境后,通过命令file + progfile来加载需要调试的可执行文件文件。查看源代码:list [函数名][行数]设置程序运行参数:set args二、暂停程序 gdb可以使用几种方式来暂停程序:断点,观察点,捕捉点,信号,线程停止。当程序被暂停后,可以使用continue、next、step来继续执行程序。continue 执行到下一暂停点或程序.. 阅读全文
posted @ 2012-09-05 14:36 mugua250 阅读(362) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示