Archive for the ‘doc’ Category

[转]内存种类知多少

Monday, January 14th, 2008
    终于知道为什么都被当做Internal 来用。
    凡是对电脑有所了解的朋友都知道内存这玩意,可是,可能有不少朋友对内存的认识仅仅局限在和DDR 这两种类型,事实上,内存的种类是非常多的,从能否写入的角度来分,就可以分为(随机存取存储器)和ROM(只读存储器)这两大类。每一类别里面有分别有许多种类的内存。以下就让我们看看内存到底有些什么种类吧!

 
  一、(Random Access Memory,随机存取存储器)
 

 
  的特点是:电脑开机时,操作系统和应用程序的所有正在运行的数据和程序都会放置其中,并且随时可以对存放在里面的数据进行修改和存取。它的工作需要由持续的电力提供,一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复。
 
  根据组成元件的不同,内存又分为以下十八种:
 
  01.DRAM(Dynamic ,动态随机存取存储器):
 

 
  这是最普通的,一个电子管与一个电容器组成一个位存储单元,DRAM将每个内存位作为一个电荷保存在位存储单元中,用电容的充放电来做储存动作,但因电容本身有漏电问题,因此必须每几微秒就要刷新一次,否则数据会丢失。存取时间和放电时间一致,约为2~4ms。因为成本比较便宜,通常都用作计算机内的主存储器。
 
  02.SRAM(Static ,静态随机存取存储器)
 

 
  静态,指的是内存里面的数据可以长驻其中而不需要随时进行存取。每6颗电子管组成一个位存储单元,因为没有电容器,因此无须不断充电即可正常运作,因此它可以比一般的动态随机处理内存处理速度更快更稳定,往往用来做高速缓存。
 
  03.VRAM(Video ,视频内存)
 

 
  它的主要功能是将显卡的视频数据输出到数模转换器中,有效降低绘图显示芯片的工作负担。它采用双数据口设计,其中一个数据口是并行式的数据输出入口,另一个是串行式的数据输出口。多用于高级显卡中的高档内存。
 
  04.FPM DRAM(Fast Page Mode DRAM,快速页切换模式动态随机存取存储器)
 

 
  改良版的DRAM,大多数为72Pin或30Pin的模块。传统的DRAM在存取一个BIT的数据时,必须送出行地址和列地址各一次才能读写数据。而FRM DRAM在触发了行地址后,如果需要的地址在同一行内,则可以连续输出列地址而不必再输出行地址了。由于一般的程序和数据在内存中排列的地址是连续的,这种情况下输出行地址后连续输出列地址就可以得到所需要的数据。FPM将记忆体内部隔成许多页数Pages,从512B到数KB不等,在读取一连续区域内的数据时,就可以通过快速页切换模式来直接读取各page内的资料,从而大大提高读取速度。在96年以前,在486时代和PENTIUM时代的初期,FPM DRAM被大量使用。
 
  05.EDO DRAM(Extended Data Out DRAM,延伸数据输出动态随机存取存储器)
 

 
  这是继FPM之后出现的一种存储器,一般为72Pin、168Pin的模块。它不需要像FPM DRAM那样在存取每一BIT 数据时必须输出行地址和列地址并使其稳定一段时间,然后才能读写有效的数据,而下一个BIT的地址必须等待这次读写操作完成才能输出。因此它可以大大缩短等待输出地址的时间,其存取速度一般比FPM模式快15%左右。它一般应用于中档以下的Pentium主板标准内存,后期的486系统开始支持EDO DRAM,到96年后期,EDO DRAM开始执行。。
 
  06.BEDO DRAM(Burst Extended Data Out DRAM,爆发式延伸数据输出动态随机存取存储器)
 
  这是改良型的EDO DRAM,是由美光公司提出的,它在芯片上增加了一个地址计数器来追踪下一个地址。它是突发式的读取方式,也就是当一个数据地址被送出后,剩下的三个数据每一个都只需要一个周期就能读取,因此一次可以存取多组数据,速度比EDO DRAM快。但支持BEDO DRAM内存的主板可谓少之又少,只有极少几款提供支持(如VIA APOLLO VP2),因此很快就被DRAM取代了。
 
  07.MDRAM(Multi-Bank DRAM,多插槽动态随机存取存储器)
 

 
  MoSys公司提出的一种内存规格,其内部分成数个类别不同的小储存库 (BANK),也即由数个属立的小单位矩阵所构成,每个储存库之间以高于外部的资料速度相互连接,一般应用于高速显示卡或加速卡中,也有少数主机板用于L2高速缓存中。
 
  08.WRAM(Window ,窗口随机存取存储器)
 

 
  韩国Samsung公司开发的内存模式,是VRAM内存的改良版,不同之处是它的控制线路有一、二十组的输入/输出控制器,并采用EDO的资料存取模式,因此速度相对较快,另外还提供了区块搬移功能(BitBlt),可应用于专业绘图工作上。
 
  09.RDRAM(Rambus DRAM,高频动态随机存取存储器)
 

 
  Rambus公司独立设计完成的一种内存模式,速度一般可以达到500~530MB/s,是DRAM的10倍以上。但使用该内存后内存控制器需要作相当大的改变,因此它们一般应用于专业的图形加速适配卡或者电视游戏机的视频内存中。
 
  10.(Synchronous DRAM,同步动态随机存取存储器)
 

 
  这是一种与实现外频Clock同步的内存模式,一般都采用168Pin的内存模组,工作电压为3.3V。 所谓clock同步是指内存能够与同步存取资料,这样可以取消等待周期,减少数据传输的延迟,因此可提升计算机的性能和效率。
 
  11.SGRAM(Synchronous Graphics ,同步绘图随机存取存储器)
 

 
  的改良版,它以区块Block,即每32bit为基本存取单位,个别地取回或修改存取的资料,减少内存整体读写的次数,另外还针对绘图需要而增加了绘图控制器,并提供区块搬移功能(BitBlt),效率明显高于
 
  12.SB SRAM(Synchronous Burst SRAM,同步爆发式静态随机存取存储器)
 
  一般的SRAM是非同步的,为了适应越来越快的速度,需要使它的工作时脉变得与系统同步,这就是SB SRAM产生的原因。
 
  13.PB SRAM(Pipeline Burst SRAM,管线爆发式静态随机存取存储器)
 
  外频速度的迅猛提升对与其相搭配的内存提出了更高的要求,管线爆发式SRAM取代同步爆发式SRAM成为必然的选择,因为它可以有效地延长存取时脉,从而有效提高访问速度。
 
  14.DDR (Double Data Rate二倍速率同步动态随机存取存储器)
 

 
  作为的换代产品,它具有两大特点:其一,速度比有一倍的提高;其二,采用了DLL(Delay Locked Loop:延时锁定回路)提供一个数据滤波信号。这是目前内存市场上的主流模式。
 
  15.SLDRAM (Synchronize Link,同步链环动态随机存取存储器)
 
 

 
 
 
  这是一种扩展型结构内存,在增加了更先进同步电路的同时,还改进了逻辑控制电路,不过由于技术显示,投入实用的难度不小。
 
  16.CDRAM(CACHED DRAM,同步缓存动态随机存取存储器)
 
  这是三菱电气公司首先研制的专利技术,它是在DRAM芯片的外部插针和内部DRAM之间插入一个SRAM作为二级使用。当前,几乎所有的都装有一级来提高效率,随着时钟频率的成倍提高,不被选中对系统性能产生的影响将会越来越大,而 DRAM所提供的二级正好用以补充一级之不足,因此能极大地提高效率。
 
  17.DDRII (Double Data Rate Synchronous DRAM,第二代同步双倍速率动态随机存取存储器)
 

 
  DDRII 是DDR原有的SLDRAM联盟于1999年解散后将既有的研发成果与DDR整合之后的未来新标准。DDRII的详细规格目前尚未确定。
 
  18.DRDRAM (Direct Rambus DRAM)
 

 
  是下一代的主流内存标准之一,由Rambus 公司所设计发展出来,是将所有的接脚都连结到一个共同的Bus,这样不但可以减少控制器的体积,已可以增加资料传送的效率。
 
  二、ROM(READ Only Memory,只读存储器)
 
  ROM是线路最简单半导体电路,通过掩模工艺,一次性制造,在元件正常工作的情况下,其中的代码与数据将永久保存,并且不能够进行修改。一般应用于PC系统的程序码、主机板上的 BIOS (基本输入/输出系统Basic Input/Output System)等。它的读取速度比慢很多。
 
  根据组成元件的不同,ROM内存又分为以下五种:
 
  1.MASK ROM(掩模型只读存储器)
 
  制造商为了大量生产ROM内存,需要先制作一颗有原始数据的ROM或EPROM作为样本,然后再大量复制,这一样本就是MASK ROM,而烧录在MASK ROM中的资料永远无法做修改。它的成本比较低。
 
  2.PROM(Programmable ROM,可编程只读存储器)
 
  这是一种可以用刻录机将资料写入的ROM内存,但只能写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0(部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1), 以实现对其“编程”的目的。
 
  3.EPROM(Erasable Programmable,可擦可编程只读存储器)
 

 
  这是一种具有可擦除功能,擦除后即可进行再编程的ROM内存,写入前必须先把里面的内容用紫外线照射它的IC卡上的透明视窗的方式来清除掉。这一类芯片比较容易识别,其封装中包含有“石英玻璃窗”,一个编程后的EPROM芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住, 以防止遭到阳光直射。
 
  4.EEPROM(Electrically Erasable Programmable,电可擦可编程只读存储器)
 

 
  功能与使用方式与EPROM一样,不同之处是清除数据的方式,它是以约20V的电压来进行清除的。另外它还可以用电信号进行数据写入。这类ROM内存多应用于即插即用(PnP)接口中。
 
  5. Memory(快闪存储器)
 

 
  这是一种可以直接在主机板上修改内容而不需要将IC拔下的内存,当电源关掉后储存在里面的资料并不会流失掉,在写入资料时必须先将原本的资料清除掉,然后才能再写入新的资料,缺点为写入资料的速度太慢。

Google 坚信的 10 大信条

Monday, January 7th, 2008

1. Focus on the user and all else will follow. 关注使用者,则一切将水到渠成.
(H:对我来说这就是客户关系的经营,设身处地的为客户着想,而不是把这些行为都当成新案子的酬庸;至于新案子?对我而言这绝对是第二个考虑… 我想只要用心,客户是可以感受到并给予回馈.)2. It’s best to do one thing really, really well. 尽力将一件事做到最好.
(H:手上正在进行的工作,别只是把他做完就好,也不要有太多的权宜、妥协!尽可能真的把他的「做好」,因为老想着之后再回过头来怎样又怎样,经验告诉我,通常回过头来怎样又怎样的机会是非常低的,然而这个不完美的作品却已经被客户在心中悄悄的打了分数.)
3. Fast is better than slow. 快比慢好.
(H:这不是指把事情做的快的意思,比如说:你写的程序跑起来效率要高、有新的点子想到就要快点实作、…. 太多了,说不完.)
4. Democracy on the works. 网络的民主效应.
(H: 2.0!!! Wikipedia, ….. )
5. You don’t need to be at your desk to need an answer. 您不一定要在桌子前找答案.
(手机通讯,行动通讯,3G….)
6. You can make money without doing evil. 不做坏事也能赚钱.
7. There’s always more information out there. 「信息」也无涯.
8. The need for information crosses all borders. 对信息的需求没有国界.
9. You can be serious without a suit. 不穿西装也可以很正经.
(H: 早上你可以晚点进公司,上班时间你可以开心的大声说笑,傍晚你也可以早点下班回家,这些我都不在乎;但是你不能上班时间不工作而回家报边加班边工作,是因为公司风水比较差吗?你必需要对自己开出来的Schedule负责,当你面对自己开的Schedule是一再的Delay,那我会势必质疑你的能力!也许我什么都没说,但请相信我,很多事情是看在眼里,放在心底的.我的重点是–你要对你自己的决定/行为负责,形式上的一些规定对我来讲并不是重点.)
10. Great just isn’t good enough. 精益求精.
(H:没啥好说说的,尽可能做到下面这句话吧 — Be the only one, not number one.)

[转] 一步一步学习Vim 全图解释

Monday, December 17th, 2007


Whole 中文版 感谢 fdl 的翻译工作


以下是学习这些基本的命令的基本步骤,在学习完之后,可以依照上图进一步的学习和使用!!
步骤1

注释1:
1) h j k l为光标键,分别左下上右
2) i 插入键进入编辑模式,Esc键退出到一般模式
3) x 删除当前光标所在字符,X删除当前光标前的一个字符
4) A 在一行的末尾添加text,a在当前光标后添加text
5) u 执行Undo操作,Ctrl+R表示Redo
6) 0 跳到行首,$ 跳到行尾 ^跳到行首(类似正则式$和^的意义)
7) w b e移动一个单词word(全部是字符或者符号)
8) W B E移动一个单词WORD(以空格隔开)
9) R 进入插入编辑模式,并且对被编辑位置进行覆盖
10) :w 保存 :q 退出 :q! 强制退出

步骤2

注释2:
1) f 移动光标从当前位置到下一个f后跟的字符的右边,包含此指定字符,F 方向相反为前一个,需要和操作(operator)配合操作
2) t 和 T类似f 和 F,只是它们一直到指定的字符左才停,即不包含指定的字符。
3) d 删除操作 与上面 w f t 等配合:例如”dw”删除下一word,”df-”从当前位置一直往前删除到字符”-”,不保留”-”,”dt-”删除直到”-”但是保留”-”
4) c 删除且进入编辑模式(类似d和i的结合),同样可以与f t T w 等motion结合
5) j k 可以和c和d结合,删除所有末尾或开头的所有行
6) . 可以重复最后一次编辑的所有操作,注意是在一般模式下重复最后一次编辑操作
7) 操作和motion可以和数字组合,”d2w” 删除后2个单词word “d2t,”删除知道这一行的第2个”,”
8) cc 和 dd 删除当前行
9) v 进入可视模式

步骤3

注释3:
1) y 后面跟任意的motion执行copy操作
2) p (paster)粘贴,如果复制的是字符形式,则粘贴到右边,行形式粘贴到下面
3) P 同上p操作,但是粘贴方向相反,在左边或上面
4) yy 复制当前行
5) y 也可以在可视模式(visual mode)下工作,同时,d,c,x..等text删除操作也将被删除内容进行复制(这一点要注意)
6) “和a-z字符如果在复制/删除/粘贴命令前表示选择一个寄存器暂存
7) 在复制/删除前的A-Z 寄存器意味进行叠加复制,就是多个复制操作的内容将被加起来
8) “*操作或者”+操作选择系统的剪贴板
9) o 在当前行下新其一行进入插入模式,O 操作类似o,只是在当前行的上新起一行

步骤4

注释4:
1) / 是基本的查找motion,可以和operation结合执行操作,也可以单独使用,直接查找匹配后面的正则式
2) ? 与/相同,但是方向相反backward,/ 方向forward
3) n 重复最后一次查找方向, N 重复最后一次查找的相反方向
4) * 和 # 查找当前光标所在的实体相同的实体,前者方向向前,后者方向向后,两者仅在下有效(vi not support)

步骤5

注释5:
1) m 操作后跟a-z字符用来设置一个标记mark
2) ` 后面跟a-z字符可以去这个字符表示的标记处
3) ‘ 和一个字符可以到所在行的第一个非空处
4) A-Z 标记为全局标记 a-z仅在每个buffer内可见
5) `. 表示到最后一个修改的地方
6) q 后跟字符a-z用来记录宏
7) @ 后跟字符用了重放宏,@@ 重放最后一个宏

步骤6

注释6:
1) % 在配对的( 和 ) [ 和 ]等 之间跳动
2) H M L 直接跳到整个屏幕的最上面,中间和最下面
3) G 跳到文件的末尾,G 前面跟行号表明跳到指定的行
4) - 或者 + 直接跳到前一行 或 后一行
5) K 跳到帮助
6) ( 和 )跳到当前句子的最前和最后
7) { 和 }跳到前一个空行 或 后一个空行
8) [[ 跳到前一个第0列是{的位置(必须{为第0列)
9) ]] 跳到下一个第0列是}的位置

步骤7

注释7:
1) J 连接当前行和下一行在一般模式,或所有行在可是模式
2) r 后跟任意字符替换当前字符
3) C 为c$的简写,表示删除当前位置到行结束并进入插入模式
4) D 为d$的简写,表示删除当前到行结束
5) Y 为yy的简写,复制整个行
6) s 删除当前光标所在字符并进入插入模式
7) S 清除当前行,并进入插入模式
8) > 和一个motion 表示缩进一行或多行
9) < 和一个motion 表示不缩进
10) = 和一个motion 表示重新格式化text
11) > < 和 = 工作在可视模式下,且均可重复例如>>表示缩进整个当前行

什么是MIPS?

Monday, December 17th, 2007

Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量速度的一个指标。像是一个Intel 80386 电脑可以每秒处理3百万到5百万机器语言指令,既我们可以说80386是3到5MIPS的只是衡量性能的指标。这是

一种过时的而且不科学的衡量处理器速度与性能的度量单位,不过依然在用。

技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在处理器方面占有重要地位。1984年,计算机公司成立。1992年,收购了计算机公司。1998年,脱离,成为技术公司。

公司设计处理器始于二十世纪八十年代初,1986年推出R2000处理器,1988年推R3000处理器,1991年推出第一款64位商用微处器R4000。之后又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。

随后,公司的战略发生变化,把重点放在嵌入式系统。1999年,公司发布MIPS32和MIPS64架构标准,为未来处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS324Kc与高性能64位处理器内核MIPS64 5Kc。2000年,公司发布了针对MIPS32 4Kc的版本以及64位 64 20Kc处理器内核。

[转] MTK平台芯片概说

Monday, November 26th, 2007

转至 http://blog.sina.com.cn/mobliephone

目前联发科技已开发出MT6205、MT6217、MT6218、MT6219、MT6226、MT6227、MT6228等系列平台,其中MT6205、MT6217、MT6218、MT6219、MT6226、MT6227、MT6228、MT6229、MT6225、MT6223、MT6230均为基带芯片,所有芯片均采用ARM7的核。
MT6305为电源管理芯片,有MT6305、MT6305N、MT6305BN;

MT6129、MT6139是射频芯片。MT6129为早期的射频RF芯片,一般与MT6205的一起使用。现在用的多的是MT6129C、MT6129N、MT6129D,其中MT6129C、MT6129N一般用在MT6217、MT6218、MT6219的的机器上,MT6129D一般用在MT6226、MT6227的的机器上。RF3146(7×7mm)、RF3146D(双频)、RF3166(6×6mm)为RFMD的PA。

MT6205为最早的方案,只有GSM的基本功能,不支持GPRS、WAP、MP3等功能。(2003年MP);
MT6218为在MT6205基础上增加GPRS、WAP、MP3功能。MT6217为MT6218的cost down方案,与MT6128 PIN TO PIN,只是软件不同而已,另外MT6217支持16bit数据。(2004年MP)
MT6219为MT6218上增加内置AIT的1.3M camera处理IC,增加MP4功能。8bit数据。(2005年MP)
MT6226为MT6219 cost 升级产品,内置0.3M 摄相处理IC,支持GPRS、WAP、MP3、MP4等,内部配置比MT6219优化及改善,比如配蓝牙是可用很便宜的芯片CSR的BC03模块USD3即可支持数据传输(如听立体声MP3等)功能。
MT6226M为MT6226高配置设计,内置的是1.3M摄像处理IC。(2006年MP)
MT6227与MT6226功能基本一样,PIN TO PIN,只是内置的是2.0M 摄像处理IC。(2006年MP)
MT6228比MT6227增加TV OUT功能,内置3.0M 摄像处理IC,支持支持GPRS、WAP、MP3、MP4。(2006年MP)
从MT6226后软件均可支持网络摄像头功能,也就是说你的机子可以用于QQ视频。

MT6229平台支持EDGE功能,其他功能和6228基本一致。

MT6225是6217的代替产品,可以接cam但是没有isp,也就是没有特效,变焦,但是其主频很高和6228/6229一样达到了104mhz,可以接wifi,并且给设计公司提出了更高的要求——如何利用104m的资源去实现mp4的编解码,如何用104m的资源跑更多的应用,这些都是设计公司做的,对设计公司的要求也非常得高。

MT6223是6205的替代,支持语音,短信,MP3,不支持T_F卡,USB盘,没有集成ISP,PMIC内签。

目前市面上出的双卡双待手机,一般是采取的方案分为以下几种:MT6226+6205,MT6225+6205和MT6225+6223

redhad下的openssl(安装和卸载)

Friday, September 21st, 2007

转至: http://.csdn.net/baitianhai/archive/2004/10/27/155461.aspx

最近在鼓捣 ,想自己以源代码方式安装软件,不想用rpm方式安装。

首先从httpd开始,先卸载在安装倒是比较容易,不过后来像添加功能,发现编译的时候需要用的安装目录,本人比较愚笨,一顿好找也没有找到,于是就想把也以源代码方式安装。先卸载,此时出现问题,系统好多东西依赖于的库,我查了好多资料也没找到什么办法,于是我最后一狠心,用rpm -e –nodeps给卸载了,然后手动安装了,然后重新启动,这下坏了,好多服务都起不来了,smb,ssh等等,图形模式也起不来了,我欲哭无泪。

因为我是在虚拟机上安装的,smb起不来了,我只能重新安装系统了。这次安装我大多数东西都没选择,一路安装完毕,结果在文本方式发现vi编辑没有颜色了,哎,也不知道是少装了那个东西弄得(各位谁知道麻烦告诉告诉我一下),只能按照猜测重新安装了又添加了一些东西。不过幸运的vi高亮显示功能又有了,遗憾的是具体是那个软件我还是不清楚。有了上次的教训我不敢轻易卸掉系统原来的了,我从网上搜索到了一篇安装的英文文章,地址在 http://www.devside.net//// 我按照上面说的安装了zlib,。步骤简介如下(怕以后忘了)

安装zlib

Home : http://www.gzip.org/zlib/

Package( source) : http://www.gzip.org/zlib/

Our Configuration

Install to : /usr/local

Module types : dynamically and staticly loaded modules, *.so and *.a

Build Instructions

zlib library files are placed into /usr/local/lib and zlib header files are placed into /usr/local/include, by default.

Build static libraries

…/zlib-1.2.1]# ./configure

…/zlib-1.2.1]# make test

…/zlib-1.2.1]# make install

Build shared libraries

…/zlib-1.2.1]# make clean

…/zlib-1.2.1]# ./configure –shared

…/zlib-1.2.1]# make test

…/zlib-1.2.1]# make install

…/zlib-1.2.1]# cp zutil.h /usr/local/include

…/zlib-1.2.1]# cp zutil.c /usr/local/include

/usr/local/lib should now contain…

libz.a

libz.so -> libz.so.1.2.1

libz.so.1 -> libz.so.1.2.1

libz.so.1.2.1

/usr/local/include should now contain…

zconf.h

zlib.h

zutil.h

[Optional] Instructions for non-standard placement of zlib

Create the directory that will contain zlib

…/zlib-1.2.1]# mkdir /usr/local/zlib

Follow the given procedure above, except

…/zlib-1.2.1]# ./configure –prefix=/usr/local/zlib

Update the Run-Time Linker

/etc/ld.so. will need to be updated with the new zlib shared lib: libz.so.1.2.1

For standard zlib installation…

Add /usr/local/lib to /etc/ld.so.conf, if specified path is not present

/etc]# ldconfig

If zlib was installed with a prefix…

Add /usr/local/zlib/lib to /etc/ld.so.conf

/etc]# ldconfig

安装

Download

Home : http://www..org/

Package(source) : -0.9.7d.tar.gz

Our Configuration

install to : /usr/local/

module types : dynamically and staticly loaded modules, *.so *.a

Build Instructions

…/-0.9.7d]# ./config

–prefix=/usr/local/

[default location]

shared

[in addition to the usual static libraries, create shared libraries]

zlib-dynamic

[like "zlib", but has load the zlib library dynamically when needed]

…/-0.9.7d]# ./config -t

[display guess on system made by ./config]

…/-0.9.7d]# make

…/-0.9.7d]# make test

…/-0.9.7d]# make install

Update the Run-time Linker

ld.so. will need to be updated with the location of the new shared libs: libcrypto.so.0.9.7 and libssl.so.0.9.7

Sometimes it is sufficient to just add these two files to /lib, but we recommend you follow these instructions instead.

Edit /etc/ld.so.conf

Add /usr/local//lib to the bottom.

…]# ldconfig

Update the PATH

Edit /root/.bash_profile

Add /usr/local//bin to the PATH variable.

Re-login

Testing

…]# version

Should display 0.9.7d 17 Mar 2004

If an older version is shown, your system contains a previously installed .

Repeate the steps in Update the PATH, except place the specified location at the start of the PATH variable.

[the older , on most systems, is located under /usr/bin]

[the command 'which ' should display the path of the that your system is using]

/usr/local//bin]# ./ version should display the correct version.

但是我最后没有得到想要的结果,系统原来的还是没能卸载掉,我该怎么做那?我继续搜索资料,哈,幸运的我找了,在一个国内论坛上是这么说的

cd /usr/local//lib

ln -s libcrypto.so.0.9.7 libcrypto.so.2

ln -s libssl.so.0.9.7 libssl.so.2

//最后要刷新系统的动态连接库配置

echo /usr/local//lib >> /etc/ld.so.conf

ldconfig -v

这下子我豁然开朗,原来依赖的那2个文件是个软链接啊,我把它修改为我现在真正的库文件不是就行了吗?于是一顿忙碌后,我终于执行了 rpm -e -nodeps ,然后重新启动系统,一路运行下去,全是绿灯。一时间感觉自己好幸福啊

为了这个问题我查了国内的几个比较大的/网站都没找到资料,不过从这里http://bbs.netbuddy.org//737.还是找到了(国外的E文大概意思能看懂,但是查找起来还是没找到,也不知道这方面好点的网站),

OpenSSL相关命令(for Linux)详细介绍

Friday, September 21st, 2007

转至: http://.ixpub.net/8400463

加密算法:

对称加密算法:

DES、IDEA、RC2、RC4、AES、Skipjack ……

非对称加密算法:

RSA、DSA、DiffieHellman、PKCS、PGP ……

单向的HASH算法属于报文摘要算法,虽然有些也出自库。
命令操作:

1、生成普通私钥:
[weigw@TEST src]$ genrsa -out privatekey.key 1024

Generating RSA private key, 1024 bit long modulus ….++++++ …….++++++ e is 65537 (0×10001)

2、生成带加密口令的密钥:

[weigw@TEST src]$ genrsa -des3 -out privatekey.key 1024

Generating RSA private key, 1024 bit long modulus …………++++++ …………………++++++ e is 65537 (0×10001) Enter pass phrase for privatekey.key: Verifying - Enter pass phrase for privatekey.key:

在生成带加密口令的密钥时需要自己去输入密码。对于为密钥加密现在提供了一下几种算法:
-des encrypt the generated key with DES in cbc mode

-des3 encrypt the generated key with DES in ede cbc mode (168 bit key)

-aes128, -aes192, -aes256 encrypt PEM output with cbc aes

去除密钥的口令:
[weigw@TEST src]$ rsa -in privatekey.key -out

privatekey.key Enter pass phrase for privatekey.key: writing RSA key

通过生成的私钥去生成证书:

[weigw@TEST src]$ req -new -x509 -key privatekey.key -out cacert.crt -days 1095

You are about to be asked to enter information that will be incorporated into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank.

—–

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:beijing

Locality Name (eg, city) [Newbury]:beijing

Organization Name (eg, company) [My Company Ltd]:wondersoft

Organizational Unit Name (eg, section) []:develop

Common Name (eg, your name or your ’s hostname) []:WeiGW

Email Address []:weigongwan@sina.com

在生成证书的时候需要按照提示输入一些个人信息。

通过私钥生成公钥:

[weigw@TEST src]$ rsa -in privatekey.key -pubout -out pubkey.key writing RSA key

格式转换:(证书、私钥、公钥)(PEM <—–>DER)

[weigw@TEST src]$ x509 -in cacert.crt -inform. PEM -out cacert.der -outform. DER

[weigw@TEST src]$

[weigw@TEST src]$ rsa -in privatekey.key -inform. PEM -out privatekey.der -outform. DER

writing RSA key

[weigw@TEST src]$ rsa -pubin -in pubkey.key -inform. PEM -pubout -out pubkey.der -outform. DER

writing RSA key

从DER格式转换成PEM格式一样,就是把inform的格式改成DERoutform的格式改成PEM即可。

下面是一个服务器和客户端认证的证书、私钥生成方法:(.crt、client.crt、ca.crt)

第一步: 生成私钥

[weigw@TEST bin]$ genrsa -out .key 1024

Generating RSA private key, 1024 bit long modulus .++++++ ..
………++++++ e is 65537 (0×10001)

[weigw@TEST bin]$ genrsa -out client.key 1024

Generating RSA private key, 1024 bit long modulus …++++++ ……
……….++++++ e is 65537 (0×10001)

[weigw@TEST bin]$ genrsa -out ca.key 1024

Generating RSA private key, 1024 bit long modulus …….
..++++++ ………++++++ e is 65537 (0×10001)

[weigw@TEST bin]$

第三步: 申请证书(为请求文件签名)

[weigw@TEST bin]$ ca -in .csr -out .crt -cert ca.crt -keyfile ca.key

[weigw@TEST bin]$ ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

如果在这步出现错误信息:

[weigw@TEST bin]$ ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

Using configuration from /usr/share//.cnf I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory

[weigw@TEST bin]$

自己手动创建一个CA目录结构:
[weigw@TEST bin]$ mkdir ./demoCA
[weigw@TEST bin]$ mkdir demoCA/newcerts
创建个空文件:
[weigw@TEST bin]$ vi demoCA/index.txt
向文件中写入01:
[weigw@TEST bin]$ vi demoCA/serial

合并证书文件(crt)和私钥文件(key):

[weigw@TEST bin]$ cat client.crt client.key > client.pem [weigw@TEST bin]$ cat .crt .key > .pem

合并成pfx证书:

[weigw@TEST bin]$ pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

Enter Export Password:

Verifying - Enter Export Password:

[weigw@TEST bin]$ pkcs12 -export -clcerts -in .crt -inkey .key -out .p12
Enter Export Password:
Verifying - Enter Export Password:

文本化证书:

[weigw@TEST bin]$ pkcs12 -in client.p12 -out client.txt Enter Import Password:

MAC verified OK

Enter PEM pass phrase: Verifying - Enter PEM pass phrase:

[weigw@TEST bin]$ pkcs12 -in .p12 -out .txt

Enter Import Password:

MAC verified OK

Enter PEM pass phrase: Verifying - Enter PEM pass phrase:

屏幕模式显式:(证书、私钥、公钥)

[weigw@TEST bin]$ x509 -in client.crt -noout -text -modulus

[weigw@TEST bin]$ rsa -in .key -noout -text -modulus

[weigw@TEST bin]$ rsa -in .pub -noout -text -modulus

得到DH:

[weigw@TEST bin]$ dhparam -out dh1024.pem 1024

被误传了几千年的七句话

Monday, July 16th, 2007

在中国崇尚权威的文化氛围中,名人名言占的地位是很重的,很多名家说的话,往往被人当成指导自己人生观世界观的不二准则。但几千年流传下来的名言中,也有一些话被人刻意或无知地曲解,背离了话语者本身的意旨与初衷,迷惑了天下万千受众……

1、以德报怨

原句:“或曰:‘以德报怨,何如?’子曰:“何以报德?以直报怨,以德报德” ——《论语 宪问》

万万没想到原来在孔子这句“以德报怨”的后边还跟着另外一段话,什么话呢?子曰:“以德报怨,何以报德?以直报怨,以德报德!”看完以后,幡然醒悟,原来我们都被某个断章取义的孔子FANS给玩了一把!

当时的真实情况是怎么样的呢?孔子的一个弟子问他说:师傅,别人打我了,我不打他,我反而要对他好,用我的道德和教养羞死他,让他悔悟,好不好?孔子就说了,“你以德报怨,那‘何以报德’,别人以德来待你的时候,你才需要以德来回报别人;可是现在别人打了你,你就应该‘以直报怨’,拿起板砖飞他!”

歪曲程度:8

反面影响:9

2、民可使由之,不可使知之

原句:“子曰:兴于诗,立于礼,成于乐。子曰:民可使由之,不可使知之。”——《论语·秦伯》

我们结合上下文的语境,很容易就能得出这句话正确的分句方法:“子曰:兴于诗,立于礼,成于乐。民可,使由之,不可,使知之。”

孔子的整句话就是说,诗、礼、乐这三样东西是教育民众的基础,一定要抓好。如果人民掌握了诗、礼、乐,好!让他们自由发挥;如果人民还玩不来这些东西,我们就要去教化他们,让他们知道和明白这些东西。这才是“有教无类”的大教育家孔老先生的本意。

歪曲程度:7

反面影响:9

3、无毒不丈夫

原句:量小非君子,无度不丈夫。——民间谚语联对

这句来自民间的谚语本来应该是“量小非君子,无度不丈夫”,这本来是个很好的句子,里边充分运用了对仗。显示出了一份阳刚有力的气魄,一个胸怀坦荡的男人形象就跃然于纸上,可惜劳动人民口耳相传的这一句话,到了朝廷上那些所谓的学高八斗的“君子”嘴里就变了个味。为什么呢?

这要从古时候文人的习性说起,在这副对联式的谚语里,“度”为仄声字,念着别扭,很容易读为平声字“毒”。那些对音律美感要求甚高的学者们某天吃饱了没事儿干,便发挥他们的专长自做主张,把这句改为“无毒不丈夫”了。

歪曲程度:9

反面影响:5

4 唯女子与小人难养也

原句:唯女子与小人难养也,近之则不孙,远之则怨。——《论语·阳货》

在《史记·孔子世家》里,提到了孔子之前的卫国之行,孔子“居卫月余,灵公与夫人同车,宦者雍渠参乘出,使孔子为次乘,招摇市过之。孔子曰:‘吾未见好德如好色者也。’于是丑之,去卫。”

我来大致翻译一下这段话,当代全国教育劳模孔老先生受卫国国君的邀请,来到了卫国参观学习休养。但在这期间,孔老先生突然发现自己被涮了,人家根本是拿他的身份来炫耀自己抬高自己而已,并不是真正支持他来这教化卫国民众的。尤其是那个卫灵公的老婆,为了抬高自己的身望,公开炫耀,贬低了孔子。

孔老先生很郁闷,收拾行李就离开了卫国,离开之后,心情平复了,想起卫国公老婆那种仗着得宠、骄横跋扈乱政扰民的烂事儿,就发了感慨:“唯女子与小人难养也!近之则不孙,远之则怨。”

看看孔子的卫国之行,一切都明白了,他这话断不是发神经突然开骂起包括自己老妈在内的所有女人,而是有一个特指的对象,这个对象,就是卫灵公那位老婆南子等人。

歪曲程度:6

反面影响:9

5、吾生也有涯,而知也无涯

原句:吾生也有涯,而知也无涯,以有涯随无涯,殆已 ——————《庄子·养生主》

庄子的这句话其实是这样说的,“吾生也有涯,而知也无涯,以有涯随无涯,殆已。”我庄子的生命是有限的,但我面对的知识是无限的,要我以本来有限的生命,去追求那种永远看不到边的尽头,这样会搞死自己的”

歪曲程度:8

反面影响:3

6、相濡以沫

原句:相濡以沫,不如相忘于江湖——《庄子·大宗师》

相濡以沫,多美的情景,虽然这并不是爱情最理想的状态。当年街道居委会的老大妈就算再没文化,这句话肯定是会说的。只是我们都没曾想到,后边还跟了一句“还可以相忘于江湖”

7:天地不仁,以万物为刍狗

原句:天地不仁,以万物为刍狗,圣人不仁,以百姓为刍狗——《道德经》

其实这句话的真正意思是说,天地不情感用事,对万物一视同仁,圣人不情感用事,对百姓一视同仁。你们推崇的这句话,它的原意中根本没有你们所需要的压迫与歧视,却恰恰相反,它说的是一个公平的道理:我们所有的人,所有的众生在天地的眼中,都是平等的。

转自:http://hi.baidu.com/2010/blog/item/7c070cf30ab91bc90a46e01b.html

UML

Thursday, July 5th, 2007

1.建模
1.1 为什么要建模
建立大厦和建立狗窝的区别是建设狗窝不需要设计。要生产合格的软件就要有一套关于体系结构、过程和工具的规范。
建模的定义:建模是对现实的简化。
建模的目标:
1)模型帮助我们按照实际情况或按照我们所需要的样式对系统进行可视化。
2)模型允许我们详细说明系统的结构和行为。
3)模型给出一个知道我们构造系统的模板。
4)模型对我们的决策进行文档化。
建模就是把复杂的系统变成小的系统,采用“各个击破”的原则逐一解决。
1.2 建模原理
1)选择创建什么模型很重要,模型要反映你难于处理的开发问题。
2)模型要在不同的精度级别上来表示。你可以根据观察的角色和观察的原因来选择精度。
3)建造模型要和现实相连。
4)重要的系统需要用一组独立的模型去处理。在面向对象的软件体系中,为了理解系统的体系结构,你需要几个互补和连锁的视图:用例图、设计视图、进程视图、实现视图和实施视图。
1.3 面向对象的建模
面向算法的建模在需求发生变化或者系统增长后就变得难以维护。
面向对象的建模把对象和类作为其主要构造块。例如,在三层结构中,我们可以在用户接口层、中间层和数据库层中找到你想要的对象。
2 介绍
2.1 概述
可以对软件密集型系统的制品进行可视化、详述、构造和文档化。最好把它用于以用况(用例)为驱动、以体系结构为中心、跌代及增量的过程中。
是一种语言,它是一种可视化的语言,它是一组图形符号。它可用于详细描述。它又是一种构造语言,可以直接生成代码。用Rational XDE就可以实现从到C#,或者从C#到的双向工程。
2.2 的概念模型
学习建模的三个要素:的基本构造块、这些构造块放在一起的规则、一些运用于整个的公共机制。
中由一些四种事物
1)结构事物 --- 类、接口、协作(它是一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(如COM+和 Bean)、节点。
2)行为事物 --- 交互、状态机(描述了一个对象或者一个交互在生命期内响应事件所经历的状态序列)。
3)分组事物 --- 包
4)注释事物 --- 注解
中的四种关系
1)依赖 --- 两个事物间的语义关系
2)关联 --- 是一种结构关系,如聚合
3)泛化 --- 一般/特殊关系
4)实现 --- 用在两种地方:接口和实现他们之间的类和构件之间;用例和实现他们的协作之间。
中的图
1)类图 --- 系统的静态状态图,包含主动类的类图给除系统的静态进程视图。
2)对象图
3)用例图
4)顺序图
5)协作图
6)状态图
7)活动图 --- 强调对象间的控制流程
8)构件图
9)实施图
2.3 体系结构
我们用5个互联的视图来描述软件密集型系统的体系结构:
1)系统的用例图
2)系统的设计视图 --- 静态方面由类图和对象图描述,动态方面由交互图、状态图和活动图描述。
3)系统的进程视图 --- 包含了形成系统并发和同步机制的线程和进程。
4)系统的实现视图 --- 主要针对系统发布的配置管理。
5)系统的实施视图
2.4 软件开发生命周期
用况驱动
以体系结构为中心
跌代过程 --- 涉及到一连串可执行发布的管理。
软件开发生命周期的四个阶段:
初始
细化
构造
移交

3 Hello World
4 类
4.3.1 对系统的词汇建模
需要做如下工作:
1)识别用户用于描述问题或解决问题的事物。
2)对于每个抽象,识别一个职责集。
3)提供为实现每个类的职责所需的属性和操作。
4.3.2 对系统中职责的分布建模
抽象出来的类要适中,不要过大过小。
需要如下工作:
1) 识别一组为了完成某些行为而紧密协同工作的类。
2) 对上面的每一个类识别出一组职责。
3) 从整体上观察这些类,过大的分解,过小的合并。
4) 考虑相映的协作方式,重新分配职责。
5 关系
面向对象建模中三种最重要的关系:
依赖 --- 使用关系
泛化 --- 一般/特殊关系
关联 --- 结构关系
当你开始建模是,特别是解决这些对象的动态协作时,你还会遇到两种其它的关系:链(可能发送消息的对象间的实例)和转换(状态机中不同状态的连接)
对简单依赖建模 ---(如一个类作为另一个类的参数) 依赖从操作的类指向当作参数的类。
对单继承建模
对结构关系建模
6 公共机制
四个公共机制可以使简化:详述、修饰、公共划分和扩展
构造型、标记值和约束使提供的用以增加新的构造块、创建新的特性以及描述新的语义的机制。
7 图
有5种最重要的互补视图:用例视图、设计视图、进程视图、实现视图和实施视图
每一种视图包含结构建模(静态)和行为建模(动态)
建图的两种方法:正向工程和逆向工程
一些术语:
系统:由子系统组成; 子系统:由元素组成; 模型:对现实的简化; 视图:对系统模型的组织和结构的投影,注重于系统的一个方面。
结构图:类图、对象图、构件图、实施图。
行为图: 用况图、顺序图、协作图、状态图、活动图。
顺序图和协作图统称交互图。顺序图强调消息的时间次序,协作图强调收发消息的对象的结构组织。
活动图强调对象之间的控制流。
如何选择视图来建模?
1)视图能够表达系统的体系结构,能够暴露项目的技术风险。
2)决定用哪些制品来捕获视图的基本细节。
3)作为你的过程策略的一部分,决定把那种视图至于某种形式或者半形式的控制之下。
4)保留废弃的视图。
两种系统建模的方法:
1)针对同一模型,用不同层次上的细节描述图。
2)在不同的抽象层次上,从一个模型跟踪到另一个模型的方法建模。
8 类图
类图包括如下内容:

接口
协作
依赖、泛化和关联关系。
对系统的静态设计视图建模时使用类图的3种方式:
1)对系统的词汇建模
2)对简单协作建模 --- 协作提供的一些合作行为强于其所有元素行为之和。
3)对逻辑数据库模式建模
9 高级类
中更一般的构造块是类元,类元包括:类、接口、数据类型、信号、构件、节点、用况和子系统。他是描述结构特性和行为特性的机制。

转自:http://.csdn.net/binjuny/archive/2007/07/05/1679193.aspx

PHP6 features

Tuesday, July 3rd, 2007

去年在巴黎举行的开发者大会中,PHP6开发的消息开始流传开来,于大会讨论的PHP6,将有很大幅度的变化,但这只是草案阶段,并不代表所有会议的机率都会随着PHP6的发布而包含记录中所有的变更也就是说,在发布PHP6之前,还是会有异动的情形,但是可以确定的是下面所列的数项变化,将会随着PHP6一同面世(当然不是百分百乐,)赶快来看看这些新特性吧

1.支持Unicode
支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的。另外一点,也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数。

2.Register Globals 将被移除
这是一个重要的决定,说多新进的开发者会觉得Register Globals满方便的,但是却忽略了Register Globals会带来程序上安全性的隐患,大多数的主机上此项功能是关闭的,印象中从PHP4.3.x版开始时,此项默认设置值即是关闭状态,PHP6正式移除Register Globals也代表着如果程序是由PHP3时代的产物,将完全无法使用,除了改写一途外,别无他法。相信现在的世界里,仍使用PHP3时代所产生的程序应该是少之又少。

3.Magic Quotes 将消失
Magic Quotes主要是自动转义需要转义的字符,此项功能移除叶符合大多数开发者的心声。

4.Safe Mode 取消
老实说,这个模式不知道哪里不好,取消就取消吧,反正也用不到

5.’var’ 别名为 ‘public’
在类中的var声明变成public的别名,相信是为了兼容PHP5而作的决定,PHP6现在也可以称作为OO语言了。

6.通过引用返回将出错
现在透过引用返回编译器将会报错 例如$a =& new b()、function &c(),OO语言默认就是引用,所以不需要再使用&了。

7.zend.ze1 compatbility mode 将被移去
Zend.ze1相容模式将被移去,PHP5是为兼容旧有PHP4,所以在.ini中可选择是否开启相容模式,原因在于PHP5使用的是第二代解析引擎,但是相容模式并不是百分之百能解析PHP4语法,所以旧时代的产物,移除。

8.Freetype 1 and GD 1 support 将不见
这两个是很久的Libs,所以不再支持,GD1早已被现在的GD2取代了。

9.dl() 被移到 SAPI 中
dl()主要是让设计师加载extension Libs,现在被移到 SAPI 中

10.Register Long Array 去除
从PHP5起默认是关闭,再PHP6中正式移除。

11.一些Extension的变更
例如 XMLReader 和 XMLWriter 将不再是以Extension的方式出现,他们将被移入到的核心之中,并且默认是开启,ereg extension将被放入PECL,代表着它将被移出核心,这也是为了让路给新的正则表达式extension,此外,Fileinfo extension 也将被导入的核心之中。

12.APC将被导入核心
这是一个提高性能的功能,现在它将被放入核心中,并且可以选择是否启用APC

13.告别ASP风格的起始标签
原来是为了取悦ASP开发者转向使用,现今已经不再需要这种做法了,

最后,别期望PHP6的性能可以全面超过PHP5,有可能的是PHP6的执行效率会比PHP5还要来的慢的,但是可以预期的是,开发小组将会努力的完善PHP5,超越PHP5。

那么,对PHP6有兴趣的朋友现在可以到官方网站上下载,试试这些功能是否真的已经
在PHP6中体现出来了,下载地址http://snaps..net/