Thursday, November 26, 2009

用VMWare Workstation 跑Chromium OS (不成功的尝试1)

11月18日Google宣布了 Chrome OS,展示了其切入上网本领域、以初步实现其“云计算”蓝图的野心。同时,其开源版“Chromium OS”的源码树git也于同日正式上web(实际上10月底开始这个git树已经开始)。有好事者编译了11月19日的此源码树,做成VMWare磁盘镜 像发上网,(具体请自己查找文件名chromeos-image-999.999.32309.211410-a1.vmdk.bz2)我大概在几个小时 内就拿到了这个镜像。
由于主力笔记本显卡烧坏,不得不使用一台只有512MB内存的较老的机器来跑ChromiumOS VMWare镜像。这是这个虚拟机的基本配置:
Chrome OS ChromeOS Chromium VMWare
可以看到,我仅仅分配了256MB内存给ChromeOS虚拟机,使用NAT网络,没有使用USB适配器等高级虚拟设备。
启动系统。这个系统就算在256M内存的VMWare之下,从VMWare BIOS logo到出现登录画面,其中发生的唯一事情就是黑了5-6秒屏而已。这是登录界面。
Chrome OS ChromeOS Chromium VMWare
这个界面里,我估计按照Google的考虑,用户名就是你的Google账号,密码就是你Google账号的密码。我并不敢把自己的账号密码让 这个刚刚出现的系统吃掉,但是用自己的小号登录却直接出现了“Network not connected,”这样的错误。原种子的说明中提到万能账号mark,直接输入进去,登录系统成功。
Chrome OS ChromeOS Chromium VMWare
系统直接打开了一个Chromium浏览器,而且无法DNS其默认主页——Google.com。而且系统的整体反应速度也非常慢,比 VMWare里未安装VMWare Tools的Fedora、Ubuntu都要慢得多,估计是ChromeOS的X在编译时就只对某种他们用来测试的特殊硬件做了优化,而默认的优化选项都 没有打开。
这个NAT在Windows下完全正常,为何这里就不能用了?我得诊断一下。先把VMNAT dhcp得到的东西在VMware模拟的windows中列出:
Photobucket
然后就是尝试在ChromeOS中查找网络设置和终端了。我找遍了Chromium的界面,没有看到网络设置的任何影子,只有打开或者关闭网 络、Wifi这样的东西;而试图通过Ctrl+Alt+F2打开一个新的命令行终端,能看到的只有黑屏。很可能编译设定中并没有启用字符模式的终端驱动, 因此不仅启动整个是黑屏,开命令行终端也是黑屏。
不过我最后发现,按Ctrl+Alt+T能够在Chrome运行的那个图形会话中打开一个图形界面的终端。sudo -s,用原镜像提供者说的密码chromeos,成功root。
马上运行ifconfig查看IP地址,ping vmnat提供的网关和DNS。结果如下:
Chrome OS ChromeOS  Chromium VMWare
似乎都是正常的。但是,一ping 外网的地址,问题就来了。
Chrome OS ChromeOS Chromium VMWare
无法解析域名。/etc/resolv.conf里记录的DNS居然是本地,其第一个注释行的内容说的是让什么connman提供的本地dns 代理服务来解析。估计问题就在connman了。
一Google,发现connman是Intel Moblin项目中和诺基亚合作的一个子项目,它.“提供一个为运行Linux的嵌入式设备来管理Internet连接的服务”(http://connman.net/)。估计我得查一些文档,才能把这个 connman的问题搞定了。
试图手工修改resolv.conf,居然发现/是只读的文件系统。Linux知识不够,暂时不知道怎么把根目录按读写方式mount。
因此VMWare 运行Chromium OS 20091119 第一战宣告暂时失败。
不过,连接用IP访问的网站,还是可以的。比如ACFun:
Chrome OS ChromeOS Chromium VMWare
用过Android的人都能很明显地看出,ChromeOS内置了Droid字体,中文则是用文泉驿微米黑。由于ACFun上有很多外部链接的 图片和脚本,由于它们此时无法解析对应域名,因此打开acfun的速度非常慢。
Chrome OS ChromeOS Chromium VMWare
嗯?预装了Flash插件?这似乎牵扯到授权的问题了啊!不过据说Chromium OS是BSD授权,我看看这个系统的uname -a看看它是不是Linux内核:
Chrome OS ChromeOS Chromium VMWare
果然也是Linux。记得wiki说BSD和GPLv2是兼容的,但是Adobe的Flash插件EULA呢?Google的人估计还是出了点 小差错。
Chrome OS ChromeOS Chromium VMWare
Chrome OS虽然主要倾向是连到长城另一边的服务器群上搞什么云计算,但是用来看一些“认真你就输了”的东西似乎是完全没问题的!就是现在这个DNS没搞定啊。
找遍GUI,没找到关机的命令,只有终端下shutdown -h now了。

用VMWare Workstation 跑Chromium OS (不成功的尝试2)

上次尝试VMWare上跑Chromium OS没有彻底成功。现在主力笔记本已经修好,拿笔记本上的Workstation 5.5再来跑跑看。
先如此配置一个虚拟机:


因为上次碰到了不能解析域名的问题,这次决定手工修改下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)

Windows 1.01是1985年11月左右发布的,第一个正式的Windows版本。但是最近,之前的好几个预览版和测试版都泄露了出来,成为软件古董爱好者的玩物。
泄露的版本包括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的截图。
http://i121.photobucket.com/albums/o220/yksoft1/Windows%201%20Prerelease/w1beta.gif

http://i121.photobucket.com/albums/o220/yksoft1/Windows%201%20Prerelease/w1pre.gif
这里我提供安装软盘镜像(全部是360K盘,如果要用winimage转必须先转720K,再转1.44M)
http://www.mediafire.com/?lyie3onmyno
和我测试用的安装完毕的全部文件。
http://www.mediafire.com/?jjnt5mfnmoy