Thursday, November 26, 2009
用VMWare Workstation 跑Chromium OS (不成功的尝试1)
用VMWare Workstation 跑Chromium OS (不成功的尝试2)
先如此配置一个虚拟机:
因为上次碰到了不能解析域名的问题,这次决定手工修改下resolv.conf。
记得当时碰到的问题是,resolv.conf里面默认的那个什么connman代理不能用,而且主文件系统是只读的。因此考虑从外部尝试修改resolv.conf。
先用Knoppix liveCD启动系统,强制按照读写模式装上chromeos的root卷(在这个虚拟镜像里是第三个分区)。
同时,把resolv.conf的权限改为644,所有者允许编辑。
之后,修改resolv.conf,加入OpenDNS的IP地址。
之后,启动系统,还是先用mark登录。
非常好,现在虚拟机中已经可以上网了。试试看用自己的账户登录:
登录成功,直接打开了登录自己账号的Google首页。
其他网站都完全可以上。
Chromium OS的浏览器的User-Agent是:
Mozilla/5.0 (X11; U; CrOS i686 9.10.0; en-US) AppleWebKit/532.5 (KHTML, Like Gecko) Chrome/4.0.253.0 Safari/532.5
看来,CrOS以后将成为ChromeOS/Chromium OS在User-agent中的识别标志。这个9.10.0版本,我没搞清是什么意思,但是这很可能代表的是Ubuntu 9.10,Chromium OS内核的母系分支。
也许有人会问了,从这些看来,所谓的Chromium OS不就是一个内核加上浏览器作为外壳的“超级浏览器”么?Google自己的演示当然不是这个样子,按左上角那个按钮能出来一个所谓的“应用程序”(其实也不过是到某些网页的快捷方式罢了)菜单。但是我按那个按钮,出来的却是——
而很多洋人点开却确实看到了程序菜单,这又是因为什么呢?
nslookup一下这个域名,结果是——
C:\Documents and Settings\yksoft1.YKSOFT-PC>nslookup goto.ext.google.com
Server: resolver1.opendns.com
Address: 208.67.222.222
Non-authoritative answer:
Name: ghs.l.google.com
Address: 74.125.53.121
原来是放在ghs上的。但是通过能有效打开我的备用博客的代理,仍然无法打开,看来不是我们封他,而是他还没准备好向我们公开这个“应用程序”页。
今天的测试就暂时到这里吧。
就在停笔的时候,虚拟机里的Chromium OS似乎死机了。鼠标还可以移动,但是屏幕对鼠标的移动和键盘输入完全没有任何反应。奇怪的是,在点击链接的时候,虚拟机的硬盘有反应,按 Ctrl+Alt+T,硬盘也有反应。看来并不是真的死机,而只是图形部分死掉了而已。强行重启虚拟机,启动到某个地方,vmware-vmx出错,虚拟机自动关闭。看来这个build的X驱动是真的不通用或者有Bug。
Sunday, November 22, 2009
比Windows 1.01更老的Windows预发行版本(Beta、Premiere)
泄露的版本包括1985年8月的
Windows Premiere Edition(Windows先行预览版)
1985年 5月的 windows 1.0 beta
1985年1月的 windows 1.0 alpha
1984年11月的 windows 1.0 developer release 5
经过我的测试,Premiere Edition和1.01基本是一样的,也可以通过替换mouse.drv为2.03或者2.1版的办法来支持PS/2鼠标。而Beta版则不同,其驱动程序结构和1.01、Premiere Edition都有区别,无法替换Mouse.drv,而且高版本DOS下退出将会导致死机。至于Alpha版和Developer Release 5,根本就不能支持3.0以上的DOS,高版本DOS下虽然能安装,但启动会出现DMAADD不正确的错误,因此我无法测试了。
注意 Premiere Edition和Beta虽然能在高版本DOS下启动,但是和所有的1.x、2.x一样,必须先使用DOSVER强制指定DOS的版本。
这是我在一台现代的机器上直接使用U盘启动DOS,测试Windows Premiere Edition和Windows 1.0 Beta的截图。
这里我提供安装软盘镜像(全部是360K盘,如果要用winimage转必须先转720K,再转1.44M)
http://www.mediafire.com/?lyie3onmyno
和我测试用的安装完毕的全部文件。
http://www.mediafire.com/?jjnt5mfnmoy
Saturday, December 27, 2008
quicktime?Slowtime!
到了H264称王的时代,苹果出了QT7。QT的H264在QT7.2之前根本就无法解码大多数实际遇到的Main profile的H264 MP4文件;就算是7.2支持了,那个解码效率,不和硬件解码、coreavc比,和libavcodec里的h264都没法比。编码么,quicktime h264和mpeg4有一样的毛病,没有几个可选项,一次只能占用一个CPU,而且也只能压出simple profile。iPod、iphone只能支持simple profile的h264,看来qt的人也认为所有的人都不需要用qt来压出他们。因此,和良好设置过的x264相比,qt的h264在相同码率、都是 1pass的情况下几乎不堪入目。
另外,在网络上低码率mp4中HE-AAC横行的时候,只支持AAC-LC的解码(编码就懒得说了)也不太好说。
熊猫本系统里的qt755总算支持了NV的h264硬件加速,这是个好事。Quicktime X是jobs在某次公开雪豹存在的会上说的,通过全硬件加速,应当会把解码性能提高一个数量级吧。而当初MPEG4的问题,至今还是那个样子。
QT的多种编辑用codec倒一直很强大,用到这点的那些软件是jobs赚大钱的部分,qt组当然不会怠慢了。
QT还有个大问题是它抛不开789系统时代的那些古旧代码。最初QT是给6系统写的,pascal代码还是占主要部分。不过在qt2.1还是2.5的时候 QT组必须把QT全部代码都移到PPC平台,以前的东西都改写成C了。qt基础部分由于和系统结合很紧,到了OSX的时代和以前几乎就没有联系了;但是问题是那些8、9系统时代写的编码解码器,就不那么好全面翻新了。有些是根本不能全面翻新(比如sorenson、qdesign、purevoice之类从别家公司授权来的编解码器,苹果没有多少权利去进行大幅度修改和优化),有些则是因为过于古老没人用,qt组懒得去翻新(比如什么cinepak、 imadpcm一类)。还有刚才说过的AVI组件,这个大概是97年底98年初qt3的时候做的,当时apple估计只是把这个当作当时QT“兼容性”的一个宣传工具,以后应该是没有怎么更新过。后面还有flash 4、flash 5支持(7.3.1废掉了),这个也自从qt5之后就再也没有过任何更新,也许是因为当时realplayer搞了flash支持,apple只是跟一下风。这一系列古董代码,全部是用老的OS9 toolbox,或者后来稍作修改改成carbon,来编译出来的。相对于9系统到carbon,carbon到cocoa是非常复杂的,阿多币、M$搞了7年都没搞定,qt组估计看着屁股后面这一大堆的老codec,估计心有余而力不足了。qt7终于加上了一个控制QT的cocoa api QTkit,但是实际上它还是得用那些carbon的库来实际实现quicktime功能。iphone的osx没有carbon,这点大家可能都清楚;iphone能播放mpeg4、h264 simple profile的视频,播放mp3、aac、alac、pcm的音频,我认为应当是把整个qt底层移植到了cocoa。jobs应当把这个为同属于OSX 的iphone os开发的新框架移植到mac的osx上来(也许qt组已经作了一两年甚至4年以上,也许这就是quicktime X)。至于那些古董codec,我认为qt741默认隐藏它们的编码功能,qt731废掉flash5支持,其实就是为了quicktime X将彻底不支持那些古董做准备。这样,也许qt就不再是slowtime了。
不过,QT最大的问题还是跨平台后的性能问题。当初qt1-2的时候,apple请一家小公司移植了少部分7系统API,做了个只能播放视频和支持少部分从mac移植的软件,没有什么其它功能的qt1-2 forwin;后来这个小公司和intel、m$合作,最终导致了苹果历史上与M$的第二场大官司(第一件是win2.0的外观与感觉案)。后来jobs 和M$谈判把这两个官司私了了,但估计还是怀恨在心还是怎么的,QTWin虽然变成apple自己制作,但是其性能和稳定性和在自己系统上相比,完全是一个天上一个地下。看看mplayer、mencoder,在win上性能比在老家linux上还要好;苹果就不很厚道了。不知道quicktimeX的 win版会有什么大变化,希望速度上有所提升,但是又不要加更多从OSX移植的东西。safari win其实性能并不差,不过它太OSX化(连quartz字体渲染都搞过来)了。苹果的人不知是故意还是怎么,把Win版苹果软件的界面设计得和win环境不协调(safari中出现了OSX的滚动条和按钮),这点也不知以后会怎么发展。
无聊乱敲了这么多字,其实也就因为一个文件转得太慢而已。希望quicktime X能真正quick吧。
追记:qt731干掉flash5的问题,影响到了那么一些在qt影片里用flash搞互动内容的洋人。当初imac g3有几个宣传片就有flash的互动内容在里面。
这篇文章纯属用qtpro连续出现crash之后的牢骚,别看得太重。
Monday, June 23, 2008
Monday, April 14, 2008
我的 eeepc 安装 Windows XP 的步骤之第一步
因为我没有USB接口的光驱,不得不使出我的拿手好戏——从U盘启动DOS实现系统安装。
1、准备一个支持FAT32的DOS启动U盘(建议使用惠普DriveKey HPUSBFW.exe进行制作操作,不建议使用USBoot等软件),需要himem.sys、smartdrv.exe、format.com,将himem.sys和smartdrv.exe放入config.sys,将smartdrv.exe放入autoexec.bat,另外需要DiskGenius分区软件。将Windows安装盘的i386目录(注意:使用DPS第一种方式整合驱动包的系统,就算加入$OEM$目录,也不一定能够自动安装成功!)也复制入其中。
2、插入U盘,启动时按下ESC,选择U盘设备名,等待片刻即可进入DOS系统。此时,运行DiskGenius(一般名为dskgen.exe)。 选择第二个4G左右大小的硬盘,删除其上所有分区,建立一个占据全部磁盘空间的分区。最后,别忘记修复主引导记录!否则启动报Error 17错误。
3、重启动系统,format d:(如果你的U盘只有一个分区)。如果愿意的话,可以在eeepc的磁盘分区上先安装DOS。
4、在DOS下运行i386中的winnt.exe,按提示进行系统安装。如果没有在eeepc的磁盘分区上先安装DOS,可以考虑将分区转换成NTFS。
至此,第一步安装结束。是不是不很麻烦?
PS:blogger是一个“能写不能读”的地方。。
Wednesday, March 26, 2008
最新IM软件 百度HI 试用之一(多PNG图,杀猫杀内存)
这是主界面。
这是程序的关于画面,看来至少百度要搞三年。。
基本的对话窗口,很像TM和MSNM的混合体。还是不如AIM的简洁。
基本设置,和QQ相当类似。
注意:用户根目录在我的文档\Baidu\Baidu Hi下,一个账号一个子目录。消息数据库msg.db不是明文。
这个是安全设置(其实如果没有QB,QQ的所谓安全中心只需要两个小功能,对不?)
文件发送功能(我这里经常发送成功却显示失败,甚至根本不能发送,直接取消,估计是BUG了)。
更换主题(现在还只是两个颜色不同的)。
截图功能。如果能成功发送,就是先出缩略图再出大图!但是不能,就是只有小缩略图。
添加联系人。很像QQ
快速启动栏图标主菜单,
多人对话。这个还不是群。
因为还没找到能够加入的群,因此暂时不发群功能的图,等待下次继续吧。
虽然是beta,但是我觉得这个比简陋的QQ for Mac成熟太多了。内存占用呢?和QQ在一个水平上~(下图是各开4个窗口)
seamonkey占用这么多的原因是因为,adblock在0320的nightly突然失效了,,,
下次待续,群和音视频功能。
Sunday, February 10, 2008
古董软件:Aldus Freehand 4.0
Sunday, November 25, 2007
这可是真正最早的中文Mac系统。。。
很久以前就收到的(1988年版)系统CH-1.2,繁体系统TA-1.2。只不过今天才找到合适的工具把它弄成模拟器可用的格式。
安装方法其实很简单,别看第一张盘启动都是乱码,但只要把系统文件夹(看图标能看出来)拖到其它空盘上,把disk2、disk3里图标是“汉”的字体文件拖到那个系统文件夹里,可用的系统就build出来了。
本地下载:
简体CH-1.2 http://users2.nofeehost.com/yksoft1/download/ch1.2.zip
繁体CH-1.2 http://users2.nofeehost.com/yksoft1/download/ta1.2.zip
模拟器Mini vMac for Windows及 HFVExplorer工具 http://users2.nofeehost.com/yksoft1/download/minivmac.rar
(Windows)想用iTunes 7.5?不想装新版本Quicktime?这样就行。
我虽然没有任何新一代iPod和iPhone,但也想先试试这个新版本的iTunes。为了测试,我在下完7.5安装程序这个50多兆的怪物之后,准备做点小小的tweak。
我原使用的iTunes 是版本7.2,Quicktime版本是7.1.6。从http: //www.apple.com/support/downloads/quicktime716forwindows.html下载Quicktime 7.1.6的独立安装包,用WinRAR解压缩出其中的Quicktime.MSI,备用。
运行iTunes安装程序,直到出现第一个画面。此时,在资源管理器中进入当前用户的临时目录(可直接输入%temp%进入),找到一个形式如 ixp000.tmp的目录(iTunes安装包为Windows Installer的IExpress自解压包,%temp%\ixpxxx.tmp是其默认解压到的目录)。进入它,你就能看到 Quicktime.msi(Quicktime7.3)、iTunes.msi、Apple Mobile Device.msi(iPhone和iPod touch支持)、Apple software update.msi等几个MSI安装包。现在你应该想到了,把Quicktime.msi替换成刚才备用的那个7.1.6的,就能实现目的——装上 itunes 7.5 而不装Quicktime 7.3 的目的。(当然前提是你的老Quicktime已经是7.1.6,不然独立安装包和集成安装包之间的区别,我还不知道怎么对付呢。如果已经是7.1.6, Windows Installer根本不会继续运行7.1.6的安装脚本。)我这样测试,当然取得了成功。
其实iTunes因为是使用一种兼容型的Objective C编译器编译,因此体积确实偏大。但是可以通过移除一些不需要的语言资源来达到减小体积的目的。这些语言资源文件在C:\Program Files\iTunes\iTunes.Resources及几个类似形式的目录中,移除其中除en.lproj(英文)、zh-CN.lproj(简体中文)、ja.lproj(日本语)之外不用的语言即可。这样,几乎可以减少iTunes目录的一半体积(30多兆啊)。当然因为Windows Installer的那个自效验,原来Windows Installer建立的快捷方式就不要再用了,不然运行就会试图把这些语言文件修复回来。。
如果不需要支持iPhone或者iPod touch,也可以在“添加/删除程序”里把Apple Mobile Device删除(10多M),不会影响iTunes 7.5的正常运行和其它各种iPod的使用。你可以看到,我已经删除了。
Tuesday, November 6, 2007
对模拟器最强的挑战:PC98用 Windows 95
我经过多次实验,在Anex86+Anexx21 v2.78上最终将其运行成功。
最初我安装后无法启动,将DIPSW2-8(GDC频率)设置为开(5MHz),进入安全模式后将显示模式修改为640*480*256色,重启后启动成功。
启动成功。因为Anex86的bug(扩展内存不能超过14M)整个系统的内存都过少,而且由于9821GDC模拟效率超低,并且Anex86的SASI控制器根本不被Windows95支持(只能使用MS-DOS兼容方式),导致整个系统运行速度很慢。
Saturday, October 20, 2007
Windows Vista UAC的一处严重的愚蠢设计(之二)
为了搞清楚是什么程序或者服务造成这个问题,我打开了我的两个工具:IceSword和ProcessMonitor(这两个经常手工杀毒的肯定至少用过)。
先开IceSword,选中监视进线程创建,运行那个问题安装包。很快我就发现,有一个svchost进程和一个叫consent.exe的进程异常活跃。
(注意其中那个lsm.exe不是特殊程序而是相当于XP/2003的winlogon.exe和部分lsass功能的程序)。
consent.exe是在复制文件一段时间后才真正运行的。如果在它出现到UAC窗口出现之间的一段时间把这个进程结束掉,什么错误都不会发生,而那个临时文件已经消失了。为了继续调查,我设置了几下ProcessExplorer的规则。
证 明那个服务在疯狂读取原文件并复制到%windir%\temp下,consent只是读那个临时文件而已。知道了那个svchost.exe的pid, 也就容易弄清楚那个服务到底是何方神圣了。很快就通过IceSword查找到这个svchost的模块里有mmcss.dll(那个造成放声音减网速的 MMCSS服务),BITS.dll(Windows Update的那个背景传输服务)等等东西,看上去都是属于那netsvcs组。进一步查看,反复尝试对这个组的各服务进行操作,发现有一个怎么也结束不 掉(无响应)的服务──AppInfo。这是这个服务的说明:
辅助管理权限?和UAC的功能一样!难道是它?因为这个服务结束不掉(不管是用MMC,用net stop还是sc stop都无响应),只好先将其设置为禁用,再结束掉它的母svchost.exe。
再次运行那个安装包,结果……
果然。现在这个服务无法启动,任何要求UAC提升权限的东西都无法启动了,那个临时文件也根本没有被创建。但是为什么要求吞食硬盘空间的却是这个作为UAC功能之核心的服务呢?
我可以粗略分析出UAC对于一个安装包/自解压EXE文件是如何工作的:
(1)Win32 API Winexec函数运行该程序
(2) 检测安装包的文件名和属性中的信息,发现一些特征如关键词"setup""install"一类或者在应用程序兼容性数据库(我目前发现它存在在% windir%\apppatch下的三个.sdb文件中)发现相关项或者在应用程序的内嵌/外挂manifest中发现特殊要求(如 icesword.exe)
(3)Appinfo服务复制这个文件到%windir%\temp下
(4)consent程序检验这个临时文件的数字签名等信息,负责弹出UAC确认窗口
(5)如果选允许,consent以自身的高权限运行原.exe文件并退出
(6)appinfo服务检测到consent退出,删除临时文件
用伪代码可以这么描述
WinExec(string filename) /*这里的filename指完整路径名*/
{
bool issecure;
issecure=SecCheck(filename));
if(!issecure)
{
UAC(filename);
return 0;
} /*(2)*/
execFile(filename);
}
UAC(string filename)
{
string tempfilename;
string consentline="consent.exe -v origfile= ";
strcat(tempfilename, Getenvironmentstrings("Windir"));
strcat(tempfilename, "\Temp");
strcat(tempfilename, tempNamegenerate(GetNamefromFullpath(filename)));/*生成临时文件的完整路径名*/
Copyfile(filename, tempfilename); /*(3)*/
strcat(consentline, filename);
strcat(consentline, " tempfile= ");
strcat(consentline, tempfilename);
execFile(consentline, suspendwhenrunning); /*(4)(5)*/
deleteFile(tempfilename);/*(6)*/
}
我发现这个问题,就是发生在第二步。第二步失败后并没有跳到第6步。微软要做个权宜之计的修正,只需要把Copyfile(filename, tempfilename); 这里改成if(!Copyfile(filename, tempfilename)){deleteFile(tempfilename);return 0;}就没问题了;不过为什么一定要复制文件到系统目录呢?
Friday, October 19, 2007
Windows Vista UAC的一处严重的愚蠢设计
今天试图在Vista下运行一个500多M的大安装包,结果系统盘(F区)空间只有300多M。结果,运行了之后硬盘响了半天,愣是没看到那可爱又可恨的UAC提示,反而出来个对话框说“磁盘空间不足”。结果一看,F区没空间了。Windows Explorer自己的“磁盘清理”功能一弄,系统日志一清,各浏览器缓存一清,只清空出大概200兆空间。到处找了半天,找到了F:\Windows\temp——所谓“全局”临时目录下躺着个300多兆的临时文件。winhex打开一对比,结果此文件就是那个安装包的截断版本。
我做了个小实验。把F盘再腾出几百兆空间,再次运行那个安装程序。
硬盘又一阵稀里哗啦的狂响。20秒后,在UAC窗口闪烁在任务栏的时候,怪物也出现在了temp目录中:
切换到UAC窗口,随手点“取消”。这时候这个临时文件也突然消失了。再试了个别的安装程序(日文WPS2007 Beta安装包),结果也差不多,文件还是被复制到了F:\windows\temp下。
那如果系统盘的空间不足会怎样呢?再测试一下。。
结果。硬盘空间一下就被吃光,出现了那个“磁盘空间不足”的窗口。
具有讽刺意义的是,这个被截断的临时文件,默认还是TrustedInstaller组权限下的东西,你想删掉它,还要再过一次UAC。
这可以算是Vista的一个严重BUG了。验证数字签名,有必要放到自己的领地里来吗?当磁盘空间不足的时候,也没有进行任何的防护措施,最后出错后那临时文件也摆在那里了。

