Monthly Archives: October 2007

再论Vista/Longhorn的声音问题

早从Vista还叫Longhorn的那段时间,不少和我一样喜欢倒腾测试版操作系统的小白们就发现了Vista/Longhorn Server的声音跑得不是那么顺畅,容易出现暴音和跳音。当初我个人就写了一篇文章大致推断了一下问题并给出了个临时可用但不怎么好用的解决方案,见这篇:http://dawnh.net/windows/127/windows-vista-sound-issue/
现在Vista都Release这么久了,Longhorn也命名为Windows Server 2008等着明年上桌了,这个问题在几次版本更新后表面上似乎给解决了,实际上还一直存在,只是没那么明显而已。

64位Windows操作系统手工为驱动程序添加数字签名

交作业的文章,其实装系统当天就搞定这个问题了,一直懒得写,现在也懒,流水账记录之。
故障现象:Dscaler在系统升级为64位Windows 2008后不工作。
原因:Dscaler的程序所调用的64位驱动不带数字签名,而MS自从Vista开始在64位系统加载内核驱动要强制签名了。
解决方案:自己伪造签名。
过程:
1,打开系统的testsigning模式,使得非权威CA发放的签名可以使用
bcdedit /set testsigning on
2,做一个签名证书出来。
MakeCert –r –pe –ss PrivateCertStore –n CN=dawnh.net(test) dawnh.cer
3,把证书加进本机信任根CA中去。
CertMgr -add dawnh.cer -s -r localMachine root
4,给驱动签名。
Signtool sign /v /s PrivateCertStore /n dawnh.net(test) /t http://timestamp.verisign.com/scripts/timestamp.dll dsdrv4.sys
 说明:
1,dsdrv4.sys就是所要签名的驱动文件名称了,Dscaler默认安装的是32位的,64位的要单独下载。
2,MakeCert.exe,CertMgr.exe和Singtool.exe在基本系统中不附带,不过Plateform SDK,.netFramework SDK,Visual Studio里面都有,拣自己方便弄得安一个就是。
3,命令中dawnh.net,dawnh都可以替换成你自己喜欢的,不过反正是fake的,你自己爱写什么写什么,如果要签其他驱动把dsdrv4.sys换成你要的文件名就是了。
4,要reboot。
5,testsigning打开后据说会影响到DRM,会使有DRM的玩意儿失效,不过我等贫民还没看见什么东西用DRM。
6,喜欢学习的好同学想知道原理自己去啃文档:
http://msdn2.microsoft.com/en-us/library/aa906247.aspx
感想:
1,打上testsigning开关后重起系统屏幕四个角会出来Test mode,上面中间会出来版本号和build。看起来很酷,不过还好不是Safe Mode XD
2,如果我自己能这么做绕过MS的签名机制,病毒不是也能嘛。那强制签名和安驱动时跳个可以被屏蔽掉的警告框也没什么区别了嘛!噢,对了,所以才给你打个Test mode的标,别怪我没提醒
3,有没有给病毒或木马发证书的CA?

ZFS under FreeBSD performace

Clement大牛用izone做了一个ZFS的性能测试,他说结果很匪夷所思,看了测试图之后我们能说的也只有:确实很匪夷所思
XXD
测试看这里:
http://blogs.freebsdish.org/clement/2007/10/18/more-on-zfs/

G92登场

今天是nvidia开发代号为G92的新一代中端显卡NDA解禁的日子,也就是8800GTGPU了。
从来没有这样一个中端产品的上市让如此多的人关注,原因是因为其强悍的性能以及相对低廉的价格。有望冲击最新一代性价比王座。对于众多硬件发烧友来说,8800GT的上市,意味着T4200 Reloaded!
引用某著名硬件论坛网友的话,如下:

 立功拉,立功拉,8800GT立功啦,它继承了NVIDIA的优良传统,TI4200,7900GS在这一刻灵魂附体,8800GT一块卡代表了NV悠久的历史和传统,此刻它不是一个人在战斗!
  8800GT,8800GT,面对RV670的反击时,它面对全世界NV饭丝的目光和期待!
  发布了,发布了,NV获得了胜利,把ATI打败了。ATI继续滑向深渊,伟大的NVIDIA,伟大的8800GT,胜利属于所有NV饭丝,NVIDIA万岁!
  这次发布绝对是理论上的绝杀,绝对的一击,直接浇灭了ATI任何反击的希望!
  ATI也许会后悔的,它太保守了,面对R300的辉煌,没有好好把握住机会。它失去了前进的勇气,面对NVIDIA的光荣传统,它没有拿出一块卡能继承R300的衣钵,它终于自食其果,该回家了,他们不用来遥远的中国,他们大多数在加拿大卖卡,再见!
RV670这次又有难了,性能上几乎不可能与G92比肩,价格恐怕优势也难说,还被人领先这么长时间上市。AMD/ATI真是流年不利阿。
睡一觉,明天起来估计满世界都是评测文章,估计不少偷跑拿到卡的牛人们现在都在拼命码字做评测:D

黄家强巡回歌友会

上周末于老板送了2张”黄家强巡回歌友会暨签售会”的票。
对于此位歌手,我个人的认识只有他是出身于Beyond乐队,其他就一无所知了。摇滚这种音乐形式,实在是有点欣赏不来。
 貌似这场地有点远,我一个人跑过去看一个不认识的歌手,究竟值不值得呢?这个问题需要考虑一下。
其实论要去参加什么会的话,最近比较想去看一下TechED 07,怎奈前一阵子给忘记了,上海会场门票售罄。不知道有没有拿TechED的门票跟我换的?其实如果有MM和我一块去歌友会也行XD

个人Desktop试水64位

虽然拥有X86_64指令扩展的CPU(AMD Athlon 64 3000+)已经有1年多了,但一直没有利用起来,原因是64位的软件还未跟进。
然而在这次硬件升级之后,又起了跟进64位的念头,现在32位确实是末代了,越来越没有几天活头了。据说MS决定下一代操作系统将不会存在32位版本。
于是下载了64位的Windows Server 2008 RC0,安装过程不详述,与32位没有二致,一直到安装完成第一次正常启动,都感觉不到64位的存在感。
安装完成后大部分硬件都自动安装好了驱动,与32位系统并无区别,需要单独安装的也就是显卡而已,下载了公版64位驱动安装,一切正常。对于我来说,还有一块电视卡是而外需要安装驱动的,还好Philips SAA7134的控制芯片有公版驱动,因此也没费什么力就搞定了。
总体来说硬件和系统平滑升级。
系统方面的变动,明显的只有能看到Program Files变成两个,多了一个Program Files (x86),用来放32位软件的,另外就是任务管理器里如果进程是32位的后面会多一个*32的后缀。
然后发现了个有意思的事情,就是IE会分为原先32位和64位两个,默认是启动32位的,这样其他浏览器扩展软件以及插件等都可以通用。另外是Windows Media Player只有32位的。
剩下的其他软件就是要慢慢来找的问题了,一般的应用软件问题不大,毕竟是机器代码级别的兼容,有问题的都集中在那些需要安装内核级别驱动的软件,因为32位的驱动不可能工作在64位的系统下,而即使是64位的驱动,自从Vista起就强制要求驱动需要带有有效证书验证的数字签名,这才是麻烦的事情。
还好现在的软件都逐渐在这方面开始跟上步调了,我碰到的第一个出问题的就是Daemon Tools,还好厂商提供了带有签名的64位驱动。
第二个出问题的是我用的第三方电视卡软件–Dscaler,这个本身要加载其自己的nPNP驱动,但是这玩艺没签名,于是就不能跑了,且几乎没有解决放案,现在要做的是怎么想办法解决这个问题。
剩下的等今后用一阵子慢慢发现慢慢解决吧。
另外,感谢fcicq同学提醒,Blog的Google PR更新了,目前是3,有点小惊喜。

周末奇遇记之二–Windows Server 2008发飚

书接上回,折腾了半天,排除艰难险阻,驱走牛鬼神蛇终于把1号机从黑脸农成白脸了,至此1号机升级为1号机-改。
对于一个新装好的机器,首先要做的事情当然是灌操作系统了。由于这次升级没牵扯到硬盘更换,因此还只能用我的老硬盘,所以怎么拿出老硬盘的数据就成了一个问题。最理想的情况,是能顺利引导起老系统,这样不用重灌,然而这几乎是不可能的,因为这次硬件升级牵扯到如下致命问题:
1,AMD平台迁移到Intel平台–纯属硬件发烧友的迷信,死对头互换不重灌就等着出问题吧,没有被这个笑话冷到吧-_-
2,单核迁移到双核–这就是UP到SMP的迁移了,改动了底层HAL,这是致命问题其一
3,硬盘控制器迁移,由nv的sata控制器转换为ich9,控制器变更是最容易在引导时导致0×0000007B蓝屏错误的,因为系统本身如果加载不了磁盘控制器的驱动的话,就无法从bootloader完成系统自举,这是致命问题其二
4,主板芯片组迁移,从nvidia nForce4迁移到了Intel P35,这表示从总线开始到上面互联的所有设备都会有可能有拓扑变更,其中的复杂度很容易导致某关键部分无法运作而使系统无法引导,例如PCI-E起不来导致显卡不正常,看你怎么继续,此致命问题之三
有此上4点,基本上想不重做系统引导起老系统的概率微乎其微,其实我也根本没指望它能引导起来,因为自己习惯还算好,C盘没有什么重要资料,也就是重灌系统装软件费点时间而以。
不过回头再来看看理论上有没有可能引导起老系统来,如下分析:
1,这条扯淡,技术人员要相信科学!
2,从UP到SMP打从Win2k起驱动方面就没有区分了,MS要求各厂商写驱动时都自己招呼好SMP,所以这里不担心,担心的是UP到SMP的HAL层变更,也就是那个什么ntoskrnl.exe那个,不过还好从同构(ACPI)UP到SMP升级有手工的方法实现,就算实现不了,大不了1个核跑,反正这次是看热闹的。
3,一般而言更换主板后必须重做系统都是因为这一点了,要不看见这个蓝脸,要求你原先的系统要具备驱动起新的磁盘控制器的能力,而一般硬件升级都是从低往高,型号从旧往新,但操作系统内置的磁盘控制器驱动比较跟不上硬件发展,所以才有此问题。新装的系统可以有机会给你F6选驱动,而老系统引导不起来就只给你蓝脸看了,如果碰到这个问题,基本就无解了。所以理论上不碰到这个问题的条件就是目前的Windows Server 2008测试版恰好能驱动的起来P35芯片组的Sata控制器来,这个就只能向MS大神祈祷了。
4,这个几乎说不清楚了,任何情况都可能发生,要做的也只有祈祷。
所以理论上还存在希望,抱着看热闹的态度试试看吧(其实我是比较期待到底能看到哪一种蓝脸)
下面就是实际情况了:
BIOS自检不成问题,直接进入bootloader了,给出了一个30秒倒计时说上次系统非正常关闭,问如何处理,默认选项套在“正常启动”上。废话,你上次要能正常关闭我就不折腾这一天升级了,直接回车,结果键盘没反应-_-,然后想起来BIOS没把USB键盘鼠标模拟支持选上,这样操作系统没驱动起USB设备前USB键鼠是没反应的…….懒得去改了,等30s罢,何况还不知道后面是什么脸,说不定进系统都驱动不起USB来…..
然后屏幕一黑,进入欢迎界面,其实也就一滚动条了。一般都是这里滚阿滚得就蓝了。于是我等他滚阿滚,滚阿滚,滚阿滚的结果就……没蓝,黑了!然后闪了两下竟然进行下去了,这有戏,到这里平安度过第三个问题点。
然后就出来浅绿背景了(2008本来就这样),与平常不同的是似乎进入安全模式了,确切说是类似装系统时那个样子,分辨率1024×768,然后的步骤就是正常引导一直到Ctrl+Alt+Del的欢迎界面,竟然一点问题都没出,太失望了。
下面当然是登陆了,输入密码后进一步的登陆进程除了比平常慢没有区别,不过1024×768进桌面后比较恐怖,基本上图标都满屏了。还有一个不同的是右下角多了一排红红的图标,网卡打红叉,喇叭打红圈一道杠,再就是杂七杂八的一堆软件起不来给你颜色看的那种,好么,果然什么都没有,这能起来才怪。
然后戏剧的一幕就出现了,此时键盘鼠标都黑了,也都不动了,右下角开始跳找到新硬件提示了,因为没办法点开看详情,只看到出来无数多个未知设备等着安装。
然后?然后系统就自己开始装设备驱动了,装了什么我现在看不到,他要不自己装估计我就要在这里歇菜了。他装阿装的突然键盘背光就亮了,我以最快的速度打开了设备管理器,自从我安装过Windows以来最壮观的一幕出现了–设备树上几乎没什么正常设备,除了一些非即插即用的那些固定玩意儿,留下一排黄色问号,也来不及数到底多少个,总之拉滑动条滚了2屏多还没完。此时右下角设备安装可以点开看了,也是一排未知设备,状态waiting for install drivers,然后就是不知道哪一个设备一下子变成installing的状态,然后设备管理器就少一个黄问号,多一个黄感叹号,然后消失一个感叹号,一个设备就给插到设备树的某处,右下角进度条多一个Ready to use,其速度之快让我都来不及反应。然后此步骤循环再来一遍,当时看得我目瞪口呆,也忘记截图了,估计也截不下来。依稀记得很多以前雷打不动的核心设备都会跳出来露个脸,类似于PCI bus,PCI-ISA bridge,Memory  Controller Hub之类少了谁都不行的东西都跳了个遍。期间键盘鼠标又掉了2次,还好都回来了,估计是某个上层总线安装完驱动复位导致,屏幕黑了2次,估计是PCI-E的驱动和显卡驱动安装导致,还跳了3个驱动安装向导,其中2个能自动找到驱动,只要点下一步即可,有一个是找不到的只能取消,另外还跳了4次硬件安装完成要求重起的提示框,毫无疑问点取消。乱七八糟的自动的手动的处理完之后,检查站场,设备管理器里问号只留下一个,就是刚才自动装不上驱动的那个SM-bus,叹号剩下一个,是7300GT的显卡,点开来看发现是Reboot pending,也就不是问题了。另外刚才途中伴随着声卡显卡自动安装驱动完成,右下角的红图标也都变绿,竟然途中装着装着声音就丁丁当当的响起来了,这也太伟大了吧。
等再也没跳提示之后,点开任务管理器,竟然看到2个CPU占用率的绿槽,神奇!这比预想的情况好太多了,非但第4点几乎完美地解决,连第2点HAL都能自动更换,这傻瓜化的程度也太匪夷所思了点吧。
然后随手把分辨率提升回1600×1200,发现显卡也都是功能完备,连重起都不用。声卡网卡也都自做主张的起来干活了,网卡直接就变出个DHCP的IP就上网了-_-b
然后该重起还是重起一下吧,过程非常顺利,一点问题都没出。重起时顺便进了BIOS把CPU超成350*8。一边搞一边还想,这现在操作系统智能化地人都觉得没事情做了,太不自在XD。
再起来后一切都变得和没有更换硬件时没什么区别,噢不对,区别是速度快了好多,挖哈哈哈,有了双核,窗口可以多开了,游戏也不卡了,吃饭也香了#$%#$!@$!@$
相对于硬件更换过程的不顺利,这次操作系统的“不更换”简直是超乎意料的顺利。甚至顺利到了灵异的程度。
按照惯例,要以科学的观点来解释一切灵异现象,总结如下:
1,HAL自动识别并更换,这在以往的版本中是根本不可能的,实际我也不相信Server 2008能在bootloader阶段就识别出UP和SMP并加载不同的ntoskrnl。在这里,唯一能解释的原因是:Windows Server 2008直接抛弃了UP的内核,至少也是默认内核就启用了SMP支持,而不管你实际硬件究竟有几个核心。此点不是乱猜,早在还是Longhorn时代应该就看过一个MS内部的PPT,介绍内核特性时就说了是扔掉UP的,当时不以为然,这才想起来。不过这东西不知道还能不能找到。
2,在几大核心设备驱动都没有装起来时系统是怎么引导的。这个应该也不难解释,其实就是类似安全模式那种按照硬件通用标准将几大类核心硬件的最低功能驱动起来,只要这个能满足,就能继续进行。其实就是类似于引导安装时那种Windows支持就是了,有点最小化内核功能的意思。虽不能发挥全功能,但至少开了个门让你走。
3,重起还是非重起,这个只能说各个硬件在操作系统的抽象度在提高,耦合度在降低,随随便便就能在线拆卸某部分。这个也不新鲜,以前就看到过nv的显卡驱动挂了系统都能重置驱动恢复过来,代价不过是屏幕一闪,这在以往的系统中是必蓝的。至于声卡网卡USB等外围设备那就更简单了。
一天的传奇经历到此结束,没有灵异哪来科学,没有非常规事件就不会长EXP,这是真理。
希望这两篇恶搞掺杂技术分析的风格尝试不会给人带来困扰吧XD

罢工周末,升级周末

上个周末做了一件很激情的事情。
周六晚我的1号PC跑着跑着突然就挂了,然后就再也启动不起来了。现象很恐怖,按电源按钮就看到风扇动了一下就停,然后就没动静了,包括电源风扇机箱风扇都不转。一般这种情况都可能是某些短路造成的过保护。然而跑得好好的短什么路。不过我这台PC前一阵子出过类似故障,后来发现拔了显卡就能起来,断定显卡问题,送修了。然后返回来1年多都正常。这次估计还一样。然而这次发现拔了显卡都不转了,这下头大了。这样除了显卡还有可能是主板玩完了。
于是郁闷地睡下了,一边睡还一边想它为什么是这个故障,还在猜到底是什么部件罢工了。

MySQL Proxy应用:读写分离

前一阵子看到了MySQL Proxy这个东西出世,就推断将会从这个玩艺发展出很多架构方面翻新的花样,还没来得及研究,这就有人有研究成果了。
如下图:

通过MySQL Proxy实现一个连接池,并在其中分辩客户端连接为读或写操作,将不同操作导向到不同的后端数据库服务器,来实现性能的提升。
具体实现方法和步骤参考原文:
http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting

中国联网20周年

突然想到我个人做网民满十周年了,然后就顺便查了一下中国互联网的历史,发现至上个月9月20日起,刚满20周年,并且找到了一个十分有趣的东西,如下图:

看不懂?没关系,其实我也看不懂,只有懂德文的才能看懂:D
只需要知道一件事:这是中国联入互联网发往国外的第一封信件,目的地是德国,此图片为这封信的打印件。
而这封信的内容只有一句话:
Across the Great Wall we can reach every coner in the world.
这对于中国互联网20周年来说,这可真是一个莫大的讽刺阿。
所以后面我再加一句:
Now we have the Great Fire Wall.