您的位置 首页 > 电脑维修

蓝屏代码的由来_蓝屏代码有什么用

1.我是一个电脑小白,请问XP,win7,8,10有什么区别?

2.哪位知道有关C++的好书,就推荐给我吧!!!

3.什么是超频

4.除WINDOWS之外还有什么操作系统

5.婚纱的由来

6.什么是木马?

7.求C++ 网络编程最好的书籍 谢谢了

蓝屏代码的由来_蓝屏代码有什么用

一下是IBM T22的详细配置表,核对一下,你的笔记本到底是T22还是T21的改装品!

笔记本类型 光软互换

CPU类型 Intel Pentium III

CPU频率 900MHz

支持SPEED STEP YES

内存类型 SDRAM

标准内存容量 128MB

最大内存容量 512MB

I/O接口 RJ-45,RJ-11,串口,并口,键盘/鼠标,外接显示器,USB,输出S端口,耳机端口,音频输入和麦克风端口,红外端口,UltraPort端口

PCMCIA槽数 2个II型,1个III型

显示芯片 SGRAM(Sage IX8+)

显存容量 8MB

硬盘容量 20GB

光驱类型 DVD-ROM

光驱速度 8倍速

显示屏型号 TFT XGA

显示屏尺寸 14.1英寸

显示屏分辨率 X 768

触摸板/指点棒 指点棒

MODEM 56K

电池类型 10/100M

电池使用时间 3.2小时

机身尺寸 300 X 250 X 33mm

机器重量 2.4Kg

预装操作系统 Windows 98 SE

随机软件 Access ThinkPad,ConfigSafe,Lotus? SmartSuite? Millennium ,Mediamatics DVD(仅限DVD 型号) ,PC-Doctor,ThinkPad Assistant,ThinkPad Utilities。

IBM本本全攻略!

《转贴》

IBM 笔记本 常用连接

本站原创:

大陆ThinkPad专门网:://.thinkpad.cn/

台湾ibm ThinkPad非官方情报战:.ibmuser.tw

ibm s系列软件下载:

://-1.ibm/support/dls ... =D400&loc=zh_CN

转贴

ThinkPad 历史机型全记录!

IBM ThinkPad 1992 to 2001 -withdrawn (twbook)

ftp://ftp.pc.ibm/pcicrse/psref/twbook.pdf

A30 A30P A31 A31P T23 T30 X22 X23 X24 TransNote

ftp://ftp.pc.ibm/pcicrse/psref/tabook.pdf

ATX 系列中的停产机型

ftp://ftp.pc.ibm/pcicrse/psref/tawbook.pdf

i 系列

ftp://ftp.pc.ibm/pcicrse/psref/tibook.pdf

ftp://ftp.pc.ibm/pcicrse/psref/tiwbook.pdf

R系列

ftp://ftp.pc.ibm/pcicrse/psref/trbook.pdf

ftp://ftp.pc.ibm/pcicrse/psref/trwbook.pdf

ThinkPad 名字的由来

://-900.ibm/cn/pc/tpcolumn/history.shtml#

TP General - Hardware Maintenance Manual matrix (HMM)

://-1.ibm/support/man ... &doc=MIGR-39298

TP硬件维护手册

内容包括各种机型(不包括日文专用机型如 S30 TP535)的配置、拆解、故障检测、出错代码、系统各零件FRU序列号码。

Service FRU parts list index ATRX系列

://.pc.ibm/qtechinfo/MIGR-44687.html

TP General - How to access the BIOS

如何进入TP的bios

://.pc.ibm/qtechinfo/YAST-3JWKJX.html

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ThinkPad - Software and device driver file matrices

TP工具软件及设备驱动列表(不包括日文专用机型如 S30 TP535)

://.pc.ibm/qtechinfo/TPAD-MATRIX.html

IBM中文网站上的英文工具软件及设备驱动列表。

://-900.ibm/cn/epc/su ... rix?categoryid=2136

TP General - BIOS File Matrix

://-1.ibm/support/man ... amp;doc=BMOE-3VY

TP bios升级程序列表(不包括日文专用机型如 S30 TP535)。

ThinkPad Software Installer for TP A3*, R3*, S31, T23, X22, X23

驱动程序自动升级管理器

://.pc.ibm/qtechinfo/MIGR-4ZKMCT.html

Download Access Support and fix common computer problems quickly

://.pc.ibm/qtechinfo/MIGR-4WLSC7.html

支持600系列 T系列 A3x R3x X22、23、24 可以快速诊断解决TP的故障

对于不支持的型号仍然可以用下面的链接下载,据说部分功能可以应用于570系列

ftp://ftp.pc.ibm/pub/pccbbs/ ... accesssupporttp.exe

日文驱动在这里

://-6.ibm/jp/domino05 ... enForm&ThinkPad

需要在第二项中选择机器型号

选择擦作系统

选择系统部件(如pcmcia)

点击检索。

The ACP modem (Mwe) for Linux is a WinModem

This driver provides support for the IBM ThinkPad 600, 600E, and 770x

://oss.software.ibm/acpmodem/

ThinkPad - Windows 2000 Support Guide

TP windows2000 升级向导。

://.pc.ibm/qtechinfo/MIGR-4EMQAK.html

包括240、380、390、560、570、600、760、765、770、i1400、i1500

系列旧机型升级到windows2000的详细指导。

Windows XP setup guide for IBM ThinkPad systems

TP windowsXP 升级向导

://.pc.ibm/qtechinfo/MIGR-39961.html

包括240、390、570、600、770、A、T、X、I series、TransNote

系列旧机型升级到windowsXP的详细指导。

ATRX系列操作系统安装升级指南。

://.pc.ibm/qtechinfo/MIGR-44613.html

IBM Rapid Restore PC

://.pc.ibm/qtechinfo/MIGR-4Q2QAK.html

Linux support for IBM Personal Systems

://.pc.ibm/qtechinfo/MIGR-48NT8D.html

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Warranty lookup

国内联保查询网址

://-900.ibm/cn/epc/support/esupport_warranty.jsp

国际联保查询

://.pc.ibm/support?la ... &up=unknownuser

快速查询产品的出货配置,利用关键字十分方便。

://.ibm/ibmlink/ussman&parms=

Troubleshooting index

://.pc.ibm/qtechinfo/MIGR-4YRRG6.html

TP硬件故障查找解决办法。

关于LCD坏点的声明。

://.pc.ibm/qtechinfo/MIGR-4U9P53.html

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

当前IBM硬盘资料

://.storage.ibm/hdd/support/table.htm

硬盘工具下载

://.storage.ibm/hdd/support/download.htm

Drive Fitness Test 8D

://.storage.ibm/hdd/support/download.htm#DFT

可以用来检测硬盘坏道 :})

Disk Manager

://.storage.ibm/hdd/support/download.htm#diskmgr2k

DM 分区格式化工具-- 推荐使用

R31日立硬盘噪音的说明

://.pc.ibm/qtechinfo/MIGR-43350.html

TP R31 - Hard Disk Drive Firmware Update Utility Diskette

://.pc.ibm/qtechinfo/MIGR-43349.html

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我是一个电脑小白,请问XP,win7,8,10有什么区别?

描述:

“武汉男生”,俗称“熊猫烧香”,这是一个感染型的蠕虫,它能感染系统中exe,com,pif,src,html,asp等文件,它还能中止大量的反软件进程并且会删除扩展名为gho的文件,该文件是一系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。

名称:Worm.WhBoy.h

中文名:熊猫烧香(武汉男生)

类型:蠕虫

影响平台:Win 9x/ME,Win 2000/NT,Win XP,Win 2003

1:拷贝文件

运行后,会把自己拷贝到C:\WINDOWS\System32\Drivers\spoclsv.exe

2:添加注册表自启动

会添加自启动项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe

3:行为

a:每隔1秒寻找桌面窗口,并关闭窗口标题中含有以下字符的程序:

QQK、QQAV、防火墙、进程、VirusScan、网镖、杀毒、毒霸、瑞星、江民、黄山IE、超级兔子、优化大师、木马克星、木马清道夫、QQ、注册表编辑器、系统配置实用程序、卡巴斯基反、Symantec AntiVirus、Duba、esteem proces、绿鹰PC、密码防盗、噬菌体、木马查找器、System Safety Monitor、Wred gift Killer、Winsock Expert、游戏木马检测大师、msctls_statusbar32、pjf(ustc)、IceSword

并使用的键盘映射的方法关闭安全软件IceSword

添加注册表使自己自启动 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe

并中止系统中以下的进程:

Mcshield.exe、VsTskMgr.exe、naPrdMgr.exe、UpdaterUI.exe、TBMon.exe、scan32.exe、Rmond.exe、CCenter.exe、RTask.exe、R.exe、Rmon.exe、RmonD.exe、RStub.exe、KVXP.kxp、kvMonXP.kxp、KVCenter.kxp、KVSrvXP.exe、KRegEx.exe、UIHost.exe、TrojDie.kxp、FrogAgent.exe、Logo1_.exe、Logo_1.exe、Rundl132.exe

b:每隔18秒点击作者指定的网页,并用命令行检查系统中是否存在共享,共存在的话就运行net share命令关闭admin$共享

c:每隔10秒下载作者指定的文件,并用命令行检查系统中是否存在共享,共存在的话就运行net share命令关闭admin$共享

d:每隔6秒删除安全软件在注册表中的键值

并修改以下值不显示隐藏文件 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL CheckedValue -> 0x00

删除以下服务:

napsvc、wscsvc、KPfwSvc、SNDSrvc、ccProxy、ccEvtMgr、ccSetMgr、SPBBCSvc、Symantec Core LC、NPFMntor MskService、FireSvc

e:感染文件

会感染扩展名为exe,pif,com,src的文件,把自己附加到文件的头部,并在扩展名为htm,html, asp,php,jsp,aspx的文件中添加一网址,用户一但打开了该文件,IE就会不断的在后台点击写入的网址,达到增加点击量的目的,但不会感染以下文件夹名中的文件:

WINDOW、Winnt、System Volume Information、Recycled、Windows NT、WindowsUpdate、Windows Media Player、Outlook Express、Internet Explorer、NetMeeting、Common Files、ComPlus Applications、Messenger、InstallShield Installation Information、MSN、Microsoft Frontpage、Movie Maker、MSN Gamin Zone

g:删除文件

会删除扩展名为gho的文件,该文件是一系统备份工具GHOST的备份文件使用户的系统备份文件丢失。

.到百度点击更多-杀毒-熊猫烧香专杀有几个免费的.如果不行只能重装系统,感染多了,好多文件被损坏

哪位知道有关C++的好书,就推荐给我吧!!!

题主自谦小白,我就简单说一下这四款操作系统。

1、Windows XP:微软 历史 上最好的系统,服役长达12年7个月,于2014年官方宣布停止提供技术支持和漏洞补丁更新。以为她已经被淘汰了?No。在国内依然使用Windows xp的群体主要分布在医院、老牌国企或者机构、落后地区网吧和以打印店为首的个体经营户,当然还有一大批分散的windows xp忠实粉和很大一部分工控产品。国外我了解的,美军航母上有的电脑还在运行XP。

为啥不退出 历史 舞台?就是因为相对于之前的winows 98,非常稳定。

2、win7:微软在win7之前有个vista版本,不是很成功,所以win7就气势汹汹的登场了,Win7可被誉为下一个WinXP式的。安装快,问题少,界面漂亮,基本没蓝屏,实用功能不详细写了。

3、win8:不知微软是不是在搞一种营销氛围,产品线也是好坏交替进行,win8是一个失败的产品,比vista还失败,win8的命运跟Vista一样,很快退出 历史 舞台,微软已经不提供支持。

对于win8,我们知道她曾经存在过就可以了。

4、win10:因为有了win8的严重失败,win10开始霸气登场,各方面表现非常抢眼,世界范围内,win10是市场占有率遥遥领先。win10一定会像windows xp和win7一样成为经典。

总结以下:win7和win10是当前主流,win7适合电脑老手,win10为新用户全新打造。win8湮灭于 历史 ,win xp是经典永流传。

如果是以前从未接触过电脑的朋友,真心建议直接使用win10,这样就不会有使用过xp,win7再使用win10带来的不适感。

对于一个新手来说,win10是最佳选择。

XP,win7,8,10有什么区别?

首先,这四个操作系统是美国 微软 公司开发的操作系统,属于Microsoft Windows(中文:视窗操作系统)家族。该系统由C,C++,汇编语言编写,源码模式专业软件+共享源代码,初始版本Windows 1.0(1986年11月20日发布),最新测试版本Windows 10.0.19546(2020年1月17日)。

其次, 占有率 四个版本的操作系统,Windows 10在市场占有率最高,Windows 7 次之,Windows XP虽然最老,但仍占1.5%左右的,大于Windows 8的0.63%,Windows 8.1也有5%左右。以下是2019年7月 Net Applications和 StatCounter的数据:

RTM版本于2001年8月24日发布;零售版本于2001年10月25日上市。其名字“XP”的意思是英文中的“体验”(e xp erience)。2011年9月前,Windows XP是世界上使用人数最多的操作系统,市场占有率高达42%;在2007年1月,Windows XP的市场占有率达 历史 最高,超过76%。2013年12月30日,微软宣布,99天后,也就是2014年4月8日,终止对Windows XP的支持服务,Windows XP因此正式退役。

在2006年11月8日,Windows Vista开发完成并正式进入批量生产。在2007年1月30日,Windows Vista正式对普通用户出售,同时也可以从微软的网站下载。Windows Vista距离上一版本的操作系统Windows XP已有超过五年的时间,这是Windows 历史 上间隔时间最久的一次发布。Windows Vista新增上百种功能;其中较特别的是新版的图形用户界面和称为“Windows Aero”的全新界面风格。

Windows Vista主流支持于2012年4月10日到期,扩展支持于2017年4月11日到期。

微软时任首席执行官斯蒂夫鲍尔默曾经在2008年10月,宣称Windows 7是Windows Vista的“改良版”。Windows 7于2009年7月22日发放给组装机生产商。2011年10月,Windows 7已售出4.5亿套,以40.17%市场占有率超越Windows XP的38.72%。2015年1月21日,微软宣布,Windows 7 SP1的用户可在第一年内免费升级至Windows 10。但是,10天后便改口指企业版Windows的用户仍需另外付费才能升级。2015年6月1日,微软正式宣布于7月29日推出Windows 10,并随Windows Update提醒符合升级用户如何预约获取Windows 10。Windows 7主流支持已于2015年1月13日到期,扩展支持已于2020年1月14日到期。但企业和机构客户可以选择付费延迟到2023年。

微软公司于2012年推出的电脑操作系统,用与Windows Phone 8相同的NT内核。该系统除了具备微软适用于笔记本电脑和台式机平台的传统窗口系统显示外,还特别强化适用于触屏的平板电脑设计,使用了新的 界面风格Metro ,新系统加入可透过官方 网上商店Windows Store 购买软件等诸多新特性。

Windows 8于2012年8月1日向OEM厂商提供RTM版本;2012年9月1日起,企业用户可以购买大量授权版本的Windows 8;2012年10月25日,Windows 8零售版本正式上市。

为推动Windows 8的发行且在平板电脑市场争夺一定的地位,微软还于2012年10月推出自家的 第一款平板电脑Microsoft Surface 。

微软公司于2013年10月17日发布Windows 8的内核升级版本Windows 8.1,加入大量新功能,供Windows 8用户免费透过商店更新。

由于界面的改变太大,Windows 8难以被用户适应,并受到批评 。

Windows 8后续系统为Windows 8.1 ,已于2013年10月17日发行。

Windows 8.1(开发代号Windows Blue)是 微软Windows 8的升级版本 ,正式版于2013年10月17日公开发行。

Windows 8.1后续系统为Windows 10 。Windows 8.1主流支援已于2018年1月9日到期,延伸支援于2023年1月10日到期。

Windows 10是一个由微软开发的个人电脑操作系统—— Windows家族里Windows NT系列操作系统的最新版 ,为Windows 8.1和Windows Phone 8.1的后继者,开发代号为Threshold和Redstone。设计目标是统一包括个人电脑、平板电脑、智能手机、嵌入式系统、Xbox One、Surface Hub和HoloLens等等,整个Windows产品系列的操作系统。它们共享一个通用的应用程序架构和Windows商店的生态系统。

Windows 10引入微软所描述的“通用Windows平台”(UWP),并把Modern UI风格的应用程序扩充。微软还为Windows 10设计一个新的开始菜单,其中包含Windows 7的传统开始菜单元素与Windows 8/8.1的磁贴。Windows 10还引入一个虚拟桌面系统、一个称为任务视图的任务切换器、Microsoft Edge浏览器、支持指纹和面部、虹膜识别登录、企业环境的新安全功能,以及DirectX 12和WDDM 2.0,以提高操作系统的 游戏 图形功能。

微软将Windows 10变成一项服务,它将持续接收更新 。但由于接口的大幅变动,Windows 10 难以被用户适应,并受到用户批评。根据微软官方统计,Windows 10的占有率已经超越Windows 7,在所有Windows中位列第一。

总结:Windows 10是目前最新的微软开发的系统,统一的通用的平台,功能最强大而且安全,系统持续得到官方的支持,其他版本陆续停止支持。

从xp到win10,已经二三十年的时间了,尽管微软前几天宣布已经不再支持win7更新了,但是仍然有很多的小伙伴在用xp哈,果然是 历史 上占有率最高的系统,现在给大家说一下每个系统:

1. xp系统。xp系统是微软 历史 上第一个使用nt内核系统,成为 历史 上最受欢迎的操作系统之一。流畅的操作界面,清新的主题,立刻拉到了一大批顾客的眷恋。相对于win95.98.性能也有了很大的提升。现在遗留的老电脑装上xp运行起来还是杠杠的。xp也是有一部分缺点的,最大的问题就是内存扩展问题和安全问题,内存最大只能支持4 G,安全方面也遗留了较大的问题。

在win10出现后,微软发现推广最大的难题是xp用户,微软也头疼啊。

2.win7系统。win7系统也是微软的一大著作,能同时支持32/64位系统,64位可支持的内存大大提升,16G的内存条可以随便插,简直爽爆了。win7和xp之间其实还有一个操作系统,叫做vista,微软推出这个系统之后意外的石沉大海,估计除了情怀没有几个人用。微软为了再次占领市场推出了win7,显示更人性化了,支持areo,安全配置更高。win7是目前占有量最高的系统,直到前几天微软才恋恋不舍的宣布放弃win7的更新。

3.win8.我觉得win8也算 历史 上的一个失败之作,微软也很有意思,一代牛逼一代蠢,差辈更好。也并不是说win8设计有多不好,也可能是太超前了,win8更像是为pad类的平板设计的,出现这种适合触控的区块metro设计。但是人们并不领情,用的也不是很多。

4.win10.win10是win8之后的又一力作,传承自win8,又汲取了win7的精华,界面也挺好看,占用也不大,是目前微软主推的系统。用户占有量越来越多。win10也有些让人摸不着头脑的问题,经常不经过同意自动更新,一更新半天,管你着急不着急。最好用固态硬盘,不然能卡死你。

XP就像五六十岁的老师傅,什么都赶不上时代的步伐了。但有些东西必须老将出马。Win7就像是当家家长顶梁柱,四五十岁了,基本都干的动,但新功能有点搞不来,油腻大叔。Win8一出生就有点残缺,后面又长残了。Win10就是倾心打造的小青年,又潮,又什么都可以干,但对老东西有点不愿意的小鲜肉。成长值很高。

接触电脑20多年来,从最初啥都不懂,到如今的略知一二,期间曾使用过win98、winMe、winxp、win2000、win7、win10这些系统,下面就来聊聊您问题里提到的这款系统吧!

Win-xp: 这是一款非常经典的系统,也能勾起很多70~80后的回忆,在win98流行的那个年代,xp系统的出现,完美的取代了98的位置,再加上该系统更加的人性化,以及对硬件的要求更小,所以虽然微软公司早已停止了对其的技术支持,但时至今日依然有很多朋友在使用xp系统, 不过该系统因为太老旧,所以很多软件和 游戏 都已经无法在它上面运行了!

Win-7: 时至今日, 它是微软公司最成功的一款系统 ,也是取代Win-xp最好的系统,虽然刚上市的时候,遭到了很多朋友的极力吐槽+抗拒,但它以自身实力证明了自己,证明了自己的确要比Win-xp系统更加的好用, 比如很多朋友的电脑虽然配置很高,可他们依然还是选择了安装win7系统。

Win-8: 很抱歉,这款系统 笔者未曾用过, 不敢妄加评论,但是从一些使用者的反馈来看,该系统并无什么亮点,因此乏善可陈。

Win-10: 随着笔记本电脑的普及,以及 生物识别技术 的发展,现如今笔记本电脑的功能要比台式机更加强大,而且还便于携带,而win10系统恰恰和笔记本电脑的这些功能所匹配,因此 对于win10系统来说,笔记本最适合安装该系统,没有之一。

总的来说:

最明显的区别就是安装包随着版本的增加,安装包越来越大,要求的硬件也越来越高,win8是个特例,比win10硬件要求高。另外就是当前很多软件的新版本对低版本系统已经不支持。其它的细节区别也非常多。

微软公司分别于

2001 XP

2009 Win7

2012 Win8

2015 Win10 这是一个不断更新的过程,肯定是一个比一个好,目前为止win10系统已经成为主流系统。win7 的用户也是特别多,我想慢慢会被win10替代。

WINXP,WIN7,WIN8,WIN10都是微软公司推出的操作系统,中间还有一个WIN vista,微软公司推出的Windows系列操作系统,是现有市面上使用者人数最多的,那么他们之间具体有什么区别呢?

在WIN XP之前,微软公司推出的WIN95是真正意义上的第一款图形用户界面操作系统,在连续推出WIN98 WIN2000后,于2001年10月25日推出了全新的WIN XP系统。

WIN XP主要分为家庭版和专业版,家庭版是为个人或者家庭用户而设计的,专业版是为各种规模的企业和需要最高计算体验的用户而设计的操作系统。Windows XP专业版增加了远程访问,提高了安全性,具备更高的性能、管理功能以及多语言特性,提高了用户的工作效率,使他们更方便接入网络。

WIN XP是世界上曾经同时使用人数最多的操作系统,也是微软公司最成功的系统,因为WIN XP直接改变了人们使用计算机的方式,让电脑使用更简单。现在依然有许多用户在使用WIN XP系统。

WINDOWS VISTA是微软2005年7月22日推出的操作系统,与WIN XP最大的不同在于被称为“Aero”的全新图形用户界面,带给用户全新的体验。

虽然VISTA创新性的系统体验,但由于VISTA对硬件系统性能要求过高,导致当年普遍电脑配制较低的情况下VISTA系统运行十分卡顿,许多用户不得不将VISTA换回WIN XP系统。VISTA系统存在过程非常短暂,现在也没有电脑使用VISTA系统了。

Windows WIN7是微软2009年10月22日推出的操作系统,WIN7在VISTA的基础上进行了硬件性能优化,大大提升了系统使用流畅性,WIN7也是目前主流使用的WINDOWS操作系统之一。

WIN7结合了WIN XP的实用和VISTA的华丽界面,并且简化了许多不实用系统功能,让系统运行更流畅,优化了用户使用体验,让使用更便捷。

Windows WIN8是微软2012年10月26日推出的操作系统,WIN8优化了硬件系统支持,同套配置使用WIN8系统和WIN7系统,运行 游戏 ,WIN8的帧数要更高。但WIN8改变了许多WIN7原有的系统设置和菜单栏,导致怕麻烦的用户换回WIN7操作系统。

WIN8也是微软公司推出后最快消失的操作系统,由于WIN10仅随其后推出,微软主推WIN10系统,很快WIN8系统被人们所抛弃。

Windows win10是微软2015年7月29日推出的操作系统,WIN10结合了WIN7与WIN8系统进行了优化,现在使用WIN10系统的人数是最多的,WIN10系统流畅性较高,更易用,交互功能更齐全。

部分年龄较大电脑用户或对WIN XP情有独钟的用户依然喜欢使用WIN XP系统,但是目前Windows 10是最推荐使用的操作系统,WIN10操作系统由于部分老旧硬件没有驱动程序,所以使用WIN7系统的用户依然大量存在。

首先,本质上来说,XP用的NT5.0内核,win7是NT6.0,win10是NT6.5,呈现在用户眼中的就是兼容性不同,提供的系统功能和服务有些区别

其次,从外观上来说,XP在当时号称最新最漂亮最流畅的操作系统,呈现给用户最佳experience,这也是xp系统名字的由来,而win7进一步改进,提供了毛玻璃板透明效果,到win10则是扁平化设计,强调高效节能

最后就是越新的系统,对新硬件支持越好,绝大部分情况下,新系统能更充分发挥新硬件和软件的性能

最后说一下,xp和win7 32只支持mbr启动,win7 64位和win8,win10都支持uefi启动,对了,xp还不支持gpt格式的分区

电脑有硬件和软件两大部分组成。硬件是一切的基础他们可以被我们看得见,摸得着,比如主板CPU显卡键盘,鼠标显示器的。而我们平时操作的大部分都是软件,比如WINDOWS操作系统和其上安装的QQ或者浏览器微信的。

管理硬件的软件被叫做操作系统,在操作系统之上安装的叫做应用程序比如QQ,当我们打开QQ以后,应用程序会向系统申请所需要的一切,包括内存空间,各种文件的使用权限,操作系统根据自己的策略和应用程序的需要来分配这些。如果没有操作系统统一管理,那么现在的软件将无法轻易的运行。

不同的年代出现了不同的操作系统,不论是WINDOWS xp,windows 7 WINDOWS 8还是WINDOWS 10,他们都是同一个公司在不同年代发布的不同版本的操作系统,而目前最新的操作系统就是WINDOWS 10。他们本质上并没有什么不同,其实还有更早版本的WINDOWS 95 WINDOWS 98 windowsme等等操作系统。

什么是超频

C++程序设计之四书五经(上篇)

C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使

其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。

然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈

反弹,而在高阶程序设计领域,Ja和C#正在不断蚕食着C++的地盘。也许C++与C合为一体

永远都是一个梦想,也许Ja和C#的狂潮终将迫使C++回归本位 — 回到它有着根本性优势

的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计以及数值

科学计算等。果真如此,我认为这未尝不是一件好事。

C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序

库以及书籍等,数不胜数。文题“C++程序设计之四书五经”一个不太严格的含义是:C++

程序设计之四书 ⅹ 五经。是的,在本文(及其下篇)中,我将分门别类推荐20多本C++好

书,你可以根据自己的需要选读。

TCPL和D&E

TCPL和D&E分别是《The C++ Programming Language》和《The Design and Evolution of

C++》的简称,均出自Bjarne Stroustrup之手。我将它们单列出来,首先是因为Bjarne是

C++语言的创建者,然后是因为比“首先”那个原因更重要的原因:这两本书是C++领域毋

庸置疑的杰作。说它们是C++语言圣经,并不为过。

Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition)

《C++程序设计语言(特别版)》,机械工业出版社

《C++程序设计语言(特别版)(英文影印版)》,高等教育出版社

迄今为止,TCPL是除了C++标准文献之外最权威的C++参考手册。和大多数人的看法不大一

样,我认为Bjarne的文字语言并不逊色于他所创建的程序语言,至少我喜欢这种学院气息

浓厚的作品。本书对C++语言的描述轮廓鲜明、直截了当。它从C++语言创建者的角度来观

察C++,这是任何别的作者和书籍做不到的 — 没有任何人比Bjarne自己更清楚该怎么来使

用C++。

这是一本严肃的著作,以中、高级C++开发人员为目标读者。如果你是一名有经验的C++程

序员,需要了解更加本质的C++知识,本书正是为你而写。它不是那种让你看了会不断窃喜

的小书,需要用心体会,反复咀嚼。在阅读过程中,请特别留心Bjarne先生强调了什么,

又对什么一语带过。我个人比较喜欢这本书的第四部分“使用C++做设计”,这样的内容在

类似的程序设计语言书籍中很难看到 — 我甚至认为Bjarne应该将这部分独立出来单独写

一本书。

Bjarne Stroustrup, The Design and Evolution of C++

《C++语言的设计和演化》,机械工业出版社

《C++语言的设计和演化(英文版)》,机械工业出版社

D&E是一本关于C++语言设计原理、设计决策和设计哲学的专著。它清晰地回答了C++为什么

会成为今天这个样子而没有变成另外一种语言。作为C++语言的创建者,Bjarne淋漓尽致地

展示了他独到而深刻的见解。除了广受赞誉的语言特性外,Bjarne没有回避那些引起争议

的甚至被拒绝的C++特性,他一一给出了逻辑严密、令人信服的解释。内容涵盖C++的史前

时代、带类的C、C++的设计规则、标准化、库、内存管理、多重继承、模板等,对包括异

常机制、运行时类型信息和名字空间在内的重要的新特性都分别进行了深入探讨。每一名

C++程序员都应该可以从Bjarne的阐释中加深对手中这门语言的认识。

需要再次提醒的是,这两本书知识浓缩,信息量极大,请不要错过Bjarne每一句看似漫不

经意的话。

入门教程

学习任何一门语言都需要一个从入门到精通、从新手到高手循序渐进的过程。不过,对于

一个所谓的新手而言,究竟是一个完完全全的新手,还是一个熟悉某种别的语言的“新手

”,甚至是在某种语言程序设计领域已经颇有建树的高手,很难一概而论?不同的C++新手

需要不同的入门书籍。

Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Examp

le

《Accelerated C++中文版》,中国电力出版社

和市面上大多数C++教程不同,本书不是从“C++中的C”开始讲解,而是始于地道的C++特

性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件

所依赖的基础概念。另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲

解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只

是用作演示语言特性和标准库用法的工具。

作者在C++领域的编程实践、教育培训以及技术写作方面都是世界一流水准。我喜欢这种大

量使用标准库和C++语言原生特性的清新的写作风格。在这本教材面前,几乎迄今为止的所

有C++教材都黯然失色或显得过时。尽管这本教材也许对于国内的高校教育来说有些前卫,

不过我仍然极力向我的同行们推荐。顺带一提,在Bjarne和我最近的一封通信里,他这样

评价本书:对于有经验的程序员学习C++而言,这本书可能是世界上最好的一本。

Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition)

《C++ Primer (3RD)中文版》,中国电力出版社

这本书的名字多少有点让人误解。尽管作者声称这本书是为C++新手而写,但无论是它的厚

度还是讲解的深度都暴露了似乎并非如此。也许说它是一本“从入门到精通”的C++教程会

更合适一些。我个人认为它并不适合完全不懂C++的初学者 — 在阅读这本书之前,你至少

应该先有那么一点C或C++的背景知识,或者至少要具有一些其他语言的编程经验。

尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学

习教程。事实上,如果一名C++初学者能够扎扎实实地读完本书并对照《C++ Primer Answ

er Book》完成全部习题的话,他的水平肯定可以进入职业C++程序员的行列。我个人认为

,即使你已经拥有了TCPL,这本书依然有拥有的价值,因为在许多方面它比TCPL来得更详

细、更易懂。

Stanley B. Lippman, Essential C++

《Essential C++中文版》,华中科技大学出版社

《Essential C++(影印版)》,中国电力出版社

可以不太严格地认为这本书是《C++ Primer》的精简版。本书一一讲述了C++中最具代表性

的主题,包括过程式编程、泛型编程、基于对象编程、面向对象编程、模板编程以及异常

处理等。Stanley将门槛调低到“具有其他语言程序设计经验”的C++新手所能接受的最基

本的层次,使他们能够迅速开始使用C++编程而又免于阅读《C++ Primer》那样的大部头。

它以实例引导学习,力图使读者在最短的时间内把握C++的精粹。

也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚,但这

本小书不可思议地做到了这一点。我个人非常喜欢这种满是技术、简明扼要并且“有话好

好说”的书。这本书同样具有一个明显的风格:所有程序例子全部用标准库组件,让人

耳目一新。

以上三本书都不是为了完完全全的编程新手而写。完全的C++编程新手可以阅读Francis G

lassborow的新书(尚未出版):《A Beginners Introduction to Computer Programmin

g : You Can Do It!》。这也是Bjarne的推荐。Francis Glassborow是ACCU,多年来

他对几乎每一本C++经典名著评头论足,他自己的这一本自然会引起C++社群的极大兴趣。

高效、健壮编程

两年前我在负责一个省级电力调度系统项目时编写了一个网关程序,它从SCADA系统获取电

力实时信息。通讯接口用了不常用的数据库直连方式(这个网关程序一端连接SQL Serv

er 6.5,另一端连接Oralce 8.1.6)。由于实时测点近万,每次将全部取样更新或插入一

遍显然是低效的。我在网关程序里建了一个内存库,获取到的数据首先在其中进行比较,

然后决定是否更新物理数据库(同时还做了别的更复杂的事情……),从而在效率和

占用两方面达到了预期效果。

这个程序一直运行得很好,但在离开现场之后的某一天,系统管理员打来电话,说大概因

为网络故障等原因,有时这个网关程序会崩溃掉 — 它自己崩掉也就罢了,问题是它还会

把Windows 2000 Advanced Server搞成“蓝屏”!坦白地说,我还从来没看过哪个非蓄意

的程序有这个“能耐”。由于当时正忙于另外一个大项目,无法去现场调试,最后只有凭

经验对内存库代码小心翼翼地封装以异常处理代码(同时也做了一些别的修改……)。这

样,虽然没有彻底解决问题,但程序终究不再死得那么难看了。

在这儿讲这么一段花絮有什么意思呢(当初为那个可怕的bug朝思暮想时我可不认为这是一

个“花絮”)?我想说的是,对于任何软件而言,离开强健,效率也就无从谈起。而对于

C++程序员来说,也许编写一个高效的程序并不难,但要编写一个需要7 ⅹ 24小时持续运

行的服务端软件就不是那么容易了,需要考虑许多因素,有时这些因素甚至远远超出C++语

言和开发工具的本身。作为一名开发实际项目软件的程序员,并非非得自己碰钉子才能积

累经验,只要我们足够虚心,别人的经验往往都是我们很好的借鉴。鉴于此,我推荐以下

几本书供你选读,它们可以让你从强健和效率两方面受益(当然了,它们涵盖的内容远不

限于异常处理J)。

Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Des

ign (2nd Edition)

Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Des

igns

《Effective C++中文版》,华中科技大学出版社

《More Effective C++中文版》,中国电力出版社

《Effective C++(影印版)》,中国电力出版社

如果说《Effective C++》主要讨论C++中一些相对基础的概念和技巧的话,那么《More E

ffective C++》则着重探讨了包括异常处理在内的一系列高级技术。与前者相比,后者具

有两大主要区别:其一,它包含很多时新的标准C++的内容;第二,它讨论的主题倾向于“

战略化”而非“战术化”,并且讨论得更深入、更彻底。尤其是对虚析构函数、智能指针

、引用计数以及代理类(proxy classe)等技术和模式论述的深入程度,让人很难想象是

出现于这样的一本小书之中。

游刃有余的技术,高超的写作技巧,Scott无疑是世界上最优秀的C++技术作家之一。在简

洁、清晰、易读等方面,这两本书都卓尔不群。总之,Scott提供的这85个可以改善编程技

术和设计思维的方法,都是中、高级C++程序员必备的技能。我强烈推荐这两本书(实际上

还有一本,稍后就会看到)。

Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, an

d Solutions

Herb Sutter, More Exceptional C++: 40 New Engineering Puzzles, Programming Pro

blems, and Solutions

《Exceptional C++中文版》,中国电力出版社

《More Exceptional C++中文版》,华中科技大学出版社

你自认为是一名C++语言专家吗?读一读ISO C++标准委员会秘书长的这两本书再回答。在

这两本书中,Herb用了“问答”的方式指导你学习C++语言特性。对于每一个专题,Her

b首先合理地设想出你的疑问和困惑,接着又猜测出你十有八九是错误的解答,然后给你以

指点并提出最佳解决方案,最后还归纳出解决类似问题的普适性原则。

这两本书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本

书,读起来很费脑筋 — 我个人认为它们要比Scott的书难懂得多。若要研习这薄薄的两本

书所包含的知识,至少需要花费数月的时间!(在Scott的荐序中,他坦陈不止一次陷入G

otW问题的陷阱,你应该知道这意味着什么)对于语言细节的深究有什么好处呢?尽管在大

多数情况下,我们不必关心C++代码幕后的动作,然而当我们不得不关心时,这两本书可以

为我们提供很好的线索,因为它们揭示了C++语言中微妙而又至关重要的东西。

Stephen C. Dewhurst, C++ Gotchas: Avoiding Common Problems in Coding and Desig

n

《C++程序设计陷阱》,中国青年出版社

Stephen的理论素养和实践经验注定这是一本值得一读的好书。Stephen曾经是贝尔实验室

中第一批C++使用者。他已经使用C++成功解决了包括编译器、证券交易、电子商务以及嵌

入式系统等领域中的问题。本书汇集了作者来自开发一线的99条编程真知灼见,洞悉它们

,你可以避免几乎所有常见的C++设计和编程问题。

我甚至认为,对于C++编程菜鸟而言,阅读这本书会比阅读Scott和Herb的书更能轻松而立

竿见影地获得更大的提高。我个人很喜欢这本书的写作风格 — Stephen的许多观点看似极

端却无可辩驳。当然了,这种自信(以及冷幽默)来自于作者深厚的技术素养,而非自大

的偏执。

除了上面推荐的书籍外,Dov Bulka和 Did Mayhew合著的《Efficient C++: Performan

ce Programming Techniques》(《提高C++性能的编程技术》,清华大学出版社)也值得

一看。这本超薄小书聚焦于高性能C++应用程序开发。两位作者都是IBM软件专家,都工作

于对性能要求极高的系统构建领域,本书是他们的经验之谈。也有人不喜欢这本书,因为

它花了不少的篇幅讲述和C++无关的东西,我却恰恰因为这一点而对这本书产生好感,正是

这些东西让我开阔了眼界。

模板和泛型编程

模板和基于模板的泛型编程无疑是当今发展最活跃的C++程序设计技术。模板的第一个革命

性的应用是STL,它将模板技术在泛型容器和算法领域的运用展现得淋漓尽致,而Boost、

Loki等现代程序库则将模板技术的潜能不断发挥到极致。在模板和泛型编程领域,我推荐

以下两本重量级著作:

Did Vandevoorde, Nicolai M. Josuttis, C++ Templates: The Complete Guide

《C++ Templates全览(繁体版)》,台湾碁峰资讯股份有限公司

《C++ Templates全览(简体版)》,人民邮电出版社

有一种老套的赞美一本书的手法,大致是“没有看过这本书,你就怎么怎么地”,这里面

往往夸张的成分居多。不过,倘若说“没有看过《C++ Templates: The Complete Guide》

,你就不可能精通C++模板编程”,那么这个论断对于世界上绝大多数C++程序员来说是成

立的。

这本书填补了C++模板书籍领域由来已久的空白。此前,上有《Modern C++ Design》这样

的专注于模板高级编程技术和泛型模式的著作,下有《The C++ Standard Library》这样

的针对特定模板框架和组件的使用指南。然而,如对模板机制缺乏深入的理解,你就很

难“上下”自如。鉴于此,我向每一位渴望透彻理解C++模板技术的朋友推荐这本书。

这本书在内地、台湾各有一个译本,但出自不同的译者之手。当你看到这篇文章时,两个

译本应该都已经上市,对于读者来说当然也就多了一种选择。侯捷先生个人网站上开放了

繁体译本大部分章节,不妨先睹为快。

Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Pattern

s Applied

《C++设计新思维:泛型编程与设计模式之应用》,华中科技大学出版社

《C++设计新思维(影印版)》,中国电力出版社

你自认为是C++模板编程高手吗?请看过这本书再回答J 这是一本出自天才之手令人敬畏的

杰作。泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。

这本书共分为两大部分,第一部分讨论了 Loki程序库用的基础技术以及一些高级语言特

性,包括基于策略的类设计、模板局部特化、编译期断言、Typelist以及小型对象分配技

术等。第二部分则着重介绍了Loki中的重要组件和泛型模式技术,包括泛化仿函数(Gene

ralization Functor)、单件(Singleton)、智能指针、对象工厂(Object Factory)、

抽象工厂(Abstract Factory)、访问者(Visitor)以及多方法(Multimethods)等。每

一种技术都让人大开眼界,叹为观止。

在C++的学习方面,过犹不及往往成了不求甚解的借口。然而,面向对象并非C++的全部,

模板和泛型编程亦占半壁江山。对于“严肃”的C++程序员而言,及时跟进这项早经例证的

成功技术,不失为明智之举。

结语

这些著作是如此大名鼎鼎,也许根本不缺我一个推荐。然而,纵然C++程序员队伍的发展壮

大速度不像其他更时髦的语言那样迅速,新人进总是多于旧人出。除了热忱地欢迎新人,

我个人认为到了对C++书籍进行“盘点”的时候了,并且希望这样的“盘点”有益于感兴趣

的读者。请保持耐心和宽厚。在下篇中,我将继续介绍标准库、网络编程以及其他方面的

C++好书。有好书相伴,这个冬天不会冷。

C++程序设计之四书五经(下篇)

我在上篇中“盘点”了TCPL和D&E以及入门教程、高效和健壮编程、模板和泛型编程等方面

共十几本C++好书。冬去春来,让我们继续C++书籍精彩之旅J

标准库

当我还在研究院工作时,与同院另外两家研究所合作开发过一个大型水利枢纽调度集成项

目。我们三家软件系统之间都要相互通信。在调试通讯模块时,细心的客户(一名好学的

系统管理员)发现对于同一通信规约的解释代码,我的不超过30行,而对方的则超过了15

0行且很难看懂。这位系统管理员很纳闷,我说大家编程风格和习惯不一样,我使用了标准

库,而他使用了传统C编程风格以及他所习惯的另外一些技术。

别误会!我绝无贬低这位合作伙伴的意思。事实上,我对那些真正有着深厚的C编程功力的

程序员常常怀有钦佩之心。毕竟,C++能有今天的成功在很大程度上缘于它深深地植根于C

。作为一名C++程序员,倘若不熟悉C++中的C,我往往会认为他的基本功是不扎实的,他的

技术底气是不足的。

不过话又说回来,C++是一种多范型(paradigm)编程语言,具体用哪种编程风格,专业

程序员应该知道视具体情况而定。作为一名经常需要在现场做即兴开发的项目负责人,为

了短平快地解决当务之急,我习惯尽量用现有的库(和组件)。效率(以及强健性)久

经验证的C++标准库已经摆在那儿了,何乐而不用呢?

Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference

《C++标准程序库:自修教程与参考手册》,华中科技大学出版社

这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全。它在完备性、细

致性以及精确性方面都是无与伦比的。本书详细介绍了每一标准库组件的规格和用法,内

容涵盖包括流和本地化在内的整个标准库而不仅仅是STL。正如本书副标题所示,它首先适

合作为教程阅读,尔后又可用作参考手册。

浅显易懂的写作风格使得这本书非常易读。如果你希望学习标准库的用法并尽可能地发挥

其潜能,那你必须拥有这本书。正如网络上所言,这本书不仅仅应该摆在你的书橱中,更

应该放到你的电脑桌上。我向每一位职业C++程序员强烈推荐。

Angelika Langer, Klaus Kreft, Standard C++ IOStreams and Locales: Advanced Pro

grammer's Guide and Reference

《标准C++输入输出流与本地化》,人民邮电出版社

C++标准库由STL、流和本地化三部分构成。关于STL的书市面上已经有不少,但罕见流和本

地化方面的专著。本书是这两个领域中最优秀的一本,迄今为止没有任何一本书比这一本

更全面详尽地讨论了流和本地化。如果你不满足于停留在“会用”流库的层面,千万不要

错过它。

2001年夏天,草翻阅过这本书的中文版,从内容到包装都给我留下了比较深刻的印象

— 不过负面的居多一些。2003年秋天,无意中得知某网络书店正以超低价格甩卖这本书

的中译本,情不自禁,一阵唏嘘。

Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Stand

ard Template Library

《Effective STL(影印版)》,中国电力出版社

读完Scott 的《Effective C++》和《More Effective C++》的中译本之后,我一直期待这

本书的中文版。我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完成了

这本书的翻译工作,可惜至今市面上仍不得见。的是,我们可以看到它的原版。

本书是使用STL的程序员必读之作。在这本书中,Scott向我们讲述STL容器和算法的工作机

制以及如何以最佳方式使用它们。和Scott的其他作品一样,这本书的写作风格清晰、精确

,具有极佳的可读性。看过这本书以后,我想你也许会和我以及其他C++程序员一样产生这

样的想法:Scott什么时候会写出一本“More Effective STL”?

关于STL,我还提醒你留心Matthew H. Austern的《Generic Programming and the STL:

Using and Extending the C++ Standard Template Library》(《泛型编程与STL》,中

国电力出版社)。这本书散发着浓厚的学院气息。Andrew Koenig和Barbara Moo在《Acce

lerated C++: Practical Programming by Example》一书末尾郑重推荐另外两本进阶好书

(除了他们自己的《Ruminations on C++》外),其中一本是TCPL,另外一本就是本书!

网络编程

在网络编程时代,C++应该扮演着怎样的角色,让ACE(Adaptive Communications Enviro

nment)来告诉你。

Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 1: Mast

ering Complexity with ACE and Patterns

Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 2: Syst

ematic Reuse with ACE and Frameworks

《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社

《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社

用C++进行企业级网络编程,目前ACE(以及这两本书)是一个值得考虑的选择。ACE是一

个面向对象、跨平台、开放源码的网络编程框架,目标在于构建高性能网络应用和中间件

。Douglas是ACE的创始人,Stephen则已为ACE提供了数年的技术支持和顾问服务,两位都

是ACE社群(是的,ACE的影响和实际应用的程度已经形成了一个社群)的专家。

ACE并不单单被大学和研究所追捧,它已经被成功地应用于世界上成千上万个商业应用中。

在电信、宇航、医药和财经领域的网络系统中,ACE已经并继续发挥着重要的作用。如果你

准备开发高性能通讯系统,你应该考虑考虑这一汇集世界顶尖专家智慧的成果。

除了使用C++面向对象设计技术和模板等高级语言特性外,ACE还运用了大量的模式。《C+

+网络编程》卷1和卷2并不仅仅教你关于ACE的方方面面,它还会教给你模式和通用框架设

计等高级技术等。所以,作为一名中、高级C++程序员,即使你很少进行正儿八经的C++网

络程序设计,阅读这两本书同样可以从中受益。

是的,并非所有网络应用都要使用Web服务器(以及其他应用服务器)和重量级组件模型,

换个思路,它们或许也可以从轻量级的ACE组件中获益。

杂项

以下这几本书之所以被列入“杂项”单元,只是因为我没有考虑出更合适的归类方法,它

们和上面的书籍一样,值得一读。

Bruce Eckel, Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edit

ion)

Bruce Eckel, Thinking in C++, Volume 2: Practical Programming (Second Edition)

《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社

《C++编程思想(英文版 第2版)》,机械工业出版社

《Thinking in C++》的第1版于1996年荣获“软件研发”杂志评选的图书震撼大奖。最新

推出的第2版对内容进行了大幅改写和调整,以反映C++标准化带来的影响以及近几年面向

对象领域最新研究和实践成果。“输入输入流”、“多重继承”、“异常处理”和“运行

时类型识别”等高级主题连同C++标准化以后增加的一些内容则被放入第二卷中。Bruce是

一名经验丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他的作品比那些“

玩票”的技术人员写的东西更能吸引读者。事实上,在同类图书中,对于大多数读者而言

,这本书的可读性要超过TCPL和《C++ Primer》。顺带一提,访问作者的站点,你可以先

睹第二卷的风。

Andrew Koenig, Barbara E. Moo, Ruminations on C++: A Decade of Programming Ins

ight and Experience

《C++沉思录》,人民邮电出版社

Andrew是世界上屈指可数的C++专家。这是一本关于C++编程思想和程序设计技术而非语言

细节的著作。如果你已经具有一定的基础,这本书将教你在进行C++编程时应该怎样思考,

应该如何表达解决方案。整本书技术表达透彻,文字通俗易懂。Bjarne这样评价这本书:

本书遍布“C++是什么、C++能够做什么”的真知灼见。

Stanley B. Lippman, Inside The C++ Object Model

《深度探索C++对象模型》,华中科技大学出版社

《深度探索C++对象模型(影印版)》,中国电力出版社

从编译器的角度观察C++可以使你知其然并知其所以然。本书探讨了大量的C++面向对象程

序设计的底层运作机制,包括构造函数、函数、临时对象、继承、虚拟、模板的实例化、

异常处理、运行期类型识别等,另外还介绍了一些在实现C++对象模型过程中做出的权衡折

衷。喜

除WINDOWS之外还有什么操作系统

://sdvick.bbs.topzj/viewthread.php?tid=5568

建议自己去看 很详细很多 还有图~我只能弄来一部分。

什么是超频?

超频是使得各种各样的电脑部件运行在高于额定速度下的方法。例如,如果你购买了一颗Pentium 4 3.2GHz处理器,并且想要它运行得更快,那就可以超频处理器以让它运行在3.6GHz下。

郑重声明!

警告:超频可能会使部件报废。超频有风险,如果超频的话整台电脑的寿命可能会缩短。如果你尝试超频的话,我将不对因为使用这篇指南而造成的任何损坏负责。这篇指南只是为那些大体上接受这篇超频指南/FAQ以及超频的可能后果的人准备的。

为什么想要超频?是的,最明显的动机就是能够从处理器中获得比付出更多的回报。你可以购买一颗相对便宜的处理器,并把它超频到运行在贵得多的处理器的速度下。如果愿意投入时间和努力的话,超频能够省下大量的金钱;如果你是一个象我一样的狂热玩家的话,超频能够带给你比可能从商店买到的更快的处理器。

超频的危险

首先我要说,如果你很小心并且知道要做什么的话,那对你来说,通过超频要对计算机造成任何永久性损伤都是非常困难的。如果把系统超得太过的话,会烧毁电脑或无法启动。但仅仅把它推向极限是很难烧毁系统的。

然而仍有危险。第一个也是最常见的危险就是发热。在让电脑部件高于额定参数运行的时候,它将产生更多的热量。如果没有充分散热的话,系统就有可能过热。不过一般的过热是不能摧毁电脑的。由于过热而使电脑报废的唯一情形就是再三尝试让电脑运行在高于推荐的温度下。就我说,应该设法抑制在60 C以下。

不过无需过度担心过热问题。在系统崩溃前会有征兆。随机重启是最常见的征兆了。过热也很容易通过热传感器的使用来预防,它能够显示系统运行的温度。如果你看到温度太高的话,要么在更低的速度下运行系统,要么用更好的散热。稍后我将在这篇指南中讨论散热。

超频的另一个“危险”是它可能减少部件的寿命。在对部件施加更高的电压时,它的寿命会减少。小小的提升不会造成太大的影响,但如果打算进行大幅超频的话,就应该注意寿命的缩短了。然而这通常不是问题,因为任何超频的人都不太可能会使用同一个部件达四、五年之久,并且也不可能说任何部件只要加压就不能撑上4-5年。大多数处理器都是设计为最高使用10年的,所以在超频者的脑海中,损失一些年头来换取性能的增加通常是值得的。

基础知识

为了了解怎样超频系统,首先必须懂得系统是怎样工作的。用来超频最常见的部件就是处理器了。

在购买处理器或CPU的时候,会看到它的运行速度。例如,Pentium 4 3.2GHz CPU运行在3200MHz下。这是对一秒钟内处理器经历了多少个时钟周期的度量。一个时钟周期就是一段时间,在这段时间内处理器能够执行给定数量的指令。所以在逻辑上,处理器在一秒内能完成的时钟周期越多,它就能够越快地处理信息,而且系统就会运行得越快。1MHz是每秒一百万个时钟周期,所以3.2GHz的处理器在每秒内能够经历3,200,000,000或是3十亿200百万个时钟周期。相当了不起,对吗?

超频的目的是提高处理器的GHz等级,以便它每秒钟能够经历更多的时钟周期。计算处理器速度的公式是这个:

FSB(以MHz为单位)×倍频 = 速度(以MHz为单位)。

现在来解释FSB和倍频是什么:

FSB(对AMD处理器来说是HTT*),或前端总线,就是整个系统与CPU通信的通道。所以,FSB能运行得越快,显然整个系统就能运行得越快。

CPU厂商已经找到了增加CPU的FSB有效速度的方法。他们只是在每个时钟周期中发送了更多的指令。所以CPU厂商已经有每个时钟周期发送两条指令的办法(AMD CPU),或甚至是每个时钟周期四条指令(Intel CPU),而不是每个时钟周期发送一条指令。那么在考虑CPU和看FSB速度的时候,必须认识到它不是真正地在那个速度下运行。Intel CPU是“四芯的”,也就是它们每个时钟周期发送4条指令。这意味着如果看到800MHz的FSB,潜在的FSB速度其实只有200MHz,但它每个时钟周期发送4条指令,所以达到了800MHz的有效速度。相同的逻辑也适用于AMD CPU,不过它们只是“二芯的”,意味着它们每个时钟周期只发送2条指令。所以在AMD CPU上400MHz的FSB是由潜在的200MHz FSB每个时钟周期发送2条指令组成的。

这是重要的,因为在超频的时候将要处理CPU真正的FSB速度,而不是有效CPU速度。

速度等式的倍频部分也就是一个数字,乘上FSB速度就给出了处理器的总速度。例如,如果有一颗具有200MHz FSB(在乘二或乘四之前的真正FSB速度)和10倍频的CPU,那么等式变成:

(FSB)200MHz×(倍频)10 = 2000MHz CPU速度,或是2.0GHz。

在某些CPU上,例如Intel自1998年以来的处理器,倍频是锁定不能改变的。在有些上,例如AMD Athlon 64处理器,倍频是“封顶锁定”的,也就是可以改变倍频到更低的数字,但不能提高到比最初的更高。在其它的CPU上,倍频是完全放开的,意味着能够把它改成任何想要的数字。这种类型的CPU是超频极品,因为可以简单地通过提高倍频来超频CPU,但现在非常罕见了。

在CPU上提高或降低倍频比FSB容易得多了。这是因为倍频和FSB不同,它只影响CPU速度。改变FSB时,实际上是在改变每个单独的电脑部件与CPU通信的速度。这是在超频系统的所有其它部件了。这在其它不打算超频的部件被超得太高而无法工作时,可能带来各种各样的问题。不过一旦了解了超频是怎样发生的,就会懂得如何去防止这些问题了。

* 在AMD Athlon 64 CPU上,术语FSB实在是用词不当。本质上并没有FSB。FSB被整合进了芯片。这使得FSB与CPU的通信比Intel的标准FSB方法快得多。它还可能引起一些混乱,因为Athlon 64上的FSB有时可能被说成HTT。如果看到某些人在谈论提高Athlon 64 CPU上的HTT,并且正在讨论认可为普通FSB速度的速度,那么就把HTT当作FSB来考虑。在很大程度上,它们以相同的方式运行并且能够被视为同样的事物,而把HTT当作FSB来考虑能够消除一些可能发生的混淆。

怎样超频

那么现在了解了处理器怎样到达它的额定速度了。非常好,但怎样提高这个速度呢?

超频最常见的方法是通过BIOS。在系统启动时按下特定的键就能进入BIOS了。用来进入BIOS最普通的键是Delete键,但有些可能会使用象F1,F2,其它F按钮,Enter和另外什么的键。在系统开始载入Windows(任何使用的OS)之前,应该会有一个屏幕在底部显示要使用什么键的。

定BIOS支持超频*,那一旦进到BIOS,应该可以使用超频系统所需要的全部设置。最可能被调整的设置有:

倍频,FSB,RAM延时,RAM速度及RAM比率。

在最基本的水平上,你唯一要设法做到的就是获得你所能达到的最高FSB×倍频公式。完成这个最简单的办法是提高倍频,但那在大多数处理器上无法实现,因为倍频被锁死了。其次的方法就是提高FSB。这是相当具局限性的,所有在提高FSB时必须处理的RAM问题都将在下面说明。一旦找到了CPU的速度极限,就有了不只一个的选择了。

如果你实在想要把系统推到极限的话,为了把FSB升得更高就可以降低倍频。要明白这一点,想象一下拥有一颗2.0GHz的处理器,它用200MHz FSB和10倍频。那么200MHz×10 = 2.0GHz。显然这个等式起作用,但还有其它办法来获得2.0GHz。可以把倍频提高到20而把FSB降到100MHz,或者可以把FSB升到250MHz而把倍频降低到8。这两个组合都将提供相同的2.0GHz。那么是不是两个组合都应该提供相同的系统性能呢?

不是的。因为FSB是系统用来与处理器通信的通道,应该让它尽可能地高。所以如果把FSB降到100MHz而把倍频提高到20的话,仍然会拥有2.0GHz的时钟速度,但系统的其余部分与处理器通信将会比以前慢得多,导致系统性能的损失。

在理想情况下,为了尽可能高地提高FSB就应该降低倍频。原则上,这听起来很简单,但在包括系统其它部分时会变得复杂,因为系统的其它部分也是由FSB决定的,首要的就是RAM。这也是我在下一节要讨论的。

* 大多数的零售电脑厂商使用不支持超频的主板和BIOS。你将不能从BIOS访问所需要的设置。有工具允许从Windows系统进行超频,但我不推荐使用它们,因为我从未亲自试验过。

RAM及它对超频的影响

如我之前所说的,FSB是系统与CPU通信的路径。所以提高FSB也有效地超频了系统的其余部件。

受提高FSB影响最大的部件就是RAM。在购买RAM时,它是被设定在某个速度下的。我将使用表格来显示这些速度:

PC-2100 - DDR266

PC-2700 - DDR333

PC-3200 - DDR400

PC-3500 - DDR434

PC-3700 - DDR464

PC-4000 - DDR500

PC-4200 - DDR525

PC-4400 - DDR550

PC-4800 - DDR600

要了解这个,就必须首先懂得RAM是怎样工作的。RAM(Random Access Memory,随机存取存储器)被用作CPU需要快速存取的文件的临时存储。例如,在载入游戏中平面的时候,CPU会把平面载入到RAM以便它能在任何需要的时候快速地访问信息,而不是从相对慢的硬盘载入信息。

要知道的重要一点就是RAM运行在某个速度下,那比CPU速度低得多。今天,大多数RAM运行在133MHz至300MHz之间的速度下。这可能会让人迷惑,因为那些速度没有被列在我的图表上。

这是因为RAM厂商仿效了CPU厂商的做法,设法让RAM在每个RAM时钟周期发送两倍的信息*。这就是在RAM速度等级中DDR的由来。它代表了Double Data Rate(两倍数据速度)。所以DDR 400意味着RAM在400MHz的有效速度下运转,DDR 400中的400代表了时钟速度。因为它每个时钟周期发送两次指令,那就意味着它真正的工作频率是200MHz。这很像AMD的“二芯”FSB。

那么回到RAM上来。之前有列出DDR PC-4000的速度。PC-4000等价于DDR 500,那意味着PC-4000的RAM具有500MHz的有效速度和潜在的250MHz时钟速度。

所以超频要做什么呢?

如我之前所说的,在提高FSB的时候,就有效地超频了系统中的其它所有东西。这也包括RAM。额定在PC-3200(DDR 400)的RAM是运行在最高200MHz的速度下的。对于不超频的人来说,这是足够的,因为FSB无论如何不会超过200MHz。

不过在想要把FSB升到超过200MHz的速度时,问题就出现了。因为RAM只额定运行在最高200MHz的速度下,提高FSB到高于200MHz可能会引起系统崩溃。这怎样解决呢?有三个解决办法:使用FSB:RAM比率,超频RAM或是购买额定在更高速度下的RAM。

因为你可能只了解那三个选择中的最后一个,所以我将来解释它们:

FSB:RAM比率:如果你想要把FSB提高到比RAM支持的更高的速度,可以选择让RAM运行在比FSB更低的速度下。这使用FSB:RAM比率来完成。基本上,FSB:RAM比例允许选择数字以在FSB和RAM速度之间设立一个比率。设你正在使用的是PC-3200(DDR 400)RAM,我之前提到过它运行在200MHz下。但你想要提高FSB到250MHz来超频CPU。很明显,RAM将不支持升高的FSB速度并很可能会引起系统崩溃。为了解决这个,可以设立5:4的FSB:RAM比率。基本上这个比率就意味着如果FSB运行在5MHz下,那么RAM将只运行在4MHz下。

更简单来说,把5:4的比率改成100:80比率。那么对于FSB运行在100MHz下,RAM将只运行在80MHz下。基本上这意味着RAM将只运行在FSB速度的80%下。那么至于250MHz的目标FSB,运行在5:4的FSB:RAM比率中,RAM将运行在200MHz下,那是250MHz的80%。这是完美的,因为RAM被额定在200MHz。

然而,这个解决办法不理想。以一个比率运行FSB和RAM导致了FSB与RAM通信之间的时间差。这引起减速,而如果RAM与FSB运行在相同速度下的话是不会出现的。如果想要获得系统的最大速度的话,使用FSB:RAM比率不会是最佳方案。

超频RAM

超频RAM实在是非常简单的。超频RAM的原则跟超频CPU是一样的:让RAM运行在比它被设定运行的更高的速度下。幸好两种超频之间的类似之处很多,否则RAM超频会比想象中复杂得多。

要超频RAM,只需要进入BIOS并尝试让RAM运行在比额定更高的速度下。例如,可以设法让PC-3200(DDR 400)的RAM运行在210MHz的速度下,这会超过额定速度10MHz。这可能没事,但在某些情况下会导致系统崩溃。如果这发生了,不要惊慌。通过提高RAM电压,问题能够相当容易地解决。RAM电压,也被称为vdimm,在大多数BIOS中是能够调节的。用最小的可用增量提高它,并测试每个设置以观察它是否运转。一旦找到一个运转的设置,可以要么保持它,要么尝试进一步提高RAM。然而,如果给RAM加太多电压的话,它可能会报废。

在超频RAM时你只还需要担心另一件事,就是延时。这些延时是在某些RAM运行之间的延迟。基本上,如果你想要提高RAM速度的话,可能就不得不提高延时。不过它还没有复杂到那种程度,不应该难到无法理解的。

婚纱的由来

操作系统基本分为windows和linuxs 而每个下面又细分不同的版本:

首先是windows,这个大家都比较熟悉了,

在Windows之前有个微软的DOS操作系统,在这之后就是Windows操作系统了,分别是:

Windows 1.0

1985年11月,Microsoft Windows 1.0发布,最初售价为100美圆;当时被人所青睐的GUI电脑平台是GEM及Desqview/X,因此用户对Windows 1.0的评价并不高。

Microsoft Windows 1.0是微软第一次对个人电脑操作平台进行用户图形界面的尝试。Windows 1.0本质上宣告了MS-DOS操作系统的终结。

Microsoft Windows 1.0是Windows系列的第一个产品,于1985年开始发行。

当时很多人认为Microsoft Windows 1.0只是一个低劣的产品。当时最好的GUI电脑平台是GEM。另外一个选择是Desqview/X。

Windows 2.0

1987年12月9日,Windows 2.0发布,最初售价为100美圆;这个版本的windows图形界面,有不少地方借鉴了同期的Mac OS 中的一些设计理念,但这个版本依然没有获得用户认同。之后又推出了windows 386和windows 286版本,有所改进,并为之后的Windows 3.0的成功作好了技术铺垫

Windows 3.0

1990年5月22日,Windows 3.0正式发布,由于在界面/人性化/内存管理多方面的巨大改进,终于获得用户的认同。之后微软公司趁热打铁,于1991年10月发布了windows 3.0的多语版本,为windows在非英语母语国家的推广起到了重大作用。1992年4月,windows 3.1发布,在最初发布的2个月内,销售量就超过了一百万份,至此,微软公司的资本积累/研究开发进入良性循环。

这个系统既包含了对用户界面的重要改善也包含了对80286和80386对内存管理技术的改进。为命令行式操作系统编写的MS-DOS下的程序可以在窗口中运行,使得程序可以在多任务基础上可以使用,虽然这个版本只是为家庭用户设计的,很多游戏和程序仍然要求DOS存取。

Windows 3.1

1992年3月18日,Windows for Workgroups 3.1发布,看来不甘寂寞的微软公司吹响了进军企业服务器市场的号角。

Windows 3.1添加了对声音输入输出的基本多媒体的支持和一个CD音频播放器,以及对桌面出版很有用的TrueType字体。

Windows NT 3.1

1993年Windows NT 3.1发布,这个产品是基于OS/2 NT的基础编制的,由微软和IBM联合研制。协作后来分开了,微软则把这个软件的名称改为它们的版本MS Windows NT,把主要的API改为32位的版本。微软公司从数字设备公司(Digital Equipment Corporation)雇佣了一批人员来开发这个新系统。这个系统的很多元素反映了早期的带有VMS和RSX-11的DEC概念。由于是第一款真正对应服务器市场的产品,所以稳定性方面比桌面操作系统更为出色。

Windows 3.2

1994年,windows 3.2的中文版本发布,相信国内有不少windows的先驱用户就是从这个版本开始接触windows系统的;由于消除了语言障碍,降低了学习门槛,因此很快在国内流行了起来。

Windows 95

1995年最轰动的,莫过于8月期间windows95发布,当时微软视窗95以强大的攻势进行发布,包括了商业性质的Rolling Stones的歌曲“Start Me Up”。很多没有电脑的顾客受到宣传的影响而排队购买软件,但他们甚至根本不知道Windows 95是什么。在强大的宣传攻势和Windows 3.2的良好口碑下,windows 95 在短短4天内就卖出超过一百万份,出色的多媒体特性、人性化的操作、美观的界面令windows 95获得空前成功。业界也将windows95的推出看作是微软发展的一个重要里程碑。

Windows 95是一个混合的16位/32位Windows系统,其版本号为4.0,由微软公司发行于1995年8月24日。

Windows 95是微软之前独立的操作系统MS-DOS和视窗产品的直接后续版本。第一次抛弃了对前一代16位x86的支持,因此它要求英特尔公司的80386处理器或者在安全模式下运行于一个兼容的速度更快的处理器。它以对GUI的重要的改进和底层工作(underlying workings)为特征。同时也是第一个特别捆绑了一个版本的DOS的视窗版本(Microsoft DOS 7.0)。这样,微软就可以保持由视窗3.x建立起来的GUI市场的统治地位,同时使得没有非微软的产品可以提供对系统的底层操作服务。也就是说,视窗95具有双重的角色。它带来了更强大的、更稳定、更实用的桌面图形用户界面,同时也结束了桌面操作系统间的竞争。(技术上说,Windows图形用户界面可以在DR-DOS上运行,也可能可以在PC-DOS上运行——这个情况直到几年后在法庭上被揭示,这时其它一些主要的DOS市场的商家已经退出市场了。)在市场上,视窗95绝对是成功的,在它发行的一两年内,它成为有史以来最成功的操作系统。

Windows 95以强大的攻势进行发布,包括了商业性质的Rolling Stones的歌曲“Start Me Up”。很多没有电脑的顾客受到宣传的影响而排队购买软件,但他们甚至根本不知道Windows 95是什么。

Windows 95标明了一个“开始”按钮的介绍以及桌面个人电脑桌面上的工具条,这一直保留到现在视窗后来所有的产品中。

后来的Windows 95版本附带了Internet Explorer 3,然后是Internet Explorer 4。当Internet Explorer 4被整合到操作系统后,它将给系统带来一些新特征。Internet Explore被用来给系统的桌面提供HTML支持。这个也是在微软的反托拉斯案中的焦点,因为整合Explorer排挤了微软的竞争对手Netscape的产品。

Windows NT 4.0

1996年8月,Windows NT 4.0发布,增加了许多对应管理方面的特性,稳定性也相当不错,这个版本的windows软件至今仍被不少公司使用着。11月,Windows CE 1.0发布;这个版本是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的操作系统(OS)。其多线性、多任务、全优先的操作系统环境是专门针对有限而设计的。这种模块化设计使嵌入式系统开发者和应用开发者能够定做各种产品,例如家用电器,专门的工业控制器和嵌入式通信设备。微软的战线从桌面系统杀到了服务器市场,又转攻到嵌入式行业,到这里,微软帝国的雏形基本已经形成。

Windows 98

1998年6月25日,Windows 98发布;这个新的系统是基于Windows 95上编写的,它改良了硬件标准的支持,例如MMX和P。其它特性包括对FAT32文件系统的支持、多显示器、Web TV的支持和整合到Windows图形用户界面的Internet Explorer,称为活动桌面(Active Desktop)。1999年6月10日,Windows 98 SE发布,提供了Internet Explorer 5、Windows Netmeeting 3、Internet Connection Sharing、对DVD-ROM和对USB的支持。微软敏锐地把握住了即将到来的互联网络大潮,捆绑的ie浏览器最终在几年后敲响了网景公司的丧钟,同期也因为触及垄断和非法竞争等敏感区域而官司不断。win98是如此出色,以至在6年后的今天还有很多用户依然钟情于它。

Windows 98是一个发行于1998年6月25日的混合16位/32位的Windows系统,其版本号为4.1。

这个新的系统是基于Windows 95上编写的,它改良了硬件标准的支持,例如MMX和P。其它特性包括对FAT32文件系统的支持、多显示器、Web TV的支持和整合到Windows图形用户界面的Internet Explorer,称为活动桌面(Active Desktop)。

Windows 98 SE(第二版)发行于1999年6月10日。它包括了一系列的改进,例如Internet Explorer 5、Windows Netmeeting 3、Internet Connection Sharing、对DVD-ROM和对USB的支持。

Windows 98被人批评为没有足够的革新。即使这样,它仍然是一个成功的产品。第二版被批评为不能在第一版的基础上自由升级。

Windows ME

Windows me 的一些激进改进却没能获得广大用户的认同。重要的修改是系统去除了DOS,而由系统还原代替了。在概念上,这是一个大的改进:用户不再需要有神秘的DOS行命令的知识就可以维护和修复系统。但实际上,去除了DOS功能对维护来说是一个障碍,而系统还原功能也带来一些麻烦:性能显著的降低、硬盘空间的大量消耗,并且对一些通常的错误还原并不一定有效。

Windows ME(Windows Millennium Edition)是一个16位/32位混合的Windows系统,由微软公司发行于2000年9月14日。 Windows Me是最后一个基于DOS的混合16位/32位的Windows 9X系列的Windows,其版本号为4.9。其名字有两个意思,一是纪念2000年,Me是千年的意思,另外是指个人运用版,Me是英文中自己的意思。

这个系统是在Windows 95和Windows 98的基础上开发的。它包括相关的小的改善,例如Internet Explorer 5.5。其中最主要的改善是用于与流行的媒体播放软件RealPlayer竞争的Windows Media Player 7。但是Internet Explorer 5.5和Windows Media Player 7都可以在网上。Movie Maker是这个系统中的一个新的组件。这个程序提供了基本的对的编辑和设计功能,对家庭用户来说是简单易学的。

在Windows Me, 最重要的修改是系统不再包括实模式的MS-DOS。这就意味着,与Windows 95和98不同,微软在加载Windows图形界面前隐藏了加载DOS的过程,使得启动时间有所减少。它仍然提供DOS模式,可以运行在窗口中,但是一些应用程序(如较早的磁盘工具)需要实模式,而不能运行在DOS窗口中。微软把Windows Me的DOS实模式摈弃了,这有助于系统的速度提升,减少了对系统的使用。然而这对基于DOS源代码的Windows Me造成了不利影响,即造成了系统比Windows 98更不稳定,甚至造成Windows Me跑得比Windows 98还慢。Windows Me比Windows 98更常有蓝屏死机现象。Windows Me在使用了一段期间后,系统就有明显的变得很慢。

另外Windows Me引进了“系统还原”日志和还原系统,这意味着简化了故障排查和问题解决工作。在概念上,这是一个大的改进:用户不再需要有神秘的DOS行命令的知识就可以维护和修复系统。实际上,去除了DOS功能对维护来说是一个障碍,而系统还原功能也带来一些麻烦:性能显著的降低;它也被证明并不能有效的胜任一些通常的错误还原。由于系统每次都自动创建一个先前系统状态的备份,使得非专业人员很难实行一些急需的修改,甚至是删除一个不想要的程序或。

有人抱怨这个系统只是Windows 98的升级版本,不应该独自成为一个版本。也有人批评Windows Me是一个较为失败的产品,不稳定的过渡产品。即使这样,现在仍然有很多人使用它。

Windows 2000

在千禧年的钟声后,迎来了Windows NT 5.0,为了纪念特别的新千年,这个操作系统也被命名为Windows 2000。Windows 2000包含新的NTFS文件系统、EFS文件加密、增强硬件支持等新特性,向一直被unix系统垄断的服务器市场发起了强有力的冲击。最终硬生生地从ibm、hp、sun公司口中抢下一大块地盘。

Microsoft Windows 2000(起初称为Windows NT 5.0)是一个由微软公司发行于2000年12月19日的Windows NT系列的纯32位图形的视窗操作系统。Windows 2000是主要面向商业的操作系统。

Windows 2000有四个版本:

(1)Windows 2000 Professional 即专业版,用于工作站及笔记本电脑。它的原名就是Windows NT 5.0 Workstation。最高可以支持双处理器,最低支持64MB内存,最高支持2GB内存。

(2)Windows 2000 Server 即服务器版,面向小型企业的服务器领域。它的原名就是Windows NT 5.0 Server。最高可以支持4处理器,最低支持128MB内存,最高支持4GB内存。

(3)Windows 2000 Advanced Server 即高级服务器版,面向大中型企业的服务器领域。它的原名就是Windows NT 5.0 Server Enterprise Edition。最高可以支持8处理器,最低支持128MB内存,最高支持8GB内存。

(4)Windows 2000 Datacenter Server 即数据中心服务器版,面向最高级别的可伸缩性,可用性与可靠性的大型企业或国家机构的服务器领域。最高可以支持32处理器,最低支持256MB内存,最高支持64GB内存

2001年10月25日,Windows XP发布。Windows XP是微软把所有用户要求合成一个操作系统的尝试,和以前的windows桌面系统相比稳定性有所提高,而为此付出的代价是丧失了对基于DOS程序的支持。由于微软把很多以前是由第三方提供的软件整合到操作系统中,XP受到了猛烈的批评。这些软件包括防火墙、媒体播放器(Windows Media Player),即时通讯软件(Windows Messenger),以及它与Microsoft Pasport网络服务的紧密结合,这都被很多计算机专家认为是安全风险以及对个人隐私的潜在威胁。这些特性的增加被认为是微软继续其传统的垄断行为的持续。

Windows XP,或视窗XP是微软公司最新发布的一款视窗操作系统。Windows XP于2001年8月24日正式发布(RTM,Release to Manufacturing)。它的零售版于2001年10月25日上市。Windows XP原来的代号是Whistler。字母XP表示英文单词的“体验”(experience)。Windows XP的外部版本是2002,内部版本是5.1(即Windows NT 5.1),正式版的Build是5.1.2600。 微软最初发行了两个版本:专业版(Windows XP Professional)和家庭版(Windows XP Home Edition),后来又发行了媒体中心版(Media Center Edition)和平板电脑版(Tablet PC Editon)等。

Windows XP Professional

专业版除了包含家庭版的一切功能,还添加了新的为面向商业用户的设计的网络认证、双处理器支持等特性,最高支持2GB的内存。主要用于工作站、高端个人电脑以及笔记本电脑。

Windows XP Home Edition

家庭版的消费对象是家庭用户,用于一般个人电脑以及笔记本电脑。只支持单处理器;最低支持64MB的内存(在64MB的内存条件下会丧失某些功能),最高支持1GB的内存。

Windows Server 2003

2003年4月,Windows Server 2003发布;对活动目录、组策略操作和管理、磁盘管理等面向服务器的功能作了较大改进,对.net技术的完善支持进一步扩展了服务器的应用范围。

Windows Server 2003有四个版本:Windows Server 2003 Web服务器版本(Web Edition)、 Windows Server 2003标准版(Standard Edition)、 Windows Server 2003企业版(Enterprise Edition)以及Windows Server 2003数据中心版(Datacenter Edition)。Web Edition主要是为网页服务器(web hosting)设计的,而Datacenter是一个为极高端系统使用的。标准和企业版本则介于两者中间。

Windows Server 2003是目前微软最新的服务器操作系统。

一开始,该产品叫作“Windows .NET Server”,改成“Windows .NET Server 2003”,后最终被改成“Windows Server 2003”,于2003年3月28日发布,并在同年四月底上市。

Windows Server 2003有多种版本,每种都适合不同的商业需求:

Windows Server 2003 Web版

Windows Server 2003 标准版

Windows Server 2003 企业版

Windows Server 2003 数据中心版

Windows Vista

Windows Vista,是美国微软公司开发代号为Longhorn的下一版本Microsoft Windows操作系统的正式名称。它是继Windows XP和Windows Server 2003之后的又一重要的操作系统。该系统带有许多新的特性和技术。2005年7月22日太平洋标准时间早晨6点,微软正式公布了这一名字。

Beta 1:2005年7月27日

Beta 2:2005年11月16日

RC0:2006年3月17日

RTM:2006年6月28日

正式版本:2006年11月

服务器版本:2007年

Linux的由来和各种发行版本:

Linux最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(F)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Ros(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

下面给为选择一个Linux发行版本犯愁的朋友一些建议:

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。

如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!

如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。

如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。

如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。

什么是木马?

十六世纪的欧洲爱尔兰皇室酷爱打猎,在一个盛夏午后,皇室贵族们带着,骑着马和成群的猎兔犬在爱尔兰北部的小镇打猎。

巧遇在河边洗衣的萝丝**,当时的理查伯爵顿时一见钟情,被萝丝**的纯情和优雅气质深深吸引,同时萝丝**也对英俊挺拔的理查伯爵留下深刻的爱慕之意。

由于伯爵的坚持,为了让伯爵死心,皇室提出了一个当时几乎不可能实现的要求,希望萝丝**能在一夜之间缝制一件白色圣袍(当时没有穿白纱嫁娶的习惯),而要求是长度符合,从爱尔兰皇室专署教堂的证婚台前至教堂大门的白色长袍。

要求提出,理查伯爵心想心仪的婚事几乎已成幻灭.....但当时的萝丝**却不以为然,居然和整个小镇的居民们彻夜未眠,共同合作。

在天亮前缝出了一件精致且设计线条极为简约又不失华丽气息的16米白色圣袍,当这件白色圣袍于次日送至爱尔兰皇室时。

成员无疑不深受其感动并被极高情感的设计理念所打动,在爱尔兰国王及皇后的允诺下并完成了童话般的神圣婚礼。这就是全世界第一件婚纱的由来。

扩展资料:

发展趋势

20世纪初期,婚纱开始变短,同时还兼具舞裙的功能,能让新娘在婚礼的舞会上独具风。走入30年代,流行婚纱趋向紧身,令新娘更显娇媚动人。

70年代的婚纱,呈现出一种浓浓的怀旧情调,款式上又兴长下摆、多褶,花边层峦叠嶂,极富装饰性,以柔软的肉色布料为主。

90年代,婚纱设计打破传统的大转摆式裙设计,并吸取了流行时装的设计特色。上衣部分的裸露居多;裙子部分有旗袍式、超短裙式,还有一种实用的组合式婚纱,白天新娘到教堂或晚上宴请宾朋好友时能自行组合。

百度百科--婚纱

求C++ 网络编程最好的书籍 谢谢了

特洛伊木马(以下简称木马),英文叫做“Trojan house”,其名称取自希腊神话的特洛伊木马记。

它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。

所谓隐蔽性是指木马的设计者为了防止木马被发现,会用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。

所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。

从木马的发展来看,基本上可以分为两个阶段。

最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。

而后随着WINDOWS平台的日益普及,一些基于图形操作的木马程序出现了,用户界面的改善,使使用者不用懂太多的专业知识就可以熟练的操作木马,相对的木马入侵也频繁出现,而且由于这个时期木马的功能已日趋完善,因此对服务端的破坏也更大了。

所以所木马发展到今天,已经无所不用其极,一旦被木马控制,你的电脑将毫无秘密可言。

鉴于木马的巨大危害性,我们将分原理篇,防御与反击篇,资料篇三部分来详细介绍木马,希望大家对特洛伊木马这种攻击手段有一个透彻的了解。

原 理 篇

基础知识

在介绍木马的原理之前有一些木马构成的基础知识我们要事先加以说明,因为下面有很多地方会提到这些内容。

一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。

(1)硬件部分:建立木马连接所必须的硬件实体。 控制端:对服务端进行远程控制的一方。 服务端:被控制端远程控制的一方。 INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。

(2)软件部分:实现远程控制所必须的软件程序。 控制端程序:控制端用以远程控制服务端的程序。 木马程序:潜入服务端内部,获取其操作权限的程序。 木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。

(3)具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。 控制端IP,服务端IP:即控制端,服务端的网络地址,也是木马进行数据传输的目的地。 控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马 程序。

木马原理

用木马这种黑客工具进行网络入侵,从过程上看大致可分为六步(具体可见下图),下面我们就按这六步来详细阐述木马的攻击原理。

一.配置木马

一般来说一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两方 面功能:

(1)木马伪装:木马配置程序为了在服务端尽可能的好的隐藏木马,会用多种伪装手段,如修改图标 ,捆绑文件,定制端口,自我销毁等,我们将在“传播木马”这一节中详细介绍。

(2)信息反馈:木马配置程序将就信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址,IRC号 ,ICO号等等,具体的我们将在“信息反馈”这一节中详细介绍。

二.传播木马

(1)传播方式:

木马的传播方式主要有两种:一种是通过E-MAIL,控制端将木马程序以附件的形式夹在邮件中发送出 去, 收信人只要打开附件系统就会感染木马;另一种是软件下载,一些非正规的网站以提供软件下载为 名义, 将木马捆绑在软件安装程序上,下载后,只要一运行这些程序,木马就会自动安装。

(2)伪装方式:

鉴于木马的危害性,很多人对木马知识还是有一定了解的,这对木马的传播起了一定的抑制作用,这 是木马设计者所不愿见到的,因此他们开发了多种功能来伪装木马,以达到降低用户警觉,欺骗用户的目 的。

(一)修改图标

当你在E-MAIL的附件中看到这个图标时,是否会认为这是个文本文件呢?但是我不得不告 诉你,这也有可能是个木马程序,现在 已经有木马可以将木马服务端程序的图标改成HTML,TXT, ZIP等各种文件的图标,这有相当大的迷 惑性,但是目前提供这种功能的木马还不多见,并且这种 伪装也不是无懈可击的,所以不必整天提 心吊胆,疑神疑鬼的。

(二)捆绑文件

这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的 情况下 ,偷偷的进入了系统。至于被捆绑的文件一般是可执行文件(即EXE,COM一类的文件)。

(三)出错显示

有一定木马知识的人都知道,如果打开一个文件,没有任何反应,这很可能就是个木马程序, 木马的 设计者也意识到了这个缺陷,所以已经有木马提供了一个叫做出错显示的功能。当服务 端用户打开木 马程序时,会弹出一个如下图所示的错误提示框(这当然是的),错误内容可自由 定义,大多会定制成 一些诸如“文件已破坏,无法打开的!”之类的信息,当服务端用户信以 为真时,木马却悄悄侵入了 系统。

(四)定制端口

很多老式的木马端口都是固定的,这给判断是否感染了木马带来了方便,只要查一下特定的 端口就 知道感染了什么木马,所以现在很多新式的木马都加入了定制端口的功能,控制端用户可 以在---65535之间任选一个端口作为木马端口(一般不选以下的端口),这样就给判断 所感染木马类型带 来了麻烦。

(五)自我销毁

这项功能是为了弥补木马的一个缺陷。我们知道当服务端用户打开含有木马的文件后,木马 会将自己拷贝到WINDOWS的系统文件夹中(C:WINDOWS或C:WINDOWSSYSTEM目录下),一般来说 原木马文件 和系统文件夹中的木马文件的大小是一样的(捆绑文件的木马除外),那么中了木马 的朋友只要在近来 收到的信件和下载的软件中找到原木马文件,然后根据原木马的大小去系统 文件夹找相同大小的文件, 判断一下哪个是木马就行了。而木马的自我销毁功能是指安装完木 马后,原木马文件将自动销毁,这 样服务端用户就很难找到木马的来源,在没有查杀木马的工 具帮助下,就很难删除木马了。

(六)木马更名

安装到系统文件夹中的木马的文件名一般是固定的,那么只要根据一些查杀木马的文章,按 图索骥在系统文件夹查找特定的文件,就可以断定中了什么木马。所以现在有很多木马都允许控 制端用户自由定制安装后的木马文件名,这样很难判断所感染的木马类型了。

三.运行木马

服务端用户运行木马或捆绑木马的程序后,木马就会自动进行安装。首先将自身拷贝到WINDOWS的 系统文件夹中(C:WINDOWS或C:WINDOWSSYSTEM目录下),然后在注册表,启动组,非启动组中设置好木马 的触发条件 ,这样木马的安装就完成了。安装后就可以启动木马了,具体过程见下图:

(1)由触发条件激活木马

触发条件是指启动木马的条件,大致出现在下面八个地方:

1.注册表:打开HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下的五个以Run 和RunServices主键,在其中寻找可能是启动木马的键值。

2.WIN.INI:C:WINDOWS目录下有一个配置文件win.ini,用文本方式打开,在[windows]字段中有启动 命令 load=和run=,在一般情况下是空白的,如果有启动程序,可能是木马。 3.SYSTEM.INI:C:WINDOWS目录下有个配置文件system.ini,用文本方式打开,在[386Enh],[mic], [drivers32]中有命令行,在其中寻找木马的启动命令。

4.Autoexec.bat和Config.sys:在C盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都 需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名 文件上传 到服务端覆盖这两个文件才行。

5.*.INI:即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马 启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。

6.注册表:打开HKEY_CLASSES_ROOT文件类型\shellopencommand主键,查看其键值。举个例子,国产 木马“冰河”就是修改HKEY_CLASSES_ROOT xtfileshellopencommand下的键值,将“C :WINDOWS NOTEPAD.EXE %1”该为“C:WINDOWSSYSTEMSYXXXPLR.EXE %1”,这时你双 击一个TXT文件 后,原本应用NOTEPAD打开文件的,现在却变成启动木马程序了。还要说明 的是不光是TXT文件 ,通过修改HTML,EXE,ZIP等文件的启动命令的键值都可以启动木马 ,不同之处只在于“文件类型”这个主键的差别,TXT是txtfile,ZIP是WINZIP,大家可以 试着去找一下。

7.捆绑文件:实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具 软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使 木马被删 除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。

8.启动菜单:在“开始---程序---启动”选项下也可能有木马的触发条件。

(2)木马运行过程

木马被激活后,进入内存,并开启事先定义的木马端口,准备与控制端建立连接。这时服务端用 户可以在MS-DOS方式下,键入NETSTAT -AN查看端口状态,一般个人电脑在脱机状态下是不会有端口 开放的,如果有端口开放,你就要注意是否感染木马了。下面是电脑感染木马后,用NETSTAT命令查 看端口的两个实例:

其中①是服务端与控制端建立连接时的显示状态,②是服务端与控制端还未建立连接时的显示状态。

在上网过程中要下载软件,发送信件,网上聊天等必然打开一些端口,下面是一些常用的端口:

(1)1---之间的端口:这些端口叫保留端口,是专给一些对外通讯的程序用的,如FTP使用21, SMTP使用25,POP3使用110等。只有很少木用保留端口作为木马端口 的。

(2)1025以上的连续端口:在上网浏览网站时,浏览器会打开多个连续的端口下载文字,到本地 硬盘上,这些端口都是1025以上的连续端口。

(3)4000端口:这是OICQ的通讯端口。

(4)6667端口:这是IRC的通讯端口。 除上述的端口基本可以排除在外,如发现还有其它端口打开,尤其是数值比较大的端口,那就要怀疑 是否感染了木马,当然如果木马有定制端口的功能,那任何端口都有可能是木马端口。

四.信息泄露:

一般来说,设计成熟的木马都有一个信息反馈机制。所谓信息反馈机制是指木马成功安装后会收集 一些服务端的软硬件信息,并通过E-MAIL,IRC或ICO的方式告知控制端用户。下图是一个典型的信息反 馈邮件。

从这封邮件中我们可以知道服务端的一些软硬件信息,包括使用的操作系统,系统目录,硬盘分区况, 系统口令等,在这些信息中,最重要的是服务端IP,因为只有得到这个参数,控制端才能与服务端建立 连接,具体的连接方法我们会在下一节中讲解。

五.建立连接:

这一节我们讲解一下木马连接是怎样建立的 。一个木马连接的建立首先必须满足两个条件:一是 服务端已安装了木马程序;二是控制端,服务端都要在线 。在此基础上控制端可以通过木马端口与服 务端建立连接。为了便于说明我们用图示的形式来讲解。

如上图所示A机为控制端,B机为服务端,对于A机来说要与B机建立连接必须知道B机的木马端口和IP地 址,由于木马端口是A机事先设定的,为已知项,所以最重要的是如何获得B机的IP地址。获得B机的IP 地址的方法主要有两种:信息反馈和IP扫描。对于前一种已在上一节中已经介绍过了,不再赘述,我们 重点来介绍IP扫描,因为B机装有木马程序,所以它的木马端口7626是处于开放状态的,所以现在A机只 要扫描IP地址段中7626端口开放的主机就行了,例如图中B机的IP地址是202.102.47.56,当A机扫描到 这个IP时发现它的7626端口是开放的,那么这个IP就会被添加到列表中,这时A机就可以通过木马的控 制端程序向B机发出连接信号,B机中的木马程序收到信号后立即作出响应,当A机收到响应的信号后, 开启一个随即端口1031与B机的木马端口7626建立连接,到这时一个木马连接才算真正建立。值得一提 的要扫描整个IP地址段显然费时费力,一般来说控制端都是先通过信息反馈获得服务端的IP地址,由于 拨号上网的IP是动态的,即用户每次上网的IP都是不同的,但是这个IP是在一定范围内变动的,如图中 B机的IP是202.102.47.56,那么B机上网IP的变动范围是在202.102.000.000---202.102.255.255,所以 每次控制端只要搜索这个IP地址段就可以找到B机了。

六.远程控制:

木马连接建立后,控制端端口和木马端口之间将会出现一条通道,见下图

控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远 程控制。下面我们就介绍一下控制端具体能享有哪些控制权限,这远比你想象的要大。

(1)窃取密码:一切以明文的形式,*形式或缓存在CACHE中的密码都能被木马侦测到,此外很多木马还 提供有击键记录功能,它将会记录服务端每次敲击键盘的动作,所以一旦有木马入侵, 密码将很容易被窃取。

(2)文件操作:控制端可藉由远程控制对服务端上的文件进行删除,新建,修改,上传,下载,运行,更改属 性等一系列操作,基本涵盖了WINDOWS平台上所有的文件操作功能。

(3)修改注册表:控制端可任意修改服务端注册表,包括删除,新建或修改主键,子键,键值。有了这 项功能控制端就可以禁止服务端软驱,光驱的使用,锁住服务端的注册表,将服务端 上木马的触发条件设置得更隐蔽的一系列高级操作。

(4)系统操作:这项内容包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标, 键盘,监视服务端桌面操作,查看服务端进程等,控制端甚至可以随时给服务端发送信 息,想象一下,当服务端的桌面上突然跳出一段话,不吓人一跳才怪

木马和都是一种人为的程序,都属于电脑,为什么木马要单独提出来说内?大家都知道以前的电脑的作用,其实完全就是为了搞破坏,破坏电脑里的资料数据,除了破坏之外其它无非就是有些制造者为了达到某些目的而进行的威慑和敲诈勒索的作用,或为了炫耀自己的技术. "木马"不一样,木马的作用是赤裸裸的偷偷监视别人和盗窃别人密码,数据等,如盗窃管理员密码-子网密码搞破坏,或者好玩,偷窃上网密码用于它用,游戏帐号,股票帐号,甚至网上银行帐户等.达到别人隐私和得到经济利益的目的.所以木马的作用比早期的电脑更加有用.更能够直接达到使用者的目的!导致许多别有用心的程序开发者大量的编写这类带有偷窃和监视别人电脑的侵入性程序,这就是目前网上大量木马泛滥成灾的原因.鉴于木马的这些巨大危害性和它与早期的作用性质不一样,所以木马虽然属于中的一类,但是要单独的从类型中间剥离出来.独立的称之为"木马"程序.

一般来说一种杀毒软件程序,它的木马专杀程序能够查杀某某木马的话,那么它自己的普通杀毒程序也当然能够杀掉这种木马,因为在木马泛滥的今天,为木马单独设计一个专门的木马查杀工具,那是能提高该杀毒软件的产品档次的,对其声誉也大大的有益,实际上一般的普通杀毒软件里都包含了对木马的查杀功能.如果现在大家说某某杀毒软件没有木马专杀的程序,那这家杀毒软件厂商自己也好象有点过意不去,即使它的普通杀毒软件里当然的有杀除木马的功能.

还有一点就是,把查杀木马程序单独剥离出来,可以提高查杀效率,现在很多杀毒软件里的木马专杀程序只对木马进行查杀,不去检查普通库里的代码,也就是说当用户运行木马专杀程序的时候,程序只调用木马代码库里的数据,而不调用代码库里的数据,大大提高木马查杀速度.我们知道查杀普通的速度是比较慢的,因为现在有太多太多的.每个文件要经过几万条木马代码的检验,然后再加上已知的差不多有近10万个代码的检验,那速度岂不是很慢了.省去普通代码检验,是不是就提高了效率,提高了速度内? 也就是说现在好多杀毒软件自带的木马专杀程序只查杀木马而一般不去查杀,但是它自身的普通查杀程序既查杀又查杀木马!

”木马启动方式揭秘

大家所熟知的木马程序一般的启动方式有:加载到“开始”菜单中的“启动”项、记录到注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]项中,更高级的木马还会注册为系统的“服务”程序,以上这几种启动方式都可以在“系统配置实用程序”(在“开始→运行”中执行“Msconfig”)的“启动”项和“服务”项中找到它的踪迹。

另一种鲜为人知的启动方式,是在“开始→运行”中执行“Gpedit.msc”。打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,如图所示,单击“确定”按钮就完成了。

添加需要启动的文件面

重新启动计算机,系统在登录时就会自动启动你添加的程序,如果刚才添加的是木马程序,那么一个“”木马就这样诞生了。因为用这种方式添加的自启动程序在系统的“系统配置实用程序”是找不到的,同样在我们所熟知的注册表项中也是找不到的,所以非常危险。

通过这种方式添加的自启动程序虽然被记录在注册表中,但是不在我们所熟知的注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]项内,而是在册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项。如果你怀疑你的电脑被种了“木马”,可是又找不到它在哪儿,建议你到注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项里找找吧,或是进入“组策略”的“在用户登录时运行这些程序”看看有没有启动的程序。

特洛伊木马NetBus v.1.60的中文说明

概 述

此程序是一个遥控管理工具,更是一个在局域网或在全球因特网上同朋友逗乐的软件.

安 装

NetBus包含服务器和客户机部分,服务器必须安装在你想逗乐的人的计算机上.客户机属你掌握,它是控

制目标计算机的好程序.

把NetSever服务器,Patch.exe(可更名),放入目标计算机的任意位置并运行它,缺省时安装在Windows中,

以更开机时自动运行. 把NetSever客户机,装在自己的计算机里.开始NetBus,联结你选择的域名或(IP地

址);如果Patch已在你联结的目标计算机中已运行. 让我们开始逗乐!

注意:你看不到Patch在运行-它Windows开始时自动运行,并隐藏.

Netbus和Patch使用TCP/IP协议.因此,你的地址有域名或IP号.NetBus会用Connect按钮把你和某人联上.

功 能

*弹开/关闭CD-ROM一次或间隔性自动开关.

*显示所选择的图象,如果你没有图像文件的路径,可在Pacth的目录中找.支持BMP和JPG格式.

*交换鼠标按钮-鼠标右键变成鼠标左键的功能.

*开始所选择的应用程序.

*播放所选择的声音文件, 如果你没有声音文件的路径,可在Pacth的目录中找.支持WAV格式.

*点击所选的鼠标坐标,你甚至可你的鼠标在目标计算机中运行.

*在银屏上显示对话框,回答会返回你的计算机中.

*关闭系统,删除用户记录等.

*用缺省网络浏览器,浏览所选择的URL.

*发送键盘输入的信息到目标计算机中的活动应用程序中!

*监视对方的键盘输入的信息,并发回到你的计算机.

*清屏!(连接速度慢时禁用).

*获取目标计算机中的信息.

*上载你的文件到目标计算机中!用此功能,可上载Patch的最新版本.

*增大和减少声音音量.

*记录麦克风的声音,并将声音返回.

*按一次键每次有声音.

*下载和删除目标中的任何文件.你能下载/删除在目标计算机硬盘中所选择的文件.

*键盘禁用功能.

*密码保护管理.

*显示,死机和集中系统中的窗囗.

上述功能一些选项在执行时,(逻辑排异),可能会延迟几秒.

连 接

Connect按钮有个很好的特点,它能扫描NetBus计算机中的IP地址.一旦连接它会停止扫描.IP扫描的

参数是xx.xx.xx.xx+xx,等.

127.0.0.1+15 将扫描IP地址的范围是127.0.0.1到 127.0.0.16

C++程序设计之四书五经(上篇)

C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使

其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。

然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈

反弹,而在高阶程序设计领域,Ja和C#正在不断蚕食着C++的地盘。也许C++与C合为一体

永远都是一个梦想,也许Ja和C#的狂潮终将迫使C++回归本位 — 回到它有着根本性优势

的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计以及数值

科学计算等。果真如此,我认为这未尝不是一件好事。

C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序

库以及书籍等,数不胜数。文题“C++程序设计之四书五经”一个不太严格的含义是:C++

程序设计之四书 ⅹ 五经。是的,在本文(及其下篇)中,我将分门别类推荐20多本C++好

书,你可以根据自己的需要选读。

TCPL和D&E

TCPL和D&E分别是《The C++ Programming Language》和《The Design and Evolution of

C++》的简称,均出自Bjarne Stroustrup之手。我将它们单列出来,首先是因为Bjarne是

C++语言的创建者,然后是因为比“首先”那个原因更重要的原因:这两本书是C++领域毋

庸置疑的杰作。说它们是C++语言圣经,并不为过。

Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition)

《C++程序设计语言(特别版)》,机械工业出版社

《C++程序设计语言(特别版)(英文影印版)》,高等教育出版社

迄今为止,TCPL是除了C++标准文献之外最权威的C++参考手册。和大多数人的看法不大一

样,我认为Bjarne的文字语言并不逊色于他所创建的程序语言,至少我喜欢这种学院气息

浓厚的作品。本书对C++语言的描述轮廓鲜明、直截了当。它从C++语言创建者的角度来观

察C++,这是任何别的作者和书籍做不到的 — 没有任何人比Bjarne自己更清楚该怎么来使

用C++。

这是一本严肃的著作,以中、高级C++开发人员为目标读者。如果你是一名有经验的C++程

序员,需要了解更加本质的C++知识,本书正是为你而写。它不是那种让你看了会不断窃喜

的小书,需要用心体会,反复咀嚼。在阅读过程中,请特别留心Bjarne先生强调了什么,

又对什么一语带过。我个人比较喜欢这本书的第四部分“使用C++做设计”,这样的内容在

类似的程序设计语言书籍中很难看到 — 我甚至认为Bjarne应该将这部分独立出来单独写

一本书。

Bjarne Stroustrup, The Design and Evolution of C++

《C++语言的设计和演化》,机械工业出版社

《C++语言的设计和演化(英文版)》,机械工业出版社

D&E是一本关于C++语言设计原理、设计决策和设计哲学的专著。它清晰地回答了C++为什么

会成为今天这个样子而没有变成另外一种语言。作为C++语言的创建者,Bjarne淋漓尽致地

展示了他独到而深刻的见解。除了广受赞誉的语言特性外,Bjarne没有回避那些引起争议

的甚至被拒绝的C++特性,他一一给出了逻辑严密、令人信服的解释。内容涵盖C++的史前

时代、带类的C、C++的设计规则、标准化、库、内存管理、多重继承、模板等,对包括异

常机制、运行时类型信息和名字空间在内的重要的新特性都分别进行了深入探讨。每一名

C++程序员都应该可以从Bjarne的阐释中加深对手中这门语言的认识。

需要再次提醒的是,这两本书知识浓缩,信息量极大,请不要错过Bjarne每一句看似漫不

经意的话。

入门教程

学习任何一门语言都需要一个从入门到精通、从新手到高手循序渐进的过程。不过,对于

一个所谓的新手而言,究竟是一个完完全全的新手,还是一个熟悉某种别的语言的“新手

”,甚至是在某种语言程序设计领域已经颇有建树的高手,很难一概而论?不同的C++新手

需要不同的入门书籍。

Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Examp

le

《Accelerated C++中文版》,中国电力出版社

和市面上大多数C++教程不同,本书不是从“C++中的C”开始讲解,而是始于地道的C++特

性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件

所依赖的基础概念。另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲

解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只

是用作演示语言特性和标准库用法的工具。

作者在C++领域的编程实践、教育培训以及技术写作方面都是世界一流水准。我喜欢这种大

量使用标准库和C++语言原生特性的清新的写作风格。在这本教材面前,几乎迄今为止的所

有C++教材都黯然失色或显得过时。尽管这本教材也许对于国内的高校教育来说有些前卫,

不过我仍然极力向我的同行们推荐。顺带一提,在Bjarne和我最近的一封通信里,他这样

评价本书:对于有经验的程序员学习C++而言,这本书可能是世界上最好的一本。

Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition)

《C++ Primer (3RD)中文版》,中国电力出版社

这本书的名字多少有点让人误解。尽管作者声称这本书是为C++新手而写,但无论是它的厚

度还是讲解的深度都暴露了似乎并非如此。也许说它是一本“从入门到精通”的C++教程会

更合适一些。我个人认为它并不适合完全不懂C++的初学者 — 在阅读这本书之前,你至少

应该先有那么一点C或C++的背景知识,或者至少要具有一些其他语言的编程经验。

尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学

习教程。事实上,如果一名C++初学者能够扎扎实实地读完本书并对照《C++ Primer Answ

er Book》完成全部习题的话,他的水平肯定可以进入职业C++程序员的行列。我个人认为

,即使你已经拥有了TCPL,这本书依然有拥有的价值,因为在许多方面它比TCPL来得更详

细、更易懂。

Stanley B. Lippman, Essential C++

《Essential C++中文版》,华中科技大学出版社

《Essential C++(影印版)》,中国电力出版社

可以不太严格地认为这本书是《C++ Primer》的精简版。本书一一讲述了C++中最具代表性

的主题,包括过程式编程、泛型编程、基于对象编程、面向对象编程、模板编程以及异常

处理等。Stanley将门槛调低到“具有其他语言程序设计经验”的C++新手所能接受的最基

本的层次,使他们能够迅速开始使用C++编程而又免于阅读《C++ Primer》那样的大部头。

它以实例引导学习,力图使读者在最短的时间内把握C++的精粹。

也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚,但这

本小书不可思议地做到了这一点。我个人非常喜欢这种满是技术、简明扼要并且“有话好

好说”的书。这本书同样具有一个明显的风格:所有程序例子全部用标准库组件,让人

耳目一新。

以上三本书都不是为了完完全全的编程新手而写。完全的C++编程新手可以阅读Francis G

lassborow的新书(尚未出版):《A Beginners Introduction to Computer Programmin

g : You Can Do It!》。这也是Bjarne的推荐。Francis Glassborow是ACCU,多年来

他对几乎每一本C++经典名著评头论足,他自己的这一本自然会引起C++社群的极大兴趣。

高效、健壮编程

两年前我在负责一个省级电力调度系统项目时编写了一个网关程序,它从SCADA系统获取电

力实时信息。通讯接口用了不常用的数据库直连方式(这个网关程序一端连接SQL Serv

er 6.5,另一端连接Oralce 8.1.6)。由于实时测点近万,每次将全部取样更新或插入一

遍显然是低效的。我在网关程序里建了一个内存库,获取到的数据首先在其中进行比较,

然后决定是否更新物理数据库(同时还做了别的更复杂的事情……),从而在效率和

占用两方面达到了预期效果。

这个程序一直运行得很好,但在离开现场之后的某一天,系统管理员打来电话,说大概因

为网络故障等原因,有时这个网关程序会崩溃掉 — 它自己崩掉也就罢了,问题是它还会

把Windows 2000 Advanced Server搞成“蓝屏”!坦白地说,我还从来没看过哪个非蓄意

的程序有这个“能耐”。由于当时正忙于另外一个大项目,无法去现场调试,最后只有凭

经验对内存库代码小心翼翼地封装以异常处理代码(同时也做了一些别的修改……)。这

样,虽然没有彻底解决问题,但程序终究不再死得那么难看了。

在这儿讲这么一段花絮有什么意思呢(当初为那个可怕的bug朝思暮想时我可不认为这是一

个“花絮”)?我想说的是,对于任何软件而言,离开强健,效率也就无从谈起。而对于

C++程序员来说,也许编写一个高效的程序并不难,但要编写一个需要7 ⅹ 24小时持续运

行的服务端软件就不是那么容易了,需要考虑许多因素,有时这些因素甚至远远超出C++语

言和开发工具的本身。作为一名开发实际项目软件的程序员,并非非得自己碰钉子才能积

累经验,只要我们足够虚心,别人的经验往往都是我们很好的借鉴。鉴于此,我推荐以下

几本书供你选读,它们可以让你从强健和效率两方面受益(当然了,它们涵盖的内容远不

限于异常处理J)。

Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Des

ign (2nd Edition)

Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Des

igns

《Effective C++中文版》,华中科技大学出版社

《More Effective C++中文版》,中国电力出版社

《Effective C++(影印版)》,中国电力出版社

如果说《Effective C++》主要讨论C++中一些相对基础的概念和技巧的话,那么《More E

ffective C++》则着重探讨了包括异常处理在内的一系列高级技术。与前者相比,后者具

有两大主要区别:其一,它包含很多时新的标准C++的内容;第二,它讨论的主题倾向于“

战略化”而非“战术化”,并且讨论得更深入、更彻底。尤其是对虚析构函数、智能指针

、引用计数以及代理类(proxy classe)等技术和模式论述的深入程度,让人很难想象是

出现于这样的一本小书之中。

游刃有余的技术,高超的写作技巧,Scott无疑是世界上最优秀的C++技术作家之一。在简

洁、清晰、易读等方面,这两本书都卓尔不群。总之,Scott提供的这85个可以改善编程技

术和设计思维的方法,都是中、高级C++程序员必备的技能。我强烈推荐这两本书(实际上

还有一本,稍后就会看到)。

Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, an

d Solutions

Herb Sutter, More Exceptional C++: 40 New Engineering Puzzles, Programming Pro

blems, and Solutions

《Exceptional C++中文版》,中国电力出版社

《More Exceptional C++中文版》,华中科技大学出版社

你自认为是一名C++语言专家吗?读一读ISO C++标准委员会秘书长的这两本书再回答。在

这两本书中,Herb用了“问答”的方式指导你学习C++语言特性。对于每一个专题,Her

b首先合理地设想出你的疑问和困惑,接着又猜测出你十有八九是错误的解答,然后给你以

指点并提出最佳解决方案,最后还归纳出解决类似问题的普适性原则。

这两本书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本

书,读起来很费脑筋 — 我个人认为它们要比Scott的书难懂得多。若要研习这薄薄的两本

书所包含的知识,至少需要花费数月的时间!(在Scott的荐序中,他坦陈不止一次陷入G

otW问题的陷阱,你应该知道这意味着什么)对于语言细节的深究有什么好处呢?尽管在大

多数情况下,我们不必关心C++代码幕后的动作,然而当我们不得不关心时,这两本书可以

为我们提供很好的线索,因为它们揭示了C++语言中微妙而又至关重要的东西。

Stephen C. Dewhurst, C++ Gotchas: Avoiding Common Problems in Coding and Desig

n

《C++程序设计陷阱》,中国青年出版社

Stephen的理论素养和实践经验注定这是一本值得一读的好书。Stephen曾经是贝尔实验室

中第一批C++使用者。他已经使用C++成功解决了包括编译器、证券交易、电子商务以及嵌

入式系统等领域中的问题。本书汇集了作者来自开发一线的99条编程真知灼见,洞悉它们

,你可以避免几乎所有常见的C++设计和编程问题。

我甚至认为,对于C++编程菜鸟而言,阅读这本书会比阅读Scott和Herb的书更能轻松而立

竿见影地获得更大的提高。我个人很喜欢这本书的写作风格 — Stephen的许多观点看似极

端却无可辩驳。当然了,这种自信(以及冷幽默)来自于作者深厚的技术素养,而非自大

的偏执。

除了上面推荐的书籍外,Dov Bulka和 Did Mayhew合著的《Efficient C++: Performan

ce Programming Techniques》(《提高C++性能的编程技术》,清华大学出版社)也值得

一看。这本超薄小书聚焦于高性能C++应用程序开发。两位作者都是IBM软件专家,都工作

于对性能要求极高的系统构建领域,本书是他们的经验之谈。也有人不喜欢这本书,因为

它花了不少的篇幅讲述和C++无关的东西,我却恰恰因为这一点而对这本书产生好感,正是

这些东西让我开阔了眼界。

模板和泛型编程

模板和基于模板的泛型编程无疑是当今发展最活跃的C++程序设计技术。模板的第一个革命

性的应用是STL,它将模板技术在泛型容器和算法领域的运用展现得淋漓尽致,而Boost、

Loki等现代程序库则将模板技术的潜能不断发挥到极致。在模板和泛型编程领域,我推荐

以下两本重量级著作:

Did Vandevoorde, Nicolai M. Josuttis, C++ Templates: The Complete Guide

《C++ Templates全览(繁体版)》,台湾碁峰资讯股份有限公司

《C++ Templates全览(简体版)》,人民邮电出版社

有一种老套的赞美一本书的手法,大致是“没有看过这本书,你就怎么怎么地”,这里面

往往夸张的成分居多。不过,倘若说“没有看过《C++ Templates: The Complete Guide》

,你就不可能精通C++模板编程”,那么这个论断对于世界上绝大多数C++程序员来说是成

立的。

这本书填补了C++模板书籍领域由来已久的空白。此前,上有《Modern C++ Design》这样

的专注于模板高级编程技术和泛型模式的著作,下有《The C++ Standard Library》这样

的针对特定模板框架和组件的使用指南。然而,如对模板机制缺乏深入的理解,你就很

难“上下”自如。鉴于此,我向每一位渴望透彻理解C++模板技术的朋友推荐这本书。

这本书在内地、台湾各有一个译本,但出自不同的译者之手。当你看到这篇文章时,两个

译本应该都已经上市,对于读者来说当然也就多了一种选择。侯捷先生个人网站上开放了

繁体译本大部分章节,不妨先睹为快。

Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Pattern

s Applied

《C++设计新思维:泛型编程与设计模式之应用》,华中科技大学出版社

《C++设计新思维(影印版)》,中国电力出版社

你自认为是C++模板编程高手吗?请看过这本书再回答J 这是一本出自天才之手令人敬畏的

杰作。泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。

这本书共分为两大部分,第一部分讨论了 Loki程序库用的基础技术以及一些高级语言特

性,包括基于策略的类设计、模板局部特化、编译期断言、Typelist以及小型对象分配技

术等。第二部分则着重介绍了Loki中的重要组件和泛型模式技术,包括泛化仿函数(Gene

ralization Functor)、单件(Singleton)、智能指针、对象工厂(Object Factory)、

抽象工厂(Abstract Factory)、访问者(Visitor)以及多方法(Multimethods)等。每

一种技术都让人大开眼界,叹为观止。

在C++的学习方面,过犹不及往往成了不求甚解的借口。然而,面向对象并非C++的全部,

模板和泛型编程亦占半壁江山。对于“严肃”的C++程序员而言,及时跟进这项早经例证的

成功技术,不失为明智之举。

结语

这些著作是如此大名鼎鼎,也许根本不缺我一个推荐。然而,纵然C++程序员队伍的发展壮

大速度不像其他更时髦的语言那样迅速,新人进总是多于旧人出。除了热忱地欢迎新人,

我个人认为到了对C++书籍进行“盘点”的时候了,并且希望这样的“盘点”有益于感兴趣

的读者。请保持耐心和宽厚。在下篇中,我将继续介绍标准库、网络编程以及其他方面的

C++好书。有好书相伴,这个冬天不会冷。

C++程序设计之四书五经(下篇)

我在上篇中“盘点”了TCPL和D&E以及入门教程、高效和健壮编程、模板和泛型编程等方面

共十几本C++好书。冬去春来,让我们继续C++书籍精彩之旅J

标准库

当我还在研究院工作时,与同院另外两家研究所合作开发过一个大型水利枢纽调度集成项

目。我们三家软件系统之间都要相互通信。在调试通讯模块时,细心的客户(一名好学的

系统管理员)发现对于同一通信规约的解释代码,我的不超过30行,而对方的则超过了15

0行且很难看懂。这位系统管理员很纳闷,我说大家编程风格和习惯不一样,我使用了标准

库,而他使用了传统C编程风格以及他所习惯的另外一些技术。

别误会!我绝无贬低这位合作伙伴的意思。事实上,我对那些真正有着深厚的C编程功力的

程序员常常怀有钦佩之心。毕竟,C++能有今天的成功在很大程度上缘于它深深地植根于C

。作为一名C++程序员,倘若不熟悉C++中的C,我往往会认为他的基本功是不扎实的,他的

技术底气是不足的。

不过话又说回来,C++是一种多范型(paradigm)编程语言,具体用哪种编程风格,专业

程序员应该知道视具体情况而定。作为一名经常需要在现场做即兴开发的项目负责人,为

了短平快地解决当务之急,我习惯尽量用现有的库(和组件)。效率(以及强健性)久

经验证的C++标准库已经摆在那儿了,何乐而不用呢?

Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference

《C++标准程序库:自修教程与参考手册》,华中科技大学出版社

这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全。它在完备性、细

致性以及精确性方面都是无与伦比的。本书详细介绍了每一标准库组件的规格和用法,内

容涵盖包括流和本地化在内的整个标准库而不仅仅是STL。正如本书副标题所示,它首先适

合作为教程阅读,尔后又可用作参考手册。

浅显易懂的写作风格使得这本书非常易读。如果你希望学习标准库的用法并尽可能地发挥

其潜能,那你必须拥有这本书。正如网络上所言,这本书不仅仅应该摆在你的书橱中,更

应该放到你的电脑桌上。我向每一位职业C++程序员强烈推荐。

Angelika Langer, Klaus Kreft, Standard C++ IOStreams and Locales: Advanced Pro

grammer's Guide and Reference

《标准C++输入输出流与本地化》,人民邮电出版社

C++标准库由STL、流和本地化三部分构成。关于STL的书市面上已经有不少,但罕见流和本

地化方面的专著。本书是这两个领域中最优秀的一本,迄今为止没有任何一本书比这一本

更全面详尽地讨论了流和本地化。如果你不满足于停留在“会用”流库的层面,千万不要

错过它。

2001年夏天,草翻阅过这本书的中文版,从内容到包装都给我留下了比较深刻的印象

— 不过负面的居多一些。2003年秋天,无意中得知某网络书店正以超低价格甩卖这本书

的中译本,情不自禁,一阵唏嘘。

Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Stand

ard Template Library

《Effective STL(影印版)》,中国电力出版社

读完Scott 的《Effective C++》和《More Effective C++》的中译本之后,我一直期待这

本书的中文版。我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完成了

这本书的翻译工作,可惜至今市面上仍不得见。的是,我们可以看到它的原版。

本书是使用STL的程序员必读之作。在这本书中,Scott向我们讲述STL容器和算法的工作机

制以及如何以最佳方式使用它们。和Scott的其他作品一样,这本书的写作风格清晰、精确

,具有极佳的可读性。看过这本书以后,我想你也许会和我以及其他C++程序员一样产生这

样的想法:Scott什么时候会写出一本“More Effective STL”?

关于STL,我还提醒你留心Matthew H. Austern的《Generic Programming and the STL:

Using and Extending the C++ Standard Template Library》(《泛型编程与STL》,中

国电力出版社)。这本书散发着浓厚的学院气息。Andrew Koenig和Barbara Moo在《Acce

lerated C++: Practical Programming by Example》一书末尾郑重推荐另外两本进阶好书

(除了他们自己的《Ruminations on C++》外),其中一本是TCPL,另外一本就是本书!

网络编程

在网络编程时代,C++应该扮演着怎样的角色,让ACE(Adaptive Communications Enviro

nment)来告诉你。

Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 1: Mast

ering Complexity with ACE and Patterns

Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 2: Syst

ematic Reuse with ACE and Frameworks

《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社

《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社

用C++进行企业级网络编程,目前ACE(以及这两本书)是一个值得考虑的选择。ACE是一

个面向对象、跨平台、开放源码的网络编程框架,目标在于构建高性能网络应用和中间件

。Douglas是ACE的创始人,Stephen则已为ACE提供了数年的技术支持和顾问服务,两位都

是ACE社群(是的,ACE的影响和实际应用的程度已经形成了一个社群)的专家。

ACE并不单单被大学和研究所追捧,它已经被成功地应用于世界上成千上万个商业应用中。

在电信、宇航、医药和财经领域的网络系统中,ACE已经并继续发挥着重要的作用。如果你

准备开发高性能通讯系统,你应该考虑考虑这一汇集世界顶尖专家智慧的成果。

除了使用C++面向对象设计技术和模板等高级语言特性外,ACE还运用了大量的模式。《C+

+网络编程》卷1和卷2并不仅仅教你关于ACE的方方面面,它还会教给你模式和通用框架设

计等高级技术等。所以,作为一名中、高级C++程序员,即使你很少进行正儿八经的C++网

络程序设计,阅读这两本书同样可以从中受益。

是的,并非所有网络应用都要使用Web服务器(以及其他应用服务器)和重量级组件模型,

换个思路,它们或许也可以从轻量级的ACE组件中获益。

杂项

以下这几本书之所以被列入“杂项”单元,只是因为我没有考虑出更合适的归类方法,它

们和上面的书籍一样,值得一读。

Bruce Eckel, Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edit

ion)

Bruce Eckel, Thinking in C++, Volume 2: Practical Programming (Second Edition)

《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社

《C++编程思想(英文版 第2版)》,机械工业出版社

《Thinking in C++》的第1版于1996年荣获“软件研发”杂志评选的图书震撼大奖。最新

推出的第2版对内容进行了大幅改写和调整,以反映C++标准化带来的影响以及近几年面向

对象领域最新研究和实践成果。“输入输入流”、“多重继承”、“异常处理”和“运行

时类型识别”等高级主题连同C++标准化以后增加的一些内容则被放入第二卷中。Bruce是

一名经验丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他的作品比那些“

玩票”的技术人员写的东西更能吸引读者。事实上,在同类图书中,对于大多数读者而言

,这本书的可读性要超过TCPL和《C++ Primer》。顺带一提,访问作者的站点,你可以先

睹第二卷的风。

Andrew Koenig, Barbara E. Moo, Ruminations on C++: A Decade of Programming Ins

ight and Experience

《C++沉思录》,人民邮电出版社

Andrew是世界上屈指可数的C++专家。这是一本关于C++编程思想和程序设计技术而非语言

细节的著作。如果你已经具有一定的基础,这本书将教你在进行C++编程时应该怎样思考,

应该如何表达解决方案。整本书技术表达透彻,文字通俗易懂。Bjarne这样评价这本书:

本书遍布“C++是什么、C++能够做什么”的真知灼见。

Stanley B. Lippman, Inside The C++ Object Model

《深度探索C++对象模型》,华中科技大学出版社

《深度探索C++对象模型(影印版)》,中国电力出版社

从编译器的角度观察C++可以使你知其然并知其所以然。本书探讨了大量的C++面向对象程

序设计的底层运作机制,包括构造函数、函数、临时对象、继承、虚拟、模板的实例化、

异常处理、运行期类型识别等,另外还介绍了一些在实现C++对象模型过程中做出的权衡折

衷。喜

热门文章